mirror of
https://github.com/Tolik-Trek/Estex-DSS.git
synced 2026-06-15 09:21:47 +03:00
небольшие оптимизации
This commit is contained in:
parent
35e9b7b9fe
commit
8965dee742
613
DSS/RAM_DRV0.ASM
613
DSS/RAM_DRV0.ASM
@ -1,613 +0,0 @@
|
|||||||
;
|
|
||||||
; SYSPAGE EQU #FE
|
|
||||||
; SLOT1 EQU #A2
|
|
||||||
; SLOT2 EQU #C2
|
|
||||||
; SLOT3 EQU #E2
|
|
||||||
|
|
||||||
; ORG #3CDB
|
|
||||||
; Disk Driver Specification ver. 2.20
|
|
||||||
;[]===========================================================[ 0]
|
|
||||||
;Procedure : Initialization
|
|
||||||
;
|
|
||||||
;Function : Initialization device(s)
|
|
||||||
;
|
|
||||||
;Input : C = 00h
|
|
||||||
; IX - Environment
|
|
||||||
;Output : A = Amount drive support
|
|
||||||
; HL = Size driver
|
|
||||||
;[]===========================================================[ 0]
|
|
||||||
|
|
||||||
|
|
||||||
;[]===========================================================[ 1]
|
|
||||||
;Procedure : Open
|
|
||||||
;
|
|
||||||
;Function : Open disk
|
|
||||||
;
|
|
||||||
;Input : C = 01h
|
|
||||||
; A - Drive
|
|
||||||
;Output : None
|
|
||||||
;
|
|
||||||
;[]===========================================================[ 1]
|
|
||||||
|
|
||||||
|
|
||||||
;[]===========================================================[ 2]
|
|
||||||
;Procedure : Close
|
|
||||||
;
|
|
||||||
;Function : Close disk
|
|
||||||
;
|
|
||||||
;Input : C = 02h
|
|
||||||
; A - Drive
|
|
||||||
;Output : None
|
|
||||||
;
|
|
||||||
;[]===========================================================[ 2]
|
|
||||||
|
|
||||||
|
|
||||||
;[]===========================================================[ 3]
|
|
||||||
;!TODO
|
|
||||||
;Procedure : Media check
|
|
||||||
;
|
|
||||||
;Function : Checking change line
|
|
||||||
;
|
|
||||||
;Input : C = 03h
|
|
||||||
; A - Drive
|
|
||||||
;Output : A = 00h disk no changed
|
|
||||||
; A = 0FFh disk changed
|
|
||||||
;
|
|
||||||
;[]===========================================================[ 3]
|
|
||||||
|
|
||||||
|
|
||||||
;[]===========================================================[ 4]
|
|
||||||
;Procedure : Get BPB
|
|
||||||
;
|
|
||||||
;Function : Get Block Parameters BIOS
|
|
||||||
;
|
|
||||||
;Input : C = 04h
|
|
||||||
; DE - Address
|
|
||||||
;Output : None
|
|
||||||
;
|
|
||||||
;[]===========================================================[ 4]
|
|
||||||
|
|
||||||
|
|
||||||
;[]===========================================================[ 5]
|
|
||||||
;Procedure : Input
|
|
||||||
;
|
|
||||||
;Function : Input from disk
|
|
||||||
;
|
|
||||||
;Input : C = 05h
|
|
||||||
; HL:IX - Logical Block (sector)
|
|
||||||
; DE - Address
|
|
||||||
; B - Sector count
|
|
||||||
;Output : None
|
|
||||||
;
|
|
||||||
;[]===========================================================[ 5]
|
|
||||||
|
|
||||||
|
|
||||||
;[]===========================================================[ 6]
|
|
||||||
;Procedure : Output
|
|
||||||
;
|
|
||||||
;Function : Output to disk
|
|
||||||
;
|
|
||||||
;Input : C = 06h
|
|
||||||
; HL:IX - Logical Block (sector)
|
|
||||||
; DE - Address
|
|
||||||
; B - Sector count
|
|
||||||
;Output : None
|
|
||||||
;
|
|
||||||
;[]===========================================================[ 6]
|
|
||||||
|
|
||||||
|
|
||||||
;[]===========================================================[ 7]
|
|
||||||
;!TODO
|
|
||||||
;Procedure : Removable
|
|
||||||
;
|
|
||||||
;Function : Checking change line
|
|
||||||
;
|
|
||||||
;Input : C = 07h
|
|
||||||
; A - Drive
|
|
||||||
;Output : A = 00h Removable
|
|
||||||
; A = FFh Nonremovable
|
|
||||||
;
|
|
||||||
;[]===========================================================[ 7]
|
|
||||||
|
|
||||||
|
|
||||||
;[]===========================================================[ 8]
|
|
||||||
;Procedure : Generic IOCTL
|
|
||||||
;
|
|
||||||
;Function : Generic Input Output Control
|
|
||||||
;
|
|
||||||
;Input : C = 08h
|
|
||||||
; B - Subcommand
|
|
||||||
; DE = 55AAh Magic Number
|
|
||||||
; Subcommand
|
|
||||||
;----------------------
|
|
||||||
; 00h - Get Device Parameters
|
|
||||||
; 01h - Read track
|
|
||||||
; 02h - Test track
|
|
||||||
; 80h - Set Device Parameters
|
|
||||||
; 81h - Write track
|
|
||||||
; 82h - Format track
|
|
||||||
;Output :
|
|
||||||
;
|
|
||||||
;[]===========================================================[ 8]
|
|
||||||
|
|
||||||
|
|
||||||
;[]===========================================================[ 9]
|
|
||||||
; RESERVED
|
|
||||||
;[]===========================================================[ 9]
|
|
||||||
|
|
||||||
|
|
||||||
;[]===========================================================[ 10]
|
|
||||||
;!TODO
|
|
||||||
;Procedure : Read Long
|
|
||||||
;
|
|
||||||
;Function : Reading sectors from disk
|
|
||||||
;
|
|
||||||
;Input : C = 0Ah
|
|
||||||
; HL:IX - Logical Block (sector)
|
|
||||||
; DE - Address
|
|
||||||
; B - Sector count
|
|
||||||
; A'- Page
|
|
||||||
;Output : A'- Next Page
|
|
||||||
; HL:IX - Next Logical Block (sector)
|
|
||||||
; DE - Next Address
|
|
||||||
;
|
|
||||||
;[]===========================================================[ 10]
|
|
||||||
|
|
||||||
|
|
||||||
;[]===========================================================[ 11]
|
|
||||||
;!TODO
|
|
||||||
;Procedure : Write Long
|
|
||||||
;
|
|
||||||
;Function : Writing sectors to disk
|
|
||||||
;
|
|
||||||
;Input : C = 0Bh
|
|
||||||
; HL:IX - Logical Block (sector)
|
|
||||||
; DE - Address
|
|
||||||
; B - Sector count
|
|
||||||
; A'- Page
|
|
||||||
;Output : A'- Next Page
|
|
||||||
; HL:IX - Next Logical Block (sector)
|
|
||||||
; DE - Next Address
|
|
||||||
;
|
|
||||||
;[]===========================================================[ 11]
|
|
||||||
;
|
|
||||||
; Errors:
|
|
||||||
; 0 (00h) - NO ERRORS
|
|
||||||
; 1 (01h) - BAD COMMAND
|
|
||||||
; 2 (02h) - BAD DRIVE NUMBER
|
|
||||||
; 3 (03h) - UNKNOW FORMAT
|
|
||||||
; 4 (04h) - NOT READY
|
|
||||||
; 5 (05h) - SEEK ERROR
|
|
||||||
; 6 (06h) - SECTOR NOT FOUND
|
|
||||||
; 7 (07h) - CRC ERROR
|
|
||||||
; 8 (08h) - WRITE PROTECT
|
|
||||||
; 9 (09h) - READ ERROR
|
|
||||||
; 10 (0Ah) - WRITE ERROR
|
|
||||||
; 11 (0Bh) - FAILURE
|
|
||||||
; 12 (0Ch) - BUSY (DEVICE OPENED)
|
|
||||||
; 13 (0Dh) - RESERVED
|
|
||||||
|
|
||||||
RMDRIVE:
|
|
||||||
INC C
|
|
||||||
DEC C
|
|
||||||
JP Z,INIT_RD ; 0
|
|
||||||
DEC C
|
|
||||||
JR Z,RESE_RD ; 1
|
|
||||||
DEC C
|
|
||||||
JR Z,STAT_RD ; 2
|
|
||||||
DEC C
|
|
||||||
JR Z,CHEK_RD ; 3
|
|
||||||
DEC C
|
|
||||||
JR Z,GBPB_RD ; 4
|
|
||||||
DEC C
|
|
||||||
JR Z,READR ; 5
|
|
||||||
DEC C
|
|
||||||
JR Z,WRITER ; 6
|
|
||||||
DEC C
|
|
||||||
JR Z,REMOV_R ; 7
|
|
||||||
DEC C
|
|
||||||
JP Z,IOCTL_R ; 8
|
|
||||||
|
|
||||||
; DEC C
|
|
||||||
; JP Z,RESR_H ; 9
|
|
||||||
; DEC C
|
|
||||||
; JP Z,LREADH ; 10
|
|
||||||
; DEC C
|
|
||||||
; JP Z,LWRITEH ; 11
|
|
||||||
.error:
|
|
||||||
LD A,DSS_Error.drv.INVALID_COMMAND
|
|
||||||
SCF
|
|
||||||
RET
|
|
||||||
|
|
||||||
REMOV_R:
|
|
||||||
RESE_RD:
|
|
||||||
STAT_RD:
|
|
||||||
XOR A
|
|
||||||
RET
|
|
||||||
|
|
||||||
;!FIXIT ᤥ« âì ¢ SYS_PAGE ¤«ï à ¬¤¨áª®¢ ¯¥à¥¬¥ë¥ ¨ ¡à âì ®ââ㤠§ 票¥
|
|
||||||
CHEK_RD LD A,#FF
|
|
||||||
AND A
|
|
||||||
RET
|
|
||||||
|
|
||||||
;DE - ADDRESS
|
|
||||||
GBPB_RD LD IX,0
|
|
||||||
LD HL,0
|
|
||||||
LD B,#01
|
|
||||||
;JP READR
|
|
||||||
;READ SECTORS
|
|
||||||
; HL:IX - SECTOR
|
|
||||||
; DE - ADDRESS
|
|
||||||
; B - COUNT
|
|
||||||
; A - DRIVE
|
|
||||||
READR PUSH BC
|
|
||||||
PUSH IX
|
|
||||||
PUSH HL
|
|
||||||
PUSH BC
|
|
||||||
CALL RAMADDR
|
|
||||||
POP BC
|
|
||||||
LD IX,512
|
|
||||||
RAMRLOP PUSH BC
|
|
||||||
PUSH IX
|
|
||||||
CALL LRDSEC
|
|
||||||
POP IX
|
|
||||||
POP BC
|
|
||||||
DJNZ RAMRLOP
|
|
||||||
POP HL
|
|
||||||
POP IX
|
|
||||||
POP BC
|
|
||||||
XOR A
|
|
||||||
CP B
|
|
||||||
LD C,B
|
|
||||||
LD B,A
|
|
||||||
JR Z,DYEP256
|
|
||||||
ADD IX,BC
|
|
||||||
LD C,B
|
|
||||||
ADC HL,BC
|
|
||||||
XOR A
|
|
||||||
RET
|
|
||||||
|
|
||||||
DYEP256 INC B
|
|
||||||
ADD IX,BC
|
|
||||||
LD B,C
|
|
||||||
ADC HL,BC
|
|
||||||
XOR A
|
|
||||||
RET
|
|
||||||
|
|
||||||
|
|
||||||
;WRITE SECTORS
|
|
||||||
; HL:IX - SECTOR
|
|
||||||
; DE - ADDRESS
|
|
||||||
; B - COUNT
|
|
||||||
; A - DRIVE
|
|
||||||
WRITER PUSH BC
|
|
||||||
PUSH IX
|
|
||||||
PUSH HL
|
|
||||||
PUSH BC
|
|
||||||
CALL RAMADDR
|
|
||||||
POP BC
|
|
||||||
LD IX,512
|
|
||||||
RAMWLOP PUSH BC
|
|
||||||
PUSH IX
|
|
||||||
CALL WRDSEC
|
|
||||||
POP IX
|
|
||||||
POP BC
|
|
||||||
DJNZ RAMWLOP
|
|
||||||
POP HL
|
|
||||||
POP IX
|
|
||||||
POP BC
|
|
||||||
XOR A
|
|
||||||
CP B
|
|
||||||
LD C,B
|
|
||||||
LD B,A
|
|
||||||
JR Z,WYEP256
|
|
||||||
ADD IX,BC
|
|
||||||
LD C,B
|
|
||||||
ADC HL,BC
|
|
||||||
XOR A
|
|
||||||
RET
|
|
||||||
|
|
||||||
WYEP256 INC B
|
|
||||||
ADD IX,BC
|
|
||||||
LD B,C
|
|
||||||
ADC HL,BC
|
|
||||||
XOR A
|
|
||||||
RET
|
|
||||||
|
|
||||||
|
|
||||||
INIT_RD:
|
|
||||||
.SectorSize EQU 512 ;!HARDCODE
|
|
||||||
LD HL,.SectorSize
|
|
||||||
LD A,#80
|
|
||||||
.loop: SRL A
|
|
||||||
RR H
|
|
||||||
JR NC,.loop
|
|
||||||
|
|
||||||
LD (S_P_P),A
|
|
||||||
LD BC,#0*256 + BIOS.GET_RAMD_ST ; <20>®«ã票¥ ¨¤¥â¨ä¨ª â®à ¡«®ª , § 祮£® RAM-Disk
|
|
||||||
LD DE,RAMDTBL
|
|
||||||
|
|
||||||
.initLoop:
|
|
||||||
PUSH BC
|
|
||||||
LD A,B
|
|
||||||
PUSH DE
|
|
||||||
RST ToBIOS
|
|
||||||
POP DE
|
|
||||||
OR A
|
|
||||||
JR Z,.noDRV
|
|
||||||
|
|
||||||
LD (DE),A
|
|
||||||
INC DE
|
|
||||||
POP BC
|
|
||||||
LD A,B
|
|
||||||
LD (DE),A
|
|
||||||
INC DE
|
|
||||||
JP 1F
|
|
||||||
|
|
||||||
.noDRV: POP BC
|
|
||||||
1: INC B
|
|
||||||
LD A,RAMDTBL.Size / 2
|
|
||||||
CP B
|
|
||||||
JR NZ,.initLoop
|
|
||||||
|
|
||||||
LD HL,RAMDTBL
|
|
||||||
EX DE,HL
|
|
||||||
AND A
|
|
||||||
SBC HL,DE
|
|
||||||
SRL L
|
|
||||||
LD A,L
|
|
||||||
; LD HL,ENDDRVR
|
|
||||||
AND A
|
|
||||||
RET
|
|
||||||
|
|
||||||
; ’€<E28099>‹ˆ–€ ‘ŽŽ’‚…’‘’‚ˆŸ Œ…†„“ ”ˆ‡ˆ—…‘ŠˆŒ <20>ŽŒ…<C592>ŽŒ <20>€Œ„ˆ‘Š€ ˆ …ƒŽ RAM-DISK ID
|
|
||||||
; DB RAM_DRIVE_ID, RAM_DRIVE_NUMBER
|
|
||||||
RAMDTBL: DUP MAX_RAMDRIVES * 2
|
|
||||||
DB #FF
|
|
||||||
EDUP
|
|
||||||
.Size EQU $-RAMDTBL
|
|
||||||
|
|
||||||
|
|
||||||
; SECTOR / S_P_P = START PAGE
|
|
||||||
; INPUT : HL:IX -SECTOR
|
|
||||||
; OUTPUT: A':HL - ADDRESS
|
|
||||||
RAMADDR LD BC,RAMDTBL
|
|
||||||
|
|
||||||
SLA A
|
|
||||||
|
|
||||||
ADD A,C
|
|
||||||
LD C,A
|
|
||||||
LD A,0
|
|
||||||
ADC A,B
|
|
||||||
LD B,A
|
|
||||||
LD A,(BC)
|
|
||||||
EX AF,AF'
|
|
||||||
LD B,XH
|
|
||||||
LD C,XL
|
|
||||||
LD A,(S_P_P) ; (S_P_P) ;SECTORS PER Page
|
|
||||||
;AGE
|
|
||||||
DIVR0 RRCA
|
|
||||||
JR C,DIVR1
|
|
||||||
RR H
|
|
||||||
RR L
|
|
||||||
RR B
|
|
||||||
RR C
|
|
||||||
JR DIVR0
|
|
||||||
DIVR1 LD B,C
|
|
||||||
LD C,#C4 ;GET FIRST PAGE
|
|
||||||
EX AF,AF'
|
|
||||||
RST ToBIOS
|
|
||||||
EX AF,AF'
|
|
||||||
LD A,(S_P_P)
|
|
||||||
LD C,A
|
|
||||||
DEC C
|
|
||||||
LD A,XL
|
|
||||||
AND C
|
|
||||||
INC A
|
|
||||||
LD HL,#C000
|
|
||||||
LD BC,512
|
|
||||||
SBC HL,BC
|
|
||||||
ADDLP ADD HL,BC
|
|
||||||
DEC A
|
|
||||||
JR NZ,ADDLP
|
|
||||||
RET
|
|
||||||
|
|
||||||
S_P_P DB #00
|
|
||||||
|
|
||||||
; A':HL - ADDRESS SOURCE
|
|
||||||
; DE - ADDRESS DESTINATION
|
|
||||||
LRDSEC LD A,D
|
|
||||||
CP #A0
|
|
||||||
LD C,SLOT3
|
|
||||||
SET 6,H
|
|
||||||
JR C,RMDL02
|
|
||||||
LD C,SLOT1
|
|
||||||
RES 7,H
|
|
||||||
RMDL02 IN A,(C)
|
|
||||||
EX AF,AF'
|
|
||||||
DI
|
|
||||||
OUT (C),A
|
|
||||||
LD B,XH
|
|
||||||
LD XH,C
|
|
||||||
LD C,XL
|
|
||||||
LDIR
|
|
||||||
EX AF,AF'
|
|
||||||
LD C,XH
|
|
||||||
OUT (C),A
|
|
||||||
LD A,H
|
|
||||||
AND #7F
|
|
||||||
EI
|
|
||||||
RET NZ
|
|
||||||
LD C,SLOT3 ;GET NEXT PAGE
|
|
||||||
IN B,(C)
|
|
||||||
LD A,SYS_PAGE
|
|
||||||
OUT (C),A
|
|
||||||
EX AF,AF'
|
|
||||||
LD XH,#C2
|
|
||||||
LD XL,A
|
|
||||||
LD A,(IX)
|
|
||||||
EX AF,AF'
|
|
||||||
OUT (C),B
|
|
||||||
LD H,#C0
|
|
||||||
RET
|
|
||||||
|
|
||||||
; A':HL - ADDRESS SOURCE
|
|
||||||
; DE - ADDRESS DESTINATION
|
|
||||||
|
|
||||||
WRDSEC LD A,D
|
|
||||||
CP #A0
|
|
||||||
LD C,SLOT3
|
|
||||||
SET 6,H
|
|
||||||
JR C,WMDL02
|
|
||||||
LD C,SLOT1
|
|
||||||
RES 7,H
|
|
||||||
WMDL02 IN A,(C)
|
|
||||||
EX AF,AF'
|
|
||||||
DI
|
|
||||||
OUT (C),A
|
|
||||||
LD B,XH
|
|
||||||
LD XH,C
|
|
||||||
LD C,XL
|
|
||||||
EX DE,HL
|
|
||||||
LDIR
|
|
||||||
EX DE,HL
|
|
||||||
EX AF,AF'
|
|
||||||
LD C,XH
|
|
||||||
OUT (C),A
|
|
||||||
LD A,H
|
|
||||||
AND #7F
|
|
||||||
EI
|
|
||||||
RET NZ
|
|
||||||
LD C,SLOT3 ;GET NEXT PAGE
|
|
||||||
IN B,(C)
|
|
||||||
LD A,SYS_PAGE
|
|
||||||
OUT (C),A
|
|
||||||
EX AF,AF'
|
|
||||||
LD XH,#C2
|
|
||||||
LD XL,A
|
|
||||||
LD A,(IX)
|
|
||||||
EX AF,AF'
|
|
||||||
OUT (C),B
|
|
||||||
LD H,#C0
|
|
||||||
RET
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
;;
|
|
||||||
;;
|
|
||||||
|
|
||||||
|
|
||||||
; 00 - GET DEVICE PARAMETERS
|
|
||||||
; 01 - READ TRACK
|
|
||||||
; 02 - TEST TRACK
|
|
||||||
; 80 - SET DEVICE PARAMETERS
|
|
||||||
; 81 - WRITE TRACK
|
|
||||||
; 82 - FORMAT TRACK
|
|
||||||
|
|
||||||
|
|
||||||
IOCTL_R:
|
|
||||||
BIT 7,B
|
|
||||||
JR NZ,.O_CTL_F
|
|
||||||
INC B
|
|
||||||
DEC B
|
|
||||||
JP Z,.RGETPRM
|
|
||||||
; DEC B
|
|
||||||
; JP Z,FRDTRAC
|
|
||||||
; DEC B
|
|
||||||
; JP Z,FCHTRAC
|
|
||||||
LD A,DSS_Error.drv.INVALID_COMMAND
|
|
||||||
SCF
|
|
||||||
RET
|
|
||||||
|
|
||||||
.O_CTL_F:
|
|
||||||
RES 7,B
|
|
||||||
INC B
|
|
||||||
DEC B
|
|
||||||
JP Z,.RSETPRM
|
|
||||||
; DEC B
|
|
||||||
; JP Z,FWRTRAC
|
|
||||||
; DEC B
|
|
||||||
; JP Z,FFRTRAC
|
|
||||||
LD A,DSS_Error.drv.INVALID_COMMAND
|
|
||||||
SCF
|
|
||||||
RET
|
|
||||||
|
|
||||||
; HL:DE - SECTORS ON LOGICAL DISK
|
|
||||||
; HL' - CYLINDERS ON PHISICAL DISK
|
|
||||||
; DE' - HEADS ON PHISICAL DISK
|
|
||||||
; BC' - SECTORS PER TRACK ON PHISICAL DISK
|
|
||||||
; A' - PHISICAL DRIVE NUMBER
|
|
||||||
; A - EXTENDED INFORMATION
|
|
||||||
; D0...D3 - "0" RESERVED (MAY BE OTHER)
|
|
||||||
; D4 - DEVICE MASTER/SLAVE
|
|
||||||
; D5 - "1" RESERVED
|
|
||||||
; D6 - ADDRESSING MODE LBA/CHS
|
|
||||||
; D7 - "1" RESERVED
|
|
||||||
.RGETPRM:
|
|
||||||
EX DE,HL
|
|
||||||
LD BC,#55AA
|
|
||||||
AND A
|
|
||||||
SBC HL,BC
|
|
||||||
LD L,A
|
|
||||||
LD A,DSS_Error.drv.GENERAL_FAILURE
|
|
||||||
SCF
|
|
||||||
RET NZ
|
|
||||||
|
|
||||||
|
|
||||||
EX AF,AF'
|
|
||||||
LD BC,RAMDTBL
|
|
||||||
LD A,L
|
|
||||||
SLA A
|
|
||||||
ADD A,C
|
|
||||||
LD C,A
|
|
||||||
LD A,0
|
|
||||||
ADC A,B
|
|
||||||
LD B,A
|
|
||||||
INC BC
|
|
||||||
LD A,(BC)
|
|
||||||
ADD #60 ;!HARDCODE ᤥ« âì ®¬¥à à §ëå ãáâனá⢠ç¥à¥§ ¬¥âª¨
|
|
||||||
PUSH AF
|
|
||||||
PUSH AF
|
|
||||||
EX AF,AF'
|
|
||||||
|
|
||||||
POP AF
|
|
||||||
LD C,BIOS.DRV_GET_PAR
|
|
||||||
RST ToBIOS
|
|
||||||
|
|
||||||
PUSH HL ;ç¨á«® £®«®¢®ª, ç¨á«® ᥪâ®à®¢ ( 楫¨¤à)
|
|
||||||
PUSH DE ;ª®«¨ç¥á⢮ 樫¨¤à®¢
|
|
||||||
EXX
|
|
||||||
POP HL ;ª®«¨ç¥á⢮ 樫¨¤à®¢
|
|
||||||
POP BC ;ç¨á«® ᥪâ®à®¢ ( 楫¨¤à)
|
|
||||||
LD D,0
|
|
||||||
LD E,B ;ç¨á«® £®«®¢®ª
|
|
||||||
LD B,D
|
|
||||||
EXX
|
|
||||||
|
|
||||||
LD A,L
|
|
||||||
|
|
||||||
RRA
|
|
||||||
JR C,.end
|
|
||||||
.loopShift:
|
|
||||||
SLA E
|
|
||||||
RL D
|
|
||||||
RRA
|
|
||||||
JR NC,.loopShift
|
|
||||||
|
|
||||||
.end:
|
|
||||||
EX AF,AF'
|
|
||||||
POP AF
|
|
||||||
EX AF,AF'
|
|
||||||
XOR A
|
|
||||||
LD L,A
|
|
||||||
LD H,L
|
|
||||||
LD A,%10100000
|
|
||||||
RET
|
|
||||||
|
|
||||||
;!HARDCODE
|
|
||||||
.RSETPRM:
|
|
||||||
AND A
|
|
||||||
RET
|
|
||||||
|
|
||||||
ENDDRVR EQU $
|
|
||||||
;
|
|
||||||
Loading…
Reference in New Issue
Block a user