Browse Source

DSKY Disk Activity Cleanup

- The DSKY(ng) can display disk I/O activity as the system runs.  This capability was implemented very erratically.  This update overhauls the mechanism, makes it consistent, and implements it across all disk drivers.
pull/212/head
Wayne Warthen 5 years ago
parent
commit
e60bf088c9
  1. 1
      Doc/ChangeLog.txt
  2. 6
      Readme.unix
  3. 1
      Source/HBIOS/Build.ps1
  4. 36
      Source/HBIOS/Config/MBC_ddw.asm
  5. BIN
      Source/HBIOS/MBC_ddw.upd
  6. 8
      Source/HBIOS/cfg_n8.asm
  7. 47
      Source/HBIOS/fd.asm
  8. 83
      Source/HBIOS/hbios.asm
  9. 8
      Source/HBIOS/hdsk.asm
  10. 62
      Source/HBIOS/ide.asm
  11. 7
      Source/HBIOS/md.asm
  12. 60
      Source/HBIOS/ppide.asm
  13. 3
      Source/HBIOS/ppp.asm
  14. 3
      Source/HBIOS/prp.asm
  15. 11
      Source/HBIOS/rf.asm
  16. 59
      Source/HBIOS/sd.asm
  17. BIN
      Source/ZRC/hd1024_zrc_prefix.dat
  18. 8197
      Source/ZZR/RCZ280_nat_zzr.hex
  19. BIN
      Source/ZZR/hd1024_zzr_prefix.dat
  20. 2
      Source/ver.inc
  21. 2
      Source/ver.lib

1
Doc/ChangeLog.txt

@ -41,6 +41,7 @@ Version 3.1.1
- WBW: Added support for MBC user LEDs - WBW: Added support for MBC user LEDs
- PMS: Early DMA support - PMS: Early DMA support
- W?S: Updated FLASH software to v1.3.5 (supports 128KB A29010B, 512KB A29040B) - W?S: Updated FLASH software to v1.3.5 (supports 128KB A29010B, 512KB A29040B)
- DDW: Support for DSKYng capabitlities
Version 3.1 Version 3.1
----------- -----------

6
Readme.unix

@ -17,7 +17,11 @@ with respect to the .DS directive. it's usually a bad idea to mix
output point. It works a lot more like M80, SLR* .PHASE output point. It works a lot more like M80, SLR* .PHASE
It assumes that you have some standard system tools and libraries It assumes that you have some standard system tools and libraries
installed specifically: gcc, gnu make, libncurses, srecord
installed, specifically: gcc, gnu make, libncurses, and srecord.
Typically, something like this will take care of adding all
required packages:
sudo apt install build-essential libncurses-dev srecord
To build: To build:
cd to the top directory and type "make". cd to the top directory and type "make".

1
Source/HBIOS/Build.ps1

@ -183,6 +183,7 @@ if ($Platform -ne "UNA")
Asm 'tastybasic' Asm 'tastybasic'
Asm 'game' Asm 'game'
Asm 'usrrom' Asm 'usrrom'
Asm 'updater'
Asm 'imgpad2' Asm 'imgpad2'
} }

36
Source/HBIOS/Config/MBC_ddw.asm

