Browse Source

Update cvdu.asm

- Improves compatibility with high speed CPUs.
pull/491/head
Wayne Warthen 1 year ago
parent
commit
8a16b851ad
  1. 25
      Source/HBIOS/cvdu.asm

25
Source/HBIOS/cvdu.asm

@ -10,7 +10,6 @@
; - IMPLEMENT SET CURSOR STYLE (VDASCS) FUNCTION ; - IMPLEMENT SET CURSOR STYLE (VDASCS) FUNCTION
; - IMPLEMENT ALTERNATE DISPLAY MODES? ; - IMPLEMENT ALTERNATE DISPLAY MODES?
; - IMPLEMENT DYNAMIC READ/WRITE OF CHARACTER BITMAP DATA? ; - IMPLEMENT DYNAMIC READ/WRITE OF CHARACTER BITMAP DATA?
; - IMPLEMENT TIMEOUT ON PROBE
; ;
;====================================================================== ;======================================================================
; CVDU DRIVER - CONSTANTS ; CVDU DRIVER - CONSTANTS
@ -295,6 +294,16 @@ CVDU_WR:
PUSH AF ; SAVE VALUE TO WRITE PUSH AF ; SAVE VALUE TO WRITE
LD A,C ; SET A TO CVDU REGISTER TO SELECT LD A,C ; SET A TO CVDU REGISTER TO SELECT
OUT (CVDU_REG),A ; WRITE IT TO SELECT THE REGISTER OUT (CVDU_REG),A ; WRITE IT TO SELECT THE REGISTER
;
#IF (CPUMHZ > 8)
; FASTER CPUS NEED A SMALL DELAY BEFORE THEY CAN START
; POLLING THE CVDU STATUS. THIS IS NOT IDEAL BECAUSE THE
; CONDITIONAL IS BASED ON THE CPU CONFIG SPEED, NOT THE
; DYNAMIC CPU SPEED.
NOP
NOP
#ENDIF
;
CVDU_WR1: CVDU_WR1:
IN A,(CVDU_STAT) ; GET CVDU STATUS IN A,(CVDU_STAT) ; GET CVDU STATUS
BIT 7,A ; CHECK BIT 7 BIT 7,A ; CHECK BIT 7
@ -320,6 +329,16 @@ CVDU_WRX:
CVDU_RD: CVDU_RD:
LD A,C ; SET A TO CVDU REGISTER TO SELECT LD A,C ; SET A TO CVDU REGISTER TO SELECT
OUT (CVDU_REG),A ; WRITE IT TO SELECT THE REGISTER OUT (CVDU_REG),A ; WRITE IT TO SELECT THE REGISTER
;
#IF (CPUMHZ > 8)
; FASTER CPUS NEED A SMALL DELAY BEFORE THEY CAN START
; POLLING THE CVDU STATUS. THIS IS NOT IDEAL BECAUSE THE
; CONDITIONAL IS BASED ON THE CPU CONFIG SPEED, NOT THE
; DYNAMIC CPU SPEED.
NOP
NOP
#ENDIF
;
CVDU_RD1: CVDU_RD1:
IN A,(CVDU_STAT) ; GET CVDU STATUS IN A,(CVDU_STAT) ; GET CVDU STATUS
BIT 7,A ; CHECK BIT 7 BIT 7,A ; CHECK BIT 7
@ -350,13 +369,13 @@ CVDU_PROBE1:
LD A,(HL) ; BYTE LD A,(HL) ; BYTE
INC HL INC HL
OUT (C),A ; WRITE IT OUT (C),A ; WRITE IT
LD DE,25
LD DE,50
CALL VDELAY CALL VDELAY
DJNZ CVDU_PROBE1 DJNZ CVDU_PROBE1
; ;
IN A,(CVDU_DATA) IN A,(CVDU_DATA)
LD C,A LD C,A
LD DE,25
LD DE,50
CALL VDELAY CALL VDELAY
IN A,(CVDU_DATA) IN A,(CVDU_DATA)
CPL CPL

Loading…
Cancel
Save