Browse Source

VDU Driver Enhancements

VDU driver enhanced to support alternate screen simensions, provided by Phil Summers
pull/26/head
Wayne Warthen 7 years ago
parent
commit
20c291dea2
  1. 6
      Doc/ChangeLog.txt
  2. 2
      ReadMe.txt
  3. 2
      Source/CBIOS/ver.inc
  4. 2
      Source/HBIOS/Config/SBC_std.asm
  5. 6
      Source/HBIOS/cfg_sbc.asm
  6. 20
      Source/HBIOS/std.asm
  7. 136
      Source/HBIOS/vdu.asm
  8. 2
      Source/HBIOS/ver.inc

6
Doc/ChangeLog.txt

@ -13,15 +13,17 @@ Version 2.9.1
- WBW: Preliminary support for RC180 platform (Z180 module in RC2014) - WBW: Preliminary support for RC180 platform (Z180 module in RC2014)
- WBW: Added NZCOM distribution files to third slice of hard disk image - WBW: Added NZCOM distribution files to third slice of hard disk image
- WBW: Fixed getnum32 bug in MODE command (found by Phil Summers) - WBW: Fixed getnum32 bug in MODE command (found by Phil Summers)
- P?S: Added serial support for Zilog Peripherals Baord
- PMS: Added serial support for Zilog Peripherals Baord
- WBW: Added preliminary support for interrupt management API - WBW: Added preliminary support for interrupt management API
- PMS: Improved boot messages in RAM-Floppy driver - PMS: Improved boot messages in RAM-Floppy driver
- PMS: Added charge setting display to RTC boot messages - PMS: Added charge setting display to RTC boot messages
- WBW: Add SmallZ80 support to FDU - WBW: Add SmallZ80 support to FDU
- WBW: Refactored Debug Monitor w/ improved syntax parsing and help - WBW: Refactored Debug Monitor w/ improved syntax parsing and help
- PMS: Added Forth, Nascom BASIC, and Tasty BASIC to ROM - PMS: Added Forth, Nascom BASIC, and Tasty BASIC to ROM
- PMS: Refactored Rom Loader to support more ROM images, now table driven
- PMS: Refactored ROM Loader to support more ROM images, now table driven
- WBW: Refactored DSKY code - WBW: Refactored DSKY code
- S?K: Initial support for Easy Z80
- PMS: Enhance VDU driver to support alternative screen dimensions
Version 2.9.0 Version 2.9.0
------------- -------------

2
ReadMe.txt

@ -7,7 +7,7 @@
*********************************************************************** ***********************************************************************
Wayne Warthen (wwarthen@gmail.com) Wayne Warthen (wwarthen@gmail.com)
Version 2.9.1-pre.9, 2019-02-19
Version 2.9.1-pre.11, 2019-03-05
https://www.retrobrewcomputers.org/ https://www.retrobrewcomputers.org/
RomWBW is a ROM-based implementation of CP/M-80 2.2 and Z-System for RomWBW is a ROM-based implementation of CP/M-80 2.2 and Z-System for

2
Source/CBIOS/ver.inc

@ -2,4 +2,4 @@
#DEFINE RMN 9 #DEFINE RMN 9
#DEFINE RUP 1 #DEFINE RUP 1
#DEFINE RTP 0 #DEFINE RTP 0
#DEFINE BIOSVER "2.9.1-pre.10"
#DEFINE BIOSVER "2.9.1-pre.11"

2
Source/HBIOS/Config/SBC_std.asm

@ -22,5 +22,7 @@ PRPENABLE .SET TRUE ; TRUE FOR PROPIO BOARD SUPPORT (VIDEO, KBD, & SD CARD)
VGAENABLE .SET TRUE ; TRUE FOR VGA BOARD VIDEO & KBD SUPPORT VGAENABLE .SET TRUE ; TRUE FOR VGA BOARD VIDEO & KBD SUPPORT
CVDUENABLE .SET TRUE ; TRUE FOR CVDU BOARD VIDEO & KBD SUPPORT CVDUENABLE .SET TRUE ; TRUE FOR CVDU BOARD VIDEO & KBD SUPPORT
VDUENABLE .SET FALSE ; TRUE FOR VDU BOARD VIDEO & KBD SUPPORT VDUENABLE .SET FALSE ; TRUE FOR VDU BOARD VIDEO & KBD SUPPORT
VDUSIZ .SET V80X24 ; DEFAULT VDU FORMAT IF ACTIVE
;
; ;
CRTACT .SET TRUE ; TRUE TO ACTIVATE CRT AT STARTUP (BOOT ON CRT) CRTACT .SET TRUE ; TRUE TO ACTIVATE CRT AT STARTUP (BOOT ON CRT)

