Browse Source

Merge pull request #25 from b1ackmai1er/master

SIO & VDU updates
pull/26/head
Wayne Warthen 7 years ago
committed by GitHub
parent
commit
a6cc5c0986
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 5
      Source/HBIOS/siobaud.inc
  2. 2
      Source/HBIOS/std.asm
  3. 77
      Source/HBIOS/vdu.asm

5
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

2
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)
;

77
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
;

Loading…
Cancel
Save