-bug FDD_RW_SECTOR: размер сектора больше, чем установлено в FDD_INIT_TABLE.FDD_0.BytesPerSector вызовет ошибку
This commit is contained in:
parent
df27d443e2
commit
55a1020dd6
@ -1 +1 @@
|
||||
Subproject commit a9f5915a3275f5ffbafa0994bb97c5846aab826c
|
||||
Subproject commit bd4546a854905998edab6144547b79aa673404f6
|
||||
@ -127,6 +127,7 @@ FDD_5x_SET_PAR: ;!TEST FDD 720/1440
|
||||
; A - Disk
|
||||
;Return:
|
||||
; A - Flag D7 - "1" - High Density, "0" - Double Density
|
||||
; B - bit0=1 removable
|
||||
;[]===========================================================[]
|
||||
FDD_5x_DETECT: CALL SAVE_INTERRUPTS.switch_off
|
||||
CALL SET_DOS_ON
|
||||
@ -147,7 +148,19 @@ FDD_5x_RESET: CALL SAVE_INTERRUPTS.switch_off
|
||||
CALL SET_DOS_ON
|
||||
CALL S_FDD
|
||||
CALL DISK_ID
|
||||
CALL SAVE_INTERRUPTS.restore
|
||||
JR C,.int
|
||||
; [ ] à §¬¥à ᥪâ®à
|
||||
IN A,(SLOT3)
|
||||
EX AF,AF'
|
||||
LD A,SYS_PAGE
|
||||
OUT (SLOT3),A
|
||||
LD H,B
|
||||
LD L,0
|
||||
LD (FDD_INIT_TABLE.FDD_0.BytesPerSector),HL
|
||||
EX AF,AF'
|
||||
OUT (SLOT3),A
|
||||
;
|
||||
.int: CALL SAVE_INTERRUPTS.restore
|
||||
JR C,.MOTOR_OFF
|
||||
;
|
||||
CALL RESWG
|
||||
@ -240,7 +253,6 @@ FDD_5x_LONG_READ:
|
||||
PUSH DE
|
||||
PUSH BC
|
||||
PUSH HL
|
||||
;CALL READ_SECTOR
|
||||
CALL FDD_RW_SECTOR
|
||||
JR C,ERRDOS
|
||||
; à §¬¥à ᥪâ®à
|
||||
@ -252,21 +264,6 @@ FDD_5x_LONG_READ:
|
||||
ADD HL,DE
|
||||
;
|
||||
CALL C,CHANGE_MEM_BLK
|
||||
; IN A,(SLOT3)
|
||||
; EX AF,AF'
|
||||
; LD A,SYS_PAGE
|
||||
; OUT (SLOT3),A
|
||||
; LD D,high SYS_PAGE.RAM_TABLE
|
||||
; LD E,XH
|
||||
; LD A,(DE)
|
||||
; LD XH,A
|
||||
; EX AF,AF'
|
||||
; OUT (SLOT3),A
|
||||
; ; SET 7,H
|
||||
; ; SET 6,H
|
||||
; LD A,%1100'0000
|
||||
; OR H
|
||||
; LD H,A
|
||||
;
|
||||
.THISRD: POP DE
|
||||
LD A,C
|
||||
@ -366,205 +363,12 @@ FDD_5x_LONG_WRITE:
|
||||
LD B,#A0 ;COMMAND WRITE
|
||||
EXX
|
||||
JP FDD_5x_LONG_READ.RW_Shared
|
||||
|
||||
/*
|
||||
CALL SAVE_INTERRUPTS.switch_off
|
||||
CALL .Start
|
||||
JP SAVE_INTERRUPTS.restore
|
||||
;
|
||||
.Start: PUSH IY
|
||||
PUSH BC
|
||||
PUSH HL
|
||||
PUSH IX
|
||||
;
|
||||
EX AF,AF'
|
||||
LD C,A
|
||||
EX AF,AF'
|
||||
PUSH BC
|
||||
CALL SET_DOS_ON
|
||||
CALL S_FDD
|
||||
CALL SET_SPEED
|
||||
CALL NTRACK
|
||||
POP BC
|
||||
EX DE,HL
|
||||
IN A,(SLOT3)
|
||||
EX AF,AF'
|
||||
LD A,SYS_PAGE
|
||||
OUT (SLOT3),A
|
||||
LD IY,(FDD_INIT_TABLE.FDD_0.BytesPerSector)
|
||||
LD XH,C
|
||||
LD A,(FDD_INIT_TABLE.FDD_0.SECTORS)
|
||||
LD C,A
|
||||
EX AF,AF'
|
||||
OUT (SLOT3),A
|
||||
.DSK_LP2: LD A,D
|
||||
EXX
|
||||
PUSH BC
|
||||
CALL SEEK
|
||||
POP BC
|
||||
EXX
|
||||
PUSH DE
|
||||
PUSH BC
|
||||
PUSH HL
|
||||
CALL WR_SEC
|
||||
JR C,ERRDOS
|
||||
; à §¬¥à ᥪâ®à
|
||||
LD D,YH
|
||||
LD E,YL
|
||||
;
|
||||
POP HL
|
||||
POP BC
|
||||
ADD HL,DE
|
||||
;
|
||||
CALL C,CHANGE_MEM_BLK
|
||||
; IN A,(SLOT3)
|
||||
; EX AF,AF'
|
||||
; LD A,SYS_PAGE
|
||||
; OUT (SLOT3),A
|
||||
; LD D,high SYS_PAGE.RAM_TABLE
|
||||
; LD E,XH
|
||||
; LD A,(DE)
|
||||
; LD XH,A
|
||||
; EX AF,AF'
|
||||
; OUT (SLOT3),A
|
||||
; ; SET 7,H
|
||||
; ; SET 6,H
|
||||
; LD A,%1100'0000
|
||||
; OR H
|
||||
; LD H,A
|
||||
;
|
||||
.THISWR: POP DE
|
||||
LD A,C
|
||||
INC E
|
||||
CP E
|
||||
JR NZ,.NINC_T2
|
||||
LD E,0
|
||||
INC D
|
||||
.NINC_T2: DJNZ .DSK_LP2
|
||||
CALL SET_DOS_OFF
|
||||
LD A,XH
|
||||
EX AF,AF'
|
||||
EX DE,HL
|
||||
POP IX
|
||||
POP HL
|
||||
POP BC
|
||||
POP IY
|
||||
LD A,B
|
||||
LD C,B
|
||||
INC B
|
||||
DEC B
|
||||
LD B,0
|
||||
JR NZ,.ADW8BIT
|
||||
INC B
|
||||
.ADW8BIT: ADD IX,BC
|
||||
;!TEST
|
||||
;LD BC,0
|
||||
;ADC HL,BC
|
||||
;LD B,A
|
||||
;XOR A
|
||||
;RET
|
||||
;
|
||||
LD B,A
|
||||
RET NC
|
||||
INC HL
|
||||
XOR A
|
||||
RET
|
||||
;
|
||||
*/
|
||||
|
||||
/*
|
||||
;
|
||||
;-------------------------------
|
||||
;READ SECTOR
|
||||
;-------------------------------
|
||||
READ_SECTOR: LD D,5 ;RETRY COUNT
|
||||
.HL_RETRY: ;DI
|
||||
PUSH HL
|
||||
PUSH DE
|
||||
LD A,E
|
||||
INC A
|
||||
OUT (FDC_93.Sector),A
|
||||
.FDREAD: IN A,(SLOT3)
|
||||
EX AF,AF'
|
||||
LD A,XH
|
||||
OUT (SLOT3),A
|
||||
;
|
||||
LD B,4 ; áçñâ稪
|
||||
LD C,FDC_93.Data
|
||||
LD A,#80 ; COMMAND READ
|
||||
OUT (FDC_93.Command),A
|
||||
;
|
||||
.FDR001: IN A,(FDC_93.DrvCTRL) ;WAIT INTRQ or DRQ
|
||||
AND %1100'0000 ;b6: DRQ (§ ¯à®á ¤ ëå = 1). b7: INTRQ (¢ë¯®«ï¥âáï ª®¬ ¤ = 0).
|
||||
JR NZ,.read_loop
|
||||
INC DE
|
||||
LD A,E
|
||||
OR D
|
||||
JR NZ,.FDR001
|
||||
;
|
||||
DJNZ .FDR001
|
||||
SCF
|
||||
JR .FDR005
|
||||
;READ BYTE
|
||||
.read_loop: INI
|
||||
.wait_data: IN A,(FDC_93.DrvCTRL)
|
||||
AND %1100'0000 ;b6: DRQ (§ ¯à®á ¤ ëå = 1). b7: INTRQ (¢ë¯®«ï¥âáï ª®¬ ¤ = 0).
|
||||
JR Z,.wait_data
|
||||
JP P,.read_loop ; JUMP if "¢ë¯®«ï¥âáï ª®¬ ¤ = 0"
|
||||
;
|
||||
.FDR005: EX AF,AF'
|
||||
OUT (SLOT3),A
|
||||
EX AF,AF'
|
||||
;
|
||||
POP DE
|
||||
POP HL
|
||||
;EI
|
||||
LD A,BIOS.Error.NotReady
|
||||
JR C,.ERR_XRD
|
||||
;
|
||||
IN A,(FDC_93.Command)
|
||||
LD C,A
|
||||
AND #7F
|
||||
RET Z ; ‚ë室 ¡¥§ ®è¨¡®ª
|
||||
;
|
||||
BIT 2,C
|
||||
JR NZ,.ERDATA
|
||||
;
|
||||
LD A,BIOS.Error.Seek
|
||||
.ERR_XRD: DEC D
|
||||
JR Z,.RSTOP
|
||||
;
|
||||
PUSH DE
|
||||
PUSH HL
|
||||
CALL RESWG ; RESET_WG
|
||||
LD A,XL
|
||||
CALL SEEK ; !!!!! ¯®á¬®âà¥âì
|
||||
POP HL
|
||||
POP DE
|
||||
JR .HL_RETRY
|
||||
;
|
||||
.ERDATA: DEC D ; ¯®â¥àï ¤ ëå
|
||||
JR NZ,.HL_RETRY
|
||||
; Error Read
|
||||
.ERRRD: LD A,BIOS.Error.Read
|
||||
.RSTOP: EX AF,AF'
|
||||
LD A,#D0
|
||||
OUT (FDC_93.Command),A ;STOP OPERATION
|
||||
EX AF,AF'
|
||||
BIT 0,C
|
||||
SCF
|
||||
RET Z
|
||||
LD A,BIOS.Error.SectorNotFound
|
||||
RET
|
||||
; ; ;
|
||||
*/
|
||||
|
||||
;
|
||||
;-------------------------------
|
||||
;WRITE SECTOR
|
||||
;-------------------------------
|
||||
FDD_RW_SECTOR: LD D,5 ;RETRY COUNT
|
||||
.RETRY: DI
|
||||
.RETRY: ;DI
|
||||
PUSH HL
|
||||
PUSH DE
|
||||
LD A,E
|
||||
@ -596,9 +400,19 @@ FDD_RW_SECTOR: LD D,5 ;RETRY COUNT
|
||||
.RW_PROC: EXX
|
||||
BIT 5,B
|
||||
EXX
|
||||
; [ ] 15/04/25 à §¬¥à ᥪâ®à ¡®«ìè¥, 祬 ãáâ ®¢«¥® ¢ FDD_INIT_TABLE.FDD_0.BytesPerSector ¢ë§®¢¥â ®è¨¡ªã
|
||||
LD D,YH
|
||||
LD E,YL
|
||||
INC DE
|
||||
;
|
||||
JR NZ,.write_loop
|
||||
;READ BYTE
|
||||
.read_loop: INI
|
||||
.read_loop: DEC DE
|
||||
LD A,D
|
||||
OR E
|
||||
JR Z,.SectorSizeError
|
||||
;
|
||||
INI
|
||||
.wait_data_r: IN A,(FDC_93.DrvCTRL)
|
||||
AND %1100'0000 ;b6: DRQ (§ ¯à®á ¤ ëå = 1). b7: INTRQ (¢ë¯®«ï¥âáï ª®¬ ¤ = 0).
|
||||
JR Z,.wait_data_r
|
||||
@ -610,12 +424,7 @@ FDD_RW_SECTOR: LD D,5 ;RETRY COUNT
|
||||
;
|
||||
POP DE
|
||||
POP HL
|
||||
; ¯à¥àë¢ ¨ï
|
||||
LD A,R
|
||||
AND %1000'0000
|
||||
JR Z,.no_EI
|
||||
EI
|
||||
.no_EI: ;
|
||||
;EI
|
||||
LD A,BIOS.Error.NotReady
|
||||
JR C,.CMD_ERROR
|
||||
;
|
||||
@ -655,6 +464,7 @@ FDD_RW_SECTOR: LD D,5 ;RETRY COUNT
|
||||
JR Z,.error_exit
|
||||
;
|
||||
LD A,BIOS.Error.Write ; Error Write
|
||||
;
|
||||
.error_exit: EX AF,AF'
|
||||
LD A,#D0
|
||||
OUT (FDC_93.Command),A ;STOP OPERATION
|
||||
@ -666,12 +476,29 @@ FDD_RW_SECTOR: LD D,5 ;RETRY COUNT
|
||||
RET
|
||||
;
|
||||
;WRITE BYTE
|
||||
.write_loop: OUTI
|
||||
.write_loop: DEC DE
|
||||
LD A,D
|
||||
OR E
|
||||
JR Z,.SectorSizeError
|
||||
;
|
||||
OUTI ; !FIXIT à §¬¥à ᥪâ®à ¬®¦¥â ¡ëâì ¯« ¢ î騬 ¨ ¯à¨¡¨âì ¡ãä¥à
|
||||
.wwait_data: IN A,(FDC_93.DrvCTRL)
|
||||
AND %1100'0000 ;b6: DRQ (§ ¯à®á ¤ ëå = 1). b7: INTRQ (¢ë¯®«ï¥âáï ª®¬ ¤ = 0).
|
||||
JR Z,.wwait_data
|
||||
JP P,.write_loop
|
||||
JP .rw_return
|
||||
;
|
||||
.SectorSizeError:
|
||||
EX AF,AF'
|
||||
OUT (SLOT3),A
|
||||
EX AF,AF'
|
||||
POP DE
|
||||
POP HL
|
||||
;EI
|
||||
; A = 0
|
||||
LD C,A
|
||||
LD A,BIOS.Error.UnknownDevice
|
||||
JR .error_exit
|
||||
|
||||
|
||||
|
||||
@ -757,7 +584,9 @@ FDD.SET720: LD A,FDD_Density.SET_720
|
||||
OUT (FDD_Density),A
|
||||
RET
|
||||
|
||||
|
||||
; ¯à¥àë¢ ¨ï ¤®«¦ë ¡ëâì ®âª«îç¥ë
|
||||
; ¢ë室: A - FDD_INIT_TABLE.F144, B - sector size high byte
|
||||
DISK_ID: EXX
|
||||
CALL SET_SPEED
|
||||
IN A,(FDC_93.Track)
|
||||
@ -770,24 +599,7 @@ DISK_ID: EXX
|
||||
LD HL,#F000 ; áçñâ稪
|
||||
.loop_reg_HL: IN A,(FDC_93.DrvCTRL)
|
||||
AND #C0
|
||||
JR Z,.ID_LP4
|
||||
;
|
||||
.ID_LP2: IN A,(FDC_93.Data)
|
||||
.ID_LP3: IN A,(FDC_93.DrvCTRL)
|
||||
AND #C0
|
||||
JR Z,.ID_LP3
|
||||
JP P,.ID_LP2
|
||||
EXX
|
||||
IN A,(SLOT3)
|
||||
EX AF,AF'
|
||||
LD A,SYS_PAGE
|
||||
OUT (SLOT3),A
|
||||
LD A,(FDD_INIT_TABLE.FDD_0.F144)
|
||||
EX AF,AF'
|
||||
OUT (SLOT3),A
|
||||
EX AF,AF'
|
||||
AND #80
|
||||
RET
|
||||
JR NZ,.Read_Index
|
||||
;
|
||||
.ID_LP4: DEC HL
|
||||
LD A,H
|
||||
@ -799,7 +611,43 @@ DISK_ID: EXX
|
||||
EXX
|
||||
SCF
|
||||
RET
|
||||
;
|
||||
;
|
||||
.Read_Index: ;
|
||||
; „ ë¥ FDC_93.Data:
|
||||
; ®¬¥à 樫¨¤à BYTE
|
||||
; ®¬¥à £®«®¢ª¨ BYTE
|
||||
; ®¬¥à ᥪâ®à BYTE
|
||||
; ¤«¨ ᥪâ®à BYTE
|
||||
; ª®â஫ì ï á㬬 WORD
|
||||
LD H,4 ; !HARDCODE áçñâ稪 ¤® ¡ ©â à §¬¥à ᥪâ®à
|
||||
.ID_LP2: IN A,(FDC_93.Data)
|
||||
DEC H
|
||||
JR NZ,.ID_LP3
|
||||
LD L,A ; [ ] à §¬¥à ᥪâ®à (áâ à訩 ¡ ©â)
|
||||
.ID_LP3: IN A,(FDC_93.DrvCTRL)
|
||||
AND %1100'0000
|
||||
JR Z,.ID_LP3
|
||||
JP P,.ID_LP2
|
||||
LD A,L
|
||||
EXX
|
||||
LD B,A ; [ ] à §¬¥à ᥪâ®à (áâ à訩 ¡ ©â)
|
||||
IN A,(SLOT3)
|
||||
EX AF,AF'
|
||||
LD A,SYS_PAGE
|
||||
OUT (SLOT3),A
|
||||
;LD A,L
|
||||
;LD (FDD_INIT_TABLE.FDD_0.BytesPerSector + 1),A
|
||||
LD A,(FDD_INIT_TABLE.FDD_0.F144)
|
||||
EX AF,AF'
|
||||
OUT (SLOT3),A
|
||||
EX AF,AF'
|
||||
AND #80
|
||||
RET
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
;
|
||||
SEEK: LD XL,A
|
||||
|
||||
@ -803,8 +803,7 @@ RAMD_CLEAR:
|
||||
; º ** NOT USED TR-DOS VARS ** º\
|
||||
; ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ\
|
||||
; \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
|
||||
BLK_RD_WR:
|
||||
AND A
|
||||
BLK_RD_WR: AND A
|
||||
SCF
|
||||
RET Z
|
||||
;
|
||||
@ -812,7 +811,6 @@ BLK_RD_WR:
|
||||
INC B
|
||||
DEC B
|
||||
RET Z
|
||||
;
|
||||
; á®åà 塞 á®áâ®ï¨¥ ¯à¥àë¢ ¨©
|
||||
LD C,A
|
||||
LD A,R
|
||||
@ -834,35 +832,30 @@ BLK_RD_WR:
|
||||
POP AF
|
||||
JP PO,.noInterrupts
|
||||
EI
|
||||
.noInterrupts:
|
||||
EX AF,AF'
|
||||
.noInterrupts: EX AF,AF'
|
||||
RET
|
||||
;
|
||||
|
||||
; ;
|
||||
.start: EX AF,AF'
|
||||
AND A ; 0 - read
|
||||
JR Z,.reset_Z
|
||||
CP #FF ; write
|
||||
JR Z,.keep_Z
|
||||
|
||||
;
|
||||
CP 5 ; old read
|
||||
JR Z,.reset_Z
|
||||
CP 6 ; old write
|
||||
JR Z,.keep_Z
|
||||
|
||||
;
|
||||
CP #46
|
||||
JP Z,ROM_DISK
|
||||
|
||||
;
|
||||
EX AF,AF'
|
||||
SCF
|
||||
RET
|
||||
|
||||
.reset_Z:
|
||||
INC A ; set Z for WRITE
|
||||
.keep_Z:
|
||||
EX AF,AF'
|
||||
;
|
||||
|
||||
.reset_Z: INC A ; set Z for WRITE
|
||||
.keep_Z: EX AF,AF'
|
||||
;
|
||||
PUSH HL
|
||||
PUSH BC
|
||||
LD C,SLOT1
|
||||
@ -871,89 +864,73 @@ BLK_RD_WR:
|
||||
LD A,SYS_PAGE
|
||||
OUT (SLOT1),A
|
||||
LD A,H
|
||||
|
||||
;
|
||||
LD H,high +(SYS_PAGE.RAM_TABLE-#4000-#4000)
|
||||
LD L,A
|
||||
|
||||
INC D
|
||||
.RAMD_LOOP_D:
|
||||
DEC D
|
||||
.RAMD_LOOP_D: DEC D
|
||||
JR Z,.NOT_FOUR_BLK
|
||||
LD L,(HL)
|
||||
LD L,(HL)
|
||||
LD L,(HL)
|
||||
LD L,(HL)
|
||||
JP .RAMD_LOOP_D
|
||||
|
||||
.NOT_FOUR_BLK:
|
||||
LD A,E
|
||||
;
|
||||
.NOT_FOUR_BLK: LD A,E
|
||||
.loop: SUB #40
|
||||
JR C,.NOT_ONE_BLK
|
||||
LD L,(HL)
|
||||
JP .loop
|
||||
|
||||
.NOT_ONE_BLK:
|
||||
AND #3F
|
||||
;
|
||||
.NOT_ONE_BLK: AND #3F
|
||||
LD D,A ; DE - ADRESS in RAM-Disk
|
||||
LD E,0
|
||||
|
||||
LD A,L ; L - ⥪ã騩 ¡ ª RAM-Disk
|
||||
|
||||
OUT (C),B ; ¢®ááâ ®¢¨âì áâà ¨æã
|
||||
|
||||
POP BC ; ¤«¨ ¤ ëå
|
||||
POP HL ; ¤à¥á ¡ãä¥à
|
||||
|
||||
BIT 7,H
|
||||
JR NZ,.BLK_PAGE1
|
||||
|
||||
;
|
||||
LD C,SLOT3
|
||||
IN C,(C)
|
||||
OUT (SLOT3),A
|
||||
SET 7,D
|
||||
SET 6,D
|
||||
JP .BLK_CONT1
|
||||
|
||||
.BLK_PAGE1:
|
||||
LD C,SLOT1
|
||||
;
|
||||
.BLK_PAGE1: LD C,SLOT1
|
||||
IN C,(C)
|
||||
OUT (SLOT1),A
|
||||
RES 7,D
|
||||
SET 6,D
|
||||
|
||||
.BLK_CONT1: ; DE - RamDisk, HL - data
|
||||
EX AF,AF'
|
||||
; DE - RamDisk, HL - data
|
||||
.BLK_CONT1: EX AF,AF'
|
||||
JR Z,.NO_EX_RW1 ; WRITE
|
||||
EX DE,HL ; for READ
|
||||
.NO_EX_RW1:
|
||||
EX AF,AF'
|
||||
|
||||
.NO_EX_RW1: EX AF,AF'
|
||||
LD A,16
|
||||
.BLK_LL1:
|
||||
DUP 16
|
||||
;
|
||||
.BLK_LL1: DUP 16
|
||||
LDI
|
||||
EDUP
|
||||
|
||||
DEC A
|
||||
JR NZ,.BLK_LL1
|
||||
|
||||
;
|
||||
EX AF,AF'
|
||||
JR Z,.NO_EX_RW2 ; WRITE
|
||||
EX DE,HL ; for READ
|
||||
.NO_EX_RW2:
|
||||
EX AF,AF' ; DEC C ¯à®ªàã⨫áï 256 à § ¨ ¢¥àã«áï
|
||||
.NO_EX_RW2: EX AF,AF' ; DEC C ¯à®ªàã⨫áï 256 à § ¨ ¢¥àã«áï
|
||||
; A = 0
|
||||
;INC B ; B 㦥 㬥ì訫áï 1,
|
||||
;DEC B
|
||||
CP B
|
||||
JP Z,.BLK_EXIT_1
|
||||
|
||||
;
|
||||
BIT 6,D
|
||||
JP NZ,.BLK_CONT1
|
||||
|
||||
;
|
||||
BIT 7,D
|
||||
JR Z,.BLK_PAGE3_X
|
||||
|
||||
;
|
||||
IN A,(SLOT1)
|
||||
LD E,A
|
||||
LD D,high +(SYS_PAGE.RAM_TABLE-#4000-#4000)
|
||||
@ -963,9 +940,8 @@ BLK_RD_WR:
|
||||
OUT (SLOT1),A
|
||||
LD DE,#4000
|
||||
JP .BLK_CONT1
|
||||
|
||||
.BLK_PAGE3_X:
|
||||
IN A,(SLOT3)
|
||||
;
|
||||
.BLK_PAGE3_X: IN A,(SLOT3)
|
||||
LD E,A
|
||||
LD D,high SYS_PAGE.RAM_TABLE
|
||||
LD A,SYS_PAGE
|
||||
@ -973,10 +949,10 @@ BLK_RD_WR:
|
||||
LD A,(DE)
|
||||
OUT (SLOT3),A
|
||||
LD DE,#C000
|
||||
|
||||
;
|
||||
BIT 7,H
|
||||
JP Z,.BLK_CONT1
|
||||
|
||||
;
|
||||
LD E,A
|
||||
LD A,C
|
||||
OUT (SLOT3),A
|
||||
@ -986,17 +962,16 @@ BLK_RD_WR:
|
||||
OUT (SLOT1),A
|
||||
LD DE,#4000
|
||||
JP .BLK_CONT1
|
||||
|
||||
.BLK_EXIT_1:
|
||||
LD A,D
|
||||
;
|
||||
.BLK_EXIT_1: LD A,D
|
||||
DEC A
|
||||
RLCA
|
||||
LD A,C
|
||||
JR C,.BLK_EXIT_2
|
||||
OUT (SLOT1),A
|
||||
RET
|
||||
.BLK_EXIT_2:
|
||||
OUT (SLOT3),A
|
||||
;
|
||||
.BLK_EXIT_2: OUT (SLOT3),A
|
||||
AND A
|
||||
RET
|
||||
;----------------------------------------------------------------------;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user