6
Source/HBIOS/cfg_sbc.asm

@ -39,6 +39,7 @@ CVDUENABLE .EQU FALSE ; TRUE FOR CVDU BOARD SUPPORT
NECENABLE .EQU FALSE ; TRUE FOR uPD7220 BOARD SUPPORT NECENABLE .EQU FALSE ; TRUE FOR uPD7220 BOARD SUPPORT
TMSENABLE .EQU FALSE ; TRUE FOR N8 (TMS9918) VIDEO/KBD SUPPORT TMSENABLE .EQU FALSE ; TRUE FOR N8 (TMS9918) VIDEO/KBD SUPPORT
VGAENABLE .EQU FALSE ; TRUE FOR VGA VIDEO/KBD SUPPORT VGAENABLE .EQU FALSE ; TRUE FOR VGA VIDEO/KBD SUPPORT
VDUSIZ .EQU V80X25 ; VDU DISPLAY FORMAT V80X24, V80X25, V80X30
; ;
SPKENABLE .EQU FALSE ; TRUE FOR RTC LATCH IOBIT SOUND SPKENABLE .EQU FALSE ; TRUE FOR RTC LATCH IOBIT SOUND
AYENABLE .EQU FALSE ; TRUE FOR AY PSG SOUND AYENABLE .EQU FALSE ; TRUE FOR AY PSG SOUND
@ -94,5 +95,6 @@ BOOTTYPE .EQU BT_MENU ; BT_MENU (WAIT FOR KEYPRESS), BT_AUTO (BOOT_DEFAULT AFTE
BOOT_TIMEOUT .EQU 20 ; APPROX TIMEOUT IN SECONDS FOR AUTOBOOT, 0 FOR IMMEDIATE BOOT_TIMEOUT .EQU 20 ; APPROX TIMEOUT IN SECONDS FOR AUTOBOOT, 0 FOR IMMEDIATE
BOOT_DEFAULT .EQU 'Z' ; SELECTION TO INVOKE AT TIMEOUT BOOT_DEFAULT .EQU 'Z' ; SELECTION TO INVOKE AT TIMEOUT
PIOENABLE .EQU FALSE ; TRUE FOR ZILOG PIO SUPPORT
PIOMODE .EQU PIOMODE_ZP ; PIOMODE_ZP=ECB-ZILOG PERIPHERALS BOARD PIOMODE_4P=ECB-4PIO
PIO_4P .EQU FALSE ; TRUE FOR ECB-4PIO PIO SUPPORT
PIO_ZP .EQU FALSE ; TRUE FOR ECB-ZILOG PERIPHERALS BOARD
PPI_SBC .EQU FALSE ; TRUE FOR SBC V2 8255 (IF NOT BEING USED FOR PPIDE)

20
Source/HBIOS/std.asm

@ -80,16 +80,10 @@ SIOMODE_SMB .EQU 2 ; RC2014 SIO MODULE (SCOTT BAKER)
SIOMODE_ZP .EQU 3 ; ECB-ZILOG PERIPHERALS BOARD SIOMODE_ZP .EQU 3 ; ECB-ZILOG PERIPHERALS BOARD
SIOMODE_EZZ80 .EQU 4 ; EASY Z80 ON-BOARD SIO/0 SIOMODE_EZZ80 .EQU 4 ; EASY Z80 ON-BOARD SIO/0
; ;
; PIO MODE SELECTIONS
;
PIOMODE_NONE .EQU 0
PIOMODE_4P .EQU 1 ; ECB-4PIO BOARD
PIOMODE_ZP .EQU 2 ; ECB-ZILOG PERIPHERALS BOARD
;
; TYPE OF CONSOLE BELL TO USE ; TYPE OF CONSOLE BELL TO USE
; ;
CONBELL_NONE .EQU 0 CONBELL_NONE .EQU 0
CONBELL_PSG .EQU 1
CONBELL_PSG .EQU 1
CONBELL_IOBIT .EQU 2 CONBELL_IOBIT .EQU 2
; ;
; FD MODE SELECTIONS ; FD MODE SELECTIONS
@ -222,7 +216,13 @@ SER_460800_8N1 .EQU SER_BAUD460800 | SER_DATA8 | SER_PARNONE | SER_STOP1
SER_921600_8N1 .EQU SER_BAUD921600 | SER_DATA8 | SER_PARNONE | SER_STOP1 SER_921600_8N1 .EQU SER_BAUD921600 | SER_DATA8 | SER_PARNONE | SER_STOP1
SER_1843200_8N1 .EQU SER_BAUD1843200 | SER_DATA8 | SER_PARNONE | SER_STOP1 SER_1843200_8N1 .EQU SER_BAUD1843200 | SER_DATA8 | SER_PARNONE | SER_STOP1
SER_3686400_8N1 .EQU SER_BAUD3686400 | SER_DATA8 | SER_PARNONE | SER_STOP1 SER_3686400_8N1 .EQU SER_BAUD3686400 | SER_DATA8 | SER_PARNONE | SER_STOP1
SER_7372800_8N1 .EQU SER_BAUD7372800 | SER_DATA8 | SER_PARNONE | SER_STOP1
SER_7372800_8N1 .EQU SER_BAUD7372800 | SER_DATA8 | SER_PARNONE | SER_STOP1
;
; ECB-VDU MODES
;
V80X24 .EQU 0
V80X25 .EQU 1
V80X30 .EQU 2
; ;
; INTERRUPT VECTOR TABLE ENTRY OFFSETS (Z180 COMPATIBLE) ; INTERRUPT VECTOR TABLE ENTRY OFFSETS (Z180 COMPATIBLE)
; ;
@ -235,6 +235,10 @@ IVT_DMA1 .EQU 10
IVT_CSIO .EQU 12 IVT_CSIO .EQU 12
IVT_SER0 .EQU 14 IVT_SER0 .EQU 14
IVT_SER1 .EQU 16 IVT_SER1 .EQU 16
IVT_PIO0 .EQU 18
IVT_PIO1 .EQU 20
IVT_PIO2 .EQU 22
IVT_PIO3 .EQU 24
; ;
#INCLUDE "build.inc" ; INCLUDE USER CONFIG, ADD VARIANT, TIMESTAMP, & ROMSIZE #INCLUDE "build.inc" ; INCLUDE USER CONFIG, ADD VARIANT, TIMESTAMP, & ROMSIZE
; ;

136
Source/HBIOS/vdu.asm

@ -1,15 +1,19 @@
;====================================================================== ;======================================================================
; VDU DRIVER FOR SBC PROJECT
; VDU DRIVER FOR ECB-VDU PROJECT
; ;
; ORIGINALLY WRITTEN BY: ANDREW LYNCH ; ORIGINALLY WRITTEN BY: ANDREW LYNCH
; REVISED/ENHANCED BY DAN WERNER -- 11/7/2009 ; REVISED/ENHANCED BY DAN WERNER -- 11/7/2009
; ROMWBW ADAPTATION BY: WAYNE WARTHEN -- 11/9/2012 ; ROMWBW ADAPTATION BY: WAYNE WARTHEN -- 11/9/2012
; 80X25, 80X30 AND MODE INFO AT BOOT ADDED BY: PHIL SUMMERS -- 2/3/2019
;====================================================================== ;======================================================================
; ;
; VDU-DW.ZIP IS THE DEFAULY 10X8 FONT THAT SUITS 80X25 AND 80X26 MODE.
; IN 80X30 MODE THE DESCENDERS ARE MISSING. AN ALTERNATE 8x8 FONT MAY
; DISPLAY BETTER. THIS CAN BE ADDED TO THE ECB-VDU FONT EPROM AND
; SELECTED VIA ONBOARD JUMPERS.THE FONT ROM CAN CONTAIN EIGHT 2Kb FONTS.
;
; TODO: ; TODO:
; - ADD REMAINING REGISTERS TO INIT ; - ADD REMAINING REGISTERS TO INIT
; - TRY 25 ROW MODE?
; - IMPLEMENT CONSTANTS FOR SCREEN DIMENSIONS
; - IMPLEMENT SET CURSOR STYLE (VDASCS) FUNCTION ; - IMPLEMENT SET CURSOR STYLE (VDASCS) FUNCTION
; - IMPLEMENT ALTERNATE DISPLAY MODES? ; - IMPLEMENT ALTERNATE DISPLAY MODES?
; ;
@ -30,6 +34,22 @@ VDU_PPIC .EQU VDU_BASE + $06 ; PPI PORT C
VDU_PPIX .EQU VDU_BASE + $07 ; PPI CONTROL PORT VDU_PPIX .EQU VDU_BASE + $07 ; PPI CONTROL PORT
; ;
TERMENABLE .SET TRUE ; INCLUDE TERMINAL PSEUDODEVICE DRIVER TERMENABLE .SET TRUE ; INCLUDE TERMINAL PSEUDODEVICE DRIVER
#IF (VDUSIZ=V80X24)
DLINES .EQU 24
DROWS .EQU 80
DSCANL .EQU 10
#ENDIF
#IF (VDUSIZ=V80X25)
DLINES .EQU 25
DROWS .EQU 80
DSCANL .EQU 10
#ENDIF
#IF (VDUSIZ=V80X30)
DLINES .EQU 30
DROWS .EQU 80
DSCANL .EQU 8
#ENDIF
; ;
;====================================================================== ;======================================================================
; VDU DRIVER - INITIALIZATION ; VDU DRIVER - INITIALIZATION
@ -42,6 +62,14 @@ VDU_INIT:
PRTS("VDU: IO=0x$") PRTS("VDU: IO=0x$")
LD A,VDU_RAMRD LD A,VDU_RAMRD
CALL PRTHEXBYTE CALL PRTHEXBYTE
PRTS(" MODE= $") ; OUTPUT DISPLAY FORMAT
LD A,DROWS
CALL PRTDECB
PRTS("X$")
LD A,DLINES
CALL PRTDECB
CALL VDU_PROBE ; CHECK FOR HW EXISTENCE CALL VDU_PROBE ; CHECK FOR HW EXISTENCE
JR Z,VDU_INIT1 ; CONTINUE IF HW PRESENT JR Z,VDU_INIT1 ; CONTINUE IF HW PRESENT
; ;
@ -101,10 +129,10 @@ VDU_VDAINI:
RET RET
VDU_VDAQRY: VDU_VDAQRY:
LD C,$00 ; MODE ZERO IS ALL WE KNOW
LD DE,$1850 ; 24 ROWS ($18), 80 COLS ($50)
LD HL,0 ; EXTRACTION OF CURRENT BITMAP DATA NOT SUPPORTED
XOR A ; SIGNAL SUCCESS
LD C,$00 ; MODE ZERO IS ALL WE KNOW
LD DE,(DLINES*256)+DROWS ; D=DLINES, E=DROWS
LD HL,0 ; EXTRACTION OF CURRENT BITMAP DATA NOT SUPPORTED
XOR A ; SIGNAL SUCCESS
RET RET
VDU_VDARES: VDU_VDARES:
@ -281,7 +309,7 @@ VDU_CRTINIT1:
VDU_XY2IDX: VDU_XY2IDX:
LD A,E ; SAVE COLUMN NUMBER IN A LD A,E ; SAVE COLUMN NUMBER IN A
LD H,D ; SET H TO ROW NUMBER LD H,D ; SET H TO ROW NUMBER
LD E,80 ; SET E TO ROW LENGTH
LD E,DROWS ; SET E TO ROW LENGTH
CALL MULT8 ; MULTIPLY TO GET ROW OFFSET CALL MULT8 ; MULTIPLY TO GET ROW OFFSET
LD E,A ; GET COLUMN BACK LD E,A ; GET COLUMN BACK
ADD HL,DE ; ADD IT IN ADD HL,DE ; ADD IT IN
@ -294,7 +322,7 @@ VDU_XY2IDX:
VDU_XY: VDU_XY:
LD A,E ; SAVE COLUMN NUMBER IN A LD A,E ; SAVE COLUMN NUMBER IN A
LD H,D ; SET H TO ROW NUMBER LD H,D ; SET H TO ROW NUMBER
LD E,80 ; SET E TO ROW LENGTH
LD E,DROWS ; SET E TO ROW LENGTH
CALL MULT8 ; MULTIPLY TO GET ROW OFFSET CALL MULT8 ; MULTIPLY TO GET ROW OFFSET
LD E,A ; GET COLUMN BACK LD E,A ; GET COLUMN BACK
ADD HL,DE ; ADD IT IN ADD HL,DE ; ADD IT IN
@ -317,7 +345,7 @@ VDU_PUTCHAR:
ADD HL,DE ADD HL,DE
INC DE ; INC INC DE ; INC
LD (VDU_POS),DE ; SAVE NEW SCREEN POSITION 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 CALL VDU_WRREGX ; DO IT
INC HL ; NEW CURSOR POSITION INC HL ; NEW CURSOR POSITION
LD C,14 ; CURSOR POSITION REGISTER PAIR LD C,14 ; CURSOR POSITION REGISTER PAIR
@ -428,7 +456,7 @@ VDU_BLKCPY2: ; BUFFER -> VIDEO RAM COPY LOOP
VDU_SCROLL: VDU_SCROLL:
; SCROLL FORWARD BY ADDING ONE ROW TO DISPLAY START ADDRESS ; SCROLL FORWARD BY ADDING ONE ROW TO DISPLAY START ADDRESS
LD HL,(VDU_OFFSET) LD HL,(VDU_OFFSET)
LD DE,80
LD DE,DROWS
ADD HL,DE ADD HL,DE
LD (VDU_OFFSET),HL LD (VDU_OFFSET),HL
LD C,12 LD C,12
@ -437,9 +465,9 @@ VDU_SCROLL:
; FILL EXPOSED LINE ; FILL EXPOSED LINE
LD HL,(VDU_POS) LD HL,(VDU_POS)
PUSH HL PUSH HL
LD HL,23*80
LD HL,(DLINES-1)*DROWS
LD (VDU_POS),HL LD (VDU_POS),HL
LD DE,80
LD DE,DROWS
LD A,' ' LD A,' '
CALL VDU_FILL CALL VDU_FILL
POP HL POP HL
@ -459,7 +487,7 @@ VDU_SCROLL:
VDU_RSCROLL: VDU_RSCROLL:
; SCROLL BACKWARD BY SUBTRACTING ONE ROW FROM DISPLAY START ADDRESS ; SCROLL BACKWARD BY SUBTRACTING ONE ROW FROM DISPLAY START ADDRESS
LD HL,(VDU_OFFSET) LD HL,(VDU_OFFSET)
LD DE,-80
LD DE,-DROWS
ADD HL,DE ADD HL,DE
LD (VDU_OFFSET),HL LD (VDU_OFFSET),HL
LD C,12 LD C,12
@ -470,7 +498,7 @@ VDU_RSCROLL:
PUSH HL PUSH HL
LD HL,0 LD HL,0
LD (VDU_POS),HL LD (VDU_POS),HL
LD DE,80
LD DE,DROWS
LD A,' ' LD A,' '
CALL VDU_FILL CALL VDU_FILL
POP HL POP HL
@ -491,22 +519,20 @@ VDU_POS .DW 0 ; CURRENT DISPLAY POSITION
VDU_OFFSET .DW 0 ; CURRENT DISPLAY POSITION VDU_OFFSET .DW 0 ; CURRENT DISPLAY POSITION
VDU_BUF .FILL 256,0 ; COPY BUFFER VDU_BUF .FILL 256,0 ; COPY BUFFER
; ;
#IF (VDUSIZ=V80X24)
;================================================================================================== ;==================================================================================================
; VDU DRIVER - SY6845 REGISTER INITIALIZATION
; VDU DRIVER - SY6845 REGISTER INITIALIZATION -80x24 10x8
;================================================================================================== ;==================================================================================================
; ;
VDU_INIT6845: VDU_INIT6845:
; DB 07FH, 50H, 60H, 7CH, 19H, 1FH, 19H, 1AH, 78H, 09H, 60H, 09H, 00H, 00H, 00H, 00H
;
; CCIR 625/50 VERSION (USED IN MOST OF THE WORLD)
; JUMPER K1 2-3, K2 1-2 FOR 2MHz CHAR CLOCK
.DB 07FH ; R0 TOTAL NUMBER OF HORIZONTAL CHARACTERS (DETERMINES HSYNC) .DB 07FH ; R0 TOTAL NUMBER OF HORIZONTAL CHARACTERS (DETERMINES HSYNC)
.DB 050H ; R1 NUMBER OF HORIZONTAL CHARACTERS DISPLAYED (80 COLUMNS)
.DB DROWS ; R1 NUMBER OF HORIZONTAL CHARACTERS DISPLAYED (80 COLUMNS)
.DB 060H ; R2 HORIZONTAL SYNC POSITION .DB 060H ; R2 HORIZONTAL SYNC POSITION
.DB 00CH ; R3 SYNC WIDTHS .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 -1)
.DB 002H ; R5 VERTICAL TOTAL ADJUST ( .DB 002H ; R5 VERTICAL TOTAL ADJUST (
.DB 018H ; R6 VERTICAL DISPLAYED (24 ROWS)
.DB DLINES ; R6 VERTICAL DISPLAYED (24 ROWS)
.DB 01AH ; R7 VERTICAL SYNC .DB 01AH ; R7 VERTICAL SYNC
.DB 078H ; R8 MODE B7=0 TRANSPARENT UPDATE DURING BLANKING .DB 078H ; R8 MODE B7=0 TRANSPARENT UPDATE DURING BLANKING
; B6=1 PIN 34 IS UPDATE STROBE ; B6=1 PIN 34 IS UPDATE STROBE
@ -515,14 +541,76 @@ VDU_INIT6845:
; B3=1 TRANSPARENT MEMORY ADDRESSING ; B3=1 TRANSPARENT MEMORY ADDRESSING
; B2=0 RAM STRAIGHT BINARY ADDRESSING ; B2=0 RAM STRAIGHT BINARY ADDRESSING
; B1,B0=0 NON-INTERLACE ; B1,B0=0 NON-INTERLACE
.DB 009H ; R9 SCAN LINE (LINES PER CHAR AND SPACING -1)
.DB DSCANL-1 ; R9 SCAN LINE (LINES PER CHAR AND SPACING -1)
.DB 060H ; R10 CURSOR START RASTER .DB 060H ; R10 CURSOR START RASTER
.DB 009H ; R11 CURSOR END RASTER
.DB DSCANL-1 ; R11 CURSOR END RASTER
.DB 00H ; R12 START ADDRESS HI .DB 00H ; R12 START ADDRESS HI
.DB 00H ; R13 START ADDRESS LO .DB 00H ; R13 START ADDRESS LO
.DB 00H ; R14 CURSOR ADDRESS HI .DB 00H ; R14 CURSOR ADDRESS HI
.DB 00H ; R15 CURSOR ADDRESS LO .DB 00H ; R15 CURSOR ADDRESS LO
; ;
#ENDIF
#IF (VDUSIZ=V80X25)
;==================================================================================================
; VDU DRIVER - SY6845 REGISTER INITIALIZATION -80x25 10x8
;==================================================================================================
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 01EH ; R4 VERTICAL TOTAL (TOTAL CHARS IN A FRAME -1)
.DB 002H ; R5 VERTICAL TOTAL ADJUST (
.DB DLINES ; R6 VERTICAL DISPLAYED (25 ROWS)
.DB 01BH ; R7 VERTICAL SYNC
.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=V80X30)
;==================================================================================================
; VDU DRIVER - SY6845 REGISTER INITIALIZATION -80x30 8x8
;==================================================================================================
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 26H ; R4 VERTICAL TOTAL (TOTAL CHARS IN A FRAME -1) (39-1)
.DB 00H ; R5 VERTICAL TOTAL ADJUST (
.DB DLINES ; R6 VERTICAL DISPLAYED (30 ROWS)
.DB 22H ; R7 VERTICAL SYNC
.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
;
; 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. ; 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 ; HORIZONTAL LINE WIDTH IS 64uS. FOR A 2 MHz CHARACTER CLOCK (R0+1)/2000000 = 64uS

2
Source/HBIOS/ver.inc

@ -2,4 +2,4 @@
#DEFINE RMN 9 #DEFINE RMN 9
#DEFINE RUP 1 #DEFINE RUP 1
#DEFINE RTP 0 #DEFINE RTP 0
#DEFINE BIOSVER "2.9.1-pre.10"
#DEFINE BIOSVER "2.9.1-pre.11"

Loading…
Cancel
Save