Browse Source

DSKY Tweaks

pull/430/head v3.5.0-dev.86
Wayne Warthen 1 year ago
parent
commit
5239eed0e8
  1. 4
      Source/HBIOS/gm7303.asm
  2. 7
      Source/HBIOS/icm.asm
  3. 4
      Source/HBIOS/lcd.asm
  4. 14
      Source/HBIOS/pkd.asm
  5. 29
      Source/HBIOS/ppide.asm
  6. 2
      Source/ver.inc
  7. 2
      Source/ver.lib

4
Source/HBIOS/gm7303.asm

@ -340,10 +340,6 @@ GM7303_EVT_CPUSPD:
; 0123456789012345 ; 0123456789012345
; ;
GM7303_EVT_DSKACT: GM7303_EVT_DSKACT:
;
LD A,(GM7303_PRESENT) ; GET PRESENCE FLAG
OR A ; SET FLAGS
JR Z,GM7303_DSKACT_Z ; HANDLE NOT PRESENT
; ;
PUSH HL PUSH HL
LD HL,$0100 ; ROW 1, COL 0 LD HL,$0100 ; ROW 1, COL 0

7
Source/HBIOS/icm.asm

@ -49,9 +49,10 @@ ICM_COLS .EQU 8 ; DISPLAY COLUMNS
;__________________________________________________________________________________________________ ;__________________________________________________________________________________________________
; ;
ICM_PREINIT: ICM_PREINIT:
LD A,(DSKY_DISPACT) ; DSKY DISPATCHER ALREADY SET?
OR A ; SET FLAGS
RET NZ ; IF ALREADY ACTIVE, ABORT
;
; RESET PRESENCE FLAG
XOR A ; ASSUME NOT PRESENT
LD (ICM_PRESENT),A ; SAVE IT
; ;
OR $FF ; SIGNAL TO WAIT FOR KEY RELEASE OR $FF ; SIGNAL TO WAIT FOR KEY RELEASE
LD (ICM_KEYBUF),A ; SET IT LD (ICM_KEYBUF),A ; SET IT

4
Source/HBIOS/lcd.asm

@ -232,10 +232,6 @@ LCD_EVT_CPUSPD:
; 01234567890123456789 ; 01234567890123456789
; ;
LCD_EVT_DSKACT: LCD_EVT_DSKACT:
;
LD A,(LCD_PRESENT) ; GET PRESENCE FLAG
OR A ; SET FLAGS
RET Z ; HANDLE NOT PRESENT
; ;
LD HL,$0300 ; ROW 3, COL 0 LD HL,$0300 ; ROW 3, COL 0
CALL LCD_GOTORC ; SET DISPLAY ADDRESS CALL LCD_GOTORC ; SET DISPLAY ADDRESS

14
Source/HBIOS/pkd.asm

@ -87,9 +87,10 @@ PKD_PRESCL .EQU PKDOSC/100000 ; PRESCALER
; HARDWARE RESET 8279 BY PULSING RESET LINE ; HARDWARE RESET 8279 BY PULSING RESET LINE
; ;
PKD_PREINIT: PKD_PREINIT:
LD A,(DSKY_DISPACT) ; DSKY DISPATCHER ALREADY SET?
OR A ; SET FLAGS
RET NZ ; IF ALREADY ACTIVE, ABORT
;
; RESET PRESENCE FLAG
XOR A ; ASSUME NOT PRESENT
LD (PKD_PRESENT),A ; SAVE IT
; ;
; CHECK FOR PPI ; CHECK FOR PPI
CALL PKD_PPIDETECT ; TEST FOR PPI HARDWARE CALL PKD_PPIDETECT ; TEST FOR PPI HARDWARE
@ -247,9 +248,6 @@ PKD_RESET2:
; CHECK FOR KEY PRESS, SAVE RAW VALUE, RETURN STATUS ; CHECK FOR KEY PRESS, SAVE RAW VALUE, RETURN STATUS
; ;
PKD_STAT: PKD_STAT:
LD A,(PKD_PRESENT) ; DOES IT EXIST?
OR A ; SET FLAGS
RET Z ; ABORT WITH A=0 IF NOT THERE
CALL PKD_ST CALL PKD_ST
AND $0F ; ISOLATE THE CUR FIFO LEN AND $0F ; ISOLATE THE CUR FIFO LEN
RET RET
@ -257,9 +255,6 @@ PKD_STAT:
; WAIT FOR A DSKY KEYPRESS AND RETURN ; WAIT FOR A DSKY KEYPRESS AND RETURN
; ;
PKD_GETKEY: PKD_GETKEY:
LD A,(PKD_PRESENT) ; DOES IT EXIST?
OR A ; SET FLAGS
JR Z,PKD_GETKEY1A ; ABORT IF NOT PRESENT
CALL PKD_STAT CALL PKD_STAT
JR Z,PKD_GETKEY ; LOOP IF NOTHING THERE JR Z,PKD_GETKEY ; LOOP IF NOTHING THERE
LD A,PKD_CMD_FIFO LD A,PKD_CMD_FIFO
@ -278,7 +273,6 @@ PKD_GETKEY1:
INC C ; BUMP INDEX INC C ; BUMP INDEX
DJNZ PKD_GETKEY1 ; LOOP UNTIL EOT DJNZ PKD_GETKEY1 ; LOOP UNTIL EOT
POP AF ; FIX STACK POP AF ; FIX STACK
PKD_GETKEY1A:
LD A,$FF ; NOT FOUND ERR, RETURN $FF LD A,$FF ; NOT FOUND ERR, RETURN $FF
RET RET
PKD_GETKEY2: PKD_GETKEY2:

