From ab3882b489af854d793960d08bb71617df916ebf Mon Sep 17 00:00:00 2001 From: Phillip Stevens Date: Sat, 30 Nov 2019 21:53:44 +1100 Subject: [PATCH] hbios - dbgmon hxload typo --- Source/HBIOS/dbgmon.asm | 170 ++++++++++++++++++++-------------------- 1 file changed, 85 insertions(+), 85 deletions(-) diff --git a/Source/HBIOS/dbgmon.asm b/Source/HBIOS/dbgmon.asm index 2d748e72..c315c95e 100644 --- a/Source/HBIOS/dbgmon.asm +++ b/Source/HBIOS/dbgmon.asm @@ -8,7 +8,7 @@ ; THOMAS SCHERRER BASIC HAR.DWARE TEST ASSEMBLER SOURCES FROM THE Z80 INFO PAGE ; INCLUDING ORIGINAL SCHEMATIC CONCEPT ; HTTP://Z80.INFO/Z80SOURC.TXT -; CODE SAMPLES FROM BRUCE JONES PUBLIC DOMAIN ROM MONITOR FOR THE SBC-200C +; CODE SAMPLES FROM BRUCE JONES PUBLIC DOMAIN ROM MONITOR FOR THE SBC-200C ; HTTP://WWW.RETROTECHNOLOGY.COM/HERBS_STUFF/SD_BRUCE_CODE.ZIP ; INSPIRATION FROM JOEL OWENS "Z-80 SPACE-TIME PRODUCTIONS SINGLE BOARD COMPUTER" ; HTTP://WWW.JOELOWENS.ORG/Z80/Z80INDEX.HTML @@ -213,7 +213,7 @@ KLOP1: JP Z,SERIALCMDLOOP ; IF SO, ALL DONE CALL COUT ; OUTPUT KEY TO SCREEN JR KLOP1 ; LOOP -; +; ;__HXLOAD_____________________________________________________________________ ; ; LOAD INTEL HEX FORMAT FILE FROM THE SERIAL PORT, USER OPTION "H" @@ -224,7 +224,7 @@ KLOP1: ; 3) LOAD ADDRESS FIELD (FRAMES 3,4,5,6) ; 4) RECORD TYPE FIELD (FRAMES 7 AND 8) ; 5) DATA FIELD (FRAMES 9 TO 9+2*(RECORD LENGTH)-1 -; 6) CHECKSUM FIELD - SUM OF ALL BYTE VALUES FROM RECORD LENGTH TO AND +; 6) CHECKSUM FIELD - SUM OF ALL BYTE VALUES FROM RECORD LENGTH TO AND ; INCLUDING CHECKSUM FIELD = 0 ] ; ; EXAMPLE OF INTEL HEX FORMAT FILE @@ -238,49 +238,49 @@ KLOP1: ;_____________________________________________________________________________ ; HXLOAD: - CALL NEWLINE ; SHOW READY + CALL NEWLINE ; SHOW READY HXLOADLINE: CALL CIN ; GET THE FIRST CHARACTER, EXPECTING A ':' - CP ':' ; IS IT COLON ':'? WAIT FOR START OF NEXT LINE OF INTEL HEX FILE - JR NZ,HXLOADLINE ; IF NOT, GO BACK TO WAIT - LD E,0 ; RESET THE CHECKSUM BYTE - CALL HEXINS ; FIRST TWO CHARACTERS IS THE RECORD LENGTH FIELD - LD D,A ; LOAD RECORD LENGTH COUNT INTO D - CALL HEXINS ; GET NEXT TWO CHARACTERS, MEMORY LOAD ADDRESS - LD H,A ; PUT VALUE IN H REGISTER - CALL HEXINS ; GET NEXT TWO CHARACTERS, MEMORY LOAD ADDRESS - LD L,A ; PUT VALUE IN L REGISTER - CALL HEXINS ; GET NEXT TWO CHARACTERS, RECORD FIELD TYPE - DEC A ; RECORD FIELD TYPE 01 IS END OF FILE + CP ':' ; IS IT COLON ':'? WAIT FOR START OF NEXT LINE OF INTEL HEX FILE + JR NZ,HXLOADLINE ; IF NOT, GO BACK TO WAIT + LD E,0 ; RESET THE CHECKSUM BYTE + CALL HEXINS ; FIRST TWO CHARACTERS IS THE RECORD LENGTH FIELD + LD D,A ; LOAD RECORD LENGTH COUNT INTO D + CALL HEXINS ; GET NEXT TWO CHARACTERS, MEMORY LOAD ADDRESS + LD H,A ; PUT VALUE IN H REGISTER + CALL HEXINS ; GET NEXT TWO CHARACTERS, MEMORY LOAD ADDRESS + LD L,A ; PUT VALUE IN L REGISTER + CALL HEXINS ; GET NEXT TWO CHARACTERS, RECORD FIELD TYPE + DEC A ; RECORD FIELD TYPE 01 IS END OF FILE JR Z,HXLOADEXIT ; MUST BE THE END OF THAT FILE - INC A ; RECORD FIELD TYPE 00 IS DATA - JR NZ,HXLOADTYPERR ; RECORD TYPE IS INCORRECT, ERROR OUT + INC A ; RECORD FIELD TYPE 00 IS DATA + JR NZ,HXLOADTYPERR ; RECORD TYPE IS INCORRECT, ERROR OUT HXLOADDATA: - CALL HEXINS ; GET NEXT TWO CHARACTERS, ASSEMBLE INTO BYTE + CALL HEXINS ; GET NEXT TWO CHARACTERS, ASSEMBLE INTO BYTE LD (HL),A ; MOVE CONVERTED BYTE IN A TO MEMORY LOCATION - INC HL ; INCREMENT POINTER TO NEXT MEMORY LOCATION - DEC D ; DECREMENT LINE CHARACTER COUNTER - JR NZ,HXLOADDATA ; AND KEEP LOADING INTO MEMORY UNTIL LINE IS COMPLETE - CALL HEXINS ; GET NEXT TWO CHARACTERS, ASSEMBLE INTO CHECKSUM BYTE - LD A,E ; RECALL THE CHECKSUM BYTE - OR A ; IT SHOULD BE ZERO - JR Z,HXLOADLINE ; ZERO, SO WE HAVE NO ERROR, GO GET ANOTHER LINE + INC HL ; INCREMENT POINTER TO NEXT MEMORY LOCATION + DEC D ; DECREMENT LINE CHARACTER COUNTER + JR NZ,HXLOADDATA ; AND KEEP LOADING INTO MEMORY UNTIL LINE IS COMPLETE + CALL HEXINS ; GET NEXT TWO CHARACTERS, ASSEMBLE INTO CHECKSUM BYTE + LD A,E ; RECALL THE CHECKSUM BYTE + OR A ; IT SHOULD BE ZERO + JR Z,HXLOADLINE ; ZERO, SO WE HAVE NO ERROR, GO GET ANOTHER LINE HXLOADCHKERR: - LD HL,TXT_CKSUMERR ; GET "CHECKSUM ERROR" MESSAGE - CALL PRTSTR ; PRINT MESSAGE FROM (HL) AND TERMINATE THE LOAD - JP SERIALCMDLOOP ; RETURN TO PROMPT + LD HL,TXT_CKSUMERR ; GET "CHECKSUM ERROR" MESSAGE + CALL PRTSTR ; PRINT MESSAGE FROM (HL) AND TERMINATE THE LOAD + JP SERIALCMDLOOP ; RETURN TO PROMPT HXLOADTYPERR: LD HL,TXT_RECORDERR ; GET "RECORD TYPE ERROR" MESSAGE CALL PRTSTR ; PRINT MESSAGE FROM (HL) AND TERMINATE THE LOAD JP SERIALCMDLOOP ; RETURN TO PROMPT HXLOADEXIT: - CALL HEXINS ; GET LAST TWO CHARACTERS, ASSEMBLE INTO CHECKSUM BYTE - LD A,E ; RECALL THE CHECKSUM BYTE - OR A ; IT SHOULD BE ZERO - JR NZ,HXLOADCHKERR ; CHECKUM IS INCORRECT, ERROR OUT - LD HL,TXT_LOADED ; GET "LOADED" MESSAGE - CALL PRTSTR ; PRINT MESSAGE FROM (HL) - JP SERIALCMDLOOP ; RETURN TO PROMPT + CALL HEXINS ; GET LAST TWO CHARACTERS, ASSEMBLE INTO CHECKSUM BYTE + LD A,E ; RECALL THE CHECKSUM BYTE + OR A ; IT SHOULD BE ZERO + JR NZ,HXLOADCHKERR ; CHECKUM IS INCORRECT, ERROR OUT + LD HL,TXT_LOADED ; GET "LOADED" MESSAGE + CALL PRTSTR ; PRINT MESSAGE FROM (HL) + JP SERIALCMDLOOP ; RETURN TO PROMPT ; ;__POUT_______________________________________________________________________ ; @@ -339,7 +339,7 @@ DUMPMEM: GDATA: INC DE ; BUMP DE FOR LATER COMPARE - CALL NEWLINE ; + CALL NEWLINE ; BLKRD: CALL PHL ; PRINT START LOCATION CALL PC_COLON @@ -359,7 +359,7 @@ NXTONE: LD A,(HL) ; GET BYTE CALL PRTHEXBYTE ; DISPLAY IT CALL PC_SPACE ; -UPDH: +UPDH: INC HL ; POINT NEXT DEC C ; DEC LOC COUNT JR NZ,NXTONE ; IF LINE NOT DONE @@ -374,10 +374,10 @@ PCRLF0: LD A,(HL) ; O K. TO GET JR NZ,PDOT ; DOT: - LD A,2EH ; LOAD A DOT + LD A,2EH ; LOAD A DOT PDOT: CALL COUT ; PRINT IT - INC HL ; + INC HL ; LD A,D ; CP H ; JR NZ,UPDH1 ; @@ -424,7 +424,7 @@ MOVEMEM1: LD A,(HL) ; GET SOURCE VAUEE LD (DE),A ; WRITE TO TARGET LOC LD A,H ; CHECK MSB OF END ADR - CP B ; + CP B ; JR NZ,MOVEMEM1 ; NO MATCH, LOOP LD A,L ; CHECK LSB OF END ADR CP C ; @@ -459,7 +459,7 @@ FILLMEM1: LD A,C ; FILL VALUE TO A LD (HL),A ; WRITE FILL VALUE TO CUR ADR (HL) LD A,H ; CHECK MSB OF END ADR - CP D ; + CP D ; JR NZ,FILLMEM1 ; NO MATCH, LOOP LD A,L ; CHECK LSB OF END ADR CP E ; @@ -517,7 +517,7 @@ WORDPARM: ; ;__GETLN______________________________________________________________________ ; -; READ A LINE OF TEXT FROM THE SERIAL PORT, HANDLE , TERM ON +; READ A LINE OF TEXT FROM THE SERIAL PORT, HANDLE , TERM ON ; EXIT IF TOO MANY CHARS STORE RESULT IN HL. CHAR COUNT IN C. ;_____________________________________________________________________________ ; @@ -528,7 +528,7 @@ GETLNLOP: ; ENTRY LOOP CALL KIN ; GET A KEY CP CHR_CR ; IS ? - JR Z,GETLNDONE ; YES, EXIT + JR Z,GETLNDONE ; YES, EXIT CP CHR_BS ; IS ? JR Z,GETLNBS ; IF SO, HANDLE IT CP ' ' ; UNEXPECTED CONTROL CHAR? @@ -541,7 +541,7 @@ GETLNLOP: CALL COUT ; OUTPUT KEY TO SCREEN LD (HL),A ; STORE CHAR IN BUFFER INC HL ; INC POINTER - INC C ; INC CHAR COUNTER + INC C ; INC CHAR COUNTER JR GETLNLOP ; GET NEXT CHAR GETLNOVF: ; OVERFLOW @@ -649,17 +649,17 @@ HEXBYTE3: ;_____________________________________________________________________________ ; HEXWORD: - LD DE,0 ; INIT WORKING VALUE + LD DE,0 ; INIT WORKING VALUE HEXWORD1: - CALL ISHEX ; DO WE HAVE A HEX CHAR? + CALL ISHEX ; DO WE HAVE A HEX CHAR? JR NZ,HEXWORD3 ; IF NOT, WE ARE DONE LD B,4 ; SHIFT WORKING VALUE (DE := DE * 16) HEXWORD2: SLA E ; SHIFT LSB ONE BIT RL D ; SHIFT MSB ONE BIT RET C ; RETURN W/ CF SET INDICATING OVERFLOW ERROR - DJNZ HEXWORD2 ; LOOP FOR 4 BITS - CALL NIBL ; CONVERT HEX CHAR TO BINARY VALUE IN A & INC HL + DJNZ HEXWORD2 ; LOOP FOR 4 BITS + CALL NIBL ; CONVERT HEX CHAR TO BINARY VALUE IN A & INC HL OR E ; COMBINE WITH LSB LD E,A ; AND PUT BACK IN WROKING VALUE JR HEXWORD1 ; DO ANOTHER CHARACTER @@ -673,16 +673,16 @@ HEXWORD3: ;_____________________________________________________________________________ ; NIBL: - LD A,(HL) ; GET K B. DATA + LD A,(HL) ; GET K B. DATA INC HL ; INC KB POINTER CP 40H ; TEST FOR ALPHA - JR NC,ALPH ; + JR NC,ALPH AND 0FH ; GET THE BITS - RET ; + RET ALPH: AND 0FH ; GET THE BITS - ADD A,09H ; MAKE IT HEX A-F - RET ; + ADD A,09H ; MAKE IT HEX A-F + RET ; ;__HEXINS_____________________________________________________________________ ; @@ -690,14 +690,14 @@ ALPH: ;_____________________________________________________________________________ ; HEXINS: - CALL NIBLS ; DO A NIBBLE - RLCA ; MOVE FIRST BYTE UPPER NIBBLE - RLCA ; - RLCA ; - RLCA ; + CALL NIBLS ; DO A NIBBLE + RLCA ; MOVE FIRST BYTE UPPER NIBBLE + RLCA ; + RLCA ; + RLCA ; LD B,A ; SAVE ROTATED NIBBLE - CALL NIBLS ; DO NEXT NIBBLE - OR A,B ; COMBINE NIBBLES IN ACC TO BYTE + CALL NIBLS ; DO NEXT NIBBLE + OR B ; COMBINE NIBBLES IN ACC TO BYTE LD B,A ; SAVE BYTE ADD A,E ; ADD TO CHECKSUM LD E,A ; SAVE CHECKSUM @@ -802,7 +802,7 @@ CST: POP DE POP BC RET -; +; #ELSE ; ;__COUT_______________________________________________________________________ @@ -932,7 +932,7 @@ DSKY_ENTRY: ; ;__FRONT_PANEL_STARTUP________________________________________________________ ; -; START UP THE SYSTEM WITH THE FRONT PANEL INTERFACE +; START UP THE SYSTEM WITH THE FRONT PANEL INTERFACE ;_____________________________________________________________________________ ; CALL DSKY_INIT ; INIT 8255 @@ -964,7 +964,7 @@ FRONTPANELLOOP1: JR FRONTPANELLOOP ; LOOP EXIT: - RET + RET ; ;__DOBOOT_____________________________________________________________________ ; @@ -983,7 +983,7 @@ DOBOOT: ; POS 01234567 ;_____________________________________________________________________________ ; -DOPORTREAD: +DOPORTREAD: CALL GETPORT ; GET PORT INTO A PORTREADLOOP: LD C,A ; STORE PORT IN "C" @@ -1005,7 +1005,7 @@ PORTREADGETKEY: ; POS 01234567 ;_____________________________________________________________________________ ; -DOPORTWRITE: +DOPORTWRITE: CALL GETPORT ; GET PORT INTO A PORTWRITELOOP: LD L,A ; SAVE PORT NUM @@ -1066,11 +1066,11 @@ EXAMINELOOP: EXAMINEGETKEY: CALL KB_GET ; GET KEY FROM KB CP KY_EN ; [EN] PRESSED, INC ADDRESS AND LOOP - JR Z,EXAMINEFW ; + JR Z,EXAMINEFW ; JR EXAMINEGETKEY ; NO VALID KEY, LOOP EXAMINEFW: INC HL ; HL++ - JR EXAMINELOOP ; + JR EXAMINELOOP ; ; ;__DODEPOSIT__________________________________________________________________ ; @@ -1099,11 +1099,11 @@ DEPOSITLOOP: DEPOSITGETKEY: CALL KB_GET ; GET KEY FROM KB CP KY_EN ; [EN] PRESSED, INC ADDRESS AND LOOP - JR Z,DEPOSITFW ; + JR Z,DEPOSITFW ; JR DEPOSITGETKEY ; NO VALID KEY, LOOP DEPOSITFW: INC HL ; - JR DEPOSITLOOP ; + JR DEPOSITLOOP ; ; ;__GETADDR____________________________________________________________________ ; @@ -1131,9 +1131,9 @@ GETVALW: LD (DISPLAYBUF+6),A ; LD (DISPLAYBUF+7),A ; GETVALW1: - CALL ENCDISPLAY ; + CALL ENCDISPLAY ; GETVALWLOOP: - CALL KB_GET ; + CALL KB_GET ; CP $10 ; JP M,GETVALWNUM ; NUMBER PRESSED, STORE IT CP KY_EN ; [EN] PRESSED, DONE @@ -1144,9 +1144,9 @@ GETVALWNUM: LD C,A ; LD A,(DISPLAYBUF+5) ; SHIFT BYTES IN DISPLAY BUF TO THE LEFT LD (DISPLAYBUF+4),A ; - LD A,(DISPLAYBUF+6) ; + LD A,(DISPLAYBUF+6) ; LD (DISPLAYBUF+5),A ; - LD A,(DISPLAYBUF+7) ; + LD A,(DISPLAYBUF+7) ; LD (DISPLAYBUF+6),A ; LD A,C ; DISPLAY KEYSTROKE IN RIGHT MOST DISPLAY (0) LD (DISPLAYBUF+7),A ; @@ -1158,7 +1158,7 @@ GETVALWDONE: SLA A ; SLA A ; SLA A ; - LD C,A ; STORE IT IN "C" + LD C,A ; STORE IT IN "C" LD A,(DISPLAYBUF+7) ; GET DIGIT IN DISPLAY 7 AND $0F OR C ; ADD IN NIBBLE STORED IN C @@ -1169,7 +1169,7 @@ GETVALWDONE: SLA A ; SLA A ; SLA A ; - LD C,A ; STORE IT IN "C" + LD C,A ; STORE IT IN "C" LD A,(DISPLAYBUF+5) ; GET DIGIT IN DISPLAY 5 AND $0F OR C ; ADD IN NIBBLE STORED IN "C" @@ -1200,9 +1200,9 @@ GETVALUE: LD (DISPLAYBUF+6),A ; LD (DISPLAYBUF+7),A ; GETVALUE1: - CALL ENCDISPLAY ; + CALL ENCDISPLAY ; GETVALUELOOP: - CALL KB_GET ; + CALL KB_GET ; CP $10 ; JP M,GETVALUENUM ; NUMBER PRESSED, STORE IT CP KY_EN ; [EN] PRESSED, DONE @@ -1211,7 +1211,7 @@ GETVALUELOOP: GETVALUENUM: OR $80 ; SET DP LD C,A ; - LD A,(DISPLAYBUF+7) ; + LD A,(DISPLAYBUF+7) ; LD (DISPLAYBUF+6),A ; LD A,C ; LD (DISPLAYBUF+7),A ; @@ -1223,7 +1223,7 @@ GETVALUEDONE: RLCA ; RLCA ; RLCA ; - LD C,A ; + LD C,A ; LD A,(DISPLAYBUF+7) ; AND $0F OR C ; @@ -1254,7 +1254,7 @@ PUTVALUE: ;__KB_GET_____________________________________________________________________ ; ; GET A SINGLE KEY AND DECODE -; +; ;_____________________________________________________________________________ ; KB_GET: @@ -1269,7 +1269,7 @@ KB_GET: ; NOT A DIGIT OR [EN], BAIL OUT TO MAIN LOOP TO HANDLE IT LD SP,MON_STACK ; CLEAR STACK JP FRONTPANELLOOP1 ; RESTART AT MAIN LOOP -KB_GET1: +KB_GET1: POP HL ; RESTORE HL POP DE POP BC @@ -1342,19 +1342,19 @@ PORT .DB $13,$14,$15,$16,$10,$10,$00,$00 ; "Port 00" (ENCODED) GOTO .DB $1A,$14,$10,$10,$00,$00,$00,$00 ; "Go 0000" (ENCODED) ; ;_HEX_7_SEG_DECODE_TABLE______________________________________________________ -; +; ; SET BIT 7 TO DISPLAY W/ DECIMAL POINT ;_____________________________________________________________________________ ; SEGDECODE: ; POS $00 $01 $02 $03 $04 $05 $06 $07 - ; GLYPH '0' '1' '2' '3' '4' '5' '6' '7' + ; GLYPH '0' '1' '2' '3' '4' '5' '6' '7' .DB $7B, $30, $6D, $75, $36, $57, $5F, $70 -; +; ; POS $08 $09 $0A $0B $0C $0D $0E $0F ; GLYPH '8' '9' 'A' 'B' 'C' 'D' 'E' 'F' .DB $7F, $77, $7E, $1F, $4B, $3D, $4F, $4E -; +; ; POS $10 $11 $12 $13 $14 $15 $16 $17 $18 $19 $1A ; GLYPH ' ' '-' '.' 'P' 'o' 'r' 't' 'A' 'd' 'r' 'G' .DB $00, $04, $00, $6E, $1D, $0C, $0F, $7E, $3D, $0C, $5B