@ -1,36 +0,0 @@
;
;==================================================================================================
; MBC CONFIGURATION
;==================================================================================================
;
; THE COMPLETE SET OF DEFAULT CONFIGURATION SETTINGS FOR THIS PLATFORM ARE FOUND IN THE
; CFG_<PLT>.ASM INCLUDED FILE WHICH IS FOUND IN THE PARENT DIRECTORY. THIS FILE CONTAINS
; COMMON CONFIGURATION SETTINGS THAT OVERRIDE THE DEFAULTS. IT IS INTENDED THAT YOU MAKE
; YOUR CUSTOMIZATIONS IN THIS FILE AND JUST INHERIT ALL OTHER SETTINGS FROM THE DEFAULTS.
; EVEN BETTER, YOU CAN MAKE A COPY OF THIS FILE WITH A NAME LIKE <PLT>_XXX.ASM AND SPECIFY
; YOUR FILE IN THE BUILD PROCESS.
;
; THE SETTINGS BELOW ARE THE SETTINGS THAT ARE MOST COMMONLY MODIFIED FOR THIS PLATFORM.
; MANY OF THEM ARE EQUAL TO THE SETTINGS IN THE INCLUDED FILE, SO THEY DON'T REALLY DO
; ANYTHING AS IS. THEY ARE LISTED HERE TO MAKE IT EASY FOR YOU TO ADJUST THE MOST COMMON
; SETTINGS.
;
; N.B., SINCE THE SETTINGS BELOW ARE REDEFINING VALUES ALREADY SET IN THE INCLUDED FILE,
; TASM INSISTS THAT YOU USE THE .SET OPERATOR AND NOT THE .EQU OPERATOR BELOW. ATTEMPTING
; TO REDEFINE A VALUE WITH .EQU BELOW WILL CAUSE TASM ERRORS!
;
; PLEASE REFER TO THE CUSTOM BUILD INSTRUCTIONS (README.TXT) IN THE SOURCE DIRECTORY (TWO
; DIRECTORIES ABOVE THIS ONE).
;
#DEFINE PLATFORM_NAME "Multi Board Computer"
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
;
#include "cfg_mbc.asm"
;
BATCOND .SET FALSE
;
PPIDEENABLE .SET TRUE ; PPIDE: ENABLE PARALLEL PORT IDE DISK DRIVER (PPIDE.ASM)
;
DSKYENABLE .SET TRUE ; ENABLES DSKY
DSKYMODE .SET DSKYMODE_NG ; DSKY VERTSION: DSKYMODE_[V1|NG]
DSKYOSC .SET 100000

BIN
Source/HBIOS/MBC_ddw.upd

Binary file not shown.

8
Source/HBIOS/cfg_n8.asm

