|
|
|
@ -90,21 +90,7 @@ LCD_PREINIT: |
|
|
|
LD DE,LCD_STR_XPU |
|
|
|
CALL LCD_OUTDS |
|
|
|
; |
|
|
|
; "12.345 MHz" RIGHT JUSTIFIED |
|
|
|
LD HL,$010A ; ROW 2, COL 10 |
|
|
|
CALL LCD_GOTORC |
|
|
|
LD HL,(CB_CPUKHZ) |
|
|
|
PUSH HL |
|
|
|
LD BC,10000 ; 10 MHZ |
|
|
|
SBC HL,BC ; SUBTRACT |
|
|
|
JR NC,LCD_PREINIT1 |
|
|
|
LD A,' ' ; EXTRA PAD |
|
|
|
CALL LCD_OUTD |
|
|
|
LCD_PREINIT1: |
|
|
|
POP HL |
|
|
|
CALL LCD_PRTD3M ; PRINT AS DECIMAL WITH 3 DIGIT MANTISSA |
|
|
|
LD DE,LCD_STR_MHZ |
|
|
|
CALL LCD_OUTDS |
|
|
|
CALL LCD_EVT_CPUSPD |
|
|
|
; |
|
|
|
; THIRD LINE |
|
|
|
LD HL,$0200 ; ROW 2, COL 0 |
|
|
|
@ -228,7 +214,22 @@ LCD_EVENT: |
|
|
|
; CPU SPEED CHANGE |
|
|
|
; |
|
|
|
LCD_EVT_CPUSPD: |
|
|
|
XOR A |
|
|
|
; "12.345 MHz" RIGHT JUSTIFIED |
|
|
|
LD HL,$010A ; ROW 2, COL 10 |
|
|
|
CALL LCD_GOTORC |
|
|
|
LD HL,(CB_CPUKHZ) |
|
|
|
PUSH HL |
|
|
|
LD BC,10000 ; 10 MHZ |
|
|
|
SBC HL,BC ; SUBTRACT |
|
|
|
JR NC,LCD_PREINIT1 |
|
|
|
LD A,' ' ; EXTRA PAD |
|
|
|
CALL LCD_OUTD |
|
|
|
LCD_PREINIT1: |
|
|
|
POP HL |
|
|
|
CALL LCD_PRTD3M ; PRINT AS DECIMAL WITH 3 DIGIT MANTISSA |
|
|
|
LD DE,LCD_STR_MHZ |
|
|
|
CALL LCD_OUTDS |
|
|
|
; |
|
|
|
RET |
|
|
|
; |
|
|
|
; FORMAT: "Disk #99 R:12345678" |
|
|
|
@ -342,16 +343,23 @@ LCD_DELAY: |
|
|
|
CALL DELAY ; 16US |
|
|
|
JP DELAY ; 16US, TOTAL 48US |
|
|
|
; |
|
|
|
; DELAY USED DURING NORMAL I/O |
|
|
|
; REQUIRED FOR HIGH SPEED CPU OPERATION |
|
|
|
; |
|
|
|
#DEFINE LCD_XDELAY EX (SP),HL \ EX (SP),HL |
|
|
|
; |
|
|
|
; SEND FUNCTION CODE IN A |
|
|
|
; |
|
|
|
LCD_OUTF: |
|
|
|
PUSH AF ; SAVE CODE |
|
|
|
LCD_OUTF1: |
|
|
|
LCD_XDELAY |
|
|
|
EZ80_IO |
|
|
|
IN A,(LCD_STAT) ; GET STATUS |
|
|
|
AND $80 ; ISOLATE BUSY FLAG |
|
|
|
JR NZ,LCD_OUTF1 ; LOOP TILL NOT BUSY |
|
|
|
POP AF ; RECOVER CODE |
|
|
|
LCD_XDELAY |
|
|
|
EZ80_IO |
|
|
|
OUT (LCD_FUNC),A ; SEND IT |
|
|
|
RET ; DONE |
|
|
|
@ -372,11 +380,13 @@ LCD_OUTFS: |
|
|
|
LCD_OUTD: |
|
|
|
PUSH AF ; SAVE BYTE |
|
|
|
LCD_OUTD1: |
|
|
|
LCD_XDELAY |
|
|
|
EZ80_IO |
|
|
|
IN A,(LCD_STAT) ; GET STATUS |
|
|
|
AND $80 ; ISOLATE BUSY FLAG |
|
|
|
JR NZ,LCD_OUTD1 ; LOOP TILL NOT BUSY |
|
|
|
POP AF ; RECOVER BYTE |
|
|
|
LCD_XDELAY |
|
|
|
EZ80_IO |
|
|
|
OUT (LCD_DATA),A ; SEND IT |
|
|
|
RET ; DONE |
|
|
|
@ -408,11 +418,13 @@ LCD_OUTDS: |
|
|
|
; GET DATA BYTE INTO A |
|
|
|
; |
|
|
|
LCD_IND: |
|
|
|
LCD_XDELAY |
|
|
|
EZ80_IO |
|
|
|
IN A,(LCD_STAT) ; GET STATUS |
|
|
|
AND $80 ; ISOLATE BUSY FLAG |
|
|
|
JR NZ,LCD_IND ; LOOP TILL NOT BUSY |
|
|
|
POP AF ; RECOVER BYTE |
|
|
|
LCD_XDELAY |
|
|
|
EZ80_IO |
|
|
|
IN A,(LCD_DATA) ; GET IT |
|
|
|
RET ; DONE |
|
|
|
@ -483,10 +495,9 @@ LCD_INIT_SEQ: |
|
|
|
.DB $00 ; TERMINATOR |
|
|
|
; |
|
|
|
LCD_STR_BAN .DB "RomWBW v", BIOSVER, 0 |
|
|
|
LCD_STR_CFG .DB "Build: ", CONFIG, 0 |
|
|
|
LCD_STR_CFG .DB CONFIG, 0 |
|
|
|
LCD_STR_IO .DB "Disk #", 0 |
|
|
|
LCD_STR_XPU .DB " CPU",0 |
|
|
|
;;;LCD_STR_SPD .DB "12.345",0 |
|
|
|
LCD_STR_MHZ .DB " MHz",0 |
|
|
|
; |
|
|
|
LCD_CPU .DW LCD_CPU_Z80 |
|
|
|
@ -498,8 +509,8 @@ LCD_CPU .DW LCD_CPU_Z80 |
|
|
|
; |
|
|
|
LCD_CPU_Z80 .DB "Z80",0 |
|
|
|
LCD_CPU_Z180 .DB "Z180",0 |
|
|
|
LCD_CPU_Z180K .DB "Z180-K",0 |
|
|
|
LCD_CPU_Z180N .DB "Z180-N",0 |
|
|
|
LCD_CPU_Z180K .DB "Z180K",0 |
|
|
|
LCD_CPU_Z180N .DB "Z180N",0 |
|
|
|
LCD_CPU_Z280 .DB "Z280",0 |
|
|
|
LCD_CPU_EZ80 .DB "eZ80",0 |
|
|
|
; |
|
|
|
|