mirror of
https://github.com/wwarthen/RomWBW.git
synced 2026-02-07 15:03:13 -06:00
Compare commits
1 Commits
v3.3.0-dev
...
v3.3.0-dev
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5d34a5c5d5 |
@@ -3725,42 +3725,51 @@ HB_DSKFUNC .DB 0 ; CURRENT DISK FUNCTION
|
||||
; ALL REGISTERS PERSERVED
|
||||
;
|
||||
HB_DSKACT:
|
||||
; SAVE EVERYTHING
|
||||
PUSH AF
|
||||
PUSH BC
|
||||
PUSH DE
|
||||
PUSH HL
|
||||
LD DE,DSKY_HEXBUF+3 ; START AT END
|
||||
LD B,3 ; 3 BYTES OF SECTOR ADDRESS
|
||||
;
|
||||
; COPY VALUE TO LOCAL HEXBUF
|
||||
CALL LD32
|
||||
;
|
||||
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 BC,DSKY_HEXBUF
|
||||
CALL ST32
|
||||
;
|
||||
; USE DISK UNIT NUMBER FOR MSB
|
||||
LD A,(HB_DSKUNIT) ; GET DISK UNIT NUM
|
||||
LD (DE),A ; PUT AT HEAD OF BUF
|
||||
HB_DSKACT2:
|
||||
LD HL,DSKY_HEXBUF ; BINARY BUF
|
||||
LD DE,DSKY_BUF ; DISPLAY BUF
|
||||
CALL DSKY_BIN2SEG ; CONVERT TO SEG DISPLAY BUF
|
||||
LD A,(DSKY_BUF+1) ; SECOND SEGMENT
|
||||
OR %10000000 ; TURN ON DOT
|
||||
LD (DSKY_BUF+1),A ; SAVE IT
|
||||
LD (DSKY_HEXBUF+3),A ; REPLACE HIGH BYTE W/ DISK #
|
||||
;
|
||||
; CONVERT TO SEGMENT DISPLAY
|
||||
LD HL,DSKY_HEXBUF ; INPUT POINTER
|
||||
LD DE,DSKY_BUF ; TEMP BUF FOR OUTPUT
|
||||
CALL DSKY_BIN2SEG ; CONVERT TO SEG DISPLAY
|
||||
;
|
||||
; DECIMAL POINT FOR DISK UNIT SEPARATION
|
||||
LD HL,DSKY_BUF+1 ; SECOND CHAR OF DISP
|
||||
SET 7,(HL) ; TURN ON DECIMAL PT
|
||||
;
|
||||
; DECIMAL POINT TO INDICATE WRITE ACTION
|
||||
LD A,(HB_DSKFUNC) ; GET CURRENT I/O FUNCTION
|
||||
CP BF_DIOWRITE ; IS IT A WRITE?
|
||||
JR NZ,HB_DSKACT3 ; IF NOT, NO DOT, SKIP AHEAD
|
||||
LD A,(DSKY_BUF+7) ; LAST SEGMENT
|
||||
OR %10000000 ; TURN ON DOT
|
||||
LD (DSKY_BUF+7),A ; SAVE IT
|
||||
HB_DSKACT3:
|
||||
EX DE,HL ; SEG DISPLAY BUF TO HL
|
||||
LD B,BF_DSKYSHOWSEG
|
||||
CALL DSKY_DISPATCH
|
||||
JR NZ,HB_DSKACT2 ; IF NOT, SKIP
|
||||
LD HL,DSKY_BUF+7 ; POINT TO CHAR 7
|
||||
SET 7,(HL) ; SET WRITE DOT
|
||||
;
|
||||
HB_DSKACT2:
|
||||
; UPDATE DISPLAY
|
||||
LD HL,DSKY_BUF ; SEG DISPLAY BUF TO HL
|
||||
LD B,BF_DSKYSHOWSEG ; SHOW SEG FUNCTION
|
||||
CALL DSKY_DISPATCH ; DO IT
|
||||
;
|
||||
; CLEAN UP AND GO AWAY
|
||||
POP HL
|
||||
POP DE
|
||||
POP BC
|
||||
POP AF
|
||||
RET
|
||||
RET ; DONE
|
||||
;
|
||||
; THIS IS THE CHS VARIANT OF THE ABOVE. THIS IS USED BY CHS ORIENTED
|
||||
; DISK DRIVERS (BASICALLY JUST FLOPPY).
|
||||
@@ -3777,23 +3786,10 @@ HB_DSKACTCHS:
|
||||
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
|
||||
JR HB_DSKACT2
|
||||
CALL LD32 ; DE:HL = HSCC
|
||||
; MAP HSCC -> CCHS
|
||||
EX DE,HL
|
||||
JR HB_DSKACT1
|
||||
;
|
||||
#ENDIF
|
||||
#ENDIF
|
||||
@@ -5141,37 +5137,29 @@ HB_IM1PTR .DW HB_IVT ; POINTER FOR NEXT IM1 ENTRY
|
||||
; DE: ADR OF DEST LED SEGMENT DISPLAY BUFFER (8 BYTES)
|
||||
;
|
||||
DSKY_BIN2SEG:
|
||||
PUSH HL
|
||||
PUSH DE
|
||||
LD B,4 ; 4 BYTES OF INPUT
|
||||
EX DE,HL
|
||||
LD A,B ; PUT IN ACCUM
|
||||
CALL ADDHLA ; PROCESS FROM END (LITTLE ENDIAN)
|
||||
DSKY_BIN2SEG1:
|
||||
LD A,(DE) ; FIRST NIBBLE
|
||||
SRL A
|
||||
SRL A
|
||||
SRL A
|
||||
SRL A
|
||||
PUSH HL
|
||||
LD HL,DSKY_HEXMAP
|
||||
CALL ADDHLA
|
||||
LD A,(HL)
|
||||
POP HL
|
||||
LD (HL),A
|
||||
INC HL
|
||||
LD A,(DE) ; SECOND NIBBLE
|
||||
AND 0FH
|
||||
PUSH HL
|
||||
LD HL,DSKY_HEXMAP
|
||||
CALL ADDHLA
|
||||
LD A,(HL)
|
||||
POP HL
|
||||
LD (HL),A
|
||||
INC HL
|
||||
INC DE ; NEXT BYTE
|
||||
DJNZ DSKY_BIN2SEG1
|
||||
POP DE
|
||||
POP HL
|
||||
RET
|
||||
DEC HL ; DEC PTR (LITTLE ENDIAN)
|
||||
LD A,(HL) ; HIGH NIBBLE
|
||||
RRCA \ RRCA \ RRCA \ RRCA ; ROTATE BITS
|
||||
CALL DSKY_BIN2SEG_NIB ; CONVERT NIBBLE INTO OUTPUT BUF
|
||||
LD A,(HL) ; LOW NIBBLE
|
||||
CALL DSKY_BIN2SEG_NIB ; CONVERT NIBBLE INTO OUTPUT BUF
|
||||
DJNZ DSKY_BIN2SEG1 ; LOOP FOR ALL INPUT BYTES
|
||||
RET ; DONE
|
||||
;
|
||||
DSKY_BIN2SEG_NIB:
|
||||
PUSH HL ; SAVE HL
|
||||
LD HL,DSKY_HEXMAP ; POINT TO SEG MAP TABLE
|
||||
AND $0F ; ISOLATE LOW NIBBLE
|
||||
CALL ADDHLA ; OFFSET INTO TABLE
|
||||
LD A,(HL) ; LOAD VALUE FROM TABLE
|
||||
POP HL ; RESTORE HL
|
||||
LD (DE),A ; SAVE VALUE TO OUTPUT BUF
|
||||
INC DE ; BUMP TO NEXT OUTPUT BYTE
|
||||
RET ; DONE
|
||||
;
|
||||
#ENDIF
|
||||
;
|
||||
|
||||
@@ -180,11 +180,16 @@ ICM_GETKEY2:
|
||||
XOR A ; SIGNAL SUCCESS
|
||||
RET
|
||||
;
|
||||
;
|
||||
; DISPLAY HEX VALUE FROM DE:HL
|
||||
;
|
||||
ICM_SHOWHEX:
|
||||
XOR A ; SIGNAL SUCCESS
|
||||
RET
|
||||
LD BC,DSKY_HEXBUF ; POINT TO HEX BUFFER
|
||||
CALL ST32 ; STORE 32-BIT BINARY THERE
|
||||
LD HL,DSKY_HEXBUF ; FROM: BINARY VALUE (HL)
|
||||
LD DE,DSKY_BUF ; TO: SEGMENT BUFFER (DE)
|
||||
CALL DSKY_BIN2SEG ; CONVERT
|
||||
LD HL,DSKY_BUF ; POINT TO SEGMENT BUFFER
|
||||
; AND FALL THRU TO DISPLAY IT
|
||||
;
|
||||
; ICM SHOW BUFFER
|
||||
; HL: ADDRESS OF BUFFER
|
||||
|
||||
@@ -238,11 +238,16 @@ PKD_GETKEY2:
|
||||
XOR A ; SIGNAL SUCCESS
|
||||
RET
|
||||
;
|
||||
;
|
||||
; DISPLAY HEX VALUE FROM DE:HL
|
||||
;
|
||||
PKD_SHOWHEX:
|
||||
XOR A ; SIGNAL SUCCESS
|
||||
RET
|
||||
LD BC,DSKY_HEXBUF ; POINT TO HEX BUFFER
|
||||
CALL ST32 ; STORE 32-BIT BINARY THERE
|
||||
LD HL,DSKY_HEXBUF ; FROM: BINARY VALUE (HL)
|
||||
LD DE,DSKY_BUF ; TO: SEGMENT BUFFER (DE)
|
||||
CALL DSKY_BIN2SEG ; CONVERT
|
||||
LD HL,DSKY_BUF ; POINT TO SEGMENT BUFFER
|
||||
; AND FALL THRU TO DISPLAY IT
|
||||
;
|
||||
;
|
||||
;
|
||||
|
||||
@@ -3,6 +3,12 @@
|
||||
#
|
||||
d_nzcom/ReadMe.txt 0:
|
||||
#
|
||||
# Include selected CP/M 2.2 files
|
||||
#
|
||||
d_cpm22/u0/STAT.COM 0:
|
||||
d_cpm22/u0/SUBMIT.COM 0:
|
||||
d_cpm22/u0/XSUB.COM 0:
|
||||
#
|
||||
# Add RomWBW utilities
|
||||
#
|
||||
#../../Binary/Apps/*.com 0:
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
#DEFINE RMN 3
|
||||
#DEFINE RUP 0
|
||||
#DEFINE RTP 0
|
||||
#DEFINE BIOSVER "3.3.0-dev.27"
|
||||
#DEFINE BIOSVER "3.3.0-dev.28"
|
||||
#define rmj RMJ
|
||||
#define rmn RMN
|
||||
#define rup RUP
|
||||
|
||||
@@ -3,5 +3,5 @@ rmn equ 3
|
||||
rup equ 0
|
||||
rtp equ 0
|
||||
biosver macro
|
||||
db "3.3.0-dev.27"
|
||||
db "3.3.0-dev.28"
|
||||
endm
|
||||
|
||||
Reference in New Issue
Block a user