@ -74,7 +74,7 @@ LEDDISKIO .EQU TRUE ; ENABLES DISK I/O ACTIVITY ON STATUS LED
; ;
DSKYENABLE .EQU FALSE ; ENABLES DSKY DSKYENABLE .EQU FALSE ; ENABLES DSKY
DSKYMODE .EQU DSKYMODE_V1 ; DSKY VERSION: DSKYMODE_[V1|NG] DSKYMODE .EQU DSKYMODE_V1 ; DSKY VERSION: DSKYMODE_[V1|NG]
DSKYPPIBASE .EQU $60 ; BASE I/O ADDRESS OF DSKY PPI
DSKYPPIBASE .EQU N8_PPI0 ; BASE I/O ADDRESS OF DSKY PPI
DSKYOSC .EQU 3000000 ; OSCILLATOR FREQ FOR DSKYNG (IN HZ) DSKYOSC .EQU 3000000 ; OSCILLATOR FREQ FOR DSKYNG (IN HZ)
; ;
BOOTCON .EQU 0 ; BOOT CONSOLE DEVICE BOOTCON .EQU 0 ; BOOT CONSOLE DEVICE
@ -183,7 +183,7 @@ IDE2B8BIT .EQU TRUE ; IDE 2B (MASTER): 8 BIT XFER
PPIDEENABLE .EQU FALSE ; PPIDE: ENABLE PARALLEL PORT IDE DISK DRIVER (PPIDE.ASM) PPIDEENABLE .EQU FALSE ; PPIDE: ENABLE PARALLEL PORT IDE DISK DRIVER (PPIDE.ASM)
PPIDETRACE .EQU 1 ; PPIDE: TRACE LEVEL (0=NO,1=ERRORS,2=ALL) PPIDETRACE .EQU 1 ; PPIDE: TRACE LEVEL (0=NO,1=ERRORS,2=ALL)
PPIDECNT .EQU 1 ; PPIDE: NUMBER OF PPI CHIPS TO DETECT (1-3), 2 DRIVES PER CHIP PPIDECNT .EQU 1 ; PPIDE: NUMBER OF PPI CHIPS TO DETECT (1-3), 2 DRIVES PER CHIP
PPIDE0BASE .EQU $80 ; PPIDE 0: PPI REGISTERS BASE ADR
PPIDE0BASE .EQU N8_PPI0 ; PPIDE 0: PPI REGISTERS BASE ADR
PPIDE0A8BIT .EQU FALSE ; PPIDE 0A (MASTER): 8 BIT XFER PPIDE0A8BIT .EQU FALSE ; PPIDE 0A (MASTER): 8 BIT XFER
PPIDE0B8BIT .EQU FALSE ; PPIDE 0B (SLAVE): 8 BIT XFER PPIDE0B8BIT .EQU FALSE ; PPIDE 0B (SLAVE): 8 BIT XFER
PPIDE1BASE .EQU $00 ; PPIDE 1: PPI REGISTERS BASE ADR PPIDE1BASE .EQU $00 ; PPIDE 1: PPI REGISTERS BASE ADR
@ -195,7 +195,7 @@ PPIDE2B8BIT .EQU FALSE ; PPIDE 0B (SLAVE): 8 BIT XFER
; ;
SDENABLE .EQU TRUE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM) SDENABLE .EQU TRUE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM)
SDMODE .EQU SDMODE_CSIO ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT] SDMODE .EQU SDMODE_CSIO ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT]
SDPPIBASE .EQU $60 ; SD: BASE I/O ADDRESS OF PPI FOR PPI MODDE
SDPPIBASE .EQU N8_PPI0 ; SD: BASE I/O ADDRESS OF PPI FOR PPI MODDE
SDCNT .EQU 1 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD & SC ONLY SDCNT .EQU 1 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD & SC ONLY
SDTRACE .EQU 1 ; SD: TRACE LEVEL (0=NO,1=ERRORS,2=ALL) SDTRACE .EQU 1 ; SD: TRACE LEVEL (0=NO,1=ERRORS,2=ALL)
SDCSIOFAST .EQU FALSE ; SD: ENABLE TABLE-DRIVEN BIT INVERTER IN CSIO MODE SDCSIOFAST .EQU FALSE ; SD: ENABLE TABLE-DRIVEN BIT INVERTER IN CSIO MODE
@ -214,7 +214,7 @@ PIO4BASE .EQU $90 ; PIO: PIO REGISTERS BASE ADR FOR ECB 4P BOARD
PIO_ZP .EQU FALSE ; PIO: ENABLE PARALLEL PORT DRIVER FOR ECB ZILOG PERIPHERALS BOARD (PIO.ASM) PIO_ZP .EQU FALSE ; PIO: ENABLE PARALLEL PORT DRIVER FOR ECB ZILOG PERIPHERALS BOARD (PIO.ASM)
PIOZBASE .EQU $88 ; PIO: PIO REGISTERS BASE ADR FOR ECB ZP BOARD PIOZBASE .EQU $88 ; PIO: PIO REGISTERS BASE ADR FOR ECB ZP BOARD
PIO_SBC .EQU FALSE ; PIO: ENABLE PARALLEL PORT DRIVER FOR 8255 CHIP PIO_SBC .EQU FALSE ; PIO: ENABLE PARALLEL PORT DRIVER FOR 8255 CHIP
PIOSBASE .EQU $60 ; PIO: PIO REGISTERS BASE ADR FOR SBC PPI
PIOSBASE .EQU N8_PPI0 ; PIO: PIO REGISTERS BASE ADR FOR SBC PPI
; ;
UFENABLE .EQU FALSE ; UF: ENABLE ECB USB FIFO DRIVER (UF.ASM) UFENABLE .EQU FALSE ; UF: ENABLE ECB USB FIFO DRIVER (UF.ASM)
FIFO_BASE .EQU $0C ; UF: REGISTERS BASE ADR FIFO_BASE .EQU $0C ; UF: REGISTERS BASE ADR

47
Source/HBIOS/fd.asm

@ -1068,6 +1068,13 @@ FD_RETRY1:
; ;
; ;
FD_START: FD_START:
;
#IF (DSKYENABLE)
LD A,4
CALL LDHLIYA
CALL HB_DSKACTCHS ; SHOW ACTIVITY
#ENDIF
;
LD A,(FCD_FDCRDY) LD A,(FCD_FDCRDY)
CP TRUE CP TRUE
CALL NZ,FD_FDCRESET CALL NZ,FD_FDCRESET
@ -1137,9 +1144,9 @@ FD_RUN1:
RET RET
FD_RUNCHK: FD_RUNCHK:
#IF (DSKYENABLE)
CALL FD_DSKY
#ENDIF
;;#IF (DSKYENABLE)
;; CALL FD_DSKY
;;#ENDIF
FD_RUNEXIT: FD_RUNEXIT:
LD A,(FST_RC) LD A,(FST_RC)
@ -1156,23 +1163,23 @@ FD_RUNERR:
JP FD_RETRC JP FD_RETRC
#IF (DSKYENABLE)
FD_DSKY:
LD HL,DSKY_HEXBUF
LD A,(FCD_C)
LD (HL),A
INC HL
LD A,(FCD_R)
LD (HL),A
INC HL
LD A,(FRB_ST0)
LD (HL),A
INC HL
LD A,(FRB_ST1)
LD (HL),A
CALL DSKY_HEXOUT
RET
#ENDIF
;;#IF (DSKYENABLE)
;;FD_DSKY:
;; LD HL,DSKY_HEXBUF
;; LD A,(FCD_C)
;; LD (HL),A
;; INC HL
;; LD A,(FCD_R)
;; LD (HL),A
;; INC HL
;; LD A,(FRB_ST0)
;; LD (HL),A
;; INC HL
;; LD A,(FRB_ST1)
;; LD (HL),A
;; CALL DSKY_HEXOUT
;; RET
;;#ENDIF
; ;
;=============================================================================== ;===============================================================================
; FLOPPY DISK CONTROL SERVICES (PHYSICAL DEVICE CONTROL FOR FDC HARDWARE) ; FLOPPY DISK CONTROL SERVICES (PHYSICAL DEVICE CONTROL FOR FDC HARDWARE)

