чёт поковырял
This commit is contained in:
parent
2d0ee5e639
commit
8cc1bd11af
@ -1 +1 @@
|
||||
Subproject commit 93ab93917db326a86a0ffecc02a62f6f6ef7a938
|
||||
Subproject commit 1535d92eeecb8aa730ae7fe6eb82e9d32a4acb4d
|
||||
@ -137,7 +137,9 @@
|
||||
OUTEND
|
||||
;---------------------------------------
|
||||
;
|
||||
EXPORT ROM_NUMBER ; !FIXIT part1, part2 ¤«ï Flasher
|
||||
;EXPORT ROM_NUMBER ; !FIXIT part1, part2 ¤«ï Flasher
|
||||
EXPORT BOARD_INFO.number
|
||||
EXPORT BOARD_INFO.type
|
||||
EXPORT BoardID.start
|
||||
EXPORT BoardID.end
|
||||
EXPORT FN_CRIPT.cnf
|
||||
|
||||
@ -43,8 +43,6 @@
|
||||
Set_Block 'ROM free space: ', #4000
|
||||
;
|
||||
;PAGE 1
|
||||
; INCBIN 'Build/Bin/LOGO_PAL.BIN'
|
||||
; INCBIN 'Build/Bin/LOGO_DAT.BIN'
|
||||
INCBIN 'Build/Bin/LOGO.BIN'
|
||||
Set_Block 'LOGO free space: ', #8000
|
||||
;
|
||||
@ -76,7 +74,6 @@
|
||||
;PAGE 9-11 (#09, #0A, #0B) Recovery image part 2
|
||||
INCBIN IMG_RECOVERY,#C000,#C000
|
||||
DISPLAY "ROM Disk recovery part2, pages 9..11: 2x4000..3x0000"
|
||||
|
||||
Set_Block 'Empty space: ', #30000
|
||||
;
|
||||
;PAGE 12-15 (#0C, #0D, #0E, #0F)
|
||||
|
||||
@ -12,14 +12,13 @@
|
||||
; CCED/AAAAAAAAA
|
||||
; NN1OW116517210
|
||||
; FF2SR54 3
|
||||
;DCP_DATA: 108
|
||||
; ....0..11.1110
|
||||
; WORD %00000001101110 ; - ¤à¥á
|
||||
; WORD %00001001101111 ; - ¬ ᪠- 0 ¨§¬¥ï¥¬ë¥ ¡¨âë, 1 ¥¨§¬¥ï¥¬ë¥
|
||||
; BYTE ACEX.Border_FE ; - ¯®àâ
|
||||
; 108
|
||||
;DCP_DATA: ....0..11.1110
|
||||
; WORD %00000001101110 ; - b13..12 cnf, b11 pent512, b10 dos, b9 r/w, b8..0 ¤à¥á
|
||||
; WORD %00001001101111 ; - ¬ ᪠- 0 ¨§¬¥ï¥¬ë¥ ¡¨âë, 1 ¥¨§¬¥ï¥¬ë¥
|
||||
; BYTE ACEX.Border_FE ; - ¯®àâ
|
||||
|
||||
|
||||
; DCP END MARKER
|
||||
; DW 0,0,0
|
||||
;-----------------------------------------------------------------------;
|
||||
;
|
||||
;
|
||||
@ -135,30 +134,6 @@
|
||||
DB ACEX.CMOS_DATA.WRITE
|
||||
;
|
||||
;---------HDD[v]
|
||||
/*
|
||||
Write:
|
||||
.Data EQU #0150 ; cnf 20 ; HDW_DAT W170 ; #1F0 Data register
|
||||
.Features EQU #0151 ; cnf 21 ; HDW_ERR W171 ; #1F1 Features register
|
||||
.Counter EQU #0152 ; cnf 22 ; HDW_CNT P_S_CNT W172 ; #1F2 Counter register
|
||||
.Sector EQU #0153 ; cnf 23 ; HDW_SEC P_S_NUM W173 ; #1F3 Sector register
|
||||
.CylinderLow EQU #0154 ; cnf 24 ; HDW_CLL P_C_LOW W174 ; #1F4 Cylinder Low register
|
||||
.CylinderHigh EQU #0155 ; cnf 25 ; HDW_CLH P_C_HIG W175 ; #1F5 Cylinder High register
|
||||
.DeviceHead EQU #4152 ; cnf 26 ; HDW_DRV P_HD_CS ; #1F6 Device/Head register
|
||||
.Command EQU #4153 ; cnf 27 ; HDW_COM P_CMD ; #1F7 Command register
|
||||
.DeviceControl EQU #4154 ; cnf 28 ; ; #3F6 Device Control register
|
||||
|
||||
Read:
|
||||
.Data EQU #0050 ; cnf 20 ; HDR_DAT P_DATS R170 ; #1F0 Data register
|
||||
.Error EQU #0051 ; cnf 21 ; HDR_ERR P_ERR R171 ; #1F1 Error register
|
||||
.Counter EQU #0052 ; cnf 22 ; HDR_CNT R172 ; #1F2 Counter register
|
||||
.Sector EQU #0053 ; cnf 23 ; HDR_SEC R173 ; #1F3 Sector register
|
||||
.CylinderLow EQU #0054 ; cnf 24 ; HDR_CLL R174 ; #1F4 Cylinder Low register
|
||||
.CylinderHigh EQU #0055 ; cnf 25 ; HDR_CLH R175 ; #1F5 Cylinder High register
|
||||
.Control EQU #4052 ; cnf 26 ; HDR_DRV R176 ; #1F6 Device/Head register
|
||||
.Status EQU #4053 ; cnf 27 ; HDR_CTL P_HDST R177 ; #1F7 Status (Control) register
|
||||
.AltStatus EQU #4054 ; cnf 28 ; ; #3F6 Alternate Status register
|
||||
.DrvAddress EQU #4055 ; cnf 29 ; ; #3F7
|
||||
*/
|
||||
DW %00'000'0'0100'0000
|
||||
DW %11'000'0'0110'1111
|
||||
DB ACEX.IDE_DATA_1F0
|
||||
@ -465,7 +440,7 @@ Read:
|
||||
DW %11'010'0'0110'1010
|
||||
DW %11'010'0'0110'1111
|
||||
DB ACEX.SLOT3
|
||||
; DCP END MARKER
|
||||
; DCP END MARKER
|
||||
DW 0,0,0
|
||||
;-----------------------------------------------------------------------;
|
||||
;
|
||||
|
||||
@ -15,9 +15,12 @@ EXP_START:
|
||||
JP GLOBAL_RESET
|
||||
|
||||
;---------------------------------------
|
||||
ROM_NUMBER:
|
||||
.part1: DW MotherBoardID
|
||||
.part2: DB 0
|
||||
;ROM_NUMBER:
|
||||
;.part1: DW MotherBoardID
|
||||
;.part2: DB 0
|
||||
BOARD_INFO:
|
||||
.number: DW MotherBoardID
|
||||
.type: DB MotherBoardType
|
||||
;---------------------------------------
|
||||
|
||||
;---------------------------------------
|
||||
@ -305,20 +308,19 @@ NO_RESTART:
|
||||
OUT (Z84.SIO.Ch_A.Ctrl),A
|
||||
LD A,#62
|
||||
OUT (Z84.SIO.Ch_A.Ctrl),A
|
||||
|
||||
;
|
||||
LD A,#CF ; BITS I/O
|
||||
OUT (Z84.PIO.Port_A.Command),A
|
||||
XOR A
|
||||
OUT (Z84.PIO.Port_A.Command),A
|
||||
OUT (Z84.PIO.Port_A.Data),A ; PRINTER - PORT - all zeros
|
||||
|
||||
; -¨¨æ¨ «¨§ æ¨ï á¨á⥬ëå ¯®à⮢ Z84C15-
|
||||
LD BC,#FF*256 + Z84.SYS.Control
|
||||
XOR A ; Z84.REG.WaitState_Ctrl
|
||||
OUT (C),A ; Z84.SYS.Control
|
||||
INC C ; Z84.REG.WaitState_MemBound
|
||||
OUT (C),A ; Z84.SYS.Data ; set 0 Waits
|
||||
|
||||
;
|
||||
DEC C
|
||||
LD A,3 ; Z84.REG.Misc_Ctrl
|
||||
OUT (C),A ; Z84.SYS.Control
|
||||
@ -745,7 +747,7 @@ POST_5_OK:
|
||||
; SBC HL,BC
|
||||
;JR Z,set_config ;!TODO ªâ¨¢ æ¨ï ¬¥âª¨ IX:IY ¨§ «® ¤¥à
|
||||
;LD IX,ACEX.Config_ID.Sp97_2
|
||||
LD HL,ACEX.Config_ID.Sp2000
|
||||
LD HL,ACEX.Config_ID.Sp2000
|
||||
set_config:
|
||||
LD (SYS_PAGE.CONFIG_BYTE),HL ; á®åà ¨âì ®¬¥à ¯à®è¨¢ª¨
|
||||
;LD (SYS_PAGE.CONFIG_BYTE),IX ; á®åà ¨âì ®¬¥à ¯à®è¨¢ª¨
|
||||
@ -767,14 +769,14 @@ set_config:
|
||||
OUT (RGMOD),A
|
||||
OUT (SLOT3),A
|
||||
OUT (SLOT0),A
|
||||
LD A,5
|
||||
LD A,5 ; !HARDCODE page 5
|
||||
OUT (SLOT1),A
|
||||
LD A,2
|
||||
LD A,2 ; !HARDCODE page 2
|
||||
OUT (SLOT2),A
|
||||
|
||||
;*********************************
|
||||
; Don't use stack (SP) before this point if it`s normal booting!!!
|
||||
LD SP,#BFFE ; <20> ç «® ¨á¯®«ì§®¢ ¨ï á⥪ !!!
|
||||
LD SP,#C000 ; <20> ç «® ¨á¯®«ì§®¢ ¨ï á⥪ !!!
|
||||
PUSH HL ; á®åà ¨âì ®¬¥à ¯à®è¨¢ª¨
|
||||
|
||||
CALL PORTS_INIT ; ¨¨æ¨ «¨§¨à®¢ âì ¯®àâë
|
||||
@ -782,20 +784,7 @@ set_config:
|
||||
OUT (BorderColor),A
|
||||
CALL EMM.CheckColdInit ; ¨¨æ¨ «¨§ æ¨ï ¯ ¬ïâ¨
|
||||
POP HL ; ª®ä¨£ãà æ¨ï
|
||||
JR Reset_Handler.start
|
||||
; *************************************
|
||||
; ‘ç¨â ¥¬, çâ® ¢å®¤ ¢ SETUP ¢á¥£¤ !!!
|
||||
; *************************************
|
||||
|
||||
; LD A,H
|
||||
; CP #FF
|
||||
; JR NZ,NO_SETUP_1
|
||||
; LD A,L
|
||||
|
||||
|
||||
; JR NZ,NO_SETUP_2
|
||||
|
||||
;[---------------------------------------------------------------------]
|
||||
; JR Reset_Handler.start
|
||||
|
||||
MODULE Reset_Handler
|
||||
start: DI
|
||||
@ -908,7 +897,7 @@ init_rom_address EQU #8200 ;!HARDCODE
|
||||
LD BC,RAM_BIOS_PROG.Length
|
||||
LDIR
|
||||
*/
|
||||
No_Need_To_Load_ZXROMS:
|
||||
;No_Need_To_Load_ZXROMS:
|
||||
POP AF
|
||||
OUT (SLOT3),A
|
||||
;-------------------------------------------------------------------------------------------------------------------;
|
||||
|
||||
@ -256,8 +256,7 @@ FN_HDD_READ_NEXT:
|
||||
RET C
|
||||
CALL NEXT_ADD_SEC
|
||||
JR FN_HDD_READ.L1
|
||||
|
||||
|
||||
;
|
||||
; HL - BUFER, A - PAGE
|
||||
FN_HDD_READ:
|
||||
AND A
|
||||
@ -488,7 +487,7 @@ FN_HDD_TEST_IDE:
|
||||
; <20>¥ ¤®«¦ ¯®àâ¨âì ॣ¨áâà E!!!
|
||||
TEST_HDD_DRV:
|
||||
; EXP_HDD.ASM variant
|
||||
LD HL,#01FE ; ?????
|
||||
LD HL,#01FE
|
||||
LD BC,IDE.Write.Counter
|
||||
OUT (C),L
|
||||
IF IDE_Optimization
|
||||
@ -496,36 +495,36 @@ TEST_HDD_DRV:
|
||||
OUT (C),H ; IDE.Write.Sector
|
||||
;
|
||||
DEC C
|
||||
INC B
|
||||
IN A,(C) ; ????? IDE.Write.Counter+#100
|
||||
DEC B
|
||||
IN A,(C) ; IDE.Read.Counter
|
||||
CP L
|
||||
RET NZ
|
||||
INC C
|
||||
ELSE
|
||||
LD BC,IDE.Write.Sector
|
||||
OUT (C),H
|
||||
LD BC,IDE.Write.Counter+#100
|
||||
LD BC,IDE.Read.Counter
|
||||
IN A,(C)
|
||||
CP L
|
||||
RET NZ
|
||||
LD BC,IDE.Write.Sector+#100
|
||||
LD BC,IDE.Read.Sector
|
||||
ENDIF
|
||||
IN A,(C) ; ????? IDE.Write.Sector+#100
|
||||
IN A,(C) ; IDE.Read.Sector
|
||||
CP H
|
||||
RET
|
||||
|
||||
; TEST_HDD_DRV:
|
||||
; ; EXTENDED.ASM variant
|
||||
; LD HL,#00FF ;?????
|
||||
; LD HL,#00FF
|
||||
; LD BC,IDE.Write.CylinderLow
|
||||
; OUT (C),L
|
||||
; IF IDE_Optimization
|
||||
; INC C
|
||||
; OUT (C),H ; IDE.Write.CylinderHigh
|
||||
; OUT (C),H ; IDE.Write.CylinderHigh
|
||||
|
||||
; INC B
|
||||
; DEC C
|
||||
; IN A,(C) ; ????? ’ãâ ॣ¨áâà BC = #0254 - çâ® § ¯®àâ â ª®© ¨ çâ® ®ââ㤠¯à®ç¨â ¥âáï?
|
||||
; IN A,(C) ; ’ãâ ॣ¨áâà BC = #0254 - .CylinderLow
|
||||
; CP L
|
||||
; RET NZ
|
||||
; INC C
|
||||
@ -533,14 +532,14 @@ TEST_HDD_DRV:
|
||||
; ELSE
|
||||
; LD BC,IDE.Write.CylinderHigh
|
||||
; OUT (C),H
|
||||
; LD BC,#0254 ;???!!!!
|
||||
; LD BC,#0254
|
||||
; IN A,(C)
|
||||
; CP L
|
||||
; RET NZ
|
||||
; LD BC,#0255 ;???!!!!
|
||||
; LD BC,#0255
|
||||
; ENDIF
|
||||
|
||||
; IN A,(C) ; ????? ’ãâ ॣ¨áâà BC = #0255 - çâ® § ¯®àâ â ª®© ¨ çâ® ®ââ㤠¯à®ç¨â ¥âáï?
|
||||
; IN A,(C) ; ’ãâ ॣ¨áâà BC = #0255 - .CylinderHigh
|
||||
; CP H
|
||||
; RET
|
||||
|
||||
@ -628,7 +627,7 @@ FN_HDD_INIT:
|
||||
LD A,IDE.ATA.IdentifyDevice ;!FIXIT ¯¥à¥¤¥« âì
|
||||
OUT (C),A
|
||||
WAIT_HDD
|
||||
BIT IDE.ControlBit.DataRequest,A
|
||||
AND IDE.ControlByte.DataRequest
|
||||
;JR NZ,.L2
|
||||
SCF
|
||||
RET Z
|
||||
@ -704,22 +703,21 @@ HD_WAIT:
|
||||
PUSH BC
|
||||
PUSH AF
|
||||
LD DE,0
|
||||
HD_WAIT1:
|
||||
LD BC,IDE.Read.Status
|
||||
.loop: LD BC,IDE.Read.Status
|
||||
IN A,(C)
|
||||
AND IDE.ControlByte.Busy
|
||||
JR Z,HD_W_EXIT
|
||||
JR Z,.EXIT
|
||||
DEC DE
|
||||
LD A,D
|
||||
OR E
|
||||
JR NZ,HD_WAIT1
|
||||
JR NZ,.loop
|
||||
POP AF
|
||||
POP BC
|
||||
POP DE
|
||||
SCF
|
||||
RET
|
||||
HD_W_EXIT:
|
||||
POP AF
|
||||
;
|
||||
.EXIT: POP AF
|
||||
POP BC
|
||||
POP DE
|
||||
AND A
|
||||
|
||||
@ -768,7 +768,7 @@ LP_BEG_P:
|
||||
LP_INI_P:
|
||||
EX AF,AF'
|
||||
EXX
|
||||
LP_OPEN_PG
|
||||
LP_OPEN_PG
|
||||
LD A,(WIN_ID_0.USER.MODE)
|
||||
CP #C0
|
||||
JR NC,LP_INI_NO_ZG ; ®âªàë⨥ ¡®à¤¥à ...
|
||||
@ -1221,12 +1221,12 @@ LP_MODE_LINE3: ;
|
||||
LD A,#50
|
||||
OUT (SLOT3),A
|
||||
LD A,L ; ¢¥à⨪ «ì®¥ ¯®«®¦¥¨¥
|
||||
CP 80H
|
||||
CP #80
|
||||
JR NC,LP_EXIT_MODE3
|
||||
|
||||
LP_MODE_RECURSE3:
|
||||
LD A,D ; £®à¨§®â «ì®¥ ¯®«®¦¥¨¥
|
||||
AND 7FH
|
||||
AND #7F
|
||||
SUB 80
|
||||
JR C,LP_MODE_LL3
|
||||
SUB 48
|
||||
@ -1238,7 +1238,7 @@ LP_MODE_RECURSE3:
|
||||
|
||||
LD A,E ; ¢®ááâ ®¢¨âì
|
||||
RRA
|
||||
AND 3FH
|
||||
AND #3F
|
||||
SUB C
|
||||
JR NC,LP_EXIT_MODE3
|
||||
NEG
|
||||
@ -1248,7 +1248,7 @@ LP_MODE_RECURSE3:
|
||||
LP_MODE_LL3:
|
||||
NEG
|
||||
RRA
|
||||
AND 3FH
|
||||
AND #3F
|
||||
CP C
|
||||
JR NC,LP_MODE_LR3
|
||||
LD C,A
|
||||
|
||||
@ -1,10 +1,10 @@
|
||||
;===================[ ”ãªæ¨¨ à á¯à¥¤¥«¥¨ï ¯ ¬ï⨠]===================;
|
||||
; ‚ë室: BC - FREE MEM ¢ ¡«®ª å ¯® 16k, HL - FULL MEM
|
||||
; ‚ë室: BC - FREE MEM ¢ ¡«®ª å ¯® 16k, HL - FULL MEM
|
||||
;!TEST ¢á¥ SLOT2 SLOT1
|
||||
;
|
||||
;----------------------------------------------------------------------;
|
||||
; Ž¯à¥¤¥«¥¨¥ ®¡ê¥¬ ¯ ¬ïâ¨.
|
||||
; ‚ë室: BC - FREE MEM ¢ ¡«®ª å ¯® 16k, HL - FULL MEM
|
||||
; Ž¯à¥¤¥«¥¨¥ ®¡ê¥¬ ¯ ¬ïâ¨.
|
||||
; ‚ë室: BC - FREE MEM ¢ ¡«®ª å ¯® 16k, HL - FULL MEM
|
||||
EMM.GetMemSize:
|
||||
IN A,(SLOT1)
|
||||
LD B,A
|
||||
@ -32,7 +32,7 @@ EMM.GetMemSize:
|
||||
|
||||
;
|
||||
;----------------------------------------------------------------------;
|
||||
; ˆ¨æ¨ «¨§ æ¨ï à á¯à¥¤¥«¥¨ï ¯ ¬ïâ¨.
|
||||
; ˆ¨æ¨ «¨§ æ¨ï à á¯à¥¤¥«¥¨ï ¯ ¬ïâ¨.
|
||||
EMM.InitMem:
|
||||
PUSH BC
|
||||
PUSH HL
|
||||
@ -42,7 +42,7 @@ EMM.InitMem:
|
||||
LD C,A
|
||||
LD A,SYS_PAGE
|
||||
OUT (SLOT3),A
|
||||
LD HL,SYS_PAGE.RAMD_FAT; - #4000 - #4000 ; €¤à¥á FAT އ“.
|
||||
LD HL,SYS_PAGE.RAMD_FAT ; €¤à¥á RAM FAT ¢ އ“.
|
||||
; ®¡ã«ï¥¬ â ¡«¨æã
|
||||
XOR A
|
||||
.loopFree:
|
||||
@ -50,7 +50,7 @@ EMM.InitMem:
|
||||
INC L
|
||||
JR NZ,.loopFree
|
||||
; १¥à¢¨à㥬 ᯥæ.áâà ¨æë ¨ áâà ¨æë ZX
|
||||
LD B,RESERVED_PAGES.Blocks
|
||||
LD B,RESERVED_PAGES.Blocks
|
||||
LD DE,RESERVED_PAGES ; â ¡«¨æ § ïâëå á¨á⥬ëå áâà ¨æ
|
||||
.loop: LD A,(DE)
|
||||
CP #FF
|
||||
@ -63,10 +63,10 @@ EMM.InitMem:
|
||||
CP #FF
|
||||
JR NZ,.loopBlk
|
||||
.exitLoop:
|
||||
INC DE
|
||||
DJNZ .loop
|
||||
LD L,A
|
||||
LD (HL),A
|
||||
INC DE
|
||||
DJNZ .loop
|
||||
LD L,A
|
||||
LD (HL),A
|
||||
; ˆ¨æ¨ «¨§ æ¨ï ª«î祩 RAM-Disks
|
||||
XOR A
|
||||
LD HL,SYS_PAGE.RAMD_KEYS; - #4000 - #4000
|
||||
@ -89,27 +89,27 @@ EMM.InitMem:
|
||||
RET
|
||||
;---------------------------------------------------------------------[]
|
||||
RESERVED_PAGES:
|
||||
; [x] Block #1 - ¬®¦® ®á¢®¡®¤¨âì ¯® ID 1
|
||||
; [x] Block #1 - ¬®¦® ®á¢®¡®¤¨âì ¯® ID 1
|
||||
DB 1,3,4,6,7,8,9,10,11,12,13,14,15 ; for Spectrum
|
||||
;!FIXIT áâà ¨æë 16..31 ¥ § १¥à¢¨à®¢ ë, ® ¨á¯®«ì§ãîâáï ¢ Pentagon 512
|
||||
;
|
||||
;
|
||||
; í¬ã«ïâ®à <20>‡“ ;!FIXIT ROM-Emulator ᤥ« âì ¤¨ ¬¨ç¥áª¨¥ áâà ¨æë
|
||||
DB #42,#43,#44,#45,#46,#47;,#48,#49,#4A,#4B ; For (BASIC128, BASIC48, TRDOS, SCORP_ROM)*2, vBIOS, vEXTENSION
|
||||
DB #FF ; End of the block
|
||||
;
|
||||
;
|
||||
;; Block #2 - ¥«ì§ï ®á¢®¡®¦¤ âì
|
||||
DB 0,2,5 ; for Spectrum and BIOS starting
|
||||
;; Block #2 - ¥«ì§ï ®á¢®¡®¦¤ âì
|
||||
DB 0,2,5 ; for Spectrum and BIOS starting
|
||||
DB DCP_PAGE ; Ports map
|
||||
DB Spec_Page ; Page for Spectrum mode
|
||||
; Screen pages
|
||||
; Screen pages
|
||||
DB #50,#51,#52,#53,#54,#55,#56,#57
|
||||
DB #58,#59,#5A,#5B,#5C,#5D,#5E,#5F
|
||||
;
|
||||
DB #58,#59,#5A,#5B,#5C,#5D,#5E,#5F
|
||||
;
|
||||
;DB MODE_PAGE ; ?????
|
||||
DB CBL.BUFFER_PAGE ; Page for CBL audio
|
||||
DB SYS_PAGE ; Page for system (BIOS) variables
|
||||
DB #FF ; End of the block
|
||||
DB CBL.BUFFER_PAGE ; Page for CBL audio
|
||||
DB SYS_PAGE ; Page for system (BIOS) variables
|
||||
DB #FF ; End of the block
|
||||
;
|
||||
.Blocks EQU 2
|
||||
;----------------------------------------------------------------------;
|
||||
@ -119,10 +119,10 @@ RESERVED_PAGES:
|
||||
|
||||
;
|
||||
;----------------------------------------------------------------------;
|
||||
; <EFBFBD>®«ãç¨âì ¡«®ª ¯ ¬ï⨠N bytes,
|
||||
; ‚室: B - ç¨á«® ¥®¡å®¤¨¬ëå ¡«®ª®¢
|
||||
; ‚ë室: L,A - Š‹ž— RAM-Disk/ª®¤ ®è¨¡ª¨
|
||||
; CF - ¯à¨§ ª ®è¨¡ª¨
|
||||
; <EFBFBD>®«ãç¨âì ¡«®ª ¯ ¬ï⨠N bytes,
|
||||
; ‚室: B - ç¨á«® ¥®¡å®¤¨¬ëå ¡«®ª®¢
|
||||
; ‚ë室: L,A - Š‹ž— RAM-Disk/ª®¤ ®è¨¡ª¨
|
||||
; CF - ¯à¨§ ª ®è¨¡ª¨
|
||||
;EMM_FN2M:
|
||||
EMM.GetMem:
|
||||
;PUSH DE
|
||||
@ -141,7 +141,7 @@ EMM.GetMem:
|
||||
JR NZ,.loop
|
||||
DJNZ .loop
|
||||
|
||||
; Œ¥áâ® ¥áâì !
|
||||
; Œ¥áâ® ¥áâì !
|
||||
LD B,C ; ‚®ááâ ®¢¨âì ã¦ë© ®¡ê¥¬ ¤¨áª
|
||||
LD C,#FF ; Œ…’Š€ ŠŽ<C5A0>–€ RAM-Disk
|
||||
LD HL,SYS_PAGE.RAMD_FAT; - #4000 - #4000
|
||||
@ -155,7 +155,7 @@ EMM.GetMem:
|
||||
LD C,L
|
||||
DJNZ .loop2
|
||||
|
||||
; L - 㪠§ â¥«ì æ¥¯®çª¨.
|
||||
; L - 㪠§ â¥«ì æ¥¯®çª¨.
|
||||
EX AF,AF'
|
||||
OUT (SLOT3),A
|
||||
LD A,L
|
||||
@ -179,10 +179,10 @@ EMM.GetMem:
|
||||
|
||||
;
|
||||
;----------------------------------------------------------------------;
|
||||
; <20>®«ãç¨âì ¡«®ª ¯ ¬ï⨠N bytes, ¤«ï RAM-Disk A
|
||||
; ‚室: B - ç¨á«® ¥®¡å®¤¨¬ëå ¡«®ª®¢, A - RAM-Disk
|
||||
; ‚ë室: L,A - Š‹ž— RAM-Disk/ª®¤ ®è¨¡ª¨
|
||||
; CF - ¯à¨§ ª ®è¨¡ª¨
|
||||
; <20>®«ãç¨âì ¡«®ª ¯ ¬ï⨠N bytes, ¤«ï RAM-Disk A
|
||||
; ‚室: B - ç¨á«® ¥®¡å®¤¨¬ëå ¡«®ª®¢, A - RAM-Disk
|
||||
; ‚ë室: L,A - Š‹ž— RAM-Disk/ª®¤ ®è¨¡ª¨
|
||||
; CF - ¯à¨§ ª ®è¨¡ª¨
|
||||
;EMM.GetMem:
|
||||
EMM.GetMemRMD:
|
||||
PUSH AF
|
||||
@ -194,7 +194,7 @@ EMM.GetMemRMD:
|
||||
CALL BLK_TO_RAMD
|
||||
RET NC
|
||||
.error2:
|
||||
LD L,2 ; RAM-Disk § ïâ ;!TODO ¯¥à¥ç¨á«¨âì ¢á¥ ¢ ਠâë ®è¨¡®ª ¨ ¨å ®¬¥à ª ª ¤«ï „‘‘
|
||||
LD L,2 ; RAM-Disk § ïâ ;!TODO ¯¥à¥ç¨á«¨âì ¢á¥ ¢ ਠâë ®è¨¡®ª ¨ ¨å ®¬¥à ª ª ¤«ï „‘‘
|
||||
LD A,L
|
||||
RET
|
||||
.error1:
|
||||
@ -208,8 +208,8 @@ EMM.GetMemRMD:
|
||||
|
||||
|
||||
;----------------------------------------------------------------------;
|
||||
; Žá¢®¡®¤¨âì ¡«®ª ¯ ¬ï⨠ª«îç K
|
||||
; ‚室: A - Š‹ž— RAM-Disk
|
||||
; Žá¢®¡®¤¨âì ¡«®ª ¯ ¬ï⨠ª«îç K
|
||||
; ‚室: A - Š‹ž— RAM-Disk
|
||||
EMM.FreeMemRMD:
|
||||
CALL GET_RAMD_ST
|
||||
RET C
|
||||
@ -227,8 +227,8 @@ EMM.FreeMemRMD:
|
||||
LD A,C
|
||||
;JR EMM.FreeMem
|
||||
;------[
|
||||
; Žá¢®¡®¤¨âì ¡«®ª ¯ ¬ïâ¨
|
||||
; ‚室: A - <20>€—€‹Ž –…<E28093>Ž—Šˆ
|
||||
; Žá¢®¡®¤¨âì ¡«®ª ¯ ¬ïâ¨
|
||||
; ‚室: A - <20>€—€‹Ž –…<E28093>Ž—Šˆ
|
||||
; <20>… <20>Ž<EFBFBD>’ˆ’œ DE!!!
|
||||
;EMM_FN3M:
|
||||
EMM.FreeMem:
|
||||
@ -274,19 +274,19 @@ EMM_FN3M_ERR:
|
||||
|
||||
; WARNING!!! ¥ âண âì DE
|
||||
;----------------------------------------------------------------------;
|
||||
; <20>®«ãç¨âì áâà ¨æã N ª«îç K
|
||||
; ‚室: A - Š‹ž— RAM-Disk, B - ®¬¥à áâà ¨æë
|
||||
; ‚ë室: A - áâà ¨æ
|
||||
; <20>®«ãç¨âì áâà ¨æã N ª«îç K
|
||||
; ‚室: A - Š‹ž— RAM-Disk, B - ®¬¥à áâà ¨æë
|
||||
; ‚ë室: A - áâà ¨æ
|
||||
EMM.GetMemPageRMD:
|
||||
CALL GET_RAMD_ST
|
||||
RET C
|
||||
SCF
|
||||
RET Z
|
||||
;JR EMM.GetMemPage
|
||||
;------[
|
||||
; <20>®«ãç¨âì áâà ¨æã N ¡«®ª K
|
||||
; ‚室: A - ¡«®ª, B - ®¬¥à áâà ¨æë
|
||||
; ‚ë室: A - áâà ¨æ , IF CF - A=0 - ¥â ¡«®ª , A=FF - END
|
||||
;------[
|
||||
; <20>®«ãç¨âì áâà ¨æã N ¡«®ª K
|
||||
; ‚室: A - ¡«®ª, B - ®¬¥à áâà ¨æë
|
||||
; ‚ë室: A - áâà ¨æ , IF CF - A=0 - ¥â ¡«®ª , A=FF - END
|
||||
;EMM_FN4M:
|
||||
EMM.GetMemPage:
|
||||
LD L,A
|
||||
@ -327,9 +327,9 @@ EMM_F4M_END:
|
||||
|
||||
;
|
||||
;----------------------------------------------------------------------;
|
||||
; <20>®«ãç¨âì á«¥¤ãîéãî áâà ¨æã ¯® FAT
|
||||
; ‚室: A - áâà ¨æ Ž‡“
|
||||
; ‚ë室: A - á«¥¤ãîé ï áâà ¨æ Ž‡“
|
||||
; <20>®«ãç¨âì á«¥¤ãîéãî áâà ¨æã ¯® FAT
|
||||
; ‚室: A - áâà ¨æ Ž‡“
|
||||
; ‚ë室: A - á«¥¤ãîé ï áâà ¨æ Ž‡“
|
||||
;EMM_FN5:
|
||||
EMM.GetMemPageNext:
|
||||
LD L,A
|
||||
@ -357,9 +357,9 @@ EMM.GetMemPageNext:
|
||||
|
||||
;
|
||||
;----------------------------------------------------------------------;
|
||||
; <20>®«ãç¨âì ᯨ᮪ áâà ¨æ ¡«®ª ¢ HL
|
||||
; ‚室: A - ¡«®ª, HL - ¤à¥á ¡ãä¥à - 256 ¡ ©â.
|
||||
; ‚ë室: HL - ¤à¥á ¡«®ª , B - ¤«¨ ¡«®ª ¢ áâà ¨æ å Ž‡“
|
||||
; <20>®«ãç¨âì ᯨ᮪ áâà ¨æ ¡«®ª ¢ HL
|
||||
; ‚室: A - ¡«®ª, HL - ¤à¥á ¡ãä¥à - 256 ¡ ©â.
|
||||
; ‚ë室: HL - ¤à¥á ¡«®ª , B - ¤«¨ ¡«®ª ¢ áâà ¨æ å Ž‡“
|
||||
;EMM_FN5M:
|
||||
EMM.GetMemBlkPages:
|
||||
PUSH DE
|
||||
@ -433,17 +433,17 @@ EMM.GetMemBlkPages:
|
||||
;
|
||||
;----------------------------------------------------------------------; !FIXIT SAFE_RGADR
|
||||
;RAMD_R_W:
|
||||
; ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
|
||||
; º RD/WR SECTOR º\
|
||||
; º HL - BUFER º\
|
||||
; º DE - ABS sector ¢ 256b ¡«®ª å º\
|
||||
; º B - ç¨á«® ¤ ëå ¢ 256b ¡«®ª å º\
|
||||
; º A - block RAM º\
|
||||
; º A' - ª®¬ ¤ ç⥨¥/§ ¯¨áì/ç⥨¥ ROM Disk º\
|
||||
; º 0 - read, 255 - write, 70 - read ROM DISK º\
|
||||
; º ** NOT USED TR-DOS VARS ** º\
|
||||
; ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ\
|
||||
; \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
|
||||
; ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
|
||||
; º RD/WR SECTOR º\
|
||||
; º HL - BUFER º\
|
||||
; º DE - ABS sector ¢ 256b ¡«®ª å º\
|
||||
; º B - ç¨á«® ¤ ëå ¢ 256b ¡«®ª å º\
|
||||
; º A - block RAM º\
|
||||
; º A' - ª®¬ ¤ ç⥨¥/§ ¯¨áì/ç⥨¥ ROM Disk º\
|
||||
; º 0 - read, 255 - write, 70 - read ROM DISK º\
|
||||
; º ** NOT USED TR-DOS VARS ** º\
|
||||
; ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ\
|
||||
; \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
|
||||
BLK_RD_WR:
|
||||
AND A
|
||||
SCF
|
||||
@ -453,42 +453,42 @@ BLK_RD_WR:
|
||||
INC B
|
||||
DEC B
|
||||
RET Z
|
||||
;
|
||||
; á®åà 塞 á®áâ®ï¨¥ ¯à¥àë¢ ¨©
|
||||
LD C,A
|
||||
LD A,R
|
||||
PUSH AF
|
||||
;
|
||||
; á®åà 塞 á®áâ®ï¨¥ ¯à¥àë¢ ¨©
|
||||
LD C,A
|
||||
LD A,R
|
||||
PUSH AF
|
||||
; á®åà 塞 PORT_Y
|
||||
IN A,(PORT_Y)
|
||||
PUSH AF
|
||||
LD A,#C0
|
||||
OUT (PORT_Y),A
|
||||
;
|
||||
LD A,C
|
||||
DI
|
||||
CALL .start
|
||||
EX AF,AF'
|
||||
; ¢®ááâ ¢«¨¢ ¥¬ PORT_Y
|
||||
LD A,C
|
||||
DI
|
||||
CALL .start
|
||||
EX AF,AF'
|
||||
; ¢®ááâ ¢«¨¢ ¥¬ PORT_Y
|
||||
POP AF
|
||||
OUT (PORT_Y),A
|
||||
; ¢®ááâ ¢«¨¢ ¥¬ á®áâ®ï¨¥ ¯à¥àë¢ ¨©
|
||||
POP AF
|
||||
JP PO,.noInterrupts
|
||||
EI
|
||||
POP AF
|
||||
JP PO,.noInterrupts
|
||||
EI
|
||||
.noInterrupts:
|
||||
EX AF,AF'
|
||||
RET
|
||||
;
|
||||
|
||||
;
|
||||
|
||||
.start: EX AF,AF'
|
||||
AND A ; 0 - read
|
||||
AND A ; 0 - read
|
||||
JR Z,.reset_Z
|
||||
CP #FF ; write
|
||||
CP #FF ; write
|
||||
JR Z,.keep_Z
|
||||
|
||||
CP 5 ; old read
|
||||
CP 5 ; old read
|
||||
JR Z,.reset_Z
|
||||
CP 6 ; old write
|
||||
CP 6 ; old write
|
||||
JR Z,.keep_Z
|
||||
|
||||
CP #46
|
||||
@ -499,19 +499,19 @@ BLK_RD_WR:
|
||||
RET
|
||||
|
||||
.reset_Z:
|
||||
INC A ; set Z for WRITE
|
||||
INC A ; set Z for WRITE
|
||||
.keep_Z:
|
||||
EX AF,AF'
|
||||
;
|
||||
;
|
||||
|
||||
PUSH HL
|
||||
PUSH BC
|
||||
LD C,SLOT1
|
||||
IN B,(C)
|
||||
LD H,A
|
||||
LD H,A
|
||||
LD A,SYS_PAGE
|
||||
OUT (SLOT1),A
|
||||
LD A,H
|
||||
LD A,H
|
||||
|
||||
LD H,high (SYS_PAGE.RAMD_FAT - #4000 - #4000)
|
||||
LD L,A
|
||||
@ -562,7 +562,7 @@ BLK_RD_WR:
|
||||
RES 7,D
|
||||
SET 6,D
|
||||
|
||||
.BLK_CONT1: ; DE - RamDisk, HL - data
|
||||
.BLK_CONT1: ; DE - RamDisk, HL - data
|
||||
EX AF,AF'
|
||||
JR Z,.NO_EX_RW1 ; WRITE
|
||||
EX DE,HL ; for READ
|
||||
@ -574,7 +574,7 @@ BLK_RD_WR:
|
||||
DUP 16
|
||||
LDI
|
||||
EDUP
|
||||
|
||||
|
||||
DEC A
|
||||
JR NZ,.BLK_LL1
|
||||
|
||||
@ -582,7 +582,7 @@ BLK_RD_WR:
|
||||
JR Z,.NO_EX_RW2 ; WRITE
|
||||
EX DE,HL ; for READ
|
||||
.NO_EX_RW2:
|
||||
EX AF,AF' ; DEC C ¯à®ªàã⨫áï 256 à § ¨ ¢¥àã«áï
|
||||
EX AF,AF' ; DEC C ¯à®ªàã⨫áï 256 à § ¨ ¢¥àã«áï
|
||||
INC B ; B 㦥 㬥ì訫áï 1,
|
||||
DEC B
|
||||
JP Z,.BLK_EXIT_1
|
||||
@ -628,7 +628,7 @@ BLK_RD_WR:
|
||||
|
||||
.BLK_EXIT_1:
|
||||
LD A,D
|
||||
DEC A
|
||||
DEC A
|
||||
RLCA
|
||||
LD A,C
|
||||
JR C,.BLK_EXIT_2
|
||||
@ -645,19 +645,19 @@ BLK_RD_WR:
|
||||
|
||||
;
|
||||
;----------------------------------------------------------------------;
|
||||
;****************************************
|
||||
;!!!!! READ_ROM_PAGE_X ç⥨¥ ¯®á«¥¤¨å
|
||||
; 256 ¡ ©â®¢ <20>‡“ ¢ á«ã¦¥¡ãî áâà ¨æã § 祬-â®
|
||||
; READ_ROM_PAGE_X:
|
||||
; LD DE,0
|
||||
; LD BC,#100 ; ®¤¨ ᥪâ®à
|
||||
; PUSH DE
|
||||
; PUSH BC
|
||||
; LD HL,#3F00
|
||||
; LD DE,#FF00
|
||||
; LD A,#1F ; last page ROM
|
||||
; JR ROM_DISK.loopRead
|
||||
;****************************************
|
||||
;****************************************
|
||||
;!!!!! READ_ROM_PAGE_X ç⥨¥ ¯®á«¥¤¨å
|
||||
; 256 ¡ ©â®¢ <20>‡“ ¢ á«ã¦¥¡ãî áâà ¨æã § 祬-â®
|
||||
; READ_ROM_PAGE_X:
|
||||
; LD DE,0
|
||||
; LD BC,#100 ; ®¤¨ ᥪâ®à
|
||||
; PUSH DE
|
||||
; PUSH BC
|
||||
; LD HL,#3F00
|
||||
; LD DE,#FF00
|
||||
; LD A,#1F ; last page ROM
|
||||
; JR ROM_DISK.loopRead
|
||||
;****************************************
|
||||
|
||||
; —⥨¥ á ROM-Disk
|
||||
; HL - ¤à¥á, ªã¤ ç¨â âì
|
||||
@ -665,10 +665,10 @@ BLK_RD_WR:
|
||||
; B - ç¨á«® ᥪâ®à®¢
|
||||
; A' - à §¬¥à ᥪâ®à (1 - 256b, 2 - 512 b)
|
||||
ROM_DISK:
|
||||
; á®åà 塞 á®áâ®ï¨¥ ¯à¥àë¢ ¨©
|
||||
;LD A,R
|
||||
; á®åà 塞 á®áâ®ï¨¥ ¯à¥àë¢ ¨©
|
||||
;LD A,R
|
||||
EX AF,AF'
|
||||
LD C,0 ; áç¥â稪
|
||||
LD C,0 ; áç¥â稪
|
||||
DEC A
|
||||
JR Z,.loop
|
||||
;JR Z,.start
|
||||
@ -682,18 +682,18 @@ ROM_DISK:
|
||||
LD A,B
|
||||
ADD A,A
|
||||
LD B,A
|
||||
;!!!!!
|
||||
;!!!!!
|
||||
RET C
|
||||
|
||||
DI
|
||||
CALL .loop
|
||||
; ; ¢®ááâ ¢«¨¢ ¥¬ á®áâ®ï¨¥ ¯à¥àë¢ ¨©
|
||||
DI
|
||||
CALL .loop
|
||||
; ; ¢®ááâ ¢«¨¢ ¥¬ á®áâ®ï¨¥ ¯à¥àë¢ ¨©
|
||||
; EX AF,AF'
|
||||
; JP PO,.noInterrupts
|
||||
; EI
|
||||
; JP PO,.noInterrupts
|
||||
; EI
|
||||
; .noInterrupts:
|
||||
; EX AF,AF'
|
||||
; ;
|
||||
; ;
|
||||
RET C
|
||||
AND A
|
||||
RR D
|
||||
@ -702,39 +702,39 @@ ROM_DISK:
|
||||
RET
|
||||
|
||||
; .start:
|
||||
; DI
|
||||
; CALL .loop
|
||||
; ; ¢®ááâ ¢«¨¢ ¥¬ á®áâ®ï¨¥ ¯à¥àë¢ ¨©
|
||||
; DI
|
||||
; CALL .loop
|
||||
; ; ¢®ááâ ¢«¨¢ ¥¬ á®áâ®ï¨¥ ¯à¥àë¢ ¨©
|
||||
; EX AF,AF'
|
||||
; JP PO,.noInterrupts2
|
||||
; EI
|
||||
; JP PO,.noInterrupts2
|
||||
; EI
|
||||
; .noInterrupts2:
|
||||
; EX AF,AF'
|
||||
; ;
|
||||
; RET
|
||||
; ;
|
||||
; RET
|
||||
|
||||
|
||||
.loop: PUSH DE ; ®¬¥à ᥪâ®à
|
||||
.loop: PUSH DE ; ®¬¥à ᥪâ®à
|
||||
PUSH BC
|
||||
|
||||
LD A,E
|
||||
AND #3F ; ADRESS in ROM-Page
|
||||
PUSH AF ; á®åà ¨âì ¤à¥á
|
||||
PUSH AF ; á®åà ¨âì ¤à¥á
|
||||
|
||||
EX DE,HL ; DE - ¤à¥á ¡ãä¥à
|
||||
EX DE,HL ; DE - ¤à¥á ¡ãä¥à
|
||||
ADD HL,HL
|
||||
ADD HL,HL ; H - ®¬¥à ¡ ª¨
|
||||
ADD HL,HL ; H - ®¬¥à ¡ ª¨
|
||||
|
||||
LD A,(ROM_DISK.Pages.Number)
|
||||
INC H
|
||||
CP H
|
||||
LD L,H
|
||||
LD H, high ROM_DISK.Pages.Number ; ROM-Disk pages!
|
||||
LD A,(HL) ; PAGE-ROM
|
||||
LD H, high ROM_DISK.Pages.Number ; ROM-Disk pages!
|
||||
LD A,(HL) ; PAGE-ROM
|
||||
|
||||
POP HL ; ¢®ááâ ®¢¨âì ¤à¥á ¢ ROM-Page
|
||||
LD L,0 ; ¥á«¨ ¤ «¥ª® § å®â¥«¨ - ¢ë室 á ®è¨¡ª®©
|
||||
JR C,.errorExit ; ROM-Disk-end
|
||||
POP HL ; ¢®ááâ ®¢¨âì ¤à¥á ¢ ROM-Page
|
||||
LD L,0 ; ¥á«¨ ¤ «¥ª® § å®â¥«¨ - ¢ë室 á ®è¨¡ª®©
|
||||
JR C,.errorExit ; ROM-Disk-end
|
||||
; DE - ¡ãä¥à
|
||||
; HL - ¤à¥á ¢ ROM
|
||||
; B - ç¨á«® ᥪâ®à®¢
|
||||
@ -757,37 +757,37 @@ ROM_DISK:
|
||||
; DE - next address
|
||||
; HL - ROM address
|
||||
.readNext:
|
||||
POP BC ; ç¨á«® ᥪâ®à®¢
|
||||
POP BC ; ç¨á«® ᥪâ®à®¢
|
||||
|
||||
INC C ; áç¥â稪 áç¨â ëå ᥪâ®à®¢
|
||||
DEC B ; ᥪâ®à ª®ç¨«¨áì?
|
||||
INC C ; áç¥â稪 áç¨â ëå ᥪâ®à®¢
|
||||
DEC B ; ᥪâ®à ª®ç¨«¨áì?
|
||||
|
||||
JR Z,.normExit
|
||||
BIT 6,H ; ç⥨¥ ¥ § ª®ç¥®
|
||||
JR Z,.normExit
|
||||
BIT 6,H ; ç⥨¥ ¥ § ª®ç¥®
|
||||
|
||||
PUSH BC ; á®åà ¨âì áç¥â稪¨
|
||||
JR Z,.loopRead ; ç¨â âì ¤ «ìè¥
|
||||
POP BC
|
||||
PUSH BC ; á®åà ¨âì áç¥â稪¨
|
||||
JR Z,.loopRead ; ç¨â âì ¤ «ìè¥
|
||||
POP BC
|
||||
|
||||
POP HL ; ®¬¥à ᥪâ®à
|
||||
POP HL ; ®¬¥à ᥪâ®à
|
||||
|
||||
LD A,B
|
||||
LD B,0
|
||||
ADD HL,BC
|
||||
LD B,A ; ¢ëç¨á«¨âì á«¥¤.ᥪâ®à
|
||||
LD A,B
|
||||
LD B,0
|
||||
ADD HL,BC
|
||||
LD B,A ; ¢ëç¨á«¨âì á«¥¤.ᥪâ®à
|
||||
|
||||
EX DE,HL ; ⥯¥àì HL - ¤à¥á, DE ᥪâ®à, B - ᪮«ìª® ¥é¥ ç¨â âì
|
||||
EX DE,HL ; ⥯¥àì HL - ¤à¥á, DE ᥪâ®à, B - ᪮«ìª® ¥é¥ ç¨â âì
|
||||
|
||||
JP .loop ; ç âì ¢á¥ á®¢ !
|
||||
JP .loop ; ç âì ¢á¥ á®¢ !
|
||||
; ç⥨¥ § ª®ç¥®
|
||||
.normExit:
|
||||
POP HL ; ᥪâ®à, ®âªã¤ ¢¥«®áì ç⥨¥
|
||||
ADD HL,BC ; ¯® ¢®§¢à âã: HL - á«¥¤. ¤à¥á
|
||||
EX DE,HL ; DE - á«¥¤.ᥪâ®à
|
||||
EX DE,HL ; DE - á«¥¤.ᥪâ®à
|
||||
AND A
|
||||
RET
|
||||
; ®è¨¡ª
|
||||
.errorExit: ; !TODO ᤥ« âì, ç⮡ ¢ë室¥ ¯®ª §ë¢ «®áì ª®«¨ç¥á⢮ ¯à®ç¨â ëå ᥪâ®à®¢
|
||||
.errorExit: ; !TODO ᤥ« âì, ç⮡ ¢ë室¥ ¯®ª §ë¢ «®áì ª®«¨ç¥á⢮ ¯à®ç¨â ëå ᥪâ®à®¢
|
||||
POP BC
|
||||
POP DE
|
||||
SCF
|
||||
@ -814,8 +814,8 @@ ROM_DISK:
|
||||
|
||||
;
|
||||
;----------------------------------------------------------------------;
|
||||
; ¢å®¤: DE - ram_disk trk_sec, A - RAM-Disk
|
||||
; ¢ë室: HL - ¤à¥á, A - page
|
||||
; ¢å®¤: DE - ram_disk trk_sec, A - RAM-Disk
|
||||
; ¢ë室: HL - ¤à¥á, A - page
|
||||
RAMD_CALC_PAGE:
|
||||
CP 16
|
||||
CCF
|
||||
@ -843,32 +843,32 @@ RAMD_CALC_PAGE:
|
||||
|
||||
;
|
||||
;----------------------------------------------------------------------;
|
||||
; ‚室:
|
||||
; A - RAM Disk ID
|
||||
; ‚ë室:
|
||||
; A - Number (0..15)
|
||||
; ‚室:
|
||||
; A - RAM Disk ID
|
||||
; ‚ë室:
|
||||
; A - Number (0..15)
|
||||
GET_RAMD_NUM:
|
||||
EX AF,AF'
|
||||
IN A,(SLOT1)
|
||||
EX AF,AF'
|
||||
LD BC,SYS_PAGE * 256 + SLOT1
|
||||
OUT (C),B
|
||||
EX AF,AF'
|
||||
IN A,(SLOT1)
|
||||
EX AF,AF'
|
||||
LD BC,SYS_PAGE * 256 + SLOT1
|
||||
OUT (C),B
|
||||
|
||||
LD HL,SYS_PAGE.RAMD_KEYS - #4000 - #4000
|
||||
LD BC,SYS_PAGE.RAMD_KEYS.NUM
|
||||
CPIR
|
||||
LD HL,SYS_PAGE.RAMD_KEYS - #4000 - #4000
|
||||
LD BC,SYS_PAGE.RAMD_KEYS.NUM
|
||||
CPIR
|
||||
|
||||
EX AF,AF'
|
||||
OUT (SLOT1),A
|
||||
EX AF,AF'
|
||||
EX AF,AF'
|
||||
OUT (SLOT1),A
|
||||
EX AF,AF'
|
||||
|
||||
SCF
|
||||
RET PE
|
||||
SCF
|
||||
RET PE
|
||||
|
||||
DEC L
|
||||
LD A,L
|
||||
SUB low SYS_PAGE.RAMD_KEYS
|
||||
RET
|
||||
DEC L
|
||||
LD A,L
|
||||
SUB low SYS_PAGE.RAMD_KEYS
|
||||
RET
|
||||
;----------------------------------------------------------------------;
|
||||
;
|
||||
|
||||
@ -876,12 +876,12 @@ GET_RAMD_NUM:
|
||||
;
|
||||
;----------------------------------------------------------------------;
|
||||
; [x] 04/11/2023
|
||||
; ‚室:
|
||||
; B = 0: swap to Sp
|
||||
; ‚室:
|
||||
; B = 0: swap to Sp
|
||||
; B = #FF: swap to ZX
|
||||
; B = #FE: no swap, only get info
|
||||
; ‚ë室:
|
||||
; A - current RAM Drives set
|
||||
; ‚ë室:
|
||||
; A - current RAM Drives set
|
||||
SWAP_RAM_DRIVES:
|
||||
IN A,(SLOT3)
|
||||
EX AF,AF'
|
||||
@ -928,7 +928,7 @@ SWAP_RAM_DRIVES:
|
||||
|
||||
;
|
||||
;----------------------------------------------------------------------;
|
||||
; ¢ë室¥ ¯à¨ € = 0 ¤®«¦¥ ¡ëâì ãáâ ®¢«¥ ä« £ Z
|
||||
; ¢ë室¥ ¯à¨ € = 0 ¤®«¦¥ ¡ëâì ãáâ ®¢«¥ ä« £ Z
|
||||
; ¥ 㡨¢ ¥â DE ¨ BC
|
||||
GET_RAMD_ST:
|
||||
CP SYS_PAGE.RAMD_KEYS.NUM
|
||||
@ -959,7 +959,7 @@ GET_RAMD_ST:
|
||||
|
||||
;
|
||||
;----------------------------------------------------------------------;
|
||||
; RAM-Disk A, BLK - B
|
||||
; RAM-Disk A, BLK - B
|
||||
BLK_TO_RAMD:
|
||||
CP SYS_PAGE.RAMD_KEYS.NUM
|
||||
CCF
|
||||
|
||||
@ -391,39 +391,36 @@ REINIT: DEC B
|
||||
;
|
||||
|
||||
;[x]
|
||||
.Restart:
|
||||
DI
|
||||
LD A,0
|
||||
LD BC,#1FFD
|
||||
OUT (C),A
|
||||
LD B,#7F
|
||||
OUT (C),A
|
||||
LD A,#40
|
||||
OUT (SLOT3),A
|
||||
LD A,5
|
||||
OUT (SLOT1),A
|
||||
LD A,2
|
||||
OUT (SLOT3),A
|
||||
LD A,0
|
||||
OUT (SLOT0),A
|
||||
OUT (RGADR),A
|
||||
OUT (RGMOD),A
|
||||
JP 0 ;Restart
|
||||
.Restart: DI
|
||||
XOR A
|
||||
LD BC,#1FFD
|
||||
OUT (C),A
|
||||
LD B,#7F
|
||||
OUT (C),A
|
||||
OUT (RGADR),A
|
||||
OUT (RGMOD),A
|
||||
OUT (SLOT0),A
|
||||
LD A,5
|
||||
OUT (SLOT1),A
|
||||
LD A,2
|
||||
OUT (SLOT2),A
|
||||
LD A,DCP_PAGE
|
||||
OUT (SLOT3),A
|
||||
JP 0 ;Restart
|
||||
;
|
||||
|
||||
;
|
||||
.SoftReset:
|
||||
DI
|
||||
LD A,#10
|
||||
LD BC,#1FFD
|
||||
OUT (C),A ; 8-ï áâà ¨æ !!
|
||||
|
||||
LD A,RESET_PAGE
|
||||
OUT (SLOT3),A
|
||||
LD A,CNF_PORT.TURBO.OFF
|
||||
OUT (SYS_PORT.ROM),A
|
||||
.loop2: LD (#C000),A ; Soft RESET !!!
|
||||
JR .loop2
|
||||
.SoftReset: DI
|
||||
LD A,#10
|
||||
LD BC,#1FFD
|
||||
OUT (C),A ; 8-ï áâà ¨æ !!
|
||||
;
|
||||
LD A,RESET_PAGE
|
||||
OUT (SLOT3),A
|
||||
LD A,CNF_PORT.TURBO.OFF
|
||||
OUT (SYS_PORT.ROM),A
|
||||
.loop2: LD (#C000),A ; Soft RESET !!!
|
||||
JR .loop2
|
||||
;
|
||||
;----------------------------------------------------------------------;
|
||||
;
|
||||
|
||||
@ -63,8 +63,8 @@ FN_CRIPT:
|
||||
; BoardID_start old address #312A
|
||||
; BoardID_end old address #312D
|
||||
.board_id:
|
||||
LD HL,(ROM_NUMBER.part1) ;rdlow-ok
|
||||
LD A,(ROM_NUMBER.part2) ;rdlow-ok
|
||||
LD HL,(BOARD_INFO.number) ;rdlow-ok
|
||||
LD A,(BOARD_INFO.type) ;rdlow-ok
|
||||
LD BC,(BoardID.start) ;rdlow-ok
|
||||
LD DE,(BoardID.end) ;rdlow-ok
|
||||
AND A
|
||||
|
||||
@ -811,7 +811,7 @@ RESCREEN: ;R06
|
||||
; LD E,A
|
||||
; LD A,DCP_PAGE
|
||||
; OUT (SLOT3),A
|
||||
; LD A,(#C400) ;c400 for first cfg 50176 ; !TODO ¬®¦® ¯¥à¥¤¥« âì ¢ë§®¢ äãªæ¨¨ ¡¨®á
|
||||
; LD A,(#C400) ;c400 for first cfg 50176
|
||||
; LD D,A
|
||||
; LD A,ACEX.HOLD
|
||||
; LD (#C400),A
|
||||
@ -1142,30 +1142,64 @@ PIDNUM: LD HL,memBUFFER.ID
|
||||
CALL PRINTZ
|
||||
RET
|
||||
|
||||
PIDBOARD:
|
||||
CALL FN_CRIPT.board_id
|
||||
PIDBOARD: CALL FN_CRIPT.board_id
|
||||
;
|
||||
IF MotherBoardType > 0
|
||||
PUSH AF
|
||||
ENDIF
|
||||
PUSH DE
|
||||
PUSH HL
|
||||
PUSH BC
|
||||
LD A,B
|
||||
CALL PRNHEX
|
||||
LD A,'-'
|
||||
CALL PRINT_CHAR
|
||||
POP BC
|
||||
LD A,C
|
||||
CALL PRNHEX
|
||||
LD A,'-'
|
||||
CALL PRINT_CHAR
|
||||
POP HL
|
||||
CALL IZPRINT
|
||||
POP DE
|
||||
PUSH DE
|
||||
LD A,D
|
||||
CALL PRNHEX
|
||||
POP DE
|
||||
LD A,E
|
||||
IF MotherBoardType == 0
|
||||
JP PRNHEX
|
||||
ELSE
|
||||
CALL PRNHEX
|
||||
LD A,' '
|
||||
CALL PRINT_CHAR
|
||||
POP AF
|
||||
; type 0 - Classic
|
||||
RET Z
|
||||
; type 1 - DX
|
||||
LD HL,.ver_DX
|
||||
DEC A
|
||||
JP Z,PRINTZ
|
||||
; type 2 - DP
|
||||
LD HL,.ver_DP
|
||||
DEC A
|
||||
JP Z,PRINTZ
|
||||
; type 3 - Max
|
||||
LD HL,.ver_Max
|
||||
DEC A
|
||||
JP Z,PRINTZ
|
||||
; type 4 - test
|
||||
LD HL,.Test
|
||||
DEC A
|
||||
JP Z,PRINTZ
|
||||
RET
|
||||
;
|
||||
.ver_DX: DZ "DX"
|
||||
.ver_DP: DZ "DP"
|
||||
.ver_Max: DZ "Max"
|
||||
.Test DZ "0123456789A"
|
||||
ENDIF
|
||||
|
||||
PUSH DE
|
||||
PUSH HL
|
||||
PUSH BC
|
||||
LD A,B
|
||||
CALL PRNHEX
|
||||
LD A,'-'
|
||||
CALL PRINT_CHAR
|
||||
POP BC
|
||||
LD A,C
|
||||
CALL PRNHEX
|
||||
LD A,'-'
|
||||
CALL PRINT_CHAR
|
||||
POP HL
|
||||
CALL IZPRINT
|
||||
POP DE
|
||||
PUSH DE
|
||||
LD A,D
|
||||
CALL PRNHEX
|
||||
POP DE
|
||||
LD A,E
|
||||
JP PRNHEX
|
||||
|
||||
CNF_VER_PRINT:
|
||||
LD HL,memBUFFER.ID
|
||||
|
||||
@ -259,7 +259,7 @@ SHOW_LOGO: LD IX,win_descriptor.tab320x256
|
||||
SAFE_PORTY
|
||||
|
||||
DI
|
||||
LD A,1
|
||||
LD A,SYS_PORT.PAGE0
|
||||
OUT (SYS_PORT.ON),A
|
||||
OUT (ROM.SLOT0),A
|
||||
|
||||
@ -283,21 +283,12 @@ SHOW_LOGO: LD IX,win_descriptor.tab320x256
|
||||
SAFE_PORTY
|
||||
|
||||
DI
|
||||
LD A,1
|
||||
LD A,SYS_PORT.PAGE0
|
||||
OUT (SYS_PORT.ON),A
|
||||
;LD A,1
|
||||
OUT (ROM.SLOT0),A
|
||||
|
||||
LD HL,MAIN_LOGO.Raster ; ç «® ª à⨪¨ ¢ ¡ ª¥ <20>‡“
|
||||
; CALL DECODE
|
||||
CALL LOGO_TO_SCREEN
|
||||
;
|
||||
;--------------[<5B> áå «ª ]--------------[]
|
||||
IF Pashalki
|
||||
_PASHALKI_CODE
|
||||
ENDIF
|
||||
;--------------------------------------[]
|
||||
;
|
||||
XOR A
|
||||
OUT (SYS_PORT.ON),A
|
||||
OUT (ROM.SLOT0),A
|
||||
|
||||
@ -14,6 +14,7 @@ BIOS_ver_hex EQU EXP_ID.VER*256+EXP_ID.MOD
|
||||
DEFINE BoardID_start #5283
|
||||
DEFINE BoardID_end #47E8
|
||||
DEFINE MotherBoardID #0000
|
||||
DEFINE MotherBoardType #00 ; !TODO 0 - Legacy, 1 - DX, 2 - Max
|
||||
;=======================================
|
||||
|
||||
;============[For ROM part]============= ;!FIXIT ¢ë ¥ ¯®¨¬ ¥â¥, íâ® ¤à㣮¥))
|
||||
|
||||
Loading…
Reference in New Issue
Block a user