29
Source/HBIOS/ppide.asm

@ -1357,16 +1357,17 @@ PPIDE_RESET:
; THERE IS NO CHECK FOR THE SPECIFIC PPI PORT SINCE IT DOES NO HARM ; THERE IS NO CHECK FOR THE SPECIFIC PPI PORT SINCE IT DOES NO HARM
; IF THE DSKYNG IS SAVED AND RESTORED. ; IF THE DSKYNG IS SAVED AND RESTORED.
; ;
; THIS DOES NOT TEST THAT A DSKYNG IS ACTUALLY PRESENT
; AND OPERATING -- COULD CAUSE PROBLEMS
;
;;;#IF (DSKYENABLE) ;;;#IF (DSKYENABLE)
#IF (PKDENABLE) #IF (PKDENABLE)
; SAVE CONTENTS OF DSKYNG DISPLAY ACROSS RESET ; SAVE CONTENTS OF DSKYNG DISPLAY ACROSS RESET
LD B,8
LD C,0
LD HL,PKD_BUF
CALL PKD_GETSTR
LD A,(PKD_PRESENT) ; GET PKD PRESENCE FLAG
OR A ; TEST FOR ZERO
JR Z,PPIDE_RESET_PKD1 ; IF ZERO, NOT THERE, BYPASS
LD B,8 ; LENGTH
LD C,0 ; START
LD HL,PKD_BUF ; BUFFER
CALL PKD_GETSTR ; GET CURRENT DISPLAY TO BUF
PPIDE_RESET_PKD1:
#ENDIF #ENDIF
;;;#ENDIF ;;;#ENDIF
; ;
@ -1391,11 +1392,15 @@ PPIDE_RESET:
;;;#IF (DSKYENABLE) ;;;#IF (DSKYENABLE)
#IF (PKDENABLE) #IF (PKDENABLE)
; REININT DSKYNG AND RESTORE CONTENTS ; REININT DSKYNG AND RESTORE CONTENTS
CALL PKD_REINIT
LD B,8
LD C,0
LD HL,PKD_BUF
CALL PKD_PUTSTR
LD A,(PKD_PRESENT) ; GET PKD PRESENCE FLAG
OR A ; TEST FOR ZERO
JR Z,PPIDE_RESET_PKD2 ; IF ZERO, NOT THERE, BYPASS
CALL PKD_REINIT ; REINIT PKD
LD B,8 ; LENGTH
LD C,0 ; START
LD HL,PKD_BUF ; BUFFER
CALL PKD_PUTSTR ; RESTORE DISPLAY CONTENTS
PPIDE_RESET_PKD2:
#ENDIF #ENDIF
;;;#ENDIF ;;;#ENDIF
; ;

2
Source/ver.inc

@ -2,7 +2,7 @@
#DEFINE RMN 5 #DEFINE RMN 5
#DEFINE RUP 0 #DEFINE RUP 0
#DEFINE RTP 0 #DEFINE RTP 0
#DEFINE BIOSVER "3.5.0-dev.85"
#DEFINE BIOSVER "3.5.0-dev.86"
#define rmj RMJ #define rmj RMJ
#define rmn RMN #define rmn RMN
#define rup RUP #define rup RUP

2
Source/ver.lib

@ -3,5 +3,5 @@ rmn equ 5
rup equ 0 rup equ 0
rtp equ 0 rtp equ 0
biosver macro biosver macro
db "3.5.0-dev.85"
db "3.5.0-dev.86"
endm endm

Loading…
Cancel
Save