83
Source/HBIOS/hbios.asm

@ -2635,6 +2635,8 @@ HB_DSKREAD:
EX (SP),HL ; SAVE HL TO TOS, HL := READ FN ADR EX (SP),HL ; SAVE HL TO TOS, HL := READ FN ADR
LD (HB_DSKFNADR),HL ; IMBED IN CALL OP BELOW LD (HB_DSKFNADR),HL ; IMBED IN CALL OP BELOW
POP HL ; RECOVER HL POP HL ; RECOVER HL
;
LD (HB_DSKCMD),BC ; SAVE HBIOS FUNC & UNIT
; ;
#IF (DIAGENABLE) #IF (DIAGENABLE)
; SAVE DISK UNIT NUMBER BIT MASK ; SAVE DISK UNIT NUMBER BIT MASK
@ -2723,6 +2725,8 @@ HB_DSKWRITE:
EX (SP),HL ; SAVE HL TO TOS, HL := READ FN ADR EX (SP),HL ; SAVE HL TO TOS, HL := READ FN ADR
LD (HB_DSKFNADR),HL ; IMBED IN CALL OP BELOW LD (HB_DSKFNADR),HL ; IMBED IN CALL OP BELOW
POP HL ; RECOVER HL POP HL ; RECOVER HL
;
LD (HB_DSKCMD),BC ; SAVE HBIOS FUNC & UNIT
; ;
#IF (DIAGENABLE) #IF (DIAGENABLE)
; SAVE DISK UNIT NUMBER BIT MASK ; SAVE DISK UNIT NUMBER BIT MASK
@ -2843,6 +2847,85 @@ HB_DSKFNADR .EQU $+1
HB_DSKBIT .DB 0 ; ACTIVE DISK UNIT HB_DSKBIT .DB 0 ; ACTIVE DISK UNIT
HB_IOBUF .DW 0 ; CURRENT IO BUFFER ADR HB_IOBUF .DW 0 ; CURRENT IO BUFFER ADR
HB_IOBNK .DB 0 ; CURRENT IO BUFFER BANK ID HB_IOBNK .DB 0 ; CURRENT IO BUFFER BANK ID
HB_DSKCMD:
HB_DSKUNIT .DB 0 ; CURRENT DISK UNIT
HB_DSKFUNC .DB 0 ; CURRENT DISK FUNCTION
;
#IF (DSKYENABLE)
;
;==================================================================================================
; DSKY DISK ACTIVITY MONITOR
;==================================================================================================
;
; THIS FUNCTION IS CALLED BY DISK DRIVERS JUST PRIOR TO
; THE START OF A DISK I/O OPERATION.
;
; THE CURRENT DISK UNIT NUMBER WILL BE DISPLAYED IN THE FIRST
; 2 SEG DISPLAYS. THE LOWER 24 BITS OF THE SECTOR WILL BE
; DISPLAYED IN THE LAST 6 SEG DISPLAYS
;
; HL: ADDRESS OF 32-BIT SECTOR NUMBER (LITTLE-ENDIAN)
; ALL REGISTERS PERSERVED
;
HB_DSKACT:
PUSH AF
PUSH BC
PUSH DE
PUSH HL
LD DE,DSKY_HEXBUF+3 ; START AT END
LD B,3 ; 3 BYTES OF SECTOR ADDRESS
HB_DSKACT1:
LD A,(HL) ; GET FIRST BYTE
LD (DE),A ; AND STORE IN BUF
INC HL ; NEXT SRC BYTE
DEC DE ; NEXT DEST BYTE
DJNZ HB_DSKACT1 ; LOOP
LD A,(HB_DSKUNIT) ; GET DISK UNIT NUM
LD (DE),A ; PUT AT HEAD OF BUF
CALL DSKY_HEXOUT ; DISPLAY ON DSKY
POP HL
POP DE
POP BC
POP AF
RET
;
; THIS IS THE CHS VARIANT OF THE ABOVE. THIS IS USED BY CHS ORIENTED
; DISK DRIVERS (BASICALLY JUST FLOPPY).
;
; HL: ADDRESS OF CYL,HD,SEC IN THE FORMAT CCSH
; ALL REGISTERS PRESERVED
;
HB_DSKACTCHS:
PUSH AF
PUSH BC
PUSH DE
PUSH HL
LD DE,DSKY_HEXBUF ; START OF HEX BUF
LD A,(HB_DSKUNIT) ; GET DISK UNIT NUM
LD (DE),A ; PUT AT HEAD OF BUF
INC DE ; NEXT BYTE OF BUF
LD A,(HL) ; LSB OF TRACK
LD (DE),A ; ADD TO BUF
INC DE ; NEXT BYTE OF BUF
INC HL ; BUMP TO HEAD
INC HL ; "
INC HL ; "
LD A,(HL) ; GET HEAD
LD (DE),A ; ADD TO BUF
INC DE ; NEXT BYTE OF BUF
DEC HL ; BACK TO SECTOR
LD A,(HL) ; GET SECTOR
LD (DE),A ; ADD TO BUF
CALL DSKY_HEXOUT ; DISPLAY ON DSKY
POP HL
POP DE
POP BC
POP AF
RET
;
HB_HEXBUF .FILL 4,0 ; 4 BYTE HEX DISPLAY BUFFER
;
#ENDIF
; ;
;================================================================================================== ;==================================================================================================
; REAL TIME CLOCK DEVICE DISPATCHER ; REAL TIME CLOCK DEVICE DISPATCHER

