Browse Source

Merge pull request #187 from b1ackmai1er/dev

updater xmodem loop optimization + Minors
pull/199/head
Wayne Warthen 5 years ago
committed by GitHub
parent
commit
7e2bad5643
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 6
      Source/HBIOS/cvdu.asm
  2. 18
      Source/HBIOS/hbios.asm
  3. 56
      Source/HBIOS/updater.asm
  4. 2
      Source/HBIOS/vga.asm

6
Source/HBIOS/cvdu.asm

@ -373,7 +373,7 @@ CVDU_LOADFONT:
LD (CVDU_STACK),SP ; SAVE STACK
LD HL,(CVDU_STACK) ; AND SHIFT IT
LD DE,$2000 ; DOWN 4KB TO
CCF ; CREATE A
OR A ; CREATE A
SBC HL,DE ; DECOMPRESSION BUFFER
LD SP,HL ; HL POINTS TO BUFFER
EX DE,HL ; START OF STACK BUFFER
@ -430,7 +430,7 @@ CVDU_XY2IDX:
RET ; RETURN
;
;----------------------------------------------------------------------
; WRITE VALUE IN A TO CURRENT VDU BUFFER POSTION, ADVANCE CURSOR
; WRITE VALUE IN A TO CURRENT VDU BUFFER POSITION, ADVANCE CURSOR
;----------------------------------------------------------------------
;
CVDU_PUTCHAR:
@ -442,7 +442,7 @@ CVDU_PUTCHAR:
CALL CVDU_WRX ; DO IT
; PUT THE CHARACTER THERE
POP AF ; RECOVER CHARACTER VALLUE TO WRITE
POP AF ; RECOVER CHARACTER VALUE TO WRITE
LD C,31 ; DATA REGISTER
CALL CVDU_WR ; DO IT

18
Source/HBIOS/hbios.asm

@ -2859,7 +2859,7 @@ SYS_VER:
; SET ACTIVE MEMORY BANK AND RETURN PREVIOUSLY ACTIVE MEMORY BANK
; NOTE THAT IT GOES INTO EFFECT AS HBIOS FUNCTION IS EXITED
; HERE, WE JUST SET THE CURRENT BANK
; CALLER MUST EXTABLISH UPPER MEMORY STACK BEFORE INVOKING THIS FUNCTION!
; CALLER MUST ESTABLISH UPPER MEMORY STACK BEFORE INVOKING THIS FUNCTION!
;
SYS_SETBNK:
#IF (MEMMGR == MM_Z280)
@ -3252,8 +3252,8 @@ SYS_PEEK:
PUSH IY
HB_DI
#ELSE
LD A,I
DI
LD A,I ; SAVE THE INTERRUPT STATUS
DI ; COPY IFF2 TO P/V FLAG
PUSH AF
#ENDIF
#ENDIF
@ -3265,8 +3265,8 @@ SYS_PEEK:
.DB $FD,$ED,$6E ; LDCTL (C),IY
POP IY
#ELSE
POP AF
JP PO,$+4
POP AF ; RECALL INITIAL INTERRUPT STATUS
JP PO,$+4 ; RETURN TO INITIAL STATE
HB_EI
#ENDIF
#ENDIF
@ -3289,8 +3289,8 @@ SYS_POKE:
PUSH IY
HB_DI
#ELSE
LD A,I
HB_DI
LD A,I ; SAVE THE INTERRUPT STATUS
HB_DI ; COPY IFF2 TO P/V FLAG
PUSH AF
#ENDIF
#ENDIF
@ -3302,8 +3302,8 @@ SYS_POKE:
.DB $FD,$ED,$6E ; LDCTL (C),IY
POP IY
#ELSE
POP AF
JP PO,$+4
POP AF ; RECALL INITIAL INTERRUPT STATUS
JP PO,$+4 ; RETURN TO INITIAL STATE
HB_EI
#ENDIF
#ENDIF

56
Source/HBIOS/updater.asm

@ -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"

2
Source/HBIOS/vga.asm

@ -528,7 +528,7 @@ VGA_LOADFONT:
LD (VGA_STACK),SP ; SAVE STACK
LD HL,(VGA_STACK) ; AND SHIFT IT
LD DE,$2000 ; DOWN 4KB TO
CCF ; CREATE A
OR A ; CREATE A
SBC HL,DE ; DECOMPRESSION BUFFER
LD SP,HL ; HL POINTS TO BUFFER
EX DE,HL ; START OF STACK BUFFER

Loading…
Cancel
Save