From 8d302520446defbe45b340f3c6e384890bbde5b8 Mon Sep 17 00:00:00 2001 From: b1ackmai1er <39449559+b1ackmai1er@users.noreply.github.com> Date: Tue, 12 Mar 2019 22:47:40 +0800 Subject: [PATCH 1/2] Add missing baud rate --- Source/HBIOS/siobaud.inc | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Source/HBIOS/siobaud.inc b/Source/HBIOS/siobaud.inc index c315c9bf..f9c77746 100644 --- a/Source/HBIOS/siobaud.inc +++ b/Source/HBIOS/siobaud.inc @@ -84,6 +84,9 @@ SIOBAUD1 .EQU 25 #IF (DEFSIOCLK/DEFSIODIV/1 == 230400) SIOBAUD1 .EQU 26 #ENDIF +#IF (DEFSIOCLK/DEFSIODIV/1 == 460800) +SIOBAUD1 .EQU 27 +#ENDIF #IF (DEFSIOCLK/DEFSIODIV/1 == 921600) SIOBAUD1 .EQU 28 #ENDIF @@ -99,7 +102,7 @@ SIOBAUD1 .EQU 31 #IF (DEFSIOCLK/DEFSIODIV/16 == 75) -SIOBAUD2 .EQU 0 +SIOBAUD2 .EQU 0 #ENDIF #IF (DEFSIOCLK/DEFSIODIV/16 == 150) SIOBAUD2 .EQU 1 From c79d4970631331686cf3f8c4d72cf61130a11fcf Mon Sep 17 00:00:00 2001 From: b1ackmai1er <39449559+b1ackmai1er@users.noreply.github.com> Date: Tue, 12 Mar 2019 23:02:03 +0800 Subject: [PATCH 2/2] VDU mode updates --- Source/HBIOS/std.asm | 2 ++ Source/HBIOS/vdu.asm | 77 +++++++++++++++++++++++++++++++++++++++++--- 2 files changed, 75 insertions(+), 4 deletions(-) diff --git a/Source/HBIOS/std.asm b/Source/HBIOS/std.asm index 5dddac0b..b670d283 100644 --- a/Source/HBIOS/std.asm +++ b/Source/HBIOS/std.asm @@ -223,6 +223,8 @@ SER_7372800_8N1 .EQU SER_BAUD7372800 | SER_DATA8 | SER_PARNONE | SER_STOP1 V80X24 .EQU 0 V80X25 .EQU 1 V80X30 .EQU 2 +V80X25B .EQU 3 +V80X24B .EQU 4 ; ; INTERRUPT VECTOR TABLE ENTRY OFFSETS (Z180 COMPATIBLE) ; diff --git a/Source/HBIOS/vdu.asm b/Source/HBIOS/vdu.asm index 1a3874af..0d140608 100644 --- a/Source/HBIOS/vdu.asm +++ b/Source/HBIOS/vdu.asm @@ -50,6 +50,17 @@ DLINES .EQU 30 DROWS .EQU 80 DSCANL .EQU 8 #ENDIF +#IF (VDUSIZ=V80X25B) +DLINES .EQU 25 +DROWS .EQU 80 +DSCANL .EQU 12 +#ENDIF +#IF (VDUSIZ=V80X24B) +DLINES .EQU 24 +DROWS .EQU 80 +DSCANL .EQU 12 +#ENDIF +; ; ;====================================================================== ; VDU DRIVER - INITIALIZATION @@ -333,7 +344,7 @@ VDU_XY: JP VDU_WRREGX ; DO IT AND RETURN ; ;---------------------------------------------------------------------- -; WRITE VALULE IN A TO CURRENT VDU BUFFER POSTION, ADVANCE CURSOR +; WRITE VALUE IN A TO CURRENT VDU BUFFER POSTION, ADVANCE CURSOR ;---------------------------------------------------------------------- ; VDU_PUTCHAR: @@ -345,7 +356,7 @@ VDU_PUTCHAR: ADD HL,DE INC DE ; INC LD (VDU_POS),DE ; SAVE NEW SCREEN POSITION - LD C,18 ; UPDATE ADDRESS REGISTER PAIR ???????????????????? + LD C,18 ; UPDATE ADDRESS REGISTER PAIR CALL VDU_WRREGX ; DO IT INC HL ; NEW CURSOR POSITION LD C,14 ; CURSOR POSITION REGISTER PAIR @@ -530,7 +541,7 @@ VDU_INIT6845: .DB DROWS ; R1 NUMBER OF HORIZONTAL CHARACTERS DISPLAYED (80 COLUMNS) .DB 060H ; R2 HORIZONTAL SYNC POSITION .DB 00CH ; R3 SYNC WIDTHS - .DB 01EH ; R4 VERTICAL TOTAL (TOTAL CHARS IN A FRAME -1) + .DB 01EH ; R4 VERTICAL TOTAL (TOTAL CHARS IN A FRAME 30-1) .DB 002H ; R5 VERTICAL TOTAL ADJUST ( .DB DLINES ; R6 VERTICAL DISPLAYED (24 ROWS) .DB 01AH ; R7 VERTICAL SYNC @@ -559,7 +570,7 @@ VDU_INIT6845: .DB DROWS ; R1 NUMBER OF HORIZONTAL CHARACTERS DISPLAYED =80 .DB 060H ; R2 HORIZONTAL SYNC POSITION .DB 00CH ; R3 SYNC WIDTHS - .DB 01EH ; R4 VERTICAL TOTAL (TOTAL CHARS IN A FRAME -1) + .DB 01EH ; R4 VERTICAL TOTAL (TOTAL CHARS IN A FRAME 30-1) .DB 002H ; R5 VERTICAL TOTAL ADJUST ( .DB DLINES ; R6 VERTICAL DISPLAYED (25 ROWS) .DB 01BH ; R7 VERTICAL SYNC @@ -608,6 +619,64 @@ VDU_INIT6845: .DB 00H ; R15 CURSOR ADDRESS LO ; #ENDIF +#IF (VDUSIZ=V80X25B) +;================================================================================================== +; VDU DRIVER - SY6845 REGISTER INITIALIZATION -80x25 12x8 TO SUIT BLOCK GRAPHICS +;================================================================================================== +VDU_INIT6845: + .DB 07FH ; R0 TOTAL NUMBER OF HORIZONTAL CHARACTERS (DETERMINES HSYNC) + .DB DROWS ; R1 NUMBER OF HORIZONTAL CHARACTERS DISPLAYED =80 + .DB 060H ; R2 HORIZONTAL SYNC POSITION + .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 019H ; R7 VERTICAL SYNC (DLINES .. R4) + .DB 078H ; R8 MODE B7=0 TRANSPARENT UPDATE DURING BLANKING +; ; B6=1 PIN 34 IS UPDATE STROBE +; ; B5=1 DELAY CURSOR 1 CHARACTER +; ; B4=1 DELAY DISPLAY ENABLE 1 CHARACTER +; ; B3=1 TRANSPARENT MEMORY ADDRESSING +; ; B2=0 RAM STRAIGHT BINARY ADDRESSING +; ; B1,B0=0 NON-INTERLACE + .DB DSCANL-1 ; R9 SCAN LINE (LINES PER CHAR AND SPACING -1) + .DB 060H ; R10 CURSOR START RASTER + .DB DSCANL-1 ; R11 CURSOR END RASTER + .DB 00H ; R12 START ADDRESS HI + .DB 00H ; R13 START ADDRESS LO + .DB 00H ; R14 CURSOR ADDRESS HI + .DB 00H ; R15 CURSOR ADDRESS LO +; +#ENDIF +#IF (VDUSIZ=V80X24B) +;================================================================================================== +; VDU DRIVER - SY6845 REGISTER INITIALIZATION -80x24 12x8 TO SUIT BLOCK GRAPHICS +;================================================================================================== +VDU_INIT6845: + .DB 07FH ; R0 TOTAL NUMBER OF HORIZONTAL CHARACTERS (DETERMINES HSYNC) + .DB DROWS ; R1 NUMBER OF HORIZONTAL CHARACTERS DISPLAYED =80 + .DB 060H ; R2 HORIZONTAL SYNC POSITION + .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 018H ; R7 VERTICAL SYNC (DLINES .. R4) + .DB 078H ; R8 MODE B7=0 TRANSPARENT UPDATE DURING BLANKING +; ; B6=1 PIN 34 IS UPDATE STROBE +; ; B5=1 DELAY CURSOR 1 CHARACTER +; ; B4=1 DELAY DISPLAY ENABLE 1 CHARACTER +; ; B3=1 TRANSPARENT MEMORY ADDRESSING +; ; B2=0 RAM STRAIGHT BINARY ADDRESSING +; ; B1,B0=0 NON-INTERLACE + .DB DSCANL-1 ; R9 SCAN LINE (LINES PER CHAR AND SPACING -1) + .DB 060H ; R10 CURSOR START RASTER + .DB DSCANL-1 ; R11 CURSOR END RASTER + .DB 00H ; R12 START ADDRESS HI + .DB 00H ; R13 START ADDRESS LO + .DB 00H ; R14 CURSOR ADDRESS HI + .DB 00H ; R15 CURSOR ADDRESS LO +; +#ENDIF ; CCIR 625/50 VERSION (USED IN MOST OF THE WORLD) ; JUMPER K1 2-3, K2 1-2 FOR 2MHz CHAR CLOCK ;