8
Source/HBIOS/hdsk.asm

@ -234,7 +234,13 @@ HDSK_RW0:
PUSH BC ; SAVE COUNTERS PUSH BC ; SAVE COUNTERS
XOR A ; A = 0 XOR A ; A = 0
LD (HDSK_RC),A ; CLEAR RETURN CODE LD (HDSK_RC),A ; CLEAR RETURN CODE
;
#IF (DSKYENABLE)
LD A,HDSK_LBA
CALL LDHLIYA
CALL HB_DSKACT ; SHOW ACTIVITY
#ENDIF
;
; CONVERT LBA HHHH:LLLL (4 BYTES) ; CONVERT LBA HHHH:LLLL (4 BYTES)
; TO HDSK TRACK/SECTOR TTTT:SS (3 BYTES) ; TO HDSK TRACK/SECTOR TTTT:SS (3 BYTES)
; SAVING TO HDSK PARM BLOCK ; SAVING TO HDSK PARM BLOCK

62
Source/HBIOS/ide.asm

@ -727,6 +727,12 @@ IDE_WRSEC:
; ;
; ;
IDE_SETADDR: IDE_SETADDR:
;
#IF (DSKYENABLE)
LD A,IDE_LBA
CALL LDHLIYA
CALL HB_DSKACT ; SHOW ACTIVITY
#ENDIF
; SEND 3 LOWEST BYTES OF LBA IN REVERSE ORDER ; SEND 3 LOWEST BYTES OF LBA IN REVERSE ORDER
; IDE_IO_LBA3 HAS ALREADY BEEN SET ; IDE_IO_LBA3 HAS ALREADY BEEN SET
; HSTLBA2-0 --> IDE_IO_LBA2-0 ; HSTLBA2-0 --> IDE_IO_LBA2-0
@ -761,10 +767,10 @@ IDE_SETADDR:
#ENDIF #ENDIF
CALL IDE_OUT CALL IDE_OUT
.DB IDE_REG_COUNT .DB IDE_REG_COUNT
;
#IF (DSKYENABLE)
CALL IDE_DSKY
#ENDIF
;;;
;;#IF (DSKYENABLE)
;; CALL IDE_DSKY
;;#ENDIF
; ;
RET RET
; ;
@ -1530,30 +1536,30 @@ IDE_PRTPREFIX:
CALL PC_COLON CALL PC_COLON
POP AF POP AF
RET RET
;
;
;
#IF (DSKYENABLE)
IDE_DSKY:
LD HL,DSKY_HEXBUF ; POINT TO DSKY BUFFER
CALL IDE_IN
.DB IDE_REG_DRVHD
LD (HL),A ; SAVE IN BUFFER
INC HL ; INCREMENT BUFFER POINTER
CALL IDE_IN
.DB IDE_REG_CYLHI
LD (HL),A ; SAVE IN BUFFER
INC HL ; INCREMENT BUFFER POINTER
CALL IDE_IN
.DB IDE_REG_CYLLO
LD (HL),A ; SAVE IN BUFFER
INC HL ; INCREMENT BUFFER POINTER
CALL IDE_IN
.DB IDE_REG_SECT
LD (HL),A ; SAVE IN BUFFER
CALL DSKY_HEXOUT ; SEND IT TO DSKY
RET
#ENDIF
;;;
;;;
;;;
;;#IF (DSKYENABLE)
;;IDE_DSKY:
;; LD HL,DSKY_HEXBUF ; POINT TO DSKY BUFFER
;; CALL IDE_IN
;; .DB IDE_REG_DRVHD
;; LD (HL),A ; SAVE IN BUFFER
;; INC HL ; INCREMENT BUFFER POINTER
;; CALL IDE_IN
;; .DB IDE_REG_CYLHI
;; LD (HL),A ; SAVE IN BUFFER
;; INC HL ; INCREMENT BUFFER POINTER
;; CALL IDE_IN
;; .DB IDE_REG_CYLLO
;; LD (HL),A ; SAVE IN BUFFER
;; INC HL ; INCREMENT BUFFER POINTER
;; CALL IDE_IN
;; .DB IDE_REG_SECT
;; LD (HL),A ; SAVE IN BUFFER
;; CALL DSKY_HEXOUT ; SEND IT TO DSKY
;; RET
;;#ENDIF
; ;
;============================================================================= ;=============================================================================
; STRING DATA ; STRING DATA

