Changeset 566 in xtideuniversalbios for trunk/Assembly_Library/Src/Serial
- Timestamp:
- Aug 29, 2013, 12:49:15 AM (11 years ago)
- google:author:
- krille_n_@hotmail.com
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Assembly_Library/Src/Serial/SerialServer.asm
r526 r566 92 92 93 93 mov al,047h 94 inc dx ; 94 inc dx ; fifo 95 95 out dx,al 96 96 97 97 mov al,03h 98 inc dx ; 98 inc dx ; linecontrol 99 99 out dx,al 100 100 101 101 mov al,0bh 102 inc dx ; 103 out dx,al 104 105 inc dx ; 102 inc dx ; modemcontrol 103 out dx,al 104 105 inc dx ; linestatus (no output now, just setting up BH for later use) 106 106 mov bh,dl 107 107 … … 158 158 mov cx,0101h ; writing 256 words (plus 1) 159 159 160 s hr ah,1; command byte, are we doing a write?160 sahf ; command byte, are we doing a write? 161 161 jnc .readEntry 162 162 … … 285 285 ; taken care of this, but I have seen cases where this is not true. 286 286 ; 287 xor cx,cx 287 xor cx,cx ; timeout this clearing routine, in case the UART isn't there 288 288 .clearBuffer: 289 289 mov dl,bh … … 294 294 test al,1 295 295 in al,dx 296 loopnz .clearBuffer 296 loopnz .clearBuffer ; note ZF from test above 297 297 298 298 .clearBufferComplete: 299 mov al, 3 ; error return code and CF (low order bit)299 mov al, 1 ; error return code 300 300 301 301 ALIGN JUMP_ALIGN 302 302 SerialServer_OutputWithParameters_ReturnCodeInAL: 303 303 %if 0 304 sti ; 305 %endif 306 mov ah, al ; 307 308 pop bx ; 309 pop cx ; 304 sti ; all paths here will already have interrupts turned back on 305 %endif 306 mov ah, al ; for success, AL will already be zero 307 308 pop bx ; recover "ax" (command and count) from stack 309 pop cx ; recover saved sector count 310 310 xor ch, ch 311 311 sub cl, bl ; subtract off the number of sectors that remained … … 315 315 pop si 316 316 317 s hr ah, 1 ; shift down return code andCF317 sahf ; error return code to CF 318 318 319 319 ret … … 440 440 ; 441 441 sti 442 %ifndef SERIALSERVER_TIMER_LOCATION 442 443 mov cl,SerialServer_WaitAndPoll_SoftDelayTicks 443 %ifndef SERIALSERVER_TIMER_LOCATION444 444 call Timer_InitializeTimeoutWithTicksInCL 445 445 %else
Note:
See TracChangeset
for help on using the changeset viewer.