From 92a3501c818de7b277bb31d6cf8a5ed1220045e2 Mon Sep 17 00:00:00 2001 From: Dean Netherton Date: Sun, 1 Mar 2020 14:21:47 +1100 Subject: [PATCH 1/7] HBIOS Makefile - use env vars for target Allow build ROM targets to be restricted to just one platform thru use of ENV vars: ROM_PLATFORM - if defined to a known platform, only this platform is build - defaults to std config ROM_CONFIG - sets the desired platform config - defaults to std if the above ENVs are not defined, builds all ROMs --- Source/HBIOS/Makefile | 44 ++++++++++++++++++++++--------------------- 1 file changed, 23 insertions(+), 21 deletions(-) diff --git a/Source/HBIOS/Makefile b/Source/HBIOS/Makefile index 6ee90216..316fb027 100644 --- a/Source/HBIOS/Makefile +++ b/Source/HBIOS/Makefile @@ -1,25 +1,27 @@ -OBJECTS = +ifndef ROM_CONFIG + ROM_CONFIG=std +endif -ifeq (1,1) -OBJECTS += DYNO_std.rom DYNO_std.com -OBJECTS += EZZ80_std.rom EZZ80_std.com -OBJECTS += MK4_std.rom MK4_std.com -OBJECTS += N8_std.rom N8_std.com -OBJECTS += RCZ180_ext.rom RCZ180_ext.com -OBJECTS += RCZ180_nat.rom RCZ180_nat.com -OBJECTS += RCZ80_kio.rom RCZ80_kio.com -OBJECTS += RCZ80_mt.rom RCZ80_mt.com -OBJECTS += RCZ80_std.rom RCZ80_std.com -OBJECTS += SBC_simh.rom SBC_simh.com -OBJECTS += SBC_std.rom SBC_std.com -OBJECTS += SCZ180_126.rom SCZ180_126.com -OBJECTS += SCZ180_130.rom SCZ180_130.com -OBJECTS += SCZ180_131.rom SCZ180_131.com -OBJECTS += UNA_std.rom -OBJECTS += ZETA_std.rom ZETA_std.com -OBJECTS += ZETA2_std.rom ZETA2_std.com +ifdef ROM_PLATFORM + OBJECTS = ${ROM_PLATFORM}_${ROM_CONFIG}.rom ${ROM_PLATFORM}_${ROM_CONFIG}.com else -OBJECTS += ZETA2_std.rom ZETA2_std.com + OBJECTS += DYNO_std.rom DYNO_std.com + OBJECTS += EZZ80_std.rom EZZ80_std.com + OBJECTS += MK4_std.rom MK4_std.com + OBJECTS += N8_std.rom N8_std.com + OBJECTS += RCZ180_ext.rom RCZ180_ext.com + OBJECTS += RCZ180_nat.rom RCZ180_nat.com + OBJECTS += RCZ80_kio.rom RCZ80_kio.com + OBJECTS += RCZ80_mt.rom RCZ80_mt.com + OBJECTS += RCZ80_std.rom RCZ80_std.com + OBJECTS += SBC_simh.rom SBC_simh.com + OBJECTS += SBC_std.rom SBC_std.com + OBJECTS += SCZ180_126.rom SCZ180_126.com + OBJECTS += SCZ180_130.rom SCZ180_130.com + OBJECTS += SCZ180_131.rom SCZ180_131.com + OBJECTS += UNA_std.rom + OBJECTS += ZETA_std.rom ZETA_std.com + OBJECTS += ZETA2_std.rom ZETA2_std.com endif MOREDIFF = camel80.bin game.bin hbios_rom.bin nascom.bin prefix.bin usrrom.bin \ @@ -27,7 +29,7 @@ MOREDIFF = camel80.bin game.bin hbios_rom.bin nascom.bin prefix.bin usrrom.bin \ eastaegg.bin hbios_img.bin imgpad.bin osimg.bin tastybasic.bin \ game.bin usrrom.bin -SUBDIRS = +SUBDIRS = DEST = ../../Binary TOOLS =../../Tools OTHERS = *.img *.rom *.com *.bin *.z80 cpm.sys zsys.sys Build.inc RomDisk.tmp font*.asm *.dat From 8198da1aa4069670d44a66d0c76001e6ad664b07 Mon Sep 17 00:00:00 2001 From: Dean Netherton Date: Tue, 17 Mar 2020 19:56:48 +1100 Subject: [PATCH 2/7] Added some more gitignores --- .gitignore | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.gitignore b/.gitignore index 4782ed5c..32d51319 100644 --- a/.gitignore +++ b/.gitignore @@ -49,6 +49,9 @@ Source/Images/blankhd Source/Prop/Spin/ParPortProp.list Source/Prop/Spin/PropIO.list Source/Prop/Spin/PropIO2.list +Source/Prop/ParPortProp.list +Source/Prop/PropIO.list +Source/Prop/PropIO2.list Source/ZPM3/bnkbios3.spr Source/ZPM3/gencpm.com Source/ZPM3/gencpm.com @@ -94,3 +97,6 @@ Source/ZPM3/gencpm.com Source/ZPM3/startzpm.com Source/ZPM3/zccp.com Source/ZPM3/zpmldr.com +Source/ZPM3/genbnk.dat + +Source/ZSDOS/zsdos.err \ No newline at end of file From 8c08f55d8f9a4aedc59fa14481b9795a8a91e376 Mon Sep 17 00:00:00 2001 From: Dean Netherton Date: Sat, 21 Mar 2020 22:16:50 +1100 Subject: [PATCH 3/7] Whitespace changes (crlf) --- Source/HBIOS/cvdu.asm | 56 +++++++++++++++++++++---------------------- Source/HBIOS/util.asm | 30 +++++++++++------------ Source/HBIOS/vdu.asm | 56 +++++++++++++++++++++---------------------- Source/HBIOS/vga.asm | 56 +++++++++++++++++++++---------------------- 4 files changed, 99 insertions(+), 99 deletions(-) diff --git a/Source/HBIOS/cvdu.asm b/Source/HBIOS/cvdu.asm index 9ee98c40..96272b4f 100644 --- a/Source/HBIOS/cvdu.asm +++ b/Source/HBIOS/cvdu.asm @@ -112,11 +112,11 @@ CVDU_VDAQRY: LD HL,0 ; EXTRACTION OF CURRENT BITMAP DATA NOT SUPPORTED YET XOR A ; SIGNAL SUCCESS RET - + CVDU_VDARES: LD A,$0E ; ATTRIBUTE IS STANDARD WHITE ON BLACK LD (CVDU_ATTR),A ; SAVE IT - + LD DE,0 ; ROW = 0, COL = 0 CALL CVDU_XY ; SEND CURSOR TO TOP LEFT LD A,' ' ; BLANK THE SCREEN @@ -124,7 +124,7 @@ CVDU_VDARES: CALL CVDU_FILL ; DO IT LD DE,0 ; ROW = 0, COL = 0 CALL CVDU_XY ; SEND CURSOR TO TOP LEFT - + XOR A RET @@ -133,15 +133,15 @@ CVDU_VDADEV: LD E,0 ; E := PHYSICAL UNIT IS ALWAYS ZERO XOR A ; SIGNAL SUCCESS RET - + CVDU_VDASCS: CALL PANIC ; NOT IMPLEMENTED (YET) - + CVDU_VDASCP: CALL CVDU_XY ; SET CURSOR POSITION XOR A ; SIGNAL SUCCESS RET - + CVDU_VDASAT: ; INCOMING IS: -----RUB (R=REVERSE, U=UNDERLINE, B=BLINK) ; TRANSFORM TO: -RUB---- @@ -158,7 +158,7 @@ CVDU_VDASAT: LD (CVDU_ATTR),A ; AND SAVE THE RESULT XOR A ; SIGNAL SUCCESS RET - + CVDU_VDASCO: ; INCOMING IS: IBGRIBGR (I=INTENSITY, B=BLUE, G=GREEN, R=RED) ; TRANSFORM TO: ----RGBI (DISCARD BACKGROUND COLOR IN HIGH NIBBLE) @@ -175,13 +175,13 @@ CVDU_VDASCO1: LD (CVDU_ATTR),A ; AND SAVE THE RESULT XOR A ; SIGNAL SUCCESS RET - + CVDU_VDAWRC: LD A,E ; CHARACTER TO WRITE GOES IN A CALL CVDU_PUTCHAR ; PUT IT ON THE SCREEN XOR A ; SIGNAL SUCCESS RET - + CVDU_VDAFIL: LD A,E ; FILL CHARACTER GOES IN A EX DE,HL ; FILL LENGTH GOES IN DE @@ -197,7 +197,7 @@ CVDU_VDACPY: POP BC ; RECOVER LENGTH IN BC LD DE,(CVDU_POS) ; PUT DEST IN DE JP CVDU_BLKCPY ; DO A BLOCK COPY - + CVDU_VDASCR: LD A,E ; LOAD E INTO A OR A ; SET FLAGS @@ -246,7 +246,7 @@ CVDU_WRX: ;---------------------------------------------------------------------- ; READ M8563 REGISTERS ; CVDU_RD READS VDU REGISTER SPECIFIED IN C AND RETURNS VALUE IN A -; CVDU_RDX READS VDU REGISTER PAIR SPECIFIED BY C, C+1 +; CVDU_RDX READS VDU REGISTER PAIR SPECIFIED BY C, C+1 ; AND RETURNS VALUE IN HL ;---------------------------------------------------------------------- ; @@ -317,7 +317,7 @@ CVDU_CRTINIT1: ; ASSUMES THAT VDU RAM SIZE IS SET FOR 64KB ABOVE ; A. WRITE ZERO TO ADDRESS $0000 ; B. WRITE NON-ZERO TO ADDRESS $0100 -; C. CHECK THE VALUE IN ADDRESS $0000; IF IT CHANGED, +; C. CHECK THE VALUE IN ADDRESS $0000; IF IT CHANGED, ; 16K DRAM CHIPS INSTALLED; IF NOT, 64K DRAM CHIPS INSTALLED ; IF 16KB RAM DETECTED, ADJUST VDU REGISTERS APPROPRIATELY ; @@ -367,7 +367,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 + CCF ; CREATE A SBC HL,DE ; DECOMPRESSION BUFFER LD SP,HL ; HL POINTS TO BUFFER EX DE,HL ; START OF STACK BUFFER @@ -475,19 +475,19 @@ CVDU_FILL: POP DE ; RECOVER FILL COUNT LD A,(CVDU_ATTR) ; SET ATTRIBUTE VALUE FOR ATTRIBUTE FILL JR CVDU_FILL1 ; DO ATTRIBUTE FILL AND RETURN - + CVDU_FILL1: LD B,A ; SAVE REQUESTED FILL VALUE - + ; CHECK FOR VALID FILL LENGTH LD A,D ; LOAD D OR E ; OR WITH E RET Z ; BAIL OUT IF LENGTH OF ZERO SPECIFIED - + ; POINT TO BUFFER LOCATION TO START FILL LD C,18 ; UPDATE ADDRESS REGISTER PAIR CALL CVDU_WRX ; DO IT - + ; SET MODE TO BLOCK WRITE LD C,24 ; BLOCK MODE CONTROL REGISTER CALL CVDU_RD ; GET CURRENT VALUE @@ -499,7 +499,7 @@ CVDU_FILL1: LD C,31 ; DATA REGISTER CALL CVDU_WR ; DO IT DEC DE ; REFLECT ONE CHARACTER WRITTEN - + ; LOOP TO DO BULK WRITE (UP TO 255 BYTES PER LOOP) EX DE,HL ; NOW USE HL FOR COUNT LD C,30 ; BYTE COUNT REGISTER @@ -527,7 +527,7 @@ CVDU_SCROLL: LD A,' ' ; CHAR VALUE TO FILL NEW EXPOSED LINE LD HL,0 ; SOURCE ADDRESS OF CHARACER BUFFER CALL CVDU_SCROLL1 ; SCROLL CHARACTER BUFFER - + ; SCROLL THE ATTRIBUTE BUFFER LD A,(CVDU_ATTR) ; ATTRIBUTE VALUE TO FILL NEW EXPOSED LINE LD HL,$800 ; SOURCE ADDRESS OF ATTRIBUTE BUFFER @@ -535,7 +535,7 @@ CVDU_SCROLL: CVDU_SCROLL1: PUSH AF ; SAVE FILL VALUE FOR NOW - + ; SET MODE TO BLOCK COPY LD C,24 ; BLOCK MODE CONTROL REGISTER CALL CVDU_RD ; GET CURRENT VALUE @@ -563,13 +563,13 @@ CVDU_SCROLL2: ; LOOP TILL DONE WITH ALL LINES DJNZ CVDU_SCROLL2 ; REPEAT FOR ALL LINES - + ; SET MODE TO BLOCK WRITE TO CLEAR NEW LINE EXPOSED BY SCROLL LD C,24 ; BLOCK MODE CONTROL REGISTER CALL CVDU_RD ; GET CURRENT VALUE AND $7F ; CLEAR BIT 7 FOR FILL MODE CALL CVDU_WR ; DO IT - + ; SET VALUE TO WRITE POP AF ; RESTORE THE FILL VALUE PASSED IN LD C,31 ; DATA REGISTER @@ -579,7 +579,7 @@ CVDU_SCROLL2: LD A,CVDU_COLS - 1 ; SET WRITE COUNT TO LINE LENGTH - 1 (1 CHAR ALREADY WRITTEN) LD C,30 ; WORD COUNT REGISTER CALL CVDU_WR ; DO IT - + RET ; ;---------------------------------------------------------------------- @@ -591,7 +591,7 @@ CVDU_RSCROLL: LD A,' ' ; CHAR VALUE TO FILL NEW EXPOSED LINE LD HL,$0 + ((CVDU_ROWS - 1) * CVDU_COLS) ; SOURCE ADDRESS OF CHARACER BUFFER CALL CVDU_RSCROLL1 ; SCROLL CHARACTER BUFFER - + ; SCROLL THE ATTRIBUTE BUFFER LD A,(CVDU_ATTR) ; ATTRIBUTE VALUE TO FILL NEW EXPOSED LINE LD HL,$800 + ((CVDU_ROWS - 1) * CVDU_COLS) ; SOURCE ADDRESS OF ATTRIBUTE BUFFER @@ -599,7 +599,7 @@ CVDU_RSCROLL: CVDU_RSCROLL1: PUSH AF ; SAVE FILL VALUE FOR NOW - + ; SET MODE TO BLOCK COPY LD C,24 ; BLOCK MODE CONTROL REGISTER CALL CVDU_RD ; GET CURRENT VALUE @@ -629,7 +629,7 @@ CVDU_RSCROLL2: CALL CVDU_WR ; DO IT DJNZ CVDU_RSCROLL2 ; REPEAT FOR ALL LINES - + ; SET FILL DESTINATION (USING HL PASSED IN) LD C,18 ; UPDATE ADDRESS (DESTINATION) REGISTER CALL CVDU_WRX ; DO IT @@ -639,7 +639,7 @@ CVDU_RSCROLL2: CALL CVDU_RD ; GET CURRENT VALUE AND $7F ; CLEAR BIT 7 FOR FILL MODE CALL CVDU_WR ; DO IT - + ; SET VALUE TO WRITE POP AF ; RESTORE THE FILL VALUE PASSED IN LD C,31 ; DATA REGISTER @@ -649,7 +649,7 @@ CVDU_RSCROLL2: LD A,CVDU_COLS - 1 ; SET WRITE COUNT TO LINE LENGTH - 1 (1 CHAR ALREADY WRITTEN) LD C,30 ; WORD COUNT REGISTER CALL CVDU_WR ; DO IT - + RET ; ;---------------------------------------------------------------------- diff --git a/Source/HBIOS/util.asm b/Source/HBIOS/util.asm index 3d9ee4d5..f647a5a4 100644 --- a/Source/HBIOS/util.asm +++ b/Source/HBIOS/util.asm @@ -295,7 +295,7 @@ DB_CONTD: JP DB_BLKRD ; DB_END: - RET + RET ; ; PRINT THE nTH STRING IN A LIST OF STRINGS WHERE EACH IS TERMINATED BY $ ; C REGISTER CONTAINS THE INDEX TO THE STRING TO BE DISPLAYED. @@ -322,7 +322,7 @@ PRTIDXMSK1: POP BC ; ; PRINT THE nTH STRING IN A LIST OF STRINGS WHERE EACH IS TERMINATED BY $ -; A REGISTER DEFINES THE nTH STRING IN THE LIST TO PRINT AND DE POINTS +; A REGISTER DEFINES THE nTH STRING IN THE LIST TO PRINT AND DE POINTS ; TO THE START OF THE STRING LIST. ; ; SLOW BUT IMPROVES CODE SIZE, READABILITY AND ELIMINATES THE NEED HAVE @@ -410,7 +410,7 @@ XREGDMP: LD A,'@' CALL COUT POP AF - + PUSH BC LD BC,(REGDMP_PC) CALL PRTHEXWORD ; PC @@ -434,7 +434,7 @@ XREGDMP: CALL PC_COLON LD BC,(REGDMP_SP) CALL PRTHEXWORD ; SP - + CALL PC_COLON PUSH IX POP BC @@ -454,7 +454,7 @@ XREGDMP: POP AF ;LD SP,(RD_STKSAV) ; BACK TO ORIGINAL STACK FRAME - + JP $FFFF ; RETURN, $FFFF IS DYNAMICALLY UPDATED REGDMP_RET .EQU $-2 ; RETURN ADDRESS GOES HERE ; @@ -666,8 +666,8 @@ DELAY_INIT: #IF (BIOS == BIOS_UNA) LD C,$F8 ; UNA BIOS GET PHI FUNCTION RST 08 ; RETURNS SPEED IN HZ IN DE:HL - LD B,4 ; DIVIDE MHZ IN DE:HL BY 100000H -DELAY_INIT0: + LD B,4 ; DIVIDE MHZ IN DE:HL BY 100000H +DELAY_INIT0: SRL D ; ... TO GET APPROX CPU SPEED IN RR E ; ...MHZ. THROW AWAY HL, AND DJNZ DELAY_INIT0 ; ...RIGHT SHIFT DE BY 4. @@ -772,13 +772,13 @@ DIV16: DIV16A: SCF RL C - RLA - ADC HL,HL - SBC HL,DE - JR NC,DIV16B - ADD HL,DE - DEC C -DIV16B: + RLA + ADC HL,HL + SBC HL,DE + JR NC,DIV16B + ADD HL,DE + DEC C +DIV16B: DJNZ DIV16A ; LOOP AS NEEDED LD B,A ; AC -> BC LD A,H ; SET ZF @@ -985,7 +985,7 @@ SUB32: RET ; ; INC32 (HL) -; INCREMENT 32 BIT BINARY AT ADDRESS +; INCREMENT 32 BIT BINARY AT ADDRESS ; INC32HL: INC (HL) diff --git a/Source/HBIOS/vdu.asm b/Source/HBIOS/vdu.asm index bc888aa5..b8cbec60 100644 --- a/Source/HBIOS/vdu.asm +++ b/Source/HBIOS/vdu.asm @@ -47,40 +47,40 @@ VDU_BLNK .EQU VDU_NOBL ; DEFAULT BLINK RATE TERMENABLE .SET TRUE ; INCLUDE TERMINAL PSEUDODEVICE DRIVER ; #IF (VDUSIZ=V80X24) -DLINES .EQU 24 +DLINES .EQU 24 DROWS .EQU 80 DSCANL .EQU 10 #ENDIF #IF (VDUSIZ=V80X25) -DLINES .EQU 25 +DLINES .EQU 25 DROWS .EQU 80 DSCANL .EQU 10 #ENDIF #IF (VDUSIZ=V80X30) -DLINES .EQU 30 +DLINES .EQU 30 DROWS .EQU 80 DSCANL .EQU 8 #ENDIF #IF (VDUSIZ=V80X25B) -DLINES .EQU 25 +DLINES .EQU 25 DROWS .EQU 80 DSCANL .EQU 12 #ENDIF #IF (VDUSIZ=V80X24B) -DLINES .EQU 24 +DLINES .EQU 24 DROWS .EQU 80 DSCANL .EQU 12 #ENDIF ; #IF VDU_CSTY=VDU_BLOK -VDU_R10 .EQU (VDU_BLNK + $00) +VDU_R10 .EQU (VDU_BLNK + $00) VDU_R11 .EQU DSCANL-1 #ENDIF ; #IF VDU_CSTY=VDU_ULIN -VDU_R10 .EQU (VDU_BLNK + DSCANL-1) +VDU_R10 .EQU (VDU_BLNK + DSCANL-1) VDU_R11 .EQU DSCANL-1 -#ENDIF +#ENDIF ; ;====================================================================== ; VDU DRIVER - INITIALIZATION @@ -127,7 +127,7 @@ VDU_INIT1: XOR A ; SIGNAL SUCCESS RET -; +; ;====================================================================== ; VDU DRIVER - VIDEO DISPLAY ADAPTER (VDA) FUNCTIONS ;====================================================================== @@ -165,7 +165,7 @@ VDU_VDAQRY: LD HL,0 ; EXTRACTION OF CURRENT BITMAP DATA NOT SUPPORTED XOR A ; SIGNAL SUCCESS RET - + VDU_VDARES: LD DE,0 LD (VDU_OFFSET),DE @@ -202,26 +202,26 @@ VDU_VDASCS: XOR A RET - + VDU_VDASCP: CALL VDU_XY XOR A RET - + VDU_VDASAT: XOR A RET - + VDU_VDASCO: XOR A RET - + VDU_VDAWRC: LD A,E CALL VDU_PUTCHAR XOR A RET - + VDU_VDAFIL: LD A,E ; FILL CHARACTER GOES IN A EX DE,HL ; FILL LENGTH GOES IN DE @@ -236,9 +236,9 @@ VDU_VDACPY: POP BC ; RECOVER LENGTH IN BC LD DE,(VDU_POS) ; PUT DEST IN DE JP VDU_BLKCPY ; DO A BLOCK COPY - + RET - + VDU_VDASCR: LD A,E ; LOAD E INTO A OR A ; SET FLAGS @@ -293,7 +293,7 @@ VDU_WRREGX: ;---------------------------------------------------------------------- ; READ SY6845 REGISTERS ; VDU_RDREG READS VDU REGISTER SPECIFIED IN C AND RETURNS VALUE IN A -; VDU_RDREGX READS VDU REGISTER PAIR SPECIFIED BY C, C+1 +; VDU_RDREGX READS VDU REGISTER PAIR SPECIFIED BY C, C+1 ; AND RETURNS VALUE IN HL ;---------------------------------------------------------------------- ; @@ -398,13 +398,13 @@ VDU_PUTCHAR: INC HL ; NEW CURSOR POSITION LD C,14 ; CURSOR POSITION REGISTER PAIR CALL VDU_WRREGX ; DO IT - + LD A,31 ; PREP VDU FOR DATA R/W OUT (VDU_REG),A CALL VDU_WAITRDY ; WAIT FOR VDU TO BE READY LD A,B OUT (VDU_RAMWR),A ; OUTPUT CHAR TO VDU - + RET ; ;---------------------------------------------------------------------- @@ -431,7 +431,7 @@ VDU_FILL: OUT (VDU_REG),A VDU_FILL1: LD A,D ; CHECK NUMBER OF FILL CHARS LEFT - OR E + OR E RET Z ; ALL DONE, RETURN CALL VDU_WAITRDY ; WAIT FOR VDU TO BE READY LD A,B @@ -481,7 +481,7 @@ VDU_BLKCPY1: ; VIDEO RAM -> BUFFER COPY LOOP OUT (VDU_REG),A ; DO IT LD HL,VDU_BUF ; HL POINTS TO WORK BUFFER LD C,VDU_RAMWR ; LOAD C WITH VDU WRITE REGISTER - + VDU_BLKCPY2: ; BUFFER -> VIDEO RAM COPY LOOP CALL VDU_WAITRDY ; WAIT FOR VDU OUTI ; WRITE BYTE, DEC B, INC HL @@ -501,7 +501,7 @@ VDU_SCROLL: LD (VDU_OFFSET),HL LD C,12 CALL VDU_WRREGX - + ; FILL EXPOSED LINE LD HL,(VDU_POS) PUSH HL @@ -512,7 +512,7 @@ VDU_SCROLL: CALL VDU_FILL POP HL LD (VDU_POS),HL - + ; ADJUST CURSOR POSITION AND RETURN LD HL,(VDU_OFFSET) LD DE,(VDU_POS) @@ -543,7 +543,7 @@ VDU_RSCROLL: CALL VDU_FILL POP HL LD (VDU_POS),HL - + ; ADJUST CURSOR POSITION AND RETURN LD HL,(VDU_OFFSET) LD DE,(VDU_POS) @@ -566,7 +566,7 @@ VDU_BUF .FILL 256,0 ; COPY BUFFER ; CCIR 625/50 VERSION (USED IN MOST OF THE WORLD) ; JUMPER K1 2-3, K2 1-2 FOR 2MHz CHAR CLOCK ; -; THE CCIR 625/50 TELEVISION STANDARD HAS 625 LINES INTERLACED AT 50 FIELDS PER SECOND. THIS WORKS +; THE CCIR 625/50 TELEVISION STANDARD HAS 625 LINES INTERLACED AT 50 FIELDS PER SECOND. THIS WORKS ; OUT AS 50 FIELDS OF 312.5 LINES PER SECOND NON-INTERLACED AS USED HERE. ; HORIZONTAL LINE WIDTH IS 64uS. FOR A 2 MHz CHARACTER CLOCK (R0+1)/2000000 = 64uS ; NEAREST NUMBER OF LINES IS 312 = (R4+1) * (R9+1) + R5. @@ -658,7 +658,7 @@ VDU_INIT6845: .DB 00CH ; R3 SYNC WIDTHS .DB 19H ; R4 VERTICAL TOTAL (TOTAL CHARS IN A FRAME -1) (312/DLINES)-1 .DB 00H ; R5 VERTICAL TOTAL ADJUST (312-(R4+1)*DSCANL) - .DB DLINES ; R6 VERTICAL DISPLAY + .DB DLINES ; R6 VERTICAL DISPLAY .DB 019H ; R7 VERTICAL SYNC (DLINES .. R4) .DB 078H ; R8 MODE .DB DSCANL-1 ; R9 SCAN LINE (LINES PER CHAR AND SPACING -1) @@ -680,7 +680,7 @@ VDU_INIT6845: .DB 00CH ; R3 SYNC WIDTHS .DB 19H ; R4 VERTICAL TOTAL (TOTAL CHARS IN A FRAME -1) (312/DLINES)-1 .DB 00H ; R5 VERTICAL TOTAL ADJUST (312-(R4+1)*DSCANL) - .DB DLINES ; R6 VERTICAL DISPLAY + .DB DLINES ; R6 VERTICAL DISPLAY .DB 018H ; R7 VERTICAL SYNC (DLINES .. R4) .DB 078H ; R8 MODE .DB DSCANL-1 ; R9 SCAN LINE (LINES PER CHAR AND SPACING -1) diff --git a/Source/HBIOS/vga.asm b/Source/HBIOS/vga.asm index 5a285376..8bbd8d85 100644 --- a/Source/HBIOS/vga.asm +++ b/Source/HBIOS/vga.asm @@ -70,12 +70,12 @@ VGA_89BIT .EQU VGA_8BIT #ENDIF ; #IF VGA_CSTY=VGA_BLOK -VGA_R10 .EQU (VGA_BLNK + $00) +VGA_R10 .EQU (VGA_BLNK + $00) VGA_R11 .EQU VGA_SCANL-1 #ENDIF ; #IF VGA_CSTY=VGA_ULIN -VGA_R10 .EQU (VGA_BLNK + VGA_SCANL-1) +VGA_R10 .EQU (VGA_BLNK + VGA_SCANL-1) VGA_R11 .EQU VGA_SCANL-1 #ENDIF ; @@ -85,7 +85,7 @@ TERMENABLE .SET TRUE ; INCLUDE TERMINAL PSEUDODEVICE DRIVER ; ; DRIVER UTILIZES THE MULTIPLE DISPLAY WINDOW FEATURE OF THE CRTC TO ACCOMPLISH ; FULL SCREEN SCROLLING WITHOUT THE NEED TO MOVE DISPLAY RAM BYTES. -; +; ; SCREEN 1 IMPLICITLY STARTS AT PHYSICAL ROW 0 ; SCREEN 1 RAM ADDRESS POINTER POINTS TO SCREEN OFFSET (R12/R13) ; SCREEN 2 ROW DEFINES WHERE BUFFER BYTE 0 WILL BE DISPLAYED (R18) @@ -179,13 +179,13 @@ VGA_VDAQRY: LD HL,0 ; EXTRACTION OF CURRENT BITMAP DATA NOT SUPPORTED YET XOR A ; SIGNAL SUCCESS RET - + VGA_VDARES: LD A,$07 ; ATTRIBUTE IS STANDARD WHITE ON BLACK LD (VGA_ATTR),A ; SAVE IT XOR A ; ZERO (REVERSE, UNDERLINE, BLINK) LD (VGA_RUB),A ; SAVE IT - + LD DE,0 ; ROW = 0, COL = 0 CALL VGA_XY ; SEND CURSOR TO TOP LEFT LD A,' ' ; BLANK THE SCREEN @@ -193,10 +193,10 @@ VGA_VDARES: CALL VGA_FILL ; DO IT LD DE,0 ; ROW = 0, COL = 0 CALL VGA_XY ; SEND CURSOR TO TOP LEFT - + LD HL,$0404 | VGA_89BIT; SET VIDEO ENABLE BIT CALL VGA_SETCFG ; DO IT - + XOR A RET @@ -205,15 +205,15 @@ VGA_VDADEV: LD E,0 ; E := PHYSICAL UNIT IS ALWAYS ZERO XOR A ; SIGNAL SUCCESS RET - + VGA_VDASCS: CALL PANIC ; NOT IMPLEMENTED (YET) - + VGA_VDASCP: CALL VGA_XY ; SET CURSOR POSITION XOR A ; SIGNAL SUCCESS RET - + VGA_VDASAT: ; INCOMING IS: -----RUB (R=REVERSE, U=UNDERLINE, B=BLINK) ; @@ -222,7 +222,7 @@ VGA_VDASAT: LD A,E LD (VGA_RUB),A ; SAVE IT JR VGA_VDASCO2 ; IMPLEMENT SETTING - + VGA_VDASCO: ; INCOMING IS: IBGRIBGR (I=INTENSITY, B=BLUE, G=GREEN, R=RED) ; TRANSFORM TO: -RGBIRGB (DISCARD INTENSITY BIT IN HIGH NIBBLE) @@ -269,13 +269,13 @@ VGA_VDASCO2: VGA_VDASCO3: XOR A ; SIGNAL SUCCESS RET - + VGA_VDAWRC: LD A,E ; CHARACTER TO WRITE GOES IN A CALL VGA_PUTCHAR ; PUT IT ON THE SCREEN XOR A ; SIGNAL SUCCESS RET - + VGA_VDAFIL: LD A,E ; FILL CHARACTER GOES IN A EX DE,HL ; FILL LENGTH GOES IN DE @@ -291,7 +291,7 @@ VGA_VDACPY: POP BC ; RECOVER LENGTH IN BC LD DE,(VGA_POS) ; PUT DEST IN DE JP VGA_BLKCPY ; DO A BLOCK COPY - + VGA_VDASCR: LD A,E ; LOAD E INTO A OR A ; SET FLAGS @@ -522,7 +522,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 + CCF ; CREATE A SBC HL,DE ; DECOMPRESSION BUFFER LD SP,HL ; HL POINTS TO BUFFER EX DE,HL ; START OF STACK BUFFER @@ -543,7 +543,7 @@ VGA_LOADFONT2: INC HL ; NEXT FONT BYTE INC DE ; NEXT MEM BYTE DJNZ VGA_LOADFONT2 - + LD BC,16-VGA_SCANL ; MOVE TO NEXT EX DE,HL ; 16 BYTE ADD HL,BC ; CHARACTER @@ -586,7 +586,7 @@ VGA_XY2IDX: CALL MULT8 ; MULTIPLY TO GET ROW OFFSET LD E,A ; GET COLUMN BACK ADD HL,DE ; ADD IT IN - + LD DE,(VGA_OFF) ; SCREEN OFFSET ADD HL,DE ; ADJUST ; @@ -651,7 +651,7 @@ VGA_FILL: LD HL,(VGA_POS) ; GET CURRENT POSITION SLA L ; MULTIPLY BY 2 RL H ; ... 2 BYTES PER CHAR - + VGA_FILL1: ; FILL ONE POSITION (CHAR & ATTR) LD C,VGA_HI ; C := VGA ADR HI @@ -669,7 +669,7 @@ VGA_FILL1: #ENDIF LD A,(VGA_ATTR) ; GET CUR ATTR OUT (C),A ; OUTPUT ATTR - + ; CHECK COUNT DEC DE ; DECREMENT COUNT LD A,D ; TEST FOR @@ -755,7 +755,7 @@ VGA_SCROLL6: LD (VGA_POS),HL ; SAVE IT LD C,14 ; CURSOR 1 POS REG CALL VGA_REGWRX ; COMMIT - + RET ; ;---------------------------------------------------------------------- @@ -822,13 +822,13 @@ VGA_BLKCPY: SLA C RL B PUSH BC ; COUNT ==> TOS - + ; ADJUST HL & DE FOR SCREEN OFFSET/WRAP CALL VGA_BLKCPY4 ; DO HL EX DE,HL ; SWAP CALL VGA_BLKCPY4 ; DO OTHER EX DE,HL ; SWAP BACK - + VGA_BLKCPY1: #IF (VGA_NICE) CALL VGA_WAITSB ; WAIT FOR RETRACE @@ -842,7 +842,7 @@ VGA_BLKCPY1: INC C ; C := VGA_DATA IN A,(C) ; A := (HL) - ; COPY TO DESTINATION + ; COPY TO DESTINATION LD C,VGA_HI ; C := VGA_HI OUT (C),D ; VGA_HI := SOURCE HI (H) INC C ; C := VGA_LO @@ -945,7 +945,7 @@ REGS_VGA: .DB 18,-1 ; S2 ROW - 1 .DB 27,12 ; VERT SYNC POS ADJ .DB 30,$01 | $08 ; CTL 1, 2 WINDOWS & ENABLE R27 VSYNC FINE ADJ - + .DB $FF ; END MARKER #ENDIF #IF (VGASIZ=V80X30) @@ -966,7 +966,7 @@ REGS_VGA: .DB 10,VGA_R10 ; CURSOR START & CURSOR BLINK .DB 11,VGA_R11 ; CURSOR END .DB 12,0 ; SCRN 1 START (HI) - .DB 13,0 ; SCRN 1 START (LO) + .DB 13,0 ; SCRN 1 START (LO) .DB 18,-1 ; S2 ROW - 1 .DB 27,0 ; VERT SYNC POS ADJ .DB 30,$01 | $08 ; CTL 1, 2 WINDOWS & ENABLE R27 VSYNC FINE ADJ @@ -990,7 +990,7 @@ REGS_VGA: .DB 10,VGA_R10 ; CURSOR START & CURSOR BLINK .DB 11,VGA_R11 ; CURSOR END .DB 12,0 ; SCRN 1 START (HI) - .DB 13,0 ; SCRN 1 START (LO) + .DB 13,0 ; SCRN 1 START (LO) .DB 18,-1 ; S2 ROW - 1 .DB 27,0 ; VERT SYNC POS ADJ .DB 30,$01 | $08 ; CTL 1, 2 WINDOWS & ENABLE R27 VSYNC FINE ADJ @@ -998,7 +998,7 @@ REGS_VGA: #ENDIF #IF (VGASIZ=V80X60) ;=============================================================================== -; 80x60X8 60hz REGISTER VALUES +; 80x60X8 60hz REGISTER VALUES ;=============================================================================== ; REGS_VGA: @@ -1014,7 +1014,7 @@ REGS_VGA: .DB 10,VGA_R10 ; CURSOR START & CURSOR BLINK .DB 11,VGA_R11 ; CURSOR END .DB 12,0 ; SCRN 1 START (HI) - .DB 13,0 ; SCRN 1 START (LO) + .DB 13,0 ; SCRN 1 START (LO) .DB 18,-1 ; S2 ROW - 1 .DB 27,0 ; VERT SYNC POS ADJ .DB 30,$01 | $08 ; CTL 1, 2 WINDOWS & ENABLE R27 VSYNC FINE ADJ From d4ebc44a98019315e2c9c29d0152cb6f79d614ed Mon Sep 17 00:00:00 2001 From: Dean Netherton Date: Sat, 21 Mar 2020 22:26:04 +1100 Subject: [PATCH 4/7] HBIOS: Force the assembly to fail for vdu drivers if function table count is not correct --- Source/HBIOS/cvdu.asm | 1 + Source/HBIOS/tms.asm | 1 + Source/HBIOS/vdu.asm | 1 + Source/HBIOS/vga.asm | 1 + 4 files changed, 4 insertions(+) diff --git a/Source/HBIOS/cvdu.asm b/Source/HBIOS/cvdu.asm index 96272b4f..4b51dfa2 100644 --- a/Source/HBIOS/cvdu.asm +++ b/Source/HBIOS/cvdu.asm @@ -96,6 +96,7 @@ CVDU_FNTBL: .DW KBD_READ #IF (($ - CVDU_FNTBL) != (VDA_FNCNT * 2)) .ECHO "*** INVALID CVDU FUNCTION TABLE ***\n" + FAIL #ENDIF CVDU_VDAINI: diff --git a/Source/HBIOS/tms.asm b/Source/HBIOS/tms.asm index 4759cf61..832e99e0 100644 --- a/Source/HBIOS/tms.asm +++ b/Source/HBIOS/tms.asm @@ -136,6 +136,7 @@ TMS_FNTBL: #ENDIF #IF (($ - TMS_FNTBL) != (VDA_FNCNT * 2)) .ECHO "*** INVALID TMS FUNCTION TABLE ***\n" + FAIL #ENDIF TMS_VDAINI: diff --git a/Source/HBIOS/vdu.asm b/Source/HBIOS/vdu.asm index b8cbec60..1c2a2ca1 100644 --- a/Source/HBIOS/vdu.asm +++ b/Source/HBIOS/vdu.asm @@ -150,6 +150,7 @@ VDU_FNTBL: .DW PPK_READ #IF (($ - VDU_FNTBL) != (VDA_FNCNT * 2)) .ECHO "*** INVALID VDU FUNCTION TABLE ***\n" + FAIL #ENDIF VDU_VDAINI: diff --git a/Source/HBIOS/vga.asm b/Source/HBIOS/vga.asm index 8bbd8d85..dde15dae 100644 --- a/Source/HBIOS/vga.asm +++ b/Source/HBIOS/vga.asm @@ -163,6 +163,7 @@ VGA_FNTBL: .DW KBD_READ #IF (($ - VGA_FNTBL) != (VDA_FNCNT * 2)) .ECHO "*** INVALID VGA FUNCTION TABLE ***\n" + FAIL #ENDIF VGA_VDAINI: From 74c7d865d75b33f9df9e8641d35ce58b3d2f8a61 Mon Sep 17 00:00:00 2001 From: Dean Netherton Date: Tue, 21 Apr 2020 16:37:29 +1000 Subject: [PATCH 5/7] Whitespace: trailing whitespaces --- Source/CBIOS/cbios.asm | 142 ++++++++++++++++++++-------------------- Source/HBIOS/romldr.asm | 2 +- 2 files changed, 72 insertions(+), 72 deletions(-) diff --git a/Source/CBIOS/cbios.asm b/Source/CBIOS/cbios.asm index 5f627426..47c2ca47 100644 --- a/Source/CBIOS/cbios.asm +++ b/Source/CBIOS/cbios.asm @@ -251,10 +251,10 @@ DEVMAP: ; +----8+-----8+------8+-+-16+-----8+------8+-+-16+ +-----8+------8+-+-16+ ; | | | ; +--------------------+ +-> [DPH] +-> [DPH] -; | -; V-----+-------+-------+-------+--------+-----+-----+-----+ -; DPH: | XLT | 0000H | 0000H | 0000H | DIRBUF | DPB | CSV | ALV | -; +---16+-----16+-----16+-----16+------16+-+-16+-+-16+-+-16+ +; | +; V-----+-------+-------+-------+--------+-----+-----+-----+ +; DPH: | XLT | 0000H | 0000H | 0000H | DIRBUF | DPB | CSV | ALV | +; +---16+-----16+-----16+-----16+------16+-+-16+-+-16+-+-16+ ; (ONE DPH PER DRIVE) | | | ; | | +----------+ ; | | | @@ -263,9 +263,9 @@ DEVMAP: ; | +-------------+ +-------------+ ; | (CSZ BYTES) (ASZ BYTES) ; | -; +-----+-----+-----V-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+ -; DPB: | CSZ | ASZ | BLS | SPT | BSH | BLM | EXM | DSM | DRM | AL0 | AL1 | CKS | OFF | -; +---16+---16+----8+---16+----8+----8+----8+---16+---16+----8+----8+---16+---16+ +; +-----+-----+-----V-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+ +; DPB: | CSZ | ASZ | BLS | SPT | BSH | BLM | EXM | DSM | DRM | AL0 | AL1 | CKS | OFF | +; +---16+---16+----8+---16+----8+----8+----8+---16+---16+----8+----8+---16+---16+ ; |<--- PREFIX ---->|<------------------- STANDARD CP/M DPB ------------------->| ; ;================================================================================================== @@ -353,7 +353,7 @@ WBOOT: LD DE,(BNKBIOS) ; UBIOS_PAGE (SEE PAGES.INC) RST 08 ; DO IT PUSH DE ; SAVE PREVIOUS BANK - + LD HL,(CCPBUF) ; ADDRESS OF CCP BUF IN BIOS MEM LD DE,CCP_LOC ; ADDRESS IN HI MEM OF CCP LD BC,CCP_SIZ ; SIZE OF CCP @@ -383,11 +383,11 @@ WBOOT: LD BC,6 XOR A CALL FILL -; +; CALL RESCPM ; RESET CPM JR GOCPM ; THEN OFF TO CP/M WE GO... ; -;__________________________________________________________________________________________________ +;__________________________________________________________________________________________________ RESCPM: ; LD A,$C3 ; LOAD A WITH 'JP' INSTRUCTION (USED BELOW) @@ -406,7 +406,7 @@ RESCPM: ; LD ($0038),A ; LD HL,PANIC ; PANIC ROUTINE ADDRESS ; LD ($0039),HL ; POKE IT - + ; CALL 5 -> INVOKE BDOS LD ($0005),A ; JP OPCODE AT $0005 LD HL,BDOS_LOC + 6 ; GET BDOS ENTRY ADDRESS @@ -427,7 +427,7 @@ RESCPM: ; RET ; -;__________________________________________________________________________________________________ +;__________________________________________________________________________________________________ GOCPM: ; ; ENSURE VALID DISK AND JUMP TO CCP @@ -444,7 +444,7 @@ GOCCP: LD C,A ; SETUP C WITH CURRENT USER/DISK, ASSUME IT IS OK JP CCP_LOC ; JUMP TO COMMAND PROCESSOR ; -;__________________________________________________________________________________________________ +;__________________________________________________________________________________________________ GOMON: CALL PANIC ; @@ -460,7 +460,7 @@ GOMON: ; LD BC,MON_SIZ ; LDIR ; CALL RAMPGZ - + ; ; JUMP TO MONITOR WARM ENTRY ; JP MON_UART ; @@ -479,7 +479,7 @@ CONST: LD HL,CIOST ; HL = ADDRESS OF COMPLETION ROUTINE JR CONIO ; -;__________________________________________________________________________________________________ +;__________________________________________________________________________________________________ CONIN: ; CONSOLE CHARACTER INTO REGISTER A ; @@ -487,7 +487,7 @@ CONIN: LD HL,CIOIN ; HL = ADDRESS OF COMPLETION ROUTINE JR CONIO -;__________________________________________________________________________________________________ +;__________________________________________________________________________________________________ CONOUT: ; CONSOLE CHARACTER OUTPUT FROM REGISTER C ; @@ -496,7 +496,7 @@ CONOUT: LD E,C ; E = CHARACTER TO SEND ; JR CONIO ; COMMENTED OUT, FALL THROUGH OK ; -;__________________________________________________________________________________________________ +;__________________________________________________________________________________________________ CONIO: ; LD A,(IOBYTE) ; GET IOBYTE @@ -504,8 +504,8 @@ CONIO: ;OR $00 ; PUT LOGICAL DEVICE IN BITS 2-3 (CON:=$00, RDR:=$04, PUN:=$08, LST:=$0C JR CIO_DISP ; -;__________________________________________________________________________________________________ -LIST: +;__________________________________________________________________________________________________ +LIST: ; LIST CHARACTER FROM REGISTER C ; LD B,BF_CIOOUT ; B = FUNCTION @@ -513,7 +513,7 @@ LIST: LD E,C ; E = CHARACTER TO SEND JR LISTIO ; -;__________________________________________________________________________________________________ +;__________________________________________________________________________________________________ LISTST: ; RETURN LIST STATUS (0 IF NOT READY, 1 IF READY) ; @@ -521,7 +521,7 @@ LISTST: LD HL,CIOST ; HL = ADDRESS OF COMPLETION ROUTINE ;JR LISTIO ; COMMENTED OUT, FALL THROUGH OK ; -;__________________________________________________________________________________________________ +;__________________________________________________________________________________________________ LISTIO: ; LD A,(IOBYTE) ; GET IOBYTE @@ -531,7 +531,7 @@ LISTIO: OR $0C ; PUT LOGICAL DEVICE IN BITS 2-3 (CON:=$00, RDR:=$04, PUN:=$08, LST:=$0C JR CIO_DISP ; -;__________________________________________________________________________________________________ +;__________________________________________________________________________________________________ PUNCH: ; PUNCH CHARACTER FROM REGISTER C ; @@ -540,7 +540,7 @@ PUNCH: LD E,C ; E = CHARACTER TO SEND ;JR PUNCHIO ; COMMENTED OUT, FALL THROUGH OK ; -;__________________________________________________________________________________________________ +;__________________________________________________________________________________________________ PUNCHIO: ; LD A,(IOBYTE) ; GET IOBYTE @@ -552,7 +552,7 @@ PUNCHIO: OR $08 ; PUT LOGICAL DEVICE IN BITS 2-3 (CON:=$00, RDR:=$04, PUN:=$08, LST:=$0C JR CIO_DISP ; -;__________________________________________________________________________________________________ +;__________________________________________________________________________________________________ READER: ; READ CHARACTER INTO REGISTER A FROM READER DEVICE ; @@ -560,7 +560,7 @@ READER: LD HL,CIOIN ; HL = ADDRESS OF COMPLETION ROUTINE JR READERIO ; -;__________________________________________________________________________________________________ +;__________________________________________________________________________________________________ READERST: ; RETURN READER STATUS (0 IF NOT READY, 1 IF READY) ; @@ -568,7 +568,7 @@ READERST: LD HL,CIOST ; HL = ADDRESS OF COMPLETION ROUTINE ; JR READERIO ; COMMENTED OUT, FALL THROUGH OK ; -;__________________________________________________________________________________________________ +;__________________________________________________________________________________________________ READERIO: ; LD A,(IOBYTE) ; GET IOBYTE @@ -578,20 +578,20 @@ READERIO: OR $04 ; PUT LOGICAL DEVICE IN BITS 2-3 (CON:=$00, RDR:=$04, PUN:=$08, LST:=$0C JR CIO_DISP ; -;__________________________________________________________________________________________________ +;__________________________________________________________________________________________________ CIOIN: ; COMPLETION ROUTINE FOR CHARACTER INPUT FUNCTIONS ; LD A,E ; MOVE CHARACTER RETURNED TO A RET ; FALL THRU ;; -;;__________________________________________________________________________________________________ +;;__________________________________________________________________________________________________ ;CIOOUT: ;; COMPLETION ROUTINE FOR CHARACTER OUTPUT FUNCTIONS ;; ; RET ; -;__________________________________________________________________________________________________ +;__________________________________________________________________________________________________ CIOST: ; COMPLETION ROUTINE FOR CHARACTER STATUS FUNCTIONS (IST/OST) ; @@ -621,7 +621,7 @@ CIO_DISP: LD HL,DEVMAP ; HL = ADDRESS OF DEVICE MAP CALL ADDHLA ; ADD OFFSET - + LD A,(HL) ; LOOKUP DEVICE CODE #IFDEF PLTUNA LD C,B ; MOVE FUNCTION TO C @@ -695,13 +695,13 @@ SELDSK: ; JP DSK_SELECT ; -;__________________________________________________________________________________________________ +;__________________________________________________________________________________________________ HOME: ; SELECT TRACK 0 (BC = 0) AND FALL THRU TO SETTRK #IF DSKTRACE CALL PRTHOME #ENDIF -; +; LD A,(HSTWRT) ; CHECK FOR PENDING WRITE OR A ; SET FLAGS JR NZ,HOMED ; BUFFER IS DIRTY @@ -764,7 +764,7 @@ BLKRES: XOR A LD (HSTACT),A ; BUFFER NO LONGER VALID LD (UNACNT),A ; CLEAR UNALLOC COUNT - + RET ;__________________________________________________________________________________________________ ; @@ -812,7 +812,7 @@ BLKRW: XOR A ; ZERO TO A LD (WRTYPE),A ; SET WRITE TYPE = 0 (WRT_ALC) TO ENSURE READ OCCURS LD (UNACNT),A ; SET UNACNT TO ABORT SEQ WRITE PROCESSING - + JR BLKRW4 ; GO TO I/O BLKRW1: @@ -821,7 +821,7 @@ BLKRW1: LD A,(WRTYPE) ; GET WRITE TYPE CP WRT_UNA ; IS IT WRITE TO UNALLOC? JR NZ,BLKRW2 ; NOPE, BYPASS - + ; INITIALIZE START OF SEQUENTIAL WRITING TO UNALLOCATED BLOCK ; AND THEN TREAT SUBSEQUENT PROCESSING AS A NORMAL WRITE CALL UNA_INI ; INITIALIZE SEQUENTIAL WRITE TRACKING @@ -835,11 +835,11 @@ BLKRW2: CALL UNA_CHK ; CHECK FOR CONTINUATION OF SEQ WRITES TO UNALLOCATED BLOCK JR NZ,BLKRW3 ; NOPE, ABORT - + ; WE MATCHED EVERYTHING, TREAT AS WRITE TO UNALLOCATED BLOCK LD A,WRT_UNA ; WRITE TO UNALLOCATED LD (WRTYPE),A ; SAVE WRITE TYPE - + CALL UNA_INC ; INCREMENT SEQUENTIAL WRITE TRACKING JR BLKRW4 ; PROCEED TO I/O PROCESSING @@ -870,16 +870,16 @@ BLKRW4: ; IMPLEMENT THE TRANSLATED VALUES CALL BLK_SAV ; SAVE XLAT VALUES: XLT... -> HST... - + ; IF WRITE TO UNALLOC BLOCK, BYPASS READ, LEAVES BUFFER UNDEFINED LD A,(WRTYPE) CP 2 JR Z,BLKRW6 - + ; DO THE ACTUAL READ CALL DSK_READ ; READ PHYSICAL SECTOR INTO BUFFER JR Z,BLKRW6 ; GOOD READ, CONTINUE - + ; IF READ FAILED, RESET (DE)BLOCKING ALGORITHM AND RETURN ERROR PUSH AF ; SAVE ERROR STATUS CALL BLKRES ; INVALIDATE (DE)BLOCKING BUFFER @@ -896,7 +896,7 @@ BLKRW6: CALL BLK_DEBLOCK ; EXTRACT DATA FROM BLOCK XOR A ; NO ERROR RET ; ALL DONE - + BLKRW7: ; THIS IS A WRITE OPERATION, INSERT DATA INTO BLOCK CALL BLK_BLOCK ; INSERT DATA INTO BLOCK @@ -904,7 +904,7 @@ BLKRW7: ; MARK THE BUFFER AS WRITTEN LD A,TRUE ; BUFFER DIRTY = TRUE LD (HSTWRT),A ; SAVE IT - + ; CHECK WRITE TYPE, IF WRT_DIR, FORCE THE PHYSICAL WRITE LD A,(WRTYPE) ; GET WRITE TYPE CP WRT_DIR ; 1 = DIRECTORY WRITE @@ -974,24 +974,24 @@ UNA_INC: ; DECREMENT THE BLOCK RECORD COUNT LD HL,UNACNT DEC (HL) - + ; INCREMENT THE SECTOR LD DE,(UNASEC) INC DE LD (UNASEC),DE - + ; CHECK FOR END OF TRACK LD HL,(UNASPT) XOR A SBC HL,DE RET NZ - + ; HANDLE END OF TRACK LD (UNASEC),HL ; SECTOR BACK TO 0 (NOTE: HL=0 AT THIS POINT) LD HL,(UNATRK) ; GET CURRENT TRACK INC HL ; BUMP IT LD (UNATRK),HL ; SAVE IT - + RET #ELSE ; @@ -1022,15 +1022,15 @@ BLKRW1: CALL BLK_DEBLOCK ; EXTRACT DATA FROM BLOCK XOR A ; NO ERROR RET ; ALL DONE - + BLKRW2: CALL BLK_BLOCK ; INSERT DATA INTO BLOCK CALL DSK_WRITE ; WRITE PHYSICAL SECTOR FROM BUFFER RET NZ ; BAIL OUT ON ERROR - + LD A,TRUE ; BUFFER IS NOW VALID LD (HSTACT),A ; SAVE IT - + XOR A ; ALL IS WELL, SET RETURN CODE 0 RET ; RETURN #ENDIF @@ -1247,7 +1247,7 @@ DSK_SELECT: LD E,(HL) ; DEREFERENCE HL... INC HL ; INTO DE... LD D,(HL) ; DE = ADDRESS OF DESIRED DPB -; +; ; PLUG DPB INTO THE ACTIVE DPH LD HL,(SEKDPH) LD BC,10 ; OFFSET OF DPB IN DPH @@ -1272,7 +1272,7 @@ DSK_STATUS: ; C HAS CPM DRIVE, LOOKUP UNIT AND CHECK FOR INVALID DRIVE CALL DSK_GETINF ; B := UNIT RET NZ ; INVALID DRIVE ERROR - + ; VALID DRIVE, DISPATCH TO DRIVER LD C,D ; C := UNIT LD B,BF_DIOSTATUS ; B := FUNCTION: STATUS @@ -1360,7 +1360,7 @@ CHS: ; ; FLOPPY SPECIFIC TRANSLATION ASSUMES FLOPPY IS DOUBLE-SIDED AND ; USES LOW ORDER BIT OF TRACK AS HEAD VALUE -; +; ; HBIOS SEEK: HL=CYLINDER, D=HEAD, E=SECTOR ; LD DE,(HSTSEC) ; SECTOR -> DE, HEAD(D) BECOMES ZERO @@ -1846,12 +1846,12 @@ INIT: LD DE,(BNKBIOS) ; UBIOS_PAGE (SEE PAGES.INC) CALL $FFFD ; DO IT (RST 08 NOT YET INSTALLED) PUSH DE ; SAVE PREVIOUS BANK - + LD HL,0 ; FROM ADDRESS 0 (PAGE ZERO) LD DE,SECBUF ; USE SECBUF AS BOUNCE BUFFER LD BC,256 ; ONE PAGE IS 256 BYTES LDIR ; DO IT - + LD BC,$01FB ; UNA FUNC = SET BANK POP DE ; RECOVER OPERATING BANK CALL $FFFD ; DO IT (RST 08 NOT YET INSTALLED) @@ -1860,7 +1860,7 @@ INIT: LD DE,0 ; TO PAGE ZERO OF OPERATING BANK LD BC,256 ; ONE PAGE IS 256 BYTES LDIR ; DO IT - + ; INSTALL UNA INVOCATION VECTOR FOR RST 08 LD A,$C3 ; JP INSTRUCTION LD (8),A ; STORE AT 0x0008 @@ -1880,7 +1880,7 @@ INIT: ; SOFT RESET HBIOS LD B,BF_SYSRESET ; HB FUNC: RESET RST 08 ; DO IT - + ; CREATE A TEMP COPY OF THE HBIOS CONFIG BLOCK (HCB) ; FOR REFERENCE USE DURING INIT LD B,BF_SYSSETCPY ; HBIOS FUNC: SETUP BANK COPY @@ -1891,7 +1891,7 @@ INIT: LD HL,HCB_LOC ; COPY FROM FIXED LOCATION IN HB BANK LD DE,HCB ; TO TEMP LOCATION IN USR BANK RST 08 ; DO IT - + ; CAPTURE RAM DRIVE STARTING BANK LD A,(HCB + HCB_BIDRAMD0) LD (BNKRAMD),A @@ -1905,7 +1905,7 @@ INIT: CALL NEWLINE2 ; FORMATTING LD DE,STR_BANNER ; POINT TO BANNER CALL WRITESTR ; DISPLAY IT - + #IFDEF PLTUNA ; SAVE COMMAND PROCESSOR IMAGE TO MALLOCED CACHE IN UNA BIOS PAGE LD C,$F7 ; UNA MALLOC @@ -1978,7 +1978,7 @@ INIT: CALL PRTDEC ; PRINT IT LD DE,STR_MEMFREE ; ADD DESCRIPTION CALL WRITESTR ; AND PRINT IT -; +; LD A,(DEFDRIVE) ; GET DEFAULT DRIVE LD (CDISK),A ; ... AND SETUP CDISK ; @@ -1997,7 +1997,7 @@ INIT2: CALL PRTDECB ; PRINT IT CALL PC_PERIOD ; DECIMAL POINT LD A,0 + (((BDOS_LOC % 1024) * 100) / 1024) - CALL PRTDECB ; MANTISSA + CALL PRTDECB ; MANTISSA LD DE,STR_TPA2 ; AND TPA SUFFIX CALL WRITESTR CALL NEWLINE ; FORMATTING @@ -2510,7 +2510,7 @@ DRV_INIT3A: PUSH DE ; SAVE DE (HARD DISK VOLUME COUNTER) PUSH HL ; SAVE DRIVE LIST PTR PUSH BC ; SAVE LOOP CONTROL - + LD B,BF_DIOMEDIA ; HBIOS FUNC: SENSE MEDIA LD E,1 ; PERFORM MEDIA DISCOVERY RST 08 @@ -2518,9 +2518,9 @@ DRV_INIT3A: POP BC ; RESTORE LOOP CONTROL POP HL ; RESTORE DRIVE LIST PTR POP DE ; RESTORE DE - + RET NZ ; IF NO MEDIA, JUST RETURN - + ; IF ACTIVE... LD (HL),C ; SAVE UNIT NUM IN LIST INC HL ; BUMP PTR @@ -2677,7 +2677,7 @@ DPH_INIT1: CALL PRTDRV ; PRINT DRIVE INFO LD A,D ; A := UNIT PUSH HL ; SAVE DRIVE MAP POINTER -DPH_INIT1A: +DPH_INIT1A: LD DE,(DPHTOP) ; GET ADDRESS OF NEXT DPH PUSH DE ; ... AND SAVE IT ; INVOKE THE DPH BUILD ROUTINE @@ -2776,7 +2776,7 @@ MAKDPH1: POP HL ; HL := START OF DPH LD A,8 ; SIZE OF DPH RESERVED AREA CALL ADDHLA ; LEAVE IT ALONE (ZERO FILLED) - + LD BC,(DIRBUF) ; ADDRESS OF DIRBUF LD (HL),C ; PLUG DIRBUF INC HL ; ... INTO DPH @@ -2813,7 +2813,7 @@ MAKDPH2: LD (HL),C ; SAVE CKS/ALS BUF INC HL ; ... ADDRESS IN LD (HL),B ; ... DPH AND BUMP - INC HL ; ... TO NEXT DPH ENTRY + INC HL ; ... TO NEXT DPH ENTRY XOR A ; SIGNAL SUCCESS RET ; @@ -2831,9 +2831,9 @@ ALLOC: EX DE,HL ; DE=NEW HEAPTOP, HL=HEAPLIM SBC HL,DE ; HEAPLIM - HEAPTOP JR C,ALLOCX ; C SET ON OVERFLOW ERROR - ; ALLOCATION SUCCEEDED, COMMIT NEW HEAPTOP + ; ALLOCATION SUCCEEDED, COMMIT NEW HEAPTOP LD (HEAPTOP),DE ; SAVE NEW HEAPTOP -ALLOCX: +ALLOCX: POP HL ; RETURN VALUE TO HL POP DE ; RECOVER DE RET @@ -2862,15 +2862,15 @@ PRTDRV: PUSH BC ; PRESERVE BC PUSH DE ; PRESERVE DE PUSH HL ; PRESERVE HL - + LD B,D ; B := UNIT LD C,$48 ; UNA FUNC: GET DISK TYPE CALL $FFFD ; CALL UNA LD A,D ; DISK TYPE TO A - + CP $40 JR Z,PRTDRV1 ; IF SO, HANDLE RAM/ROM - + LD DE,DEVIDE ; IDE STRING CP $41 ; IDE? JR Z,PRTDRVX ; IF YES, PRINT diff --git a/Source/HBIOS/romldr.asm b/Source/HBIOS/romldr.asm index 747dd032..9cf31c0c 100644 --- a/Source/HBIOS/romldr.asm +++ b/Source/HBIOS/romldr.asm @@ -738,7 +738,7 @@ diskboot5: ; ; Compute number of sectors to load ld hl,(bb_cpmend) ; hl := end - ld de,(bb_cpmloc) ; de := start + ld de,(bb_cpmloc) ; de := start or a ; clear carry sbc hl,de ; hl := length to load ld a,h ; determine 512 byte sector count From 66c893e25170744207d2a6eff437c3753f3ade49 Mon Sep 17 00:00:00 2001 From: Dean Netherton Date: Sun, 5 Apr 2020 20:06:34 +1000 Subject: [PATCH 6/7] makefile: updated some make scripts to use when calling subdir makefiles --- Makefile | 20 ++++++++++---------- Tools/Makefile.inc | 4 +++- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/Makefile b/Makefile index 44d7847e..8253467c 100644 --- a/Makefile +++ b/Makefile @@ -1,19 +1,19 @@ all: - cd Tools/unix ; make - cd Source ; make - cd Source/Images ; make + $(MAKE) --directory Tools/unix + $(MAKE) --directory Source + $(MAKE) --directory Source/Images clean: - cd Tools/unix ; make clean - cd Source ; make clean - cd Binary ; make clean + $(MAKE) --directory Tools/unix clean + $(MAKE) --directory Source clean + $(MAKE) --directory Binary clean clobber: - cd Tools/unix ; make clobber - cd Source ; make clobber - cd Binary ; make clobber + $(MAKE) --directory Tools/unix clobber + $(MAKE) --directory Source clobber + $(MAKE) --directory Binary clobber rm -f typescript diff: - cd Source ; make diff + $(MAKE) --directory diff diff --git a/Tools/Makefile.inc b/Tools/Makefile.inc index 4d0c5583..0de5bc5e 100644 --- a/Tools/Makefile.inc +++ b/Tools/Makefile.inc @@ -94,6 +94,8 @@ ifeq ($(UNAME), Linux) $(BSTC) -e -l $< endif +.ONESHELL: + # # darwin bstc won't run, since mac os does not do 32 bit binaries any more # openspin ought to work @@ -108,7 +110,7 @@ endif # all:: $(OBJECTS) @for dir in $(SUBDIRS) ; do \ - ( echo "building in `pwd`/$$dir" ; cd "$$dir" ; make all ) ; \ + ( echo "building in `pwd`/$$dir" ; $(MAKE) --directory "$$dir" all ) ; \ done @if [ "$(DEST)" ] ; then for file in $(OBJECTS) ; do \ mkdir -p $(DEST) ; \ From ae7714aeff4c8bae332677804a89159a4673b955 Mon Sep 17 00:00:00 2001 From: Dean Netherton Date: Mon, 6 Apr 2020 19:51:34 +1000 Subject: [PATCH 7/7] linux build: update to Build.sh fix for some platforms The initialization of the Rom dat file used the pipe (|) operator to build an initial empty file. But the pipe operator | may sometimes return a non-zero exit code for some linux platforms, if the the streams are closed before dd has fully processed the stream. This issue occured on a travis linux ubuntu image. Solution was to change to redirection. --- Source/HBIOS/Build.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Source/HBIOS/Build.sh b/Source/HBIOS/Build.sh index e9ff4abd..992afbcb 100755 --- a/Source/HBIOS/Build.sh +++ b/Source/HBIOS/Build.sh @@ -13,9 +13,9 @@ if [ $1 == '-d' ] ; then diffdir=$1 shift if [ -f $diffdir/build.inc ] ; then - timestamp=$(grep TIMESTAMP $diffdir/build.inc | awk '{print $3}' | tr -d '\015"') + timestamp=$(grep TIMESTAMP $diffdir/build.inc | awk '{print $3}' | tr -d '\015"') echo diff build using $timestamp - fi + fi fi # positional arguments @@ -65,7 +65,7 @@ romfmt=wbw_rom${romsize} outdir=../../Binary echo "creating empty rom disk of size $romsize in $blankfile" -LC_CTYPE=en_US.US-ASCII tr '\000' '\345' build.inc ; RomWBW Configured for $platform $config $timestamp