7
Source/HBIOS/md.asm

@ -287,6 +287,13 @@ MD_RW:
LD C,0 ; INIT SECTOR READ/WRITE COUNT LD C,0 ; INIT SECTOR READ/WRITE COUNT
MD_RW1: MD_RW1:
PUSH BC ; SAVE COUNTERS PUSH BC ; SAVE COUNTERS
;
#IF (DSKYENABLE)
LD A,MD_LBA
CALL LDHLIYA
CALL HB_DSKACT ; SHOW ACTIVITY
#ENDIF
;
LD HL,(MD_RWFNADR) ; GET PENDING IO FUNCTION ADDRESS LD HL,(MD_RWFNADR) ; GET PENDING IO FUNCTION ADDRESS
#IF (MDFFENABLE) #IF (MDFFENABLE)
PUSH IX PUSH IX

60
Source/HBIOS/ppide.asm

@ -738,6 +738,12 @@ PPIDE_WRSEC:
; ;
; ;
PPIDE_SETADDR: PPIDE_SETADDR:
;
#IF (DSKYENABLE)
LD A,PPIDE_LBA
CALL LDHLIYA
CALL HB_DSKACT ; SHOW ACTIVITY
#ENDIF
; SEND 3 LOWEST BYTES OF LBA IN REVERSE ORDER ; SEND 3 LOWEST BYTES OF LBA IN REVERSE ORDER
; IDE_IO_LBA3 HAS ALREADY BEEN SET ; IDE_IO_LBA3 HAS ALREADY BEEN SET
; HSTLBA2-0 --> IDE_IO_LBA2-0 ; HSTLBA2-0 --> IDE_IO_LBA2-0
@ -773,9 +779,9 @@ PPIDE_SETADDR:
CALL PPIDE_OUT CALL PPIDE_OUT
.DB PPIDE_REG_COUNT .DB PPIDE_REG_COUNT
; ;
#IF (DSKYENABLE)
CALL PPIDE_DSKY
#ENDIF
;;#IF (DSKYENABLE)
;; CALL PPIDE_DSKY
;;#ENDIF
; ;
RET RET
; ;
@ -1608,30 +1614,30 @@ PPIDE_PRTPREFIX:
CALL PC_COLON CALL PC_COLON
POP AF POP AF
RET RET
;
;
;
#IF (DSKYENABLE)
PPIDE_DSKY:
LD HL,DSKY_HEXBUF ; POINT TO DSKY BUFFER
CALL PPIDE_IN
.DB PPIDE_REG_DRVHD
LD (HL),A ; SAVE IN BUFFER
INC HL ; INCREMENT BUFFER POINTER
CALL PPIDE_IN
.DB PPIDE_REG_CYLHI
LD (HL),A ; SAVE IN BUFFER
INC HL ; INCREMENT BUFFER POINTER
CALL PPIDE_IN
.DB PPIDE_REG_CYLLO
LD (HL),A ; SAVE IN BUFFER
INC HL ; INCREMENT BUFFER POINTER
CALL PPIDE_IN
.DB PPIDE_REG_SECT
LD (HL),A ; SAVE IN BUFFER
CALL DSKY_HEXOUT ; SEND IT TO DSKY
RET
#ENDIF
;;;
;;;
;;;
;;#IF (DSKYENABLE)
;;PPIDE_DSKY:
;; LD HL,DSKY_HEXBUF ; POINT TO DSKY BUFFER
;; CALL PPIDE_IN
;; .DB PPIDE_REG_DRVHD
;; LD (HL),A ; SAVE IN BUFFER
;; INC HL ; INCREMENT BUFFER POINTER
;; CALL PPIDE_IN
;; .DB PPIDE_REG_CYLHI
;; LD (HL),A ; SAVE IN BUFFER
;; INC HL ; INCREMENT BUFFER POINTER
;; CALL PPIDE_IN
;; .DB PPIDE_REG_CYLLO
;; LD (HL),A ; SAVE IN BUFFER
;; INC HL ; INCREMENT BUFFER POINTER
;; CALL PPIDE_IN
;; .DB PPIDE_REG_SECT
;; LD (HL),A ; SAVE IN BUFFER
;; CALL DSKY_HEXOUT ; SEND IT TO DSKY
;; RET
;;#ENDIF
; ;
;============================================================================= ;=============================================================================
; STRING DATA ; STRING DATA

