mirror of
https://github.com/Tolik-Trek/ZX-SP-ROMs.git
synced 2026-06-15 09:21:45 +03:00
1083 lines
24 KiB
Plaintext
Executable File
1083 lines
24 KiB
Plaintext
Executable File
DEVICE ZXSPECTRUM128
|
||
INCLUDE "!AllConst.asm"
|
||
INCLUDE "!ram8.asm"
|
||
ORG #0000
|
||
ROMdisk equ #0E00
|
||
|
||
;#0000 reset computer
|
||
;#0004 *NOT USED* (#04 ¡ ©â )
|
||
;#0008 rst #08 ¯¥ç âì á®®¡é¥¨ï ¯® ®¬¥àã ¢ BC
|
||
;#000D *NOT USED* (#03 ¡ ©â )
|
||
;#0010 rst #10 ¯¥ç âì ᨬ¢®« ¨§ A
|
||
;#0015 *NOT USED* (#0B ¡ ©â)
|
||
;#0020 rst #20 ¯¥ç âì áâப¨
|
||
;#0022 *NOT USED* (#0E ¡ ©â)
|
||
;#0030 rst #30 ¢ë§®¢ ¯à®æ¥¤ãàë ¨§ ¤à㣮£® rom
|
||
;#0033 *NOT USED* (#05 ¡ ©â)
|
||
;#0038 ®¡à ¡®â稪 ¯à¥àë¢ ¨© im 0/1
|
||
;#003B ¯¥ç âì áâப¨ (rst #20)
|
||
;#004A *NOT USED* (#26 ¡ ©â)
|
||
;#0070 ¯¥à¥¬¥ë¥ ROM-disk
|
||
;#0073 § £à㧪 ¡«®ª ¨§ ROM-Disk
|
||
;#00AA *NOT USED* (55 ¡ ©â)
|
||
;#00FF ¤à¥á ¯/¯ ®¡à ¡®âª¨ ¯à¥àë¢ ¨© im 2
|
||
;#0101 ®¬¥à ⥪ã饣® rom
|
||
;#0102 ¯à®æ¥¤ãà ®¡à ¡®âª¨ ¯à¥àë¢ ¨© im 2
|
||
;#0103 reset computer
|
||
;#0122 ª®¯¨à®¢ ¨¥ ¯¥à¥¬¥ëå ¬®¨â®à ¨ ¯à®¢¥àª çâ¥¨ï ¯®à⮢ #7FFD/#1FFD
|
||
;#0175 ¯¥à¥¬¥ë¥ ¬®¨â®à
|
||
;#02E8 ¯à®¢¥àª ®à¨£¨ «ìë©/ᮢ¬¥áâ¨¬ë© ª®¬¯ìîâ¥à
|
||
;#02F4 ãáâ ®¢ª ¯¥à¥¬¥ëå ¨§ NVRAM
|
||
;#0305 ãáâ ®¢ª ¯¥à¥¬¥ëå ¨§ NVRAM/CMOS128
|
||
;#0312 ãáâ ®¢ª ¯¥à¥¬¥ëå ¯® ¤ ë¬ ¢ CMOS
|
||
;#0315 ãáâ ®¢ª ¯¥à¥¬¥ëå ¯® ¤ ë¬ ¢ CMOS
|
||
;#036C § ¯¨áì ¯¥à¥¬¥ëå ¢ CMOS ¨ ¢ NVRAM
|
||
;#0378 § ¯¨áì ¯¥à¥¬¥ëå ¢ NVRAM
|
||
;#0398 § ¯¨áì ¯¥à¥¬¥ëå ¢ CMOS
|
||
;#046E â ¡«¨æ ¤«ï § ¯¨á¨ ¯¥à¥¬¥ëå ¢ CMOS
|
||
;#04FF â ¡«¨æ ¤«ï § ¯¨á¨ ¯¥à¥¬¥ëå ¢ NVRAM
|
||
;#0512 § ¯¨áì ¤¨áª ᥪâ®à á ª®ä¨£ãà æ¨¥© (C. save Set Up to disk)
|
||
;#057F à ᯠª®¢ª èà¨äâ ¢ rom 8
|
||
;#059F § ¯ ª®¢ ë© èà¨äâ
|
||
;#0A5A ¨¨æ¨ «¨§ æ¨ï á¨áâ¥¬ë ¨ ¯¥ç âì á®®¢¥âáâ¢ãîé¨å á®®¡é¥¨©
|
||
;#0CDF ª®¯¨à®¢ ¨¥ ¤¥áªà¨¯â®à ®ª ¢ à ¡®çãîî ®¡« áâì ¨ à¨á®¢ ¨¥ à ¬ª¨ ¢®ªà㣠¥£®
|
||
;#0CFA ¤¥áªà¨¯â®àë ®ª®
|
||
;#0D32 ª®¯¨à ©âë
|
||
;#0E00 ROM-disk
|
||
;#4000
|
||
|
||
|
||
;€„<E282AC>…‘: #0000 reset computer
|
||
x0000 di
|
||
jp x0103
|
||
|
||
;€„<E282AC>…‘: #0004 *NOT USED* (#04 ¡ ©â )
|
||
x0004 ds #04
|
||
|
||
;€„<E282AC>…‘: #0008 rst #08 ¯¥ç âì á®®¡é¥¨ï ¯® ®¬¥àã ¢ BC
|
||
x0008 rst #30
|
||
dw rom5_x11CD ;¯¥ç âì á®®¡é¥¨ï ¯® ®¬¥àã ¢ BC
|
||
db #05
|
||
ret
|
||
|
||
;€„<E282AC>…‘: #000D *NOT USED* (#03 ¡ ©â )
|
||
x000D ds #03
|
||
|
||
;€„<E282AC>…‘: #0010 rst #10 ¯¥ç âì ᨬ¢®« ¨§ A
|
||
x0010 rst #30
|
||
dw rom2_x2B12 ;¯¥ç âì ᨬ¢®« (rst #10)
|
||
db #02
|
||
ret
|
||
|
||
;€„<E282AC>…‘: #0015 *NOT USED* (#0B ¡ ©â)
|
||
x0015 ds #0B
|
||
|
||
;€„<E282AC>…‘: #0020 rst #20 ¯¥ç âì áâப¨
|
||
x0020 jr x003B
|
||
|
||
;€„<E282AC>…‘: #0022 *NOT USED* (#0E ¡ ©â)
|
||
x0022 ds #0E
|
||
|
||
;€„<E282AC>…‘: #0030 rst #30 ¢ë§®¢ ¯à®æ¥¤ãàë ¨§ ¤à㣮£® rom
|
||
x0030 jp xE3D3
|
||
|
||
;€„<E282AC>…‘: #0033 *NOT USED* (#05 ¡ ©â)
|
||
x0033 ds #05
|
||
|
||
;€„<E282AC>…‘: #0038 ®¡à ¡®â稪 ¯à¥àë¢ ¨© im 0/1
|
||
x0038 ei
|
||
reti
|
||
|
||
;€„<E282AC>…‘: #003B ¯¥ç âì áâப¨ (rst #20)
|
||
x003B ex (sp),hl
|
||
push af
|
||
x003D ld a,(hl)
|
||
rst #30
|
||
dw rom2_x2B0B ;¯¥ç âì ᨬ¢®« á® á¡à®á®¬ 7£® ¡¨â (rst #10)
|
||
db #02
|
||
and #80
|
||
inc hl
|
||
jr z,x003D
|
||
pop af
|
||
ex (sp),hl
|
||
ret
|
||
|
||
;€„<E282AC>…‘: #004A *NOT USED* (#26 ¡ ©â)
|
||
x004A ds #26
|
||
|
||
;€„<E282AC>…‘: #0070 ¯¥à¥¬¥ë¥ ROM-disk
|
||
x0070 db ROMdisk/#100 ;ᬥ饨¥ ç « ஬ ¤¨áª (¢ ¡«®ª å ¯® 256 ¡ ©â)
|
||
db #40-ROMdisk/#100;ª®«¨ç¥á⢮ ᢮¡®¤ëå ᥪâ®à®¢ ¢ áâà ¨æ¥
|
||
db #00 ;ᬥ饨¥ ¤® ç « ª â «®£
|
||
|
||
;€„<E282AC>…‘: #0073 § £à㧪 ¡«®ª ¨§ ROM-Disk
|
||
INCLUDE "!RomDisk.asm"
|
||
|
||
;€„<E282AC>…‘: #00AA *NOT USED* (55 ¡ ©â)
|
||
x00AA ds #55
|
||
|
||
;€„<E282AC>…‘: #00FF ¤à¥á ¯/¯ ®¡à ¡®âª¨ ¯à¥àë¢ ¨© im 2
|
||
x00FF dw x0102
|
||
|
||
;€„<E282AC>…‘: #0101 ®¬¥à ⥪ã饣® rom
|
||
x0101 db #04
|
||
|
||
;€„<E282AC>…‘: #0102 ¯à®æ¥¤ãà ®¡à ¡®âª¨ ¯à¥àë¢ ¨© im 2
|
||
x0102 ret
|
||
|
||
;€„<E282AC>…‘: #0103 reset computer
|
||
x0103 ld de,#5BEE
|
||
ld hl,x0111
|
||
ld bc,#0011
|
||
ldir
|
||
jp #5BEE
|
||
x0111 ld bc,#1FFD
|
||
ld a,#02
|
||
out (c),a
|
||
ld hl,#010C ;¢ª«î稬 ¯«®áª®áâì 0
|
||
ld l,(hl)
|
||
xor a
|
||
out (c),a ;rom 0/1
|
||
jp x0000 ;reset
|
||
|
||
;€„<E282AC>…‘: #0122 ª®¯¨à®¢ ¨¥ ¯¥à¥¬¥ëå ¬®¨â®à ¨ ¯à®¢¥àª çâ¥¨ï ¯®à⮢ #7FFD/#1FFD
|
||
x0122 ld hl,x0175 ;¡ §®¢ë¥ ¯¥à¥¬¥ë¥ ¬®¨â®à
|
||
ld de,xE033
|
||
ld bc,#0173
|
||
ldir
|
||
ld hl,xE9F5
|
||
ld (xE9F3),hl ; ¤à¥á ¡«®ª ®¯¨á ⥫¥© ¤¨áª®¢®¤
|
||
ld hl,xE02C
|
||
ld (hl),#01 ;§ 票¥ interleaving
|
||
ld de,#7F1F
|
||
ld c,#FD
|
||
ld a,#0E
|
||
ld b,#FF
|
||
out (c),a ;ॣ¨áâà #E AY
|
||
nop
|
||
in a,(c) ;ç¨â ¥¬ § 票¥ ¯®à⮢ #7FFD ¨ #1FFD
|
||
and #3F
|
||
cp #3F
|
||
ret z ;rom 1, ram #F, scr 5 (¯à®ç¨â ® #FF ???)
|
||
cp #10
|
||
ret nz ;rom 0, ram 8, scr 7 (â®, çâ® ¢ª«î祮)
|
||
ld b,d ;bc=#7FFD
|
||
ld a,#0F ;rom 0, ram 7/F, scr 5
|
||
out (c),a
|
||
ld b,e ;bc=#1FFD
|
||
ld a,#00
|
||
out (c),a ;rom 0, ram 7, scr 5
|
||
ld a,#0E
|
||
ld b,#FF
|
||
out (c),a ;ॣ¨áâà #E AY
|
||
nop
|
||
in a,(c) ;ç¨â ¥¬ § 票¥ ¯®à⮢ #7FFD ¨ #1FFD
|
||
and #3F
|
||
cp #0F
|
||
ld b,e ;bc=#1FFD
|
||
ld a,#10
|
||
out (c),a ;rom 0, ram #F, scr 5
|
||
ld b,d ;bc=#7FFD
|
||
ld a,#00
|
||
out (c),a ;rom 0, ram 8, scr 7
|
||
ret nz ;
|
||
set 5,(iy+#19)
|
||
ret
|
||
|
||
;€„<E282AC>…‘: #0175 ¯¥à¥¬¥ë¥ ¬®¨â®à
|
||
x0175: INCBIN "prof_roms/rom4_vars.bin"
|
||
|
||
;€„<E282AC>…‘: #02E8 ¯à®¢¥àª ®à¨£¨ «ìë©/ᮢ¬¥áâ¨¬ë© ª®¬¯ìîâ¥à
|
||
;¢ëå: nz - ᮢ¬¥á⨬ë©
|
||
; z - ®à¨£¨ «
|
||
x02E8 ld a,d
|
||
sub #FC
|
||
ret nz ;ᮢ¬¥á⨬ë©
|
||
ld a,e
|
||
sub #9D
|
||
ret z ;®à¨£¨ «
|
||
ld a,e
|
||
sub #8B
|
||
ret ;nz - ᮢ¬¥á⨬ë©
|
||
|
||
;€„<E282AC>…‘: #02F4 ãáâ ®¢ª ¯¥à¥¬¥ëå ¨§ NVRAM
|
||
x02F4 call x0445 ;ç⥨¥ #FD ¡ ©â NVRAM á ¤à¥á #0001 ¢ ¡ãä¥à xDB69
|
||
call x0312 ;ãáâ ®¢ª ¯¥à¥¬¥ëå ¯® ¤ ë¬ ¢ NVRAM
|
||
ld hl,xDB69+#2E ;xDB97
|
||
ld (xDDA7),hl
|
||
ld hl,x04FF
|
||
jr x0315
|
||
|
||
;€„<E282AC>…‘: #0305 ãáâ ®¢ª ¯¥à¥¬¥ëå ¨§ NVRAM/CMOS128
|
||
x0305 ld hl,xE02E
|
||
bit 5,(hl)
|
||
x030A jr nz,x02F4 ;NVRAM ©¤¥
|
||
bit 6,(hl)
|
||
ret z ;CMOS ®âáãâáâ¢ã¥â
|
||
call x0430 ;ç⥨¥ CMOS[#10..#3E] ¢ ¡ãä¥à xDB69 (¢ëå: b=#3F)
|
||
|
||
;€„<E282AC>…‘: #0312 ãáâ ®¢ª ¯¥à¥¬¥ëå ¯® ¤ ë¬ ¢ CMOS
|
||
;¢å: b - ®¬¥à ï祩ª¨ CMOS
|
||
; 7,c=1
|
||
; 6,c=1 ¢ (hl) á«®¢®- ¤à¥á
|
||
; =0 ¢ (hl) ¡ ©â-ᬥ饨¥ ®â xE014
|
||
; 2,c=0
|
||
; 1,c=1 § ¯¨áì ¥áª®«ìª¨å ¡¨â®¢ ¯¥à¥¬¥®© ¯® ¬ ᪥ ¢ (hl)
|
||
; 0,c=0 § ¯¨áì ¯¥à¥¬¥®© ¢ ï祩ªã CMOS, ¨ ¯¥à¥å®¤ ª á«¥¤ãî饩 ï祩ª¥
|
||
x0312 ld hl,x046E
|
||
|
||
;€„<E282AC>…‘: #0315 ãáâ ®¢ª ¯¥à¥¬¥ëå ¯® ¤ ë¬ ¢ CMOS
|
||
x0315 inc b ;b=#40
|
||
x0316 ld c,(hl)
|
||
inc hl
|
||
bit 7,c
|
||
jr z,x0347 ;ãáâ ®¢ª § ç¥¨ï ¡¨â ¯¥à¥¬¥®©
|
||
bit 2,c
|
||
jr nz,x0343 ;ãáâ ®¢ª ®¬¥à ï祩ª¨ CMOS
|
||
bit 1,c
|
||
jr nz,x0325 ;ãáâ ®¢ª § ç¥¨ï ¡¨â®¢ ¯¥à¥¬¥®©
|
||
ret
|
||
|
||
;ãáâ ®¢ª § ç¥¨ï ¡¨â ¯¥à¥¬¥®©
|
||
x0325 call x0419 ;®¯à¥¤¥«¥¨¥ ¤à¥á ¯¥à¥¬¥®© (de - ¤à¥á)
|
||
bit 0,c
|
||
jr z,x033D ;§ ¯¨áì ¯¥à¥¬¥®© ¢ ¯ ¬ïâì
|
||
ld c,(hl)
|
||
inc hl
|
||
ld a,(de)
|
||
cpl
|
||
or c
|
||
cpl ;á¡à®á ¡¨â®¢ ¢ ¯¥à¥¬¥®©
|
||
ld (de),a
|
||
call x0459 ;ç⥨¥ § ç¥¨ï ¨§ ¡ãä¥à CMOS ¯® ¤à¥áã ¢ B
|
||
and c ;¢ë¤¥«¥¨¥ ¡¨â®¢
|
||
ld c,a
|
||
ld a,(de)
|
||
or c
|
||
ld (de),a ;ãáâ ®¢ª ¯¥à¥¬¥®©
|
||
jr x0316
|
||
|
||
;§ ¯¨áì ¯¥à¥¬¥®© ¢ ï祩ªã CMOS
|
||
x033D call x0459 ;ç⥨¥ § ç¥¨ï ¨§ ¡ãä¥à CMOS ¯® ¤à¥áã ¢ B
|
||
ld (de),a
|
||
jr x0315
|
||
|
||
;ãáâ ®¢ª ®¬¥à ï祩ª¨ CMOS
|
||
x0343 ld b,(hl)
|
||
inc hl
|
||
jr x0316
|
||
|
||
;ãáâ ®¢ª § ç¥¨ï ¡¨â ¯¥à¥¬¥®©
|
||
x0347 call x0419 ;®¯à¥¤¥«¥¨¥ ¤à¥á ¯¥à¥¬¥®© (de - ¤à¥á)
|
||
push hl
|
||
ld a,c
|
||
and #07
|
||
call x0410 ;¯®«ã票¥ ¬ ᪨ ¤«ï ¯¥à¥¬¥®© (l - ¬ ᪠)
|
||
call x0459 ;ç⥨¥ § ç¥¨ï ¨§ ¡ãä¥à CMOS ¯® ¤à¥áã ¢ B
|
||
and l
|
||
push af
|
||
ld a,c
|
||
and %00111000
|
||
rrca
|
||
rrca
|
||
rrca
|
||
call x0410 ;¯®«ã票¥ ¬ ᪨ ¤«ï ¯¥à¥¬¥®© (l - ¬ ᪠)
|
||
pop af
|
||
ld a,(de)
|
||
jr z,x0366 ;á¡à®á ¡¨â ¢ ¯¥à¥¬¥®©
|
||
or l ;ãáâ ®¢ª ¡¨â ¢ ¯¥à¥¬¥®©
|
||
jr x0368
|
||
x0366 or l
|
||
xor l
|
||
x0368 ld (de),a ;§ ¯¨áì ¯¥à¥¬¥®©
|
||
pop hl
|
||
jr x0316
|
||
|
||
;€„<E282AC>…‘: #036C § ¯¨áì ¯¥à¥¬¥ëå ¢ CMOS ¨ ¢ NVRAM
|
||
x036C bit 6,(iy+#1A)
|
||
call nz,x0398 ;§ ¯¨áì ¯¥à¥¬¥ëå ¢ CMOS
|
||
bit 5,(iy+#1A)
|
||
ret z
|
||
|
||
;€„<E282AC>…‘: #0378 § ¯¨áì ¯¥à¥¬¥ëå ¢ NVRAM
|
||
x0378 call x0445 ;ç⥨¥ #FD ¡ ©â NVRAM á ¤à¥á #0001 ¢ ¡ãä¥à xDB69
|
||
call x03B0 ;ãáâ ®¢ª ¯¥à¥¬¥ëå ¢ ¡ãä¥à¥ ¤«ï § ¯¨á¨ ¢ NVRAM
|
||
ld hl,xDB69+#2E
|
||
ld (xDDA7),hl
|
||
ld hl,x04FF
|
||
call x03B3 ;ãáâ ®¢ª ¯¥à¥¬¥ëå ¢ ¡ãä¥à¥ ¤«ï § ¯¨á¨ ¢ NVRAM
|
||
ld hl,xDB69
|
||
ld de,#00FD
|
||
ld bc,#0001
|
||
rst #30
|
||
dw rom7_x0DD0 ;§ ¯¨áì ¤ ëå ¢ NVRAM
|
||
db #07
|
||
ret
|
||
|
||
;€„<E282AC>…‘: #0398 § ¯¨áì ¯¥à¥¬¥ëå ¢ CMOS
|
||
x0398 call x0430 ;ç⥨¥ CMOS[#10..#3E] ¢ ¡ãä¥à xDB69 (¢ëå: b=#3F)
|
||
call x03B0 ;ãáâ ®¢ª ¯¥à¥¬¥ëå ¢ ¡ãä¥à¥ ¤«ï § ¯¨á¨ ¢ CMOS
|
||
ld hl,xDB69 ;§ ¯¨áì ¡ãä¥à ¢ CMOS
|
||
ld b,#10
|
||
x03A3 ld a,(hl)
|
||
inc hl
|
||
rst #30
|
||
dw rom7_x2023 ;§ ¯¨áì ¤ ëå ¢ ï祩ªã CMOS. ¨ § ¯¨áì ª®â஫쮩 áã¬¬ë ¢ ï祩ªã #3F
|
||
db #07
|
||
inc b
|
||
ld a,b
|
||
cp #3F
|
||
jr nz,x03A3
|
||
ret
|
||
|
||
;ãáâ ®¢ª ¯¥à¥¬¥ëå ¢ ¡ãä¥à¥ ¤«ï § ¯¨á¨ ¢ CMOS
|
||
x03B0 ld hl,x046E
|
||
x03B3 inc b
|
||
x03B4 ld c,(hl)
|
||
inc hl
|
||
bit 7,c
|
||
jr z,x03E7 ;ãáâ ®¢ª § ç¥¨ï ¡¨â ï祩ª¨ CMOS
|
||
bit 2,c
|
||
jr nz,x03E3 ;ãáâ ®¢ª ®¬¥à ï祩ª¨ CMOS
|
||
bit 1,c
|
||
jr nz,x03C3 ;ãáâ ®¢ª § ç¥¨ï ¡¨â ï祩ª¨ CMOS ¢ ¡ãä¥à¥
|
||
ret
|
||
|
||
;ãáâ ®¢ª § ç¥¨ï ¡¨â ï祩ª¨ CMOS ¢ ¡ãä¥à¥
|
||
;¢å: b - ®¬¥à ï祩ª¨ CMOS
|
||
; 7,c=1
|
||
; 6,c=1 ¢ (hl) á«®¢®- ¤à¥á
|
||
; =0 ¢ (hl) ¡ ©â-ᬥ饨¥ ®â xE014
|
||
; 2,c=0
|
||
; 1,c=1 § ¯¨áì ¥áª®«ìª¨å ¡¨â®¢ ¯¥à¥¬¥®© ¯® ¬ ᪥ ¢ (hl)
|
||
; 0,c=0 § ¯¨áì ¯¥à¥¬¥®© ¢ ï祩ªã CMOS, ¨ ¯¥à¥å®¤ ª á«¥¤ãî饩 ï祩ª¥
|
||
x03C3 call x0419 ;®¯à¥¤¥«¥¨¥ ¤à¥á ¯¥à¥¬¥®© (de - ¤à¥á)
|
||
bit 0,c
|
||
jr z,x03DD ;§ ¯¨áì ¯¥à¥¬¥®© ¢ ï祩ªã CMOS
|
||
ld c,(hl)
|
||
inc hl
|
||
push hl
|
||
call x0459 ;ç⥨¥ § ç¥¨ï ¨§ ¡ãä¥à CMOS ¯® ¤à¥áã ¢ B
|
||
cpl
|
||
or c
|
||
cpl ;á¡à®á ¡¨â®¢ ï祩ª¨
|
||
ld l,a
|
||
ld a,(de)
|
||
and c ;¢ë¤¥«¥¨¥ ¡¨â®¢ ¯¥à¥¬¥®©
|
||
or l
|
||
pop hl
|
||
call x0456 ;§ ¯¨áì § ç¥¨ï ¢ ¡ãä¥à CMOS ¯® ¤à¥áã ¢ B
|
||
jr x03B4
|
||
x03DD ld a,(de)
|
||
call x0456 ;§ ¯¨áì § ç¥¨ï ¢ ¡ãä¥à CMOS ¯® ¤à¥áã ¢ B
|
||
jr x03B3
|
||
|
||
;ãáâ ®¢ª ®¬¥à ï祩ª¨ CMOS
|
||
;¢å: 7,c=1
|
||
; 2,c=1
|
||
; b - ®¬¥à ï祩ª¨ CMOS
|
||
x03E3 ld b,(hl)
|
||
inc hl
|
||
jr x03B4
|
||
|
||
;ãáâ ®¢ª § ç¥¨ï ¡¨â ï祩ª¨ CMOS
|
||
;¢å: b - ®¬¥à ï祩ª¨ CMOS
|
||
; 7,c=0
|
||
; 6,c=1 ¢ (hl) á«®¢®- ¤à¥á
|
||
; =0 ¢ (hl) ¡ ©â-ᬥ饨¥ ®â xE014
|
||
; 5-3, ®¬¥à ¡¨â ¢ ¯¥à¥¬¥®©
|
||
; 2-1, ®¬¥à ¡¨â ¢ ï祩ª¥ CMOS
|
||
;
|
||
x03E7 call x0419 ;®¯à¥¤¥«¥¨¥ ¤à¥á ¯¥à¥¬¥®© (de - ¤à¥á)
|
||
push hl
|
||
ld a,c
|
||
and %00111000
|
||
rrca
|
||
rrca
|
||
rrca
|
||
call x0410 ;¯®«ã票¥ ¬ ᪨ ¤«ï ¯¥à¥¬¥®© (l - ¬ ᪠)
|
||
ld a,(de)
|
||
and l ;¢ë¤¥«¥¨¥ ¡¨â ¢ ¯¥à¥¬¥®©
|
||
push af
|
||
ld a,c
|
||
and #07
|
||
call x0410 ;¯®«ã票¥ ¬ ᪨ ¤«ï ¯¥à¥¬¥®© (l - ¬ ᪠)
|
||
call x0459 ;ç⥨¥ § ç¥¨ï ¨§ ¡ãä¥à CMOS ¯® ¤à¥áã ¢ B
|
||
ld h,a ;§ 票¥ ï祩ª¨ CMOS
|
||
pop af
|
||
ld a,h
|
||
jr z,x0408 ;á¡à®á ¡¨â ¢ CMOS
|
||
or l ;ãáâ ®¢ª ¡¨â ¢ CMOS
|
||
jr x040A
|
||
x0408 or l
|
||
xor l
|
||
x040A call x0456 ;§ ¯¨áì § ç¥¨ï ¢ ¡ãä¥à CMOS ¯® ¤à¥áã ¢ B
|
||
pop hl
|
||
jr x03B4
|
||
|
||
;¯®«ã票¥ ¬ ᪨ ¤«ï ¯¥à¥¬¥®© (l - ¬ ᪠)
|
||
;¢å: a - ®¬¥à ¡¨â
|
||
x0410 ld l,#01
|
||
ret z
|
||
x0413 sla l
|
||
dec a
|
||
jr nz,x0413
|
||
ret
|
||
|
||
;®¯à¥¤¥«¥¨¥ ¤à¥á ¯¥à¥¬¥®©
|
||
;¢ëå: de - ¤à¥á
|
||
x0419 bit 6,c
|
||
ld e,(hl)
|
||
inc hl
|
||
jr z,x0422
|
||
ld d,(hl)
|
||
inc hl
|
||
ret
|
||
; íâ® ¡ ©â-ᬥ饨¥ ®â xE014
|
||
x0422 bit 7,e
|
||
ld d,#00
|
||
jr z,x0429
|
||
dec d
|
||
x0429 push iy
|
||
ex (sp),hl
|
||
add hl,de
|
||
ex de,hl
|
||
pop hl
|
||
ret
|
||
|
||
;ç⥨¥ CMOS[#10..#3E] ¢ ¡ãä¥à xDB69
|
||
;¢ëå: b=#3F
|
||
x0430 ld hl,xDB69
|
||
ld (xDDA7),hl
|
||
ld b,#10
|
||
x0438 rst #30
|
||
dw rom7_x1F59 ;ç⥨¥ ï祩ª¨ CMOS
|
||
db #07
|
||
ld (hl),a
|
||
inc hl
|
||
inc b
|
||
ld a,b
|
||
cp #3F
|
||
jr nz,x0438
|
||
ret
|
||
|
||
;ç⥨¥ #FD ¡ ©â NVRAM á ¤à¥á #0001 ¢ ¡ãä¥à xDB69
|
||
x0445 ld hl,xDB69
|
||
ld (xDDA7),hl
|
||
ld de,#00FD
|
||
ld bc,#0001
|
||
rst #30
|
||
dw rom7_x0DB6 ;ç⥨¥ ¤ ëå ¨§ NVRAM
|
||
db #07
|
||
ret
|
||
|
||
;§ ¯¨áì § ç¥¨ï ¢ ¡ãä¥à CMOS ¯® ¤à¥áã ¢ B
|
||
x0456 scf
|
||
jr x045A
|
||
;ç⥨¥ § ç¥¨ï ¨§ ¡ãä¥à CMOS ¯® ¤à¥áã ¢ B
|
||
x0459 or a
|
||
x045A push hl ;cy=1/0 - § ¯¨áì/ç⥨¥
|
||
ld hl,(xDDA7) ; ¤à¥á ¡ãä¥à CMOS
|
||
push bc
|
||
ld c,b
|
||
ld b,#00
|
||
push af
|
||
add hl,bc
|
||
pop af
|
||
jr nc,x046A
|
||
ld (hl),a
|
||
jr x046B
|
||
x046A ld a,(hl)
|
||
x046B pop bc
|
||
pop hl
|
||
ret
|
||
|
||
;€„<E282AC>…‘: #046E â ¡«¨æ ¤«ï § ¯¨á¨ ¯¥à¥¬¥ëå ¢ CMOS ¨ NVRAM
|
||
x046E db %10000100
|
||
db #00 ;ï祩ª : +#00
|
||
db %11000010
|
||
dw xFFCC ;¯¥à¥¬¥ ï: xFFCC, ï祩ª : +#01
|
||
db %11000010
|
||
dw xFFCD ;¯¥à¥¬¥ ï: xFFCD, ï祩ª : +#02
|
||
db %11000010
|
||
dw xFFCE ;¯¥à¥¬¥ ï: xFFCE, ï祩ª : +#03
|
||
db %11000010
|
||
dw xFFCF ;¯¥à¥¬¥ ï: xFFCF, ï祩ª : +#04
|
||
db %11000010
|
||
dw xFFD0 ;¯¥à¥¬¥ ï: xFFD0, ï祩ª : +#05
|
||
db %11000010
|
||
dw xFFD1 ;¯¥à¥¬¥ ï: xFFD1, ï祩ª : +#06
|
||
db %11000011
|
||
dw xFFCB ;¯¥à¥¬¥ ï: xFFCB
|
||
db %00000111 ;¬ ᪠¯¥à¥¬¥®©
|
||
db %00000011
|
||
db #39 ;¯¥à¥¬¥ ï: xE014+#39
|
||
db %00001100
|
||
db #39 ;¯¥à¥¬¥ ï: xE014+#39
|
||
db %00010101
|
||
db #39 ;¯¥à¥¬¥ ï: xE014+#39
|
||
db %00000110
|
||
db #1C ;¯¥à¥¬¥ ï: xE014+#1C
|
||
db %00001111
|
||
db #1C ;¯¥à¥¬¥ ï: xE014+#1C
|
||
db %10000100
|
||
db #07 ;ï祩ª : +#07
|
||
db %10000011
|
||
db #18 ;¯¥à¥¬¥ ï: xE014+#18
|
||
db %00011111
|
||
db %00010101
|
||
db #1C ;¯¥à¥¬¥ ï: xE014+#1C
|
||
db %00100110
|
||
db #1C ;¯¥à¥¬¥ ï: xE014+#1C
|
||
db %10000100
|
||
db #08 ;ï祩ª : +#08
|
||
db %10000010
|
||
db #DE ;¯¥à¥¬¥ ï: xE014-#22, ï祩ª : +#09
|
||
db %10000010
|
||
db #DF ;¯¥à¥¬¥ ï: xE014-#21, ï祩ª : +#0A
|
||
db %10000100
|
||
db #0A ;ï祩ª : +#0A
|
||
db %10000011
|
||
db #E0 ;¯¥à¥¬¥ ï: xE014-#20
|
||
db %00111111
|
||
db %10000100
|
||
db #0B ;ï祩ª : +#0B
|
||
db %10000011
|
||
db #E1 ;¯¥à¥¬¥ ï: xE014-#1F
|
||
db %00111111
|
||
db %10000100
|
||
db #0C ;ï祩ª : +#0C
|
||
db %10000010
|
||
db #05 ;¯¥à¥¬¥ ï: xE014-#05, ï祩ª : +#0D
|
||
db %10000100
|
||
db #0D ;ï祩ª : +#0D
|
||
db %10000010
|
||
db #0A ;¯¥à¥¬¥ ï: xE014-#0A, ï祩ª : +#0E
|
||
db %10000010
|
||
db #0C ;¯¥à¥¬¥ ï: xE014-#0C, ï祩ª : +#0F
|
||
db %10000011
|
||
db #14 ;¯¥à¥¬¥ ï: xE014+#14
|
||
db %10011111
|
||
db %00100101
|
||
db #00 ;¯¥à¥¬¥ ï: xE014+#00
|
||
db %00110110
|
||
db #19 ;¯¥à¥¬¥ ï: xE014+#19
|
||
db %10000100
|
||
db #10 ;ï祩ª : +#10
|
||
db %10000011
|
||
db #12 ;¯¥à¥¬¥ ï: xE014+#12
|
||
db %00000111
|
||
db %00101011
|
||
db #13 ;¯¥à¥¬¥ ï: xE014+#13
|
||
db %10000100
|
||
db #11 ;ï祩ª : +#11
|
||
db %10000011
|
||
db #15 ;¯¥à¥¬¥ ï: xE014+#15
|
||
db %10101111
|
||
db %10000100
|
||
db #12 ;ï祩ª : +#12
|
||
db %10000011
|
||
db #40 ;¯¥à¥¬¥ ï: xE014+#40
|
||
db %00011111
|
||
db %10000100
|
||
db #13 ;ï祩ª : +#13
|
||
db %10000011
|
||
db #41 ;¯¥à¥¬¥ ï: xE014+#41
|
||
db %00011111
|
||
db %10000100
|
||
db #14 ;ï祩ª : +#14
|
||
db %10000011
|
||
db #42 ;¯¥à¥¬¥ ï: xE014+#42
|
||
db %00011111
|
||
db %10000100
|
||
db #15 ;ï祩ª : +#15
|
||
db %10000011
|
||
db #25 ;¯¥à¥¬¥ ï: xE014+#25
|
||
db %01111111
|
||
db %10000100
|
||
db #16 ;ï祩ª : +#16
|
||
db %10000011
|
||
db #27 ;¯¥à¥¬¥ ï: xE014+#27
|
||
db %11101000
|
||
db %10000100
|
||
db #17 ;ï祩ª : +#17
|
||
db %10000011
|
||
db #2E ;¯¥à¥¬¥ ï: xE014+#2E
|
||
db %00000111
|
||
db %00000011
|
||
db #2F ;¯¥à¥¬¥ ï: xE014+#2F
|
||
db %00001100
|
||
db #2F ;¯¥à¥¬¥ ï: xE014+#2F
|
||
db %00010101
|
||
db #2F ;¯¥à¥¬¥ ï: xE014+#2F
|
||
db %10000100
|
||
db #18 ;ï祩ª : +#18
|
||
db %11000010
|
||
dw xE11A ;¯¥à¥¬¥ ï: xE11A, ï祩ª : +#19
|
||
db %11000010
|
||
dw xE11A+#01 ;¯¥à¥¬¥ ï: xE11B, ï祩ª : +#1A
|
||
db %10000010
|
||
db #58 ;¯¥à¥¬¥ ï: xE014-#58, ï祩ª : +#1B
|
||
db %10000011
|
||
db #57 ;¯¥à¥¬¥ ï: xE014+#57
|
||
db %01111111
|
||
db %10000100
|
||
db #1C ;ï祩ª : +#1C
|
||
db %10000011
|
||
db #DD ;¯¥à¥¬¥ ï: xE014-#23
|
||
db %00000011
|
||
db %10000100
|
||
db #1D ;ï祩ª : +#1D
|
||
db #80 ;ª®¥æ
|
||
|
||
;€„<E282AC>…‘: #04FF â ¡«¨æ ¤«ï § ¯¨á¨ ¯¥à¥¬¥ëå ¢ NVRAM
|
||
x04FF db %10000100
|
||
db #00 ;ï祩ª : +#00
|
||
db %10000010
|
||
db #2A ;¯¥à¥¬¥ ï: xE014+#2A, ï祩ª : +#01
|
||
db %10000010
|
||
db #2B ;¯¥à¥¬¥ ï: xE014+#2B, ï祩ª : +#02
|
||
db %10000010
|
||
db #2C ;¯¥à¥¬¥ ï: xE014+#2C, ï祩ª : +#03
|
||
db %10000010
|
||
db #2D ;¯¥à¥¬¥ ï: xE014+#2D, ï祩ª : +#04
|
||
db %10000010
|
||
db #3A ;¯¥à¥¬¥ ï: xE014+#3A, ï祩ª : +#05
|
||
db %10000010
|
||
db #3B ;¯¥à¥¬¥ ï: xE014+#3B, ï祩ª : +#06
|
||
db %10000010
|
||
db #3D ;¯¥à¥¬¥ ï: xE014+#3D, ï祩ª : +#07
|
||
db %10000010
|
||
db #26 ;¯¥à¥¬¥ ï: xE014+#26, ï祩ª : +#08
|
||
db #80 ;ª®¥æ
|
||
|
||
;€„<E282AC>…‘: #0512 § ¯¨áì ¤¨áª ᥪâ®à á ª®ä¨£ãà æ¨¥© (C. save Set Up to disk)
|
||
x0512 ld de,xDB69
|
||
push de
|
||
;ª®¯¨à㥬 ¯®¤¯à®£à ¬¬ã ¢ ¡ãä¥à
|
||
ld hl,x0549
|
||
ld bc,#0100
|
||
ldir
|
||
;ãáâ ®¢ª ¯¥à¥¬¥ëå ¢ ¡ãä¥à¥ ¤«ï § ¯¨á¨ ¤¨áª
|
||
ld hl,xDB69+#36 ;xDB9F
|
||
ld (xDDA7),hl
|
||
call x03B0 ;ãáâ ®¢ª ¯¥à¥¬¥ëå ¢ ¡ãä¥à¥ ¤«ï § ¯¨á¨ ¤¨áª
|
||
ld hl,xDB69+#64 ;xDBCD
|
||
ld (xDDA7),hl
|
||
ld hl,x04FF
|
||
call x03B3 ;ãáâ ®¢ª ¯¥à¥¬¥ëå ¢ ¡ãä¥à¥ ¤«ï § ¯¨á¨ ¤¨áª
|
||
;§ ¯¨áì ᥪâ®à á áâனª ¬¨ ¤¨áª¥âã
|
||
rst #30
|
||
dw rom7_x107B ;¨¨æ¨ «¨§ æ¨ï ¤¨áª®¢®¤ ¨ áâனª ¤¨áª¥âã
|
||
db #07
|
||
pop hl
|
||
jr c,x0545 ;®è¨¡ª ¨¨æ¨ «¨§ 樨 ¤¨áª
|
||
ld bc,#0106
|
||
ld de,#000F ;trk 0, sec #0F
|
||
rst #30
|
||
dw rom7_x0229 ;R8DOS #06(6) § ¯¨áì £à㯯ë ᥪâ®à®¢
|
||
db #07
|
||
ret nc ;®è¨¡®ª ¥ ¡ë«®
|
||
x0545 rst #30 ;¯¥ç âì á®®¡é¥¨ï ®¡ ®è¨¡ª¥
|
||
dw rom6_x06A6 ;¯¥ç âì á®®¡é¥¨ï ®¡ ®è¨¡ª¥ ¨ ¯à®¤®«¦¥¨¥ à ¡®âë ¬®¨â®à
|
||
db #06 ;(¡¥§ ¢®§¢à â )
|
||
;¯à®æ¥¤ãà ãáâ ®¢ª¨ áâ஥ª ¨§ ᥪâ®à ¤¨áª (á®åà ï¥âáï ¤¨áª ¢¬¥á⥠¯¥à¥¬¥ë¬¨)
|
||
x0549 db "AM" ;ᨣ âãà ç « ¤ ëå
|
||
ld a,(#00F1) ;rom 2
|
||
cp #61
|
||
jr z,x0557 ;¯à®¢¥àª ⥪ã饩 áâà ¨æë <20>‡“
|
||
ld a,#03
|
||
out (#FE),a
|
||
ret
|
||
x0557 ld hl,xDB69+#36 ;xDB9F
|
||
ld (xDDA7),hl
|
||
rst #30
|
||
dw rom4_x0312 ;ãáâ ®¢ª ¯¥à¥¬¥ëå ¯® ¤ ë¬ ¢ CMOS
|
||
db #04
|
||
ld hl,xDB69+#64 ;xDBCD
|
||
ld (xDDA7),hl
|
||
ld hl,x04FF
|
||
rst #30
|
||
dw rom4_x0315 ;ãáâ ®¢ª ¯¥à¥¬¥ëå ¯® ¤ ë¬ ¢ CMOS
|
||
db #04
|
||
rst #20
|
||
db #0D
|
||
db "AutoConfig Ok"
|
||
db #8D
|
||
ret
|
||
|
||
;€„<E282AC>…‘: #057F à ᯠª®¢ª èà¨äâ ¢ rom 8
|
||
x057F ld hl,xE483 ; ¤à¥á ret
|
||
rst #30
|
||
dw rom6_x0D60 ;ãáâ ®¢ª ¯/¯ jp xE483 ¯® ¤à¥áã xE338
|
||
db #06
|
||
ld hl,x059F ; ¤à¥á ᦠ⮣® èà¨äâ
|
||
ld de,xEBF5 ;¡ãä¥à
|
||
push de
|
||
ld bc,#04BB ;à §¬¥à
|
||
ldir ;ª¨¯¨à㥬 ¢ ¡ãä¥à
|
||
pop hl
|
||
ld de,xEBF5+#04BB ;xF0B0
|
||
exx
|
||
ld hl,xF7C0
|
||
rst #30
|
||
dw rom6_x1108 ;à ᯠª®¢ª ¡«®ª
|
||
db #06
|
||
ret
|
||
|
||
;€„<E282AC>…‘: #059F § ¯ ª®¢ ë© èà¨äâ
|
||
x059F INCBIN "prof_roms/rom4_fnt.bin"
|
||
|
||
;€„<E282AC>…‘: #0A5A ¨¨æ¨ «¨§ æ¨ï á¨áâ¥¬ë ¨ ¯¥ç âì á®®¢¥âáâ¢ãîé¨å á®®¡é¥¨©
|
||
x0A5A bit 6,(iy+#14)
|
||
jr nz,x0A67 ;"⥯«ë©" á¡à®á
|
||
rst #30
|
||
dw rom2_x3005 ;ãáâ ®¢ª ⥪ã騬 ®ª : main menu
|
||
db #02
|
||
ld a,#0C
|
||
rst #10 ;®ç¨á⪠®ª
|
||
x0A67 ld hl,x0D24
|
||
call x0CDF ;ª®¯¨à®¢ ¨¥ ¤¥áªà¨¯â®à ®ª ¢ à ¡®çãîî ®¡« áâì ¨ à¨á®¢ ¨¥ à ¬ª¨ ¢®ªà㣠¥£®
|
||
rst #20
|
||
db " ",#7F," " ;§ ª ª®¯¨à ©â
|
||
dc "1993-1997 MOA Shadow Service Monitor"
|
||
bit 6,(iy+#14)
|
||
jr nz,x0B07 ;⥯«ë© á¡à®á
|
||
ld hl,x0D08
|
||
call x0CDF ;ª®¯¨à®¢ ¨¥ ¤¥áªà¨¯â®à ®ª ¢ à ¡®çãîî ®¡« áâì ¨ à¨á®¢ ¨¥ à ¬ª¨ ¢®ªà㣠¥£®
|
||
rst #20
|
||
db #1B,#00,#07 ;ª®®à¤¨ âë ¯¥ç â¨
|
||
dc "* fast test of computer *"
|
||
ld hl,x0CFA
|
||
call x0CDF ;ª®¯¨à®¢ ¨¥ ¤¥áªà¨¯â®à ®ª ¢ à ¡®çãîî ®¡« áâì ¨ à¨á®¢ ¨¥ à ¬ª¨ ¢®ªà㣠¥£®
|
||
rst #20
|
||
db " Computer :",#0D
|
||
db " RAM :",#0D
|
||
db " ROM :"
|
||
db #1B,#00,#8C ;ª®®à¤¨ âë
|
||
call x0C8A ;¢ë¢®¤ á®®¡é¥¨ï á §¢ ¨¥¬ ª®¬¯ìîâ¥à
|
||
ld (ix+0),#01 ;crdY=1
|
||
ld (ix+1),#0C ;crdX=12
|
||
call x0C74 ;á®®¡é¥¨¥: 256 K
|
||
ld (ix+0),#02 ;crdY=2
|
||
ld (ix+1),#0C ;crdX=12
|
||
call x0C7B ;¢ë¢®¤ á®®¡é¥¨ï á à §¬¥à®¬ <20>‡“
|
||
call x0B3B ;¨¨æ¨ «¨§ æ¨ï SMUC
|
||
;®¡ã«¥¨¥ bit4 ᯥæ¨ä¨ª 樨 ¤¨áª®¢®¤®¢
|
||
x0B07 ld a,(xFFCA)
|
||
push af
|
||
xor a
|
||
x0B0C ld (xFFCA),a
|
||
ld c,#11 ;R8DOS #11(17) ç⥨¥ ª®¤ ᯥæ¨ä¨ª 樨 ¤¨áª®¢®¤
|
||
push af
|
||
rst #30
|
||
dw rom7_x0229 ;¢ë§®¢ äãªæ¨¨ R8DOS
|
||
db #07
|
||
res 4,(hl)
|
||
pop af
|
||
inc a
|
||
cp #04
|
||
jr c,x0B0C
|
||
pop af
|
||
ld (xFFCA),a
|
||
;ãáâ ®¢ª ª®®à¤¨ âë Y ªãàá®à ¢ ®ª¥, ¯à¨ ¥®¡å®¤¨¬®áâ¨
|
||
ld de,xE0C9
|
||
or a
|
||
push ix
|
||
pop hl
|
||
sbc hl,de
|
||
ret z
|
||
ld a,(ix+2)
|
||
add a,(ix+4)
|
||
inc a ;ª®®à¤¨ â Y ¨¦¥© áâப¨ ®ª
|
||
rst #30
|
||
dw rom2_x3005 ;ãáâ ®¢ª ⥪ã騬 ®ª : main menu
|
||
db #02
|
||
ld (ix+0),a ;ª®®à¤¨ â Y ªãàá®à ¢ ®ª¥
|
||
ret
|
||
;¨¨æ¨ «¨§ æ¨ï SMUC
|
||
x0B3B ld bc,#FEFE
|
||
in a,(c)
|
||
rrca
|
||
jr c,x0B58 ;cs ¥ ¦ â
|
||
ld b,#EF
|
||
in a,(c)
|
||
bit 2,a
|
||
jr nz,x0B58 ;8 ¥ ¦ â
|
||
; SMUC ¥ ¯à®¢¥à塞
|
||
ld hl,xE02E ;cs+8 ¦ â
|
||
ld a,(hl)
|
||
and #07
|
||
ld (hl),a
|
||
inc hl
|
||
ld a,(hl)
|
||
and #37
|
||
ld (hl),a
|
||
ret
|
||
x0B58 bit 6,(iy+#14)
|
||
ret nz ;"⥯«ë©" á¡à®á
|
||
;®¯à¥¤¥«¥¨¥ «¨ç¨ï SMUC, ¨ ¢ë¢®¤ á®®¡é¥¨ï á ¢¥àᨥ©
|
||
rst #30
|
||
dw rom7_x2422 ;®¯à¥¤¥«¥¨¥ «¨ç¨ï SMUC
|
||
db #07
|
||
ret c ;SMUC ¥ ©¤¥
|
||
push de
|
||
ld hl,x0D16
|
||
call x0CDF
|
||
rst #20
|
||
dc " SMUC : "
|
||
pop de
|
||
call x0CC2 ;¯¥ç âì ¢¥àᨨ ¨ ॢ¨§¨¨ SMUC
|
||
;®¯à¥¤¥«¥¨¥ «¨ç¨ï CMOS, ¨ ¢ë¢®¤ á®®¡é¥¨ï
|
||
ld a,(ix+2)
|
||
add a,(ix+4)
|
||
inc a
|
||
rst #30
|
||
dw rom2_x3005 ;ãáâ ®¢ª ⥪ã騬 ®ª : main menu
|
||
db #02
|
||
ld (ix+0),a
|
||
rst #30 ;®¯à¥¤¥«¥¨¥ «¨ç¨ï CMOS
|
||
dw rom7_x2047 ;a=#5A CMOS checksum error
|
||
db #07 ;a=#5B CMOS not found
|
||
;a=#5C _ç¨á«®_ bytes CMOS found
|
||
call x0C5C ;¯¥ç âì á®®¡é¥¨ï
|
||
db #00
|
||
;®¯à¥¤¥«¥¨¥ «¨ç¨ï NVRAM, ¨ ¢ë¢®¤ á®®¡é¥¨ï
|
||
rst #30 ;®¯à¥¤¥«¥¨¥ «¨ç¨ï NVRAM
|
||
dw rom7_x0D62 ;a=#26 NVRAM not found
|
||
db #07 ;a=#27 NVRAM found
|
||
;a=#33 NVRAM checksum error
|
||
call x0C5C ;¯¥ç âì á®®¡é¥¨ï
|
||
db #02
|
||
;®¯à¥¤¥«¥¨¥ «¨ç¨ï interrupt controller, ¨ ¢ë¢®¤ á®®¡é¥¨ï
|
||
call x0305 ;ãáâ ®¢ª ¯¥à¥¬¥ëå ¨§ NVRAM/CMOS128
|
||
rst #30 ;®¯à¥¤¥«¥¨¥ «¨ç¨ï interrupt controller
|
||
dw rom7_x1572 ;a=#24 interrupt controller not found
|
||
db #07 ;a=#25 interrupt controller found
|
||
call x0C5C ;¯¥ç âì á®®¡é¥¨ï
|
||
db #02
|
||
;®¯à¥¤¥«¥¨¥ «¨ç¨ï ¯®á«¥¤®¢ ⥫쮣® ¯®àâ /¬®¤¥¬ , ¨ ¢ë¢®¤ á®®¡é¥¨ï
|
||
rst #30
|
||
dw rom7_x15C7 ;®¯à¥¤¥«¥¨¥ «¨ç¨ï ¯®á«¥¤®¢ ⥫쮣® ¯®àâ /¬®¤¥¬
|
||
db #07 ;a=#28 modem not found
|
||
call x0C5C ;a=#29 modem found
|
||
db #02 ;a=#2A serial port not found
|
||
;¨¤¥â¨ä¨ª æ¨ï HDD ¨ ¯¥ç âì ¨ä®à¬¨æ¨¨ ® ¢¨ç¥áâ¥à¥
|
||
ld e,#00
|
||
rst #30
|
||
dw rom5_x30B9 ;¨¤¥â¨ä¨ª æ¨ï ¦¥á⪮£® ¤¨áª
|
||
db #05
|
||
jr nc,x0BB9 ;¥â ®è¨¡®ª
|
||
call x0C5C ;¯¥ç âì á®®¡é¥¨ï á ®è¨¡ª®©
|
||
db #00
|
||
jr x0C27
|
||
x0BB9 ld a,%00101011 ;paper 5, ink 3
|
||
ld (ix+6),a
|
||
rst #20
|
||
dc " IDE/AT "
|
||
; ¯¥ç âì à §¬¥à ¢¨ç¥áâ¥à
|
||
ld hl,(xE5A5)
|
||
ld de,#0000
|
||
exx
|
||
ld bc,(xDFF2)
|
||
rst #30
|
||
dw rom7_x0FB7 ;㬮¦¥¨¥ dehl=de'hl' * bc
|
||
db #07
|
||
rst #30
|
||
dw rom5_x2AA4 ;¯à¥®¡à §®¢ ¨¥ ª®«¨ç¥á⢠ᥪâ®à®¢ ¢ ¬¥£ ¡ ©âë
|
||
db #05
|
||
ld a,#59
|
||
or a
|
||
call x0C5C ;¯¥ç âì à §¬¥à ¢¨ç¥áâ¥à
|
||
db #00
|
||
; ¯¥ç âì §¢ ¨ï(¬®¤¥«¨) ¢¨ç¥áâ¥à
|
||
ld a,%00101000 ;paper 5, ink 0
|
||
ld (ix+6),a
|
||
ld hl,xE5A9+#036 ;xE5DF
|
||
ld b,#14
|
||
call x0C4D
|
||
; ¯¥ç âì á¥à¨©®£® ®¬¥à ¢¨ç¥áâ¥à
|
||
rst #20
|
||
db #0D
|
||
dc "Serial Number: "
|
||
ld hl,xE5A9+#014 ;xE5BD
|
||
ld b,#0A
|
||
call x0C4D
|
||
; ¯¥ç âì ¢¥àᨨ ¯à®è¨¢ª¨ ¢¨ç¥áâ¥à
|
||
rst #20
|
||
db #0D
|
||
dc "Firmware rev.: "
|
||
ld hl,xE5A9+#02E ;xE5D7
|
||
ld b,#04
|
||
call x0C4D
|
||
ld a,%00101001 ;paper 5, ink 1
|
||
ld (ix+6),a
|
||
rst #20
|
||
db #8D
|
||
;¬®â¨à®¢ ¨¥ ¯®¤ª«îç¥ëå ®¡à §®¢
|
||
x0C27 bit 7,(iy+#1B)
|
||
jr z,x0C39 ;HDD ¥ ©¤¥
|
||
set 5,(iy+#0B)
|
||
rst #30
|
||
dw rom5_x2503 ;¬®â¨à®¢ ¨¥ ¢á¥å ®¡à §®¢ á ¢¨ç¥áâ¥à
|
||
db #05
|
||
res 5,(iy+#0B)
|
||
;¯à®¢¥àª ¦ â¨ï ª« ¢¨è¨
|
||
x0C39 ld hl,xE028
|
||
bit 6,(hl)
|
||
ret nz ;"⥯«ë©" á¡à®á
|
||
x0C3F xor a
|
||
in a,(#FE)
|
||
and #1F
|
||
xor #1F
|
||
ret nz
|
||
dec hl
|
||
ld a,l
|
||
or h
|
||
ret z
|
||
jr x0C3F
|
||
|
||
;¯¥ç âì á®®¡é¥¨ï ¨§ (hl), ¤«¨®© ¥ ¡®«¥¥ b*2
|
||
x0C4D ld e,(hl)
|
||
inc hl
|
||
ld d,(hl)
|
||
inc hl
|
||
ld a,d
|
||
or a
|
||
ret z
|
||
rst #10
|
||
ld a,e
|
||
or a
|
||
ret z
|
||
rst #10
|
||
djnz x0C4D
|
||
ret
|
||
|
||
;¯¥ç âì á®®¡é¥¨ï
|
||
;¢å: a - ®¬¥à á®®¡é¥¨ï
|
||
; db ? ®¬¥à ¡«®ª á®®¡é¥¨©
|
||
x0C5C ld b,a
|
||
ex (sp),hl
|
||
ld c,(hl)
|
||
inc hl
|
||
ex (sp),hl
|
||
set 0,(iy+#05) ;¤¥áïâ¨ç ï á¨á⥬
|
||
ld a,%00101001 ;paper 5, ink 1
|
||
jr c,x0C6B
|
||
ld a,%00101011 ;paper 5, ink 3
|
||
x0C6B ld (ix+6),a ; âਡãâë ¯¥ç â¨
|
||
rst #20
|
||
dc " "
|
||
rst #08
|
||
rst #20
|
||
db #8D
|
||
ret
|
||
|
||
;á®®¡é¥¨¥: 256 K
|
||
x0C74 rst #20
|
||
dc "256 K"
|
||
ret
|
||
|
||
;¢ë¢®¤ á®®¡é¥¨ï á à §¬¥à®¬ <20>‡“
|
||
x0C7B rst #30 ;¤«ï ¯à®¢à¥ª¨ à §¬¥à <20>‡“: ¯à¨ 128k ¢ª«îç¨âáï rom 2 ¨ a=#00
|
||
dw romA_x001B ;¯à¨ 256k ¢ª«îç¨âáï rom #A ¨ a=#02
|
||
db #0A
|
||
cp #02
|
||
jr z,x0C74 ;256k <20>‡“
|
||
rst #20
|
||
dc "128 K"
|
||
ret
|
||
|
||
;¢ë¢®¤ á®®¡é¥¨ï á §¢ ¨¥¬ ª®¬¯ìîâ¥à
|
||
x0C8A ld de,(xDFFC)
|
||
rst #30 ;‡€—…Œ!!! ¬®¦® ¯àï¬ãî
|
||
dw rom4_x02E8 ;¯à®¢¥àª ®à¨£¨ «ìë©/ᮢ¬¥áâ¨¬ë© ª®¬¯ìîâ¥à
|
||
db #04
|
||
jr nz,x0CA9
|
||
rst #20
|
||
dc "Scorpion ZS 256 (R)"
|
||
ret
|
||
x0CA9 rst #20
|
||
dc "Scorpion (R) compatible"
|
||
ret
|
||
|
||
;¯¥ç âì ¢¥àᨨ ¨ ॢ¨§¨¨ SMUC
|
||
;¢å: d - ®¬¥à ¢¥àᨨ
|
||
; e - ®¬¥à ॢ¨§¨¨
|
||
x0CC2 push de
|
||
rst #20
|
||
dc "Ver. "
|
||
pop de
|
||
ld a,d
|
||
push de
|
||
rst #30
|
||
dw rom2_x16EC ;¯¥ç âì ç¨á« a=[#0..#F]
|
||
db #02
|
||
rst #20
|
||
dc ", rev. "
|
||
pop de
|
||
ld a,e
|
||
rst #30
|
||
dw rom2_x16EC ;¯¥ç âì ç¨á« a=[#0..#F]
|
||
db #02
|
||
ret
|
||
|
||
;€„<E282AC>…‘: #0CDF ª®¯¨à®¢ ¨¥ ¤¥áªà¨¯â®à ®ª ¢ à ¡®çãîî ®¡« áâì ¨ à¨á®¢ ¨¥ à ¬ª¨ ¢®ªà㣠¥£®
|
||
;¢å: hl - ¤¥áªà¨¯â®à ®ª
|
||
x0CDF call x0CEA
|
||
ld hl,#0000
|
||
rst #30
|
||
dw rom5_x2054 ;¯¥ç âì à ¬ª¨ ¢®ªà㣠®ª
|
||
db #05
|
||
ret
|
||
;ª®¯¨à®¢ ¨¥ ¤¥áªà¨¯â®à ®ª ¢ à ¡®çãîî ®¡« áâì
|
||
x0CEA ld de,xE102
|
||
push de
|
||
ld bc,#000D
|
||
ldir
|
||
pop ix
|
||
ld (xE3B7),ix
|
||
ret
|
||
|
||
;€„<E282AC>…‘ #0CFA ¤¥áªà¨¯â®àë ®ª®:
|
||
;®ª® ¢ëá®â®© 3 § ª®¬¥áâ ¢áî è¨à¨ã íªà
|
||
x0CFA db #00,#00
|
||
db #05,#01
|
||
db #03,#1E
|
||
db %00101001
|
||
db #07,#90,%00101000
|
||
db #06,#28,#20,#00
|
||
;®ª® ¢ëá®â®© 1 § ª®¬¥áâ® ¢áî è¨à¨ã íªà
|
||
x0D08 db #00,#00
|
||
db #03,#01
|
||
db #01,#1E
|
||
db %00101001
|
||
db #03,#88,%00101000
|
||
db #06,#28,#20,#00
|
||
;®ª® ¢ëá®â®© 9 § ª®¬¥áâ ¢áî è¨à¨ã íªà
|
||
x0D16 db #00,#00
|
||
db #09,#01
|
||
db #01,#1E
|
||
db %00101001
|
||
db #03,#88,%00101000
|
||
db #06,#28,#20,#00
|
||
;®ª® ¢ëá®â®© 1 § ª®¬¥áâ® ¢áî è¨à¨ã íªà
|
||
x0D24 db #00,#00
|
||
db #01,#01
|
||
db #01,#1E
|
||
db %00101001
|
||
db #03,#80,%00101000
|
||
db #06,#28,#20,#00
|
||
|
||
;€„<E282AC>…‘ #0D32 ª®¯¨à ©âë
|
||
x0D32 db "Copyright(c) 1993, 1997 by Andrew MOA",#00
|
||
db "FidoNet 2:5030/25.1",#00
|
||
db "E-mail: moa@deeds.spb.ru",#00
|
||
db "Compiled: Jul 13 1997 14:24:13 (IBM PC, MA80 crossassembler)",#00
|
||
x0DC2 ds ROMdisk-$,#00
|
||
|
||
;€„<E282AC>…‘: #0E00 ROM-disk
|
||
x0E00 INCBIN "prof_roms/rom4_ROMdisk.bin"
|
||
|
||
SAVEBIN "../Build/scorp/NewROM4.bin",#0000,#4000
|