|
|
|
@ -229,10 +229,7 @@ MENULP: LD DE,$0000 ; ENSURE WE ARE STARTING |
|
|
|
LD HL,ERATYP ; RESET THE ERASE |
|
|
|
RES 7,(HL) ; SKIP FLAG |
|
|
|
; |
|
|
|
LD HL,msgCRLF |
|
|
|
CALL PRTSTR0 |
|
|
|
CALL MENU ; DISPLAY MENU |
|
|
|
; |
|
|
|
CALL GETINP ; GET SELECTION |
|
|
|
; |
|
|
|
CP 'U' ; BEGIN |
|
|
|
@ -328,9 +325,13 @@ NotPacketTimeout: |
|
|
|
CP SOH ; DID WE GET A START-OF-NEW-PACKET? |
|
|
|
JR NZ,NPloop ; NO, GO BACK AND TRY AGAIN |
|
|
|
; |
|
|
|
#IF (XFUDBG) |
|
|
|
LD HL,packet ; SAVE THE RECEIVED CHAR INTO THE... |
|
|
|
LD (HL),A ; ...PACKET BUFFER AND... |
|
|
|
INC HL ; ...POINT TO THE NEXT LOCATION |
|
|
|
#ELSE |
|
|
|
LD HL,packet+1 ; SKIP SAVING |
|
|
|
#ENDIF |
|
|
|
; |
|
|
|
CALL GetCharTmo1 ; GET CHARACTER |
|
|
|
LD (HL),A ; SHOULD BE PACKET NUMBER |
|
|
|
@ -342,17 +343,16 @@ NotPacketTimeout: |
|
|
|
INC HL ; COMPLEMENT |
|
|
|
JR C,FAILTO |
|
|
|
; |
|
|
|
LD C,128 ; GET 128 MORE CHARACTERS FOR A FULL PACKET |
|
|
|
GetRestOfPacket: |
|
|
|
LD C,0 ; GET 128 MORE CHARACTERS FOR A FULL PACKET |
|
|
|
GetRestOfPacket: ; C=0=256 TO ALLOW FOR DOUBLE DECREMENT |
|
|
|
CALL GetCharTmo1 ; GET CHARACTER |
|
|
|
JR C,FAILTO |
|
|
|
; |
|
|
|
LD (HL),A |
|
|
|
INC HL ; SAVE THE RECEIVED CHAR INTO THE... |
|
|
|
LD (DE),A ; ...PACKET BUFFER AND... |
|
|
|
INC DE ; ...POINT TO THE NEXT LOCATION |
|
|
|
LD (HL),A ; SAVE THE RECEIVED CHAR INTO THE |
|
|
|
LDI ; PACKET BUFFER AND FLASH SECTOR BUFFER |
|
|
|
; |
|
|
|
DEC C ; C GETS DECREMENTED TWICE EACH LOOP. |
|
|
|
; |
|
|
|
DEC C |
|
|
|
JP NZ,GetRestOfPacket |
|
|
|
; |
|
|
|
CALL GetCharTmo1 ; GET CHARACTER |
|
|
|
@ -379,9 +379,8 @@ csloop: ADD A,(HL) ; JUST ADD UP THE BYTES |
|
|
|
DEC A ; XMODEM PACKETS? |
|
|
|
AND %00011111 ; IF YES THEN WERE WE |
|
|
|
CP %00011111 ; HAVE ENOUGH TO |
|
|
|
LD A,0 ; WRITE A FLASH SECTOR |
|
|
|
LD A,H ; WRITE A FLASH SECTOR |
|
|
|
CALL Z,WSEC ; ASSUME FLASH SUCCESSFUL |
|
|
|
; |
|
|
|
OR A ; EXIT IF WE GOT A |
|
|
|
JR NZ,FAILWF ; WRITE VERIFICATION ERROR |
|
|
|
; |
|
|
|
@ -590,14 +589,15 @@ GETINP2:CALL CONIN |
|
|
|
GETINP3:RET |
|
|
|
; |
|
|
|
PRTSTR0:LD A,(HL) ; PRINT MESSAGE POINTED TOP HL UNTIL 0 |
|
|
|
or A ; CHECK IF GOT ZERO? |
|
|
|
OR A ; CHECK IF GOT ZERO? |
|
|
|
RET Z ; IF ZERO RETURN TO CALLER |
|
|
|
LD C,A |
|
|
|
CALL CONOUT ; ELSE PRINT THE CHARACTER |
|
|
|
INC HL |
|
|
|
JP PRTSTR0 |
|
|
|
; |
|
|
|
MENU: LD HL,msgConsole ; DISPLAY |
|
|
|
MENU: CALL COUTON |
|
|
|
LD HL,msgConsole ; DISPLAY |
|
|
|
CALL PRTSTR0 ; CONSOLE |
|
|
|
LD A,(CONDEV) ; DEVICE |
|
|
|
ADD A,'0' |
|
|
|
@ -876,28 +876,27 @@ SERIN: PUSH HL ; SERIAL INPUT. WAIT FOR A CHARACTER ADD RETURN IT IN A |
|
|
|
POP HL |
|
|
|
RET |
|
|
|
; |
|
|
|
CONOUT: PUSH HL ; CONSOLE OUTPUT CHARACTER IN C |
|
|
|
PUSH DE ; OUTPUT IS BLOCKED DURING THE |
|
|
|
PUSH BC ; FILE TRANSFER WHEN THE |
|
|
|
PUSH AF |
|
|
|
LD A,(BLKCOUT) ; CONSOLE AND SERIAL LINE |
|
|
|
OR A ; ARE THE SAME |
|
|
|
JR Z,CONOUT1 |
|
|
|
CONOUT: PUSH AF ; OUTPUT IS BLOCKED DURING THE |
|
|
|
LD A,(BLKCOUT) ; FILE TRANSFER WHEN THE |
|
|
|
OR A ; CONSOLE AND SERIAL LINE |
|
|
|
JR Z,CONOUT1 ; ARE THE SAME |
|
|
|
PUSH HL ; CONSOLE OUTPUT CHARACTER IN C |
|
|
|
PUSH DE |
|
|
|
PUSH BC |
|
|
|
LD E,C |
|
|
|
LD B,$01 |
|
|
|
LD HL,CONDEV |
|
|
|
LD C,(HL) |
|
|
|
RST 08 |
|
|
|
CONOUT1:POP AF |
|
|
|
POP BC |
|
|
|
POP DE |
|
|
|
POP HL |
|
|
|
CONOUT1:POP AF |
|
|
|
RET |
|
|
|
; |
|
|
|
CONST: PUSH HL ; CONSOLE STATUS. RETURN CHARACTERS AVAILABLE IN A |
|
|
|
PUSH DE |
|
|
|
PUSH BC |
|
|
|
LD E,C |
|
|
|
LD B,$02 |
|
|
|
LD HL,CONDEV |
|
|
|
LD C,(HL) |
|
|
|
@ -910,7 +909,6 @@ CONST: PUSH HL ; CONSOLE STATUS. RETURN CHARACTERS AVAILABLE IN A |
|
|
|
CONIN: PUSH HL ; CONSOLE INPUT. WAIT FOR A CHARACTER ADD RETURN IT IN A |
|
|
|
PUSH DE |
|
|
|
PUSH BC |
|
|
|
LD E,C |
|
|
|
LD B,$00 |
|
|
|
LD HL,CONDEV |
|
|
|
LD C,(HL) |
|
|
|
@ -991,16 +989,16 @@ CRCLP2: PUSH BC ; 8 SECTORS |
|
|
|
LD A,(MD_SECT) ; POINT |
|
|
|
ADD A,$10 ; TO NEXT |
|
|
|
LD (MD_SECT),A ; SECTOR |
|
|
|
|
|
|
|
; |
|
|
|
POP BC ; NEXT |
|
|
|
DJNZ CRCLP2 ; SECTOR |
|
|
|
|
|
|
|
; |
|
|
|
XOR A ; RESET SECTOR |
|
|
|
LD (MD_SECT),A ; START |
|
|
|
|
|
|
|
; |
|
|
|
LD HL,MD_BANK ; POINT TO |
|
|
|
INC (HL) ; NEXT BANK |
|
|
|
|
|
|
|
; |
|
|
|
POP BC ; NEXT |
|
|
|
DJNZ CRCLP1 ; BANK |
|
|
|
; |
|
|
|
@ -1170,7 +1168,7 @@ msgCRC32: .DB CR,LF,CR,LF,"CRC32 : ",0 |
|
|
|
msgFailWrt: .DB CR,LF,"FLASH WRITE FAILED",CR,LF,0 |
|
|
|
msgFailure: .DB CR,LF,"TRANSMISSION FAILED",CR,LF,0 |
|
|
|
msgCancel: .DB CR,LF,"TRANSMISSION CANCELLED",CR,LF,0 |
|
|
|
msgConsole: .DB CR,LF,"(C) Set Console Device : ",0 |
|
|
|
msgConsole: .DB CR,LF,CR,LF,"(C) Set Console Device : ",0 |
|
|
|
msgIODevice: .DB CR,LF,"(S) Set Serial Device : ",0 |
|
|
|
msgWriteV: .DB CR,LF,"(V) Toggle Write Verify : ",0 |
|
|
|
msgBegin: .DB CR,LF,"(R) Reboot" |
|
|
|
|