3
Source/HBIOS/ppp.asm

@ -944,6 +944,9 @@ PPPSD_SENDBLK:
LD A,PPPSD_LBA ; OFFSET OF LBA LD A,PPPSD_LBA ; OFFSET OF LBA
CALL LDHLIYA ; HL := IY + A, REG A TRASHED CALL LDHLIYA ; HL := IY + A, REG A TRASHED
#IF (DSKYENABLE)
CALL HB_DSKACT ; SHOW ACTIVITY
#ENDIF
LD B,4 LD B,4
PPPSD_SENDBLK1: PPPSD_SENDBLK1:
LD A,(HL) LD A,(HL)

3
Source/HBIOS/prp.asm

@ -878,6 +878,9 @@ PRPSD_SETBLK:
LD B,4 ; 4 BYTES LD B,4 ; 4 BYTES
LD A,PRPSD_LBA ; OFFSET OF LBA LD A,PRPSD_LBA ; OFFSET OF LBA
CALL LDHLIYA ; HL := IY + A, REG A TRASHED CALL LDHLIYA ; HL := IY + A, REG A TRASHED
#IF (DSKYENABLE)
CALL HB_DSKACT ; SHOW ACTIVITY
#ENDIF
OTIR OTIR
RET RET
; ;

11
Source/HBIOS/rf.asm

@ -313,8 +313,15 @@ RF_SETIO:
; ;
; ;
; ;
RF_SETADR: ; OUTPUT THE
LD A,(RF_IO) ; LOGICAL BLOCK
RF_SETADR:
;
#IF (DSKYENABLE)
LD A,RF_LBA
CALL LDHLIYA
CALL HB_DSKACT ; SHOW ACTIVITY
#ENDIF
;
LD A,(RF_IO) ; OUTPUT THE LOGICAL BLOCK
OR RF_AL ; ADDRESS TO THE OR RF_AL ; ADDRESS TO THE
LD C,A ; TO THE MSB AND LD C,A ; TO THE MSB AND
LD A,(IY+RF_LBA+0) ; LSB SECTRK LD A,(IY+RF_LBA+0) ; LSB SECTRK

59
Source/HBIOS/sd.asm

@ -1275,6 +1275,9 @@ SD_SETADDR:
PUSH AF ; SAVE IT PUSH AF ; SAVE IT
LD A,SD_LBA ; OFFSET OF LBA VALUE LD A,SD_LBA ; OFFSET OF LBA VALUE
CALL LDHLIYA ; HL := IY + A, REG A TRASHED CALL LDHLIYA ; HL := IY + A, REG A TRASHED
#IF (DSKYENABLE)
CALL HB_DSKACT ; SHOW ACTIVITY
#ENDIF
CALL LD32 ; LOAD IT TO DE:HL, AF IS TRASHED CALL LD32 ; LOAD IT TO DE:HL, AF IS TRASHED
POP AF ; GET CARD TYPE BACK POP AF ; GET CARD TYPE BACK
CP SD_TYPESDHC ; IS IT V2 OR BETTER? CP SD_TYPESDHC ; IS IT V2 OR BETTER?
@ -1455,11 +1458,11 @@ SD_EXECCMD3:
#IF (SDTRACE >= 3) #IF (SDTRACE >= 3)
CALL SD_PRTRC ; IF MAX TRACING, PRINT RC CALL SD_PRTRC ; IF MAX TRACING, PRINT RC
#ENDIF #ENDIF
#IF (DSKYENABLE)
PUSH AF
CALL SD_DSKY ; IF USING DSKY, SHOW IT THERE
POP AF
#ENDIF
;;#IF (DSKYENABLE)
;; PUSH AF
;; CALL SD_DSKY ; IF USING DSKY, SHOW IT THERE
;; POP AF
;;#ENDIF
AND ~$01 ; MASK OFF IDLE BIT AND SET FLAGS AND ~$01 ; MASK OFF IDLE BIT AND SET FLAGS
RET Z ; IF RC = 0, NO ERROR, RETURN RET Z ; IF RC = 0, NO ERROR, RETURN
CALL SD_DONE ; IF ERROR, COMPLETE TRANSACTION CALL SD_DONE ; IF ERROR, COMPLETE TRANSACTION
@ -2110,29 +2113,29 @@ SD_PRTPREFIX:
CALL PC_COLON CALL PC_COLON
POP AF POP AF
RET RET
;
; DISPLAY COMMAND, LOW ORDER WORD OF PARMS, AND RC
;
#IF (DSKYENABLE)
SD_DSKY:
PUSH AF
PUSH HL
LD HL,DSKY_HEXBUF
LD A,(SD_CMD)
LD (HL),A
INC HL
LD A,(SD_CMDP2)
LD (HL),A
INC HL
LD A,(SD_CMDP3)
LD (HL),A
INC HL
LD A,(SD_RC)
CALL DSKY_HEXOUT
POP HL
POP AF
RET
#ENDIF
;;;
;;; DISPLAY COMMAND, LOW ORDER WORD OF PARMS, AND RC
;;;
;;#IF (DSKYENABLE)
;;SD_DSKY:
;; PUSH AF
;; PUSH HL
;; LD HL,DSKY_HEXBUF
;; LD A,(SD_CMD)
;; LD (HL),A
;; INC HL
;; LD A,(SD_CMDP2)
;; LD (HL),A
;; INC HL
;; LD A,(SD_CMDP3)
;; LD (HL),A
;; INC HL
;; LD A,(SD_RC)
;; CALL DSKY_HEXOUT
;; POP HL
;; POP AF
;; RET
;;#ENDIF
; ;
;============================================================================= ;=============================================================================
; STRING DATA ; STRING DATA

BIN
Source/ZRC/hd1024_zrc_prefix.dat

Binary file not shown.

8197
Source/ZZR/RCZ280_nat_zzr.hex

File diff suppressed because it is too large

BIN
Source/ZZR/hd1024_zzr_prefix.dat

Binary file not shown.

2
Source/ver.inc

@ -2,4 +2,4 @@
#DEFINE RMN 1 #DEFINE RMN 1
#DEFINE RUP 1 #DEFINE RUP 1
#DEFINE RTP 0 #DEFINE RTP 0
#DEFINE BIOSVER "3.1.1-pre.87"
#DEFINE BIOSVER "3.1.1-pre.88"

2
Source/ver.lib

@ -3,5 +3,5 @@ rmn equ 1
rup equ 1 rup equ 1
rtp equ 0 rtp equ 0
biosver macro biosver macro
db "3.1.1-pre.87"
db "3.1.1-pre.88"
endm endm

Loading…
Cancel
Save