mirror of
https://github.com/Tolik-Trek/Shared_Includes.git
synced 2026-06-15 09:01:33 +03:00
2570 lines
87 KiB
PHP
2570 lines
87 KiB
PHP
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
|
||
DEFDEVICE SPRINTER, #4000, 256
|
||
|
||
DEFINE SLOT? +(SLOT0 | ((#C0 & high $)>>>1))
|
||
DEFINE OFFSET? +(SLOT3 ^ SLOT?)*512
|
||
|
||
IFNDEF _includedSP2000 : DEFINE _includedSP2000 : ENDIF
|
||
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
|
||
|
||
|
||
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
|
||
;!TODO
|
||
STRUCT _ZX_TASK_DATA
|
||
.STATE BYTE 0 ; +00 b0 - ᢮¡®¤ /á®åà ¥ , b1 - ¦¤ñâ/à ¡®â ¥â, b2 - áâ ¤ àâ ï/ª á⮬ ï ¯ «¨âà
|
||
.SLOT3_PAGE BYTE 0 ; +01 âà¥âìï áâà ¨æ § ¤ ç¨
|
||
.SP WORD 0 ; +02 㪠§ ⥫ì áâíª
|
||
.TYPE BYTE 0 ; +04 ⨯ ¯ ¬ïâ¨: 0 - 48k, 1 - Pent128, 2 - Pent512, 3 - Scorp256
|
||
.vRAM_ID BYTE 0 ; +05 RAM ID ¤«ï áâà ¨æ Ž‡“ ᯥªâàã¬
|
||
.vROM_ID BYTE 0 ; +06 RAM ID ¤«ï áâà ¨æ <EFBFBD>‡“ ᯥªâàã¬
|
||
.PORT_ALL_MODE BYTE 0 ; +07
|
||
.FN_SYNC BYTE 0 ; +08 bit2..0 - ⨯ ¨â . bit7..6 ⨯ à §¢ñà⪨
|
||
.CNF_PORT BYTE 0 ; +09
|
||
.RESERVED BYTE 0 ; +10
|
||
BYTE 0 ; +11
|
||
BYTE 0 ; +12
|
||
BYTE 0 ; +13
|
||
BYTE 0 ; +14
|
||
BYTE 0 ; +15
|
||
ENDS
|
||
|
||
STRUCT _ZX_TASK
|
||
.CURRENT BYTE 0
|
||
.RESERVED BLOCK 16 - 1
|
||
.ID_0 _ZX_TASK_DATA
|
||
.ID_1 _ZX_TASK_DATA
|
||
.ID_2 _ZX_TASK_DATA
|
||
.ID_3 _ZX_TASK_DATA
|
||
ENDS
|
||
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
|
||
|
||
|
||
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
|
||
; <EFBFBD>à¥àë¢ ¨ï ;
|
||
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
|
||
; ‚¥ªâ®à #FF:
|
||
; ª« ¢¨ âãà - ¢¨á¨â 32 â ªâ . ¬®¦® ¯à®¢¥à¨âì ¯® ¡ãä¥àã ¢ ¯à®æ¥, ¬®¦¥â «®¦¨âìáï á ®áâ «ì묨.
|
||
; ª ¤à®¢®¥ - ¢¨á¨â 32 â ªâ . Œ®¦¥â «®¦¨âìáï á ®áâ «ì묨.
|
||
; CBL - ¢¨á¨â ¤® § å¢ â ¯à®æ¥¬, ¬®¦¥â «®¦¨âìáï á ®áâ «ì묨.
|
||
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
|
||
|
||
|
||
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
|
||
; €¤à¥á ¯®à⮢ ;
|
||
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
|
||
; <EFBFBD>Ž<EFBFBD>’ #FE
|
||
; Read:
|
||
; bit0 - keyboard
|
||
; bit1 - keyboard
|
||
; bit2 - keyboard
|
||
; bit3 - keyboard
|
||
; bit4 - keyboard
|
||
; bit5 - display sync: 1 - «ãç>256, 0 - «ãç<256. •®¤ «ãç 0..319 / 0..311, ¢ § ¢¨á¨¬®á⨠®â à §¢ñà⪨. <EFBFBD> ¡®â ¥â ⮫쪮 ¯à¨ ªâ¨¢¨à®¢ ®¬ CBL, ¨ ç¥ ¢á¥£¤ 0
|
||
; bit6 - Tape in
|
||
; bit7 - ¥á«¨ ªâ¨¢¨à®¢ ë ¯à¥àë¢ ¨ï CBL: 1 - CBL interrupt, ¨ ç¥ à áè¨à¥ë© ¡¨â ᯥªâà㬮¢áª®© ª« ¢¨ âãàë
|
||
;
|
||
; Write:
|
||
; bit0 - Border Color
|
||
; bit1 - Border Color
|
||
; bit2 - Border Color
|
||
; bit3 - Tape out
|
||
; bit4 - Beeper out
|
||
; bit5 -
|
||
; bit6 -
|
||
; bit7 -
|
||
ZX_Beeper EQU #FE ; bit 4
|
||
ZX_Tape_Ou EQU #FE ; bit 3
|
||
ZX_Tape_In EQU #FE ; bit 6
|
||
;°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°;
|
||
;
|
||
; Covox Blaster
|
||
CBL:
|
||
.OUT EQU #4F ; <20>®àâ ¤«ï ¢ë¢®¤ §¢ãª = #FB
|
||
.BUFFER_PAGE EQU #FD ; áâà ¨æ -¡ãä¥à ¤«ï ª¨¤ ¨ï ¬ã§« ªá¥«¥¬ (¯à¥àë¢ ¨ï CBL ¤®«¦ë ¡ëâì ¢ª«îç¥ë)
|
||
.INT_PORT EQU #FE ; .SYS_PORT:bit4=1 --> .INT_PORT:bit7=1 § ¯à®á § ¯®«¥¨¥ ¯®«ã¡ãä¥à ¤ 묨
|
||
.SYS_PORT EQU #004E ; ¯®àâ ã¯à ¢«¥¨ï COVOX-Blaster (CBL_DIR). 16-bit port!!!, ¯¨á âì ç¥à¥§ OUT (c),reg ¨«¨ ®ç¥ì ®áâ®à®¦®))
|
||
.COVOX_OUT EQU #FB ; <20>®àâ ¤«ï ¢ë¢®¤ §¢ãª = #4F
|
||
; Data for .SYS_PORT
|
||
;Bit 7
|
||
.Covox EQU #00
|
||
.Blaster EQU #80
|
||
;Bit 6
|
||
.Mono EQU #00
|
||
.Stereo EQU #40
|
||
;Bit 5
|
||
.is8bit EQU #00
|
||
.is16bit EQU #20
|
||
;Bit 4
|
||
.Int_off EQU #00
|
||
.Int_on EQU #10
|
||
;Bit 3..0
|
||
.KHz_16old EQU #00
|
||
.KHz_22old EQU #01
|
||
.KHz_8 EQU #08
|
||
.KHz_11 EQU #09
|
||
.KHz_16 EQU #0A
|
||
.KHz_22 EQU #0B
|
||
.KHz_31 EQU #0C
|
||
.KHz_44 EQU #0D
|
||
.KHz_55 EQU #0E
|
||
.KHz_109 EQU #0F
|
||
;
|
||
; #00 - COVOX on, standart Pentagon mode
|
||
; #80 - CBL on, 15 kHz mono
|
||
; #81 - CBL on, 22 kHz mono
|
||
; Bits:
|
||
; 7 - covox/CBL
|
||
; 6 - ¬®®/áâ¥à¥®
|
||
; 5 - 8/16 ¡¨â
|
||
; 4 - ¢ëª«/¢ª« ¯à¥àë¢ ¨© (¢¥ªâ®à #FF, ¯à¨§ ª - ¯®àâ #FE.bit7 ¨ ¢¥á¨â ¤® § å¢ â ¯à®æ¥¬)
|
||
; 3..0 - ç áâ®â ; ¤®¯®«¨âì
|
||
; — áâ®âë:
|
||
; Žâ 8 ¤® 15
|
||
; ‡ 票ï 0..7 ¤«ï ᮢ¬¥á⨬®á⨠ᮠáâ àë¬ ¡« áâ¥à®¬: 0 - 16, 1 - 22 ªƒæ
|
||
;
|
||
; ¡ãä¥à - 256/512 ¡ ©â (8/16 bit mode)
|
||
; (2 ¡ ª¨ ¯® 128/256)
|
||
; ¯à¥àë¢ ¨¥ ¯à¨«¥â ¥â ¯®á«¥ ª ¦¤®©
|
||
; ¡ ª¨
|
||
;
|
||
; <EFBFBD>¥¦¨¬ 8 ¡¨â:
|
||
; ã஢¥ì ã«ï ¢ ᥬ¯« å - #80
|
||
; <EFBFBD>¥¦¨¬ 16 ¡¨â:
|
||
; ã஢¥ì ã«ï ¢ ᥬ¯« å - #0000
|
||
; Stereo-áí¬¯«ë:
|
||
; ç¥à¥¤ãî騥áï ®âáç¥âë L ¨ R ª «®¢.
|
||
;
|
||
; mono_8bit:
|
||
; DB 80h,81h,7Fh....
|
||
; mono_16bit:
|
||
; DW 0,1000,-1000...
|
||
; stereo_8bit:
|
||
; DB 80h,80h,81h,80h,7Fh,80h... ; §¤¥áì ®¤¨ ª « ¨£à ¥â, ¢â®à®© ¬®«ç¨â
|
||
; stereo_16bit:
|
||
; DW 0,0,1000,0,-1000,0... ; «®£¨ç®, ®¤¨ ª « ¨£à ¥â, ¢â®à®© ¬®«ç¨â
|
||
;
|
||
; CASE CBL_XX[3..0] IS
|
||
; WHEN 0 => CBL_TAB[] = 13; -- 15.625 KHz -- mono/stereo
|
||
; WHEN 1 => CBL_TAB[] = 9; -- 21.875 KHz -- mono/stereo
|
||
; WHEN 2 => CBL_TAB[] = 0; -- reserved
|
||
; WHEN 3 => CBL_TAB[] = 0; -- reserved
|
||
; WHEN 4 => CBL_TAB[] = 0; -- reserved
|
||
; WHEN 5 => CBL_TAB[] = 0; -- reserved
|
||
; WHEN 6 => CBL_TAB[] = 0; -- reserved
|
||
; WHEN 7 => CBL_TAB[] = 0; -- reserved
|
||
;
|
||
; WHEN 8 => CBL_TAB[] = 27; -- 7.8125 KHz -- mono/stereo 8/16 bit
|
||
; WHEN 9 => CBL_TAB[] = 19; -- 10.9375 KHz -- mono/stereo 8/16 bit
|
||
; WHEN 10=> CBL_TAB[] = 13; -- 15.625 KHz -- mono/stereo 8/16 bit
|
||
; WHEN 11=> CBL_TAB[] = 9; -- 21.875 KHz -- mono/stereo 8/16 bit
|
||
; WHEN 12=> CBL_TAB[] = 6; -- 31.25 KHz -- mono/stereo 8/16 bit
|
||
; WHEN 13=> CBL_TAB[] = 4; -- 43.75 KHz -- mono/stereo 8/16 bit
|
||
; WHEN 14=> CBL_TAB[] = 3; -- 54.6875 KHz -- mono/stereo 8/16 bit
|
||
; WHEN 15=> CBL_TAB[] = 1; -- 109.375 KHz -- mono/stereo 8/16 bit
|
||
; END CASE;
|
||
;°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°;
|
||
;
|
||
; SYS_PORT / CNF_PORT
|
||
;
|
||
; § ¬ ¯«¥ ç¥à¥§ ª àâã ¯®à⮢ #7C/#3C ¨ #74/#24
|
||
CNF_PORT:
|
||
.ON EQU #74
|
||
.OFF EQU #24
|
||
.vBIOS EQU .ON
|
||
.vZX_ROM EQU .OFF
|
||
; Data:
|
||
.BIOS EQU 0
|
||
.EXTENSION EQU 1
|
||
.TURBO.OFF EQU 2 ; ¤ ë¥ ¤«ï ¢ëª«î票ï TURBO
|
||
.TURBO.ON EQU 3 ; ¤ ë¥ ¤«ï ¢ª«î票ï TURBO
|
||
.CNF_0 EQU #04 ; ª àâ ¯®à⮢ 0
|
||
.CNF_1 EQU #0C ; ª àâ ¯®à⮢ 1 (¤«ï ०¨¬ ¯®ç⨠ç¨á⮣® zx spectrum)
|
||
.CNF_2 EQU #14 ; ª àâ ¯®à⮢ 2
|
||
.CNF_3 EQU #1C ; ª àâ ¯®à⮢ 3 (०¨¬ ¤®áâ㯠ª ¯®àâ ¬ ‚ƒ93 ¡¥§ ᨣ « TR-DOS)
|
||
.PENT_RESET EQU #20
|
||
.SCORP_RESET EQU #40
|
||
.CNF_512 EQU #80 ; ¢ª«î票¥ Pentagon 128
|
||
.ZX_BIOS EQU #00
|
||
.ZX_EXTENSION EQU #01
|
||
; ¯à¨¡¨â ¢ ª®ä¥ £¢®§¤ï¬¨ #7C/#3C
|
||
SYS_PORT:
|
||
.ON EQU #7C
|
||
.OFF EQU #3C
|
||
.RAM EQU .OFF
|
||
.ROM EQU .ON
|
||
; Data:
|
||
.PAGE0 EQU 1
|
||
.PAGE8 EQU 0
|
||
.EXTENSION EQU .PAGE0
|
||
.BIOS EQU .PAGE8
|
||
.TURBO.ON EQU CNF_PORT.TURBO.ON
|
||
.TURBO.OFF EQU CNF_PORT.TURBO.OFF
|
||
.CNF_0 EQU CNF_PORT.CNF_0
|
||
.CNF_1 EQU CNF_PORT.CNF_1
|
||
.CNF_2 EQU CNF_PORT.CNF_2
|
||
.CNF_3 EQU CNF_PORT.CNF_3
|
||
.PENT_RESET EQU CNF_PORT.PENT_RESET
|
||
.SCORP_RESET EQU CNF_PORT.SCORP_RESET
|
||
.CNF_512 EQU CNF_PORT.CNF_512
|
||
/*
|
||
---------------------------------------------------
|
||
CNF_PORT ¢¨á¨â 4 ¢¥è¨å ¯®àâ å (#7C/#3C ¨ #74/#24) ç¥à¥§ ª àâã ¯®à⮢.
|
||
SYS_PORT £¢®§¤ï¬¨ ¢ ª®ä¥ #7C/#C
|
||
|
||
SYS_PORT ⮫쪮 ¯¥à¥ª«îç ¥â RAM/ROM
|
||
CNF_PORT ¬¥ï¥â ¢áñ ®á⠫쮥, ¯à¨ ¡¨â1=0 ¬¥ïîâáï áâà ¨æë í¬ã«ïâ®à <20>‡“ ç¥à¥§ ¡¨â0
|
||
|
||
CNF_PORT
|
||
bit0 - TURBO: ¨«¨ vROM:
|
||
0 - off #24 - áâà ¨æ ¨§ ¢.¯®àâ (#E0..#E3)/(#E4..#E7)
|
||
1 - on #74 - áâà ¨æ ¨§ ¢.¯®àâ #EB/#EF
|
||
bit1 - 1 - Set TURBO, 0 - Set vROM page
|
||
bit2 - 1 - CNF ena
|
||
bit3 - \_ cnf0..cnf3 -\
|
||
bit4 - / - \
|
||
bit5 - CNF_PN[5..0]_RESET by 1 - á¡à®á <20>¥â. ¯®àâ - -|---> ¤¥©áâ¢ãîâ ⮫쪮 ¯à¨ bit2=1
|
||
bit6 - CNF_SC_RESET by 1 - á¡à®á ‘ª®à¯. ¯®àâ - /
|
||
bit7 - CNF_PN[7..6]_RESET by 0 - á¡à®á <20>¥â-512 -/
|
||
|
||
<09>¥à¥ª«î票¥ áâà ¨æ vROM:
|
||
____________________________________________________
|
||
| ‡ 票¥ | ‡ ¯¨áì ¢® ¢¥è¨© ¯®àâ: |
|
||
| ¨§ ¢ãâà. |____________________________________|
|
||
| ¯®àâ | #24 ---- | | | |
|
||
| €«ìâ¥àë | #3C (-rom) | | | |
|
||
| ||| | #7C (+rom) | #74 | 1FFD | 7FFD |
|
||
| \|/ | bit1..0 | bit1..0 | bit1 | bit4 |
|
||
|_____________|____________|_________|______|______|
|
||
|E0 | 00 | | 1 | ... |
|
||
|E1 (+dos_on) | 00 | | 0 | ... |
|
||
|E2 | 00 | | 0 | 0 |
|
||
|E3 | 00 | | 0 | 1 |
|
||
|E4 | 01 | | 1 | ... |
|
||
|E5 (+dos_on) | 01 | | 0 | ... |
|
||
|E6 | 01 | | 0 | 0 |
|
||
|E7 | 01 | | 0 | 1 |
|
||
|EB | | 00 | ... | ... |
|
||
|EF | | 01 | ... | ... |
|
||
|_____________|____________|_________|______|______|
|
||
... - § 票¥ ஫¨ ¥ ¨£à ¥â
|
||
|
||
‘â ¤ àâë¥ áâà ¨æë އ“ ¤«ï ®¡à §®¢ <20>‡“ ᯥªâà㬠:
|
||
Page Name Int.Port Page Name Int.Port
|
||
#42 BASIC 128 #E2 | ??? BASIC_128_2 #E6
|
||
#43 BASIC 48 #E3 | ??? BASIC_48_2 #E7
|
||
#44 TR-DOS #E1 | ??? TR_DOS_2 #E5
|
||
#45 ZX_EXPANSION #E0 | ??? EXPANSION_2 #E4
|
||
#46 ZX_BIOS_1 #EB |
|
||
#47 ZX_BIOS_2 #EF |
|
||
|
||
SYS_PORT:
|
||
bit0 - TURBO: on/off ¨«¨ BIOS:
|
||
0 - ROM 8
|
||
1 - ROM 0
|
||
bit1 - 1 - TURBO ena, 0 - ¯¥à¥ª«î票¥ BIOS-PAGE
|
||
bit2 - 1 - CNF ena
|
||
bit3 - \_ cnf0..cnf3 -\
|
||
bit4 - / - \
|
||
bit5 - CNF_PN[5..0]_RESET by 1 - á¡à®á <20>¥â. ¯®àâ - -|---> ¤¥©áâ¢ãîâ ⮫쪮 ¯à¨ bit2=1
|
||
bit6 - CNF_SC_RESET by 1 - á¡à®á ‘ª®à¯. ¯®àâ - /
|
||
bit7 - CNF_PN[7..6]_RESET by 0 - á¡à®á <20>¥â-512 -/
|
||
|
||
”ãªæ¨ï bit0 ®¯à¥¤¥«ï¥âáï ç¥à¥§ bit1
|
||
bit7..bit3 áà ¡ âë¢ î⠯ਠbit2 = 1
|
||
|
||
‡ ¯¨áì ¢ ¯®àâ #7C ¯®¤ª«îç ¥â <20>‡“ ¢ ®ª® 0, § ¯¨áì ¢ ¯®àâ #3C ®âª«îç ¥â
|
||
<EFBFBD>‡“ ®â ®ª 0, ¯®í⮬㠯®àâ 7‘/3C §ë¢ ¥âáï System/User.
|
||
<EFBFBD>¥à¥ª«î票¥ áâà ¨æ <20>‡“ à ¡®â ¥â ¢ í⮬ ¢ ਠ⥠⠪:
|
||
¢ <20>‡“ 16 áâà ¨æ ®â 0 ¤® 15, ¯®àâ #5C ¨å ¯¥à¥ª«îç ¥â á bit3 xor /SYS (SYS_PORT bit[1..0] = b"0X" (BIOS: Part1/Part0))
|
||
¥á«¨ ᤥ« âì ld a,1 : out (sys_port_on),a - â® ã¬¥à æ¨ï áâà ¨æ <20>‡“ ¡ã¤¥â ¯à ¢¨«ì ï ®â 0 ¤® 15,
|
||
¥á«¨ ᤥ« âì ld a,0 : out (sys_port_on),a - â® ã¬¥à æ¨ï áâà ¨æ <20>‡“ ¡ã¤¥â á ¨¢¥àâ¨à®¢ ë¬ bit3:
|
||
áâà ¨æë <20>‡“ 0-7 ¡ã¤ãâ 㬥஢ âìáï ª ª 8-15
|
||
áâà ¨æë <20>‡“ 8-15 ¡ã¤ãâ 㬥஢ âìáï ª ª 0-7
|
||
¯¥à¥ª«î票¥ áâà ¨æ <20>‡“ ¯®à⮬ #5C ¯à®¨á室¨â ⮫쪮 ¯à¨ ¢®âªã⮩ <20>‡“ ç¥à¥§ sys_port.
|
||
Œ®¦® ¯¥à¥ª«îç âì áâà ¨æë ç¥à¥§ ¢ãâ२© ¯®àâ #8F, ⮣¤ bit4 í⮣® ¯®àâ ¢ª«îç ¥â ᨣ « § ¯¨á¨ ¤«ï <20>‡“.
|
||
’ ª ¦¥ íâ®â ¯®àâ ¤ ñâ ¯àï¬ãî ã¬¥à æ¨î áâà ¨æ ¯à¨ ãáâ ®¢«¥®¬ bit4.
|
||
;-------------------------------------------------------------------------------------------------------------------------------
|
||
„«ï vROM ¬®¦® ¨á¯®«ì§®¢ âì «î¡ë¥ ᢮¡®¤ë¥ áâà ¨æë އ“.
|
||
„«ï vRAM ¥«ì§ï ¨á¯®«ì§®¢ âì:
|
||
#1FFD b4=1: #A0,#D0..#DF
|
||
*/
|
||
;°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°;
|
||
;
|
||
; ¯®àâë ã¯à ¢«¥¨ï áâà ¨æ ¬¨ ä áâà ¬
|
||
FastRAM:
|
||
.ON EQU #FB ; ‚ª«î票¥ ªíè IN A,(FastRAM.ON) - ¯à¨¡¨â® £¢®§¤ï¬¨ ¢ ª®ä¥
|
||
.OFF EQU #7B ; Žâª«î票¥ ªíè IN A,(FastRAM.OFF) - ¯à¨¡¨â® £¢®§¤ï¬¨ ¢ ª®ä¥
|
||
.SLOT0 EQU #5C ; <20>¥à¥ª«î票¥ áâà ¨æ ªíè ¯à¨ FastRAM.ON ¢ ã«¥¢®¬ ®ª¥ (bit0..1) - ¯à¨¡¨â® £¢®§¤ï¬¨ ¢ ª®ä¥
|
||
;!TODO ¯®áâ ¢¨âì ¢ ª à⥠¯®à⮢ ç⥨¥ ¯®àâ #FB ¢ãâ२© ¯®àâ SLOT0
|
||
; ç⮡ ¯à¨ ¢ª«î票¨ ªíè ¢ ॣ¨áâà á®åà ï« áì áâà ¨æ ¢ ¡ ª¥ 0 (¯®«¥§® ¯à¨ ¢ª«î票¨ ªíè ¨§ ¡ ª¨ ®«ì)
|
||
;°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°;
|
||
;
|
||
; <EFBFBD>®àâ ã¯à ¢«¥¨ï áâà ¨æ ¬¨ <EFBFBD>‡“
|
||
; <EFBFBD>¥à¥ª«î票¥ áâà ¨æ <EFBFBD>‡“ ¯à¨ FastRAM.OFF ¢ ã«¥¢®¬ ®ª¥.
|
||
ROM:
|
||
.SLOT0 EQU #5C ; <20>ਡ¨â® £¢®§¤ï¬¨ ¢ ª®ä¥
|
||
.BIOS EQU SYS_PORT.BIOS ; ¤«ï sys_port.on D_ROM16OFF
|
||
.EXTENSION EQU SYS_PORT.EXTENSION ; ¤«ï sys_port.on D_ROM16ON
|
||
vROM:
|
||
.BIOS EQU CNF_PORT.BIOS ; ¤«ï sys_port.on D_ROM16OFF
|
||
.EXTENSION EQU CNF_PORT.EXTENSION ; ¤«ï sys_port.on D_ROM16ON
|
||
; ‡ 票ï:
|
||
; ®¬¥à áâà ¨æë bit3..0
|
||
; à §à¥è¥¨¥ § ¯¨á¨ bit4 (0 - no Write; 1 - Write)
|
||
; ¯à¨ bit4 == 1 ¯à¨ã¤¨â¥«ì® ¢ëáâ ¢«ï¥âáï ¨ ¡«®ª¨àã¥âáï sys_pg ¢ 1 (ld a,1 : out (sys_port_on),a)
|
||
; ¯®ª bit4 ¥ á¡à®è¥ ¯¥à¥ª«îç âì áâà ¨æë <EFBFBD>‡“ system/user ç¥à¥§ ¯®àâ
|
||
;°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°;
|
||
;P_KBD_OUT EQU #F8 ;!TODO
|
||
;P_KBD_IN EQU #FE
|
||
;°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°;
|
||
; KEMPSTON
|
||
KEMPSTON:
|
||
.JOYSTICK EQU 7
|
||
|
||
; —⥨¥: ¯®àâ ¤¦®©á⨪ ¨ ᨣ «ë DRQ, INTRQ ª®â஫«¥à ¤¨áª®¢®¤ .
|
||
; ‡ ¯¨áì: § ¯¨áì ¢ ¬¨ªà®á奬㠒Œ9 - á¨áâ¥¬ë© ¯®àâ TR-DOS
|
||
; Š¥¬¯áâ® ¨§ DOS_ON ¤«ï á¯¥æ¨ «ì®£® èãઠLPT+JOY ç⮡ ¯®
|
||
; PC Link ª®¥ªâ¨âìáï ª PC
|
||
.PC_Link EQU #FF ;JOY_DOS
|
||
; <EFBFBD> ª ¦¤ë© ¢¥è¨© ¯®àâ ¬ë誨 ¯à®¯¨á ®¤¨ ¢¥è¨©, § ç¨â
|
||
; ª®ä ¬®¨â®à¨â áâ à訩 ¤à¥á, DCP+Conf ®¡à ¡®âª .
|
||
.MOUSE.X EQU #FBDF
|
||
.MOUSE.Y EQU #FFDF
|
||
; bit0: «¥¢ ï ª®¯ª (0= ¦ â )
|
||
; bit1: ¯à ¢ ï ª®¯ª (0= ¦ â )
|
||
; bit2: á।ïï ª®¯ª (0= ¦ â )
|
||
; bit3: § १¥à¢¨à®¢ ® ¯®¤ ¥éñ ®¤ã ª®¯ªã (0= ¦ â )
|
||
; bit4..7: ª®®à¤¨ â ª®«ñᨪ
|
||
.MOUSE.Buttons EQU #FADF
|
||
;°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°;
|
||
;
|
||
; Border
|
||
BorderColor EQU #FE
|
||
; 梥⠡®à¤îà ¢ ०¨¬¥ á¯à¨â¥à ¡¥àñâáï ¨§ 4 ¯ «¨âàë.
|
||
; 梥⠢ ¯ «¨âॠ¢ëç¨á«ï¥âáï ¤ã¡«¨à®¢ ¨¥¬ ¢ ®¬¥à¥ 梥⠡®à¤îà bit2..0 ¢ bit5..3
|
||
; ¬®¦® ¢ëç¨á«ïâì ¨â®£®¢ë© ¨¤¥ªá ¢ ¯ «¨âॠ㬮¦¥¨¥¬ 梥â 9, «¨¡®
|
||
; âਠᤢ¨£ 梥⠢«¥¢® ¯«îá ¨áå®¤ë© æ¢¥â. Š ¦¤ë© 梥⠢ ¤¥ä®«â®© ¯ «¨âà¥
|
||
; ¯®¢â®àï¥âáï 16 à §:
|
||
; 0 - BLACK color index #00 #00/#10 = 0
|
||
; 1 - BLACK color index #00 #00/#10 = 0
|
||
; 2 - BLUE color index #12 #12/#10 = 1
|
||
; 3 - BLUE color index #1B #1B/#10 = 1
|
||
; 4 - GREEN color index #24 #24/#10 = 2
|
||
; 5 - GREEN color index #2D #2D/#10 = 2
|
||
; 6 - CYAN color index #36 #36/#10 = 3
|
||
; 7 - CYAN color index #3F #3F/#10 = 3
|
||
;---------------------------------------
|
||
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
|
||
|
||
|
||
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
|
||
; ZX keyboard
|
||
;
|
||
; ü ÉÍÍËÍÍËÍÍËÍÍËÍÍËÍÍËÍÍËÍÍËÍÍËÍÍ»
|
||
; <EFBFBD>ˆ’A º 0º 1º 2º 3º 4º 4º 3º 2º 1º 0º
|
||
; ÈÍÍÊÍÍÊÍÍÊÍÍÊÍÍÊÍÍÊÍÍÊÍÍÊÍÍÊÍͼ
|
||
; ü ÚÄÄÂÄÄÂÄÄÂÄÄÂÄÄÒÄÄÂÄÄÂÄÄÂÄÄÂÄÄ¿ ü
|
||
; <EFBFBD> 3³ 1³ 2³ 3³ 4³ 5º 6³ 7³ 8³ 9³ 0³ 4 <EFBFBD>
|
||
; Ž ÃÄÄÅÄÄÅÄÄÅÄÄÅÄĺÄÄÅÄÄÅÄÄÅÄÄÅÄÄ´ Ž
|
||
; ‹ 2³ Q³ W³ E³ R³ Tº Y³ U³ I³ O³ P³ 5 ‹
|
||
; “ ÃÄÄÅÄÄÅÄÄÅÄÄÅÄĺÄÄÅÄÄÅÄÄÅÄÄÅÄÄ´ “
|
||
; <EFBFBD> 1³ A³ S³ D³ F³ Gº H³ J³ K³ L³EN³ 6 <EFBFBD>
|
||
; Ÿ ÃÄÄÅÄÄÅÄÄÅÄÄÅÄĺÄÄÅÄÄÅÄÄÅÄÄÅÄÄ´ Ÿ
|
||
; „ 0³CS³ Z³ X³ C³ Vº B³ N³ M³SS³SP³ 7 „
|
||
; € ÀÄÄÁÄÄÁÄÄÁÄÄÁÄÄÁÄÄÁÄÄÁÄÄÁÄÄÁÄÄÙ €
|
||
; Š« ¢¨è ¦ â : ¡¨â = 0
|
||
; 3 - #F7 7 - #7F
|
||
; 2 - #FB 6 - #BF
|
||
; 1 - #FD 5 - #DF
|
||
; 0 - #FE 4 - #EF
|
||
|
||
; ‚®§¬®¦® ®¤®¢à¥¬¥®¥ ç⥨¥
|
||
; ¥áª®«ìª¨å ¯®«ãà冷¢ ¯à¨ á¡à®á¥
|
||
; ¥áª®«ìª¨å ¡¨â ¢ áâ à襬 ¡ ©â¥
|
||
; ¤à¥á ¯®àâ
|
||
ZXKeys EQU #FE
|
||
.Line_0 EQU #FEFE
|
||
.Line_1 EQU #FDFE
|
||
.Line_2 EQU #FBFE
|
||
.Line_3 EQU #F7FE
|
||
.Line_4 EQU #EFFE
|
||
.Line_5 EQU #DFFE
|
||
.Line_6 EQU #BFFE
|
||
.Line_7 EQU #7FFE
|
||
|
||
; ????? —â®-â® ¯à® à áè¨à¥ë© ¡¨â ª« ¢ë ¢ #FE
|
||
; CS - caps shift
|
||
; SS - symbol shift
|
||
; FS - function shift
|
||
; Left Shift => CS
|
||
; Right SHIFT => CS
|
||
; Ctrl => SS
|
||
; Alt => SS+CS
|
||
; left WIN => ENTER+CS
|
||
; ESC => SPACE+CS
|
||
; Right WIN => ENTER+SS
|
||
; Right Mouse => SPACE+SS
|
||
|
||
; Back => 0+CS
|
||
; Tab => 1+CS
|
||
; Caps Lock => 2+CS
|
||
; PUp => 3+CS
|
||
; PDn => 4+CS
|
||
; <- => 5+CS
|
||
; Dn => 6+CS
|
||
; Up => 7+CS
|
||
; -> => 8+CS
|
||
; DEL => 9+CS
|
||
|
||
; ~ => A+SS
|
||
; '' => D+SS
|
||
|
||
; / => V+SS
|
||
; Grey * => B+SS
|
||
; , => N+SS
|
||
; . => M+SS
|
||
|
||
; [ => Y+SS
|
||
; ] => U+SS
|
||
; Grey 5 => I+SS
|
||
; ; => O+SS
|
||
; ' => P+SS
|
||
|
||
; Home => Q+SS
|
||
; Ins => W+SS
|
||
; End => E+SS
|
||
|
||
; - => J+SS
|
||
; Grey - => J+SS
|
||
; Grey + => K+SS
|
||
; = => L+SS
|
||
|
||
; F1 => 1+FS
|
||
; F2 => 2+FS
|
||
; F3 => 3+FS
|
||
; F4 => 4+FS
|
||
; F5 => 5+FS
|
||
; F6 => 6+FS
|
||
; F7 => 7+FS
|
||
; F8 => 8+FS
|
||
; F9 => 9+FS
|
||
; F10 => 0+FS
|
||
; Scroll Lock => CS+FS
|
||
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
|
||
|
||
|
||
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
|
||
; á¨åந§ æ¨ï íªà
|
||
SCR_SyncPort EQU #FE
|
||
; bit 5 - á¨åந§ æ¨ï íªà
|
||
; ª ¤à®¢ë© ¨¬¯ã«ìá
|
||
; ¤«¨ - 4 ¬á
|
||
; ¯¥à¨®¤ - 20 ¬á
|
||
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
|
||
|
||
;
|
||
SLOT0 EQU #82 ; ®¬¥à ¡ ª¨ 0
|
||
.MEM_ADDR EQU #00
|
||
SLOT1 EQU #A2 ; ®¬¥à ¡ ª¨ 1
|
||
.MEM_ADDR EQU #4000
|
||
SLOT2 EQU #C2 ; ®¬¥à ¡ ª¨ 2
|
||
.MEM_ADDR EQU #8000
|
||
SLOT3 EQU #E2 ; ®¬¥à ¡ ª¨ 3
|
||
.MEM_ADDR EQU #C000
|
||
|
||
RGADR EQU #89 ; áâà ¨æ VIDEO-RAM ¤«ï ᯥªâà㬮¢áª®£® ०¨¬
|
||
PORT_Y EQU RGADR ; ¢¥à⨪ «ì ï ª®®à¤¨ â â®çª¨ £à ä¨ç¥áª®¬ íªà
|
||
;RGSCR EQU #E9 = RGMOD
|
||
RGMOD EQU #C9 ; ¯®àâ ०¨¬ íªà . <20>¥à¥ª«îç ¥â áâà ¨æë ०¨¬ íªà .
|
||
SCREEN_SWITCH EQU RGMOD
|
||
;RGACC EQU #A9
|
||
;PGACC EQU #FC
|
||
PORT_SCALE EQU #FC ; <20>®àâ ¬ áèâ ¡¨à®¢ ¨ï
|
||
|
||
;VIDEO_PAGE EQU #50
|
||
ZX_MEM_PORT EQU #FD
|
||
.Scorpion EQU #1FFD
|
||
.Pentagon EQU #7FFD
|
||
|
||
Port_All_Mode EQU #204E
|
||
.SPECTRUM_MODE_OFF EQU 1 ; ACC on, KBD Int on, ZX Screen off
|
||
.MEM_WAITS_OFF EQU 4
|
||
.STOP_KBD_INT_OFF EQU 8
|
||
.RESERVED EQU #F2
|
||
.DEFAULT EQU .RESERVED + .STOP_KBD_INT_OFF + .MEM_WAITS_OFF + .SPECTRUM_MODE_OFF
|
||
; bit0 - 0: ¢ëª« ªá¥«¥à â®à ¨ ¯à¥àë¢ ¨© ®â ª« ¢¨ âãàë, ¢ª«î票¥ ᯥª®¢áª®© ¤à¥á 樨 íªà .
|
||
; bit1 -
|
||
; bit2 - ¢ª«/¢ëª« original zx spectrum waits
|
||
; bit3 - ¢ª«/¢ëª« ®â¤¥«ì®¥ ®â ªá¥«¥à â®à ¯à¥àë¢ ¨ï ®â ª« ¢¨ âãàë
|
||
; bit4 -
|
||
; bit5 -
|
||
; bit6 -
|
||
; bit7 -
|
||
PORT_ISA EQU #9FBD
|
||
|
||
Port_VSYNC EQU #BD ; #41 - 320Lines/49Hz, #61 - 312Lines/50Hz
|
||
.SET_320L EQU #41
|
||
.SET_312L EQU #61
|
||
|
||
FDD_Density EQU #BD
|
||
.SET_720 EQU #01
|
||
.SET_1440 EQU #21
|
||
|
||
Port_HardReset EQU #AC
|
||
.Step1 EQU #41
|
||
.Step2 EQU #40
|
||
;
|
||
;----------------------------------------------------------------------;
|
||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||
; €¤à¥á áâà ¨æ ;
|
||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||
|
||
; SCR_PAGE EQU #FD
|
||
; PAL_PAGE EQU #FD
|
||
PAL_V_PAGE EQU #9E ;?????
|
||
PAL_SCP EQU #1E ;?????
|
||
|
||
; áâà ¨æ ¯®à⮢
|
||
DCP_PAGE EQU #40
|
||
|
||
; áâà ¨æ ¨á¯®«ì§ã¥¬ ï DSS
|
||
;DSS_PAGE EQU #FF
|
||
SHARED_PAGE EQU #FF
|
||
ZERO_PAGE EQU 0
|
||
ZX_PAGE:
|
||
.SLOT0 EQU ZERO_PAGE
|
||
.SLOT1 EQU 5
|
||
.SLOT2 EQU 2
|
||
.SLOT3 EQU .SLOT0
|
||
; áâà ¨æ ¤«ï ¯¥à¥å¢ â à¥á¥â ¨ ¥éñ 祣®-â®
|
||
Spec_Page EQU #41
|
||
.page_0 EQU #FFF0
|
||
.page_1 EQU #FFF1
|
||
.page_2 EQU #FFF2
|
||
.page_3 EQU #FFF3
|
||
.RET_addr EQU #FFF4 ; word
|
||
; ; ; ;
|
||
; #FF - áâ ஥ ¯®¢¥¤¥¨¥ (BIOS 3.05 ¨ ¬« ¤è¥)
|
||
; 0 - ®¢®¥ ¯®¢¥¤¥¨¥, ¢®§¢à â á SYS_PORT.BIOS
|
||
; 1 - ®¢®¥ ¯®¢¥¤¥¨¥, ¢®§¢à â á SYS_PORT.RAM
|
||
.Reload_Version EQU #FFF6
|
||
;
|
||
.Stack_Point EQU #FFF7 ; word
|
||
; RST ®¡®§ ç îâ, çâ® íâ® à¥á¥â ¯®á«¥ ¯¥à¥§ «¨¢ª¨ ª®äë
|
||
.flag_R EQU #FFFB
|
||
.flag_S EQU #FFFC
|
||
.flag_T EQU #FFFD
|
||
; ZX ®¡®§ ç îâ, çâ® § £à㦥ë ROM ᯥªâàã¬
|
||
.flag_Z EQU #FFFE
|
||
.flag_X EQU #FFFF
|
||
;
|
||
.no_zx_rom EQU #38
|
||
.to_bios EQU 8
|
||
.init_acex EQU #E000 ;!TEST
|
||
.bitstream_pages EQU .init_acex-(4+1) ;!TEST ;!HARDCODE ª®«¨ç¥á⢮ áâà ¨æ ¢ ªíè ¤«ï ¡¨áâਬ ¯«îá ®¤
|
||
;LD (#FFF3),A ; á®åà 塞 ¢ ᯥæáâà ¨æã ®¬¥à Spec_Page
|
||
;ZX_RAM_ID EQU 1 ; à ¬¡«®ª á® áâà ¨æ ¬¨ ¤«ï ०¨¬ ᯥªâà㬠. “<><E2809C>€<EFBFBD>Ž
|
||
|
||
RESET_PAGE EQU #A0
|
||
; ‘¡à®á ¬®¦¥â ¡ëâì ®áãé¥á⢫¥ § ¯¨áìî ¢ áâà ¨æã #A0, ãáâ ®¢«¥ãî ¢ à áè¨à¥ãî
|
||
; áâà ¨æã Scorpion-®¢áª®£® à á¯à¥¤¥«¥¨ï ¯®à⮢, â.¥. á«¥¤ãî饩 ¯à®£à ¬¬®©:
|
||
; DI
|
||
; LD A,16
|
||
; LD BC,#1FFD
|
||
; OUT (C),A
|
||
; LD A,RESET_PAGE
|
||
; OUT (PAGE3),A
|
||
; LD (#C000),A ; ¢ íâ®â ¬®¬¥â ¯®¤ ¥âáï RESET
|
||
;
|
||
|
||
MODULE DRIVE_CODES
|
||
SPRINTER:
|
||
.FDD EQU #00
|
||
.RAM EQU #60
|
||
.ATA EQU #80
|
||
.HDD EQU .ATA
|
||
.ATAPI EQU #C0
|
||
.CDROM EQU .ATAPI
|
||
TRDOS:
|
||
.FDD EQU #00
|
||
.RAM EQU #04
|
||
.HDD EQU #40
|
||
ENDMODULE
|
||
|
||
;---------------------------------------------------------------------[]
|
||
; Câà ¨æ á á¨á⥬묨 ¯¥à¥¬¥ë¬¨ BIOS
|
||
;---------------------------------------------------------------------[]
|
||
SYS_PAGE EQU #FE
|
||
.ID_FLAG EQU #C000 ; ª®¯¨ï ID_SPRINTER ¤«ï ¤¥â¥ªâ ¯®«®© ¨¨æ¨ «¨§ 樨. 32 bytes max
|
||
.ID_FLAG.Size EQU #20
|
||
; vsync:
|
||
; bit0 1 - 320L, 0 - 312L
|
||
; bit1 1 - no waits, 0 - original waits
|
||
.VSyncAndWaits EQU #C020
|
||
;!TODO EQU #C021 - #C027
|
||
; STACK for FN_LIB end EQU #C028
|
||
.SYS_SP EQU #C100 ; „Ž<E2809E>Ž‹<C5BD>ˆ’…‹œ<E280B9>›‰ ‘’…Š ¤«ï FN_LIB ¨ ¥éñ 祣®-â®
|
||
.DISK_TYPE EQU #C100 ; ¯¥à¥ ¤à¥á æ¨ï ¤¨áª®¢ (¯à®æ¥¤ãà ¬¨ ¤¨áª ¢ë¡¨à ¥âáï ¡¥§ ãçñâ áâ à襣® ¡ ©â ¤à¥á ¨ ¯¥à¥¯®«¥¨ï)
|
||
.DISK_TYPE.A EQU #C100 ; ¯¥à¥ ¤à¥á æ¨ï ¤¨áªa A
|
||
.DISK_TYPE.B EQU #C101 ; ¯¥à¥ ¤à¥á æ¨ï ¤¨áªa B
|
||
.DISK_TYPE.C EQU #C102 ; ¯¥à¥ ¤à¥á æ¨ï ¤¨áªa C
|
||
.DISK_TYPE.D EQU #C103 ; ¯¥à¥ ¤à¥á æ¨ï ¤¨áªa D
|
||
.COPY_SLOT0 EQU #C104 ; ª®¯¨¨ § 票© ¯®à⮢ áâà ¨æ
|
||
.COPY_SLOT1 EQU #C105
|
||
.COPY_SLOT2 EQU #C106
|
||
.COPY_SLOT3 EQU #C107
|
||
.RAMD_VARS EQU #C108 ; ¯¥à¥¬¥ë¥ RAM-¤¨áª®¢ ;!TODO á®åà ïâì âã⠯ਧ ª ᬥë à ¬¤¨áª ¨«¨ ¥£® ¡«®ª ¯ ¬ï⨠¤«ï ¤à ©¢¥à DSS
|
||
.A_RAMD_VARS EQU #C118 ; ⥪ã騩 RAM-Disk
|
||
.SP_SAVE EQU #C11A ; ¬¥áâ® ¤«ï á®åà ¥¨ï ¤à¥á á⥪
|
||
.ERR_SAVE EQU #C11C
|
||
.COPY_RGADR EQU #C11D
|
||
.RAM_MSD EQU #C11E ; áâà ¨æ ¤«ï à ¡®âë ¢ MS-DOS
|
||
.MSD_SECS EQU #C11F ; —¨á«® ᥪâ®à®¢ ¢ MS-DOS
|
||
.MSD_NAME EQU #C120 ; €¤à¥á ¨¬¥¨ ©¤¥®£® ä ©«
|
||
;.HDD_WRITE_PROTECT EQU #C122 ;!TODO ; ª®¯¨ï ᮤ¥à¦¨¬®£® ï祩ª¨ ª¬®á
|
||
.CURRENT_RAM_DRV EQU #C122 ; ⥪ã騩 ¡®à à ¬¤¨áª®¢ ¤«ï äãªæ¨¨ SWAP_RAM_DRIVES
|
||
.INT_ADRESS EQU #C124 ; ¤à¥á ®¡à ¡®â稪 ¯à¥àë¢ ¨ï
|
||
.INT_PAGE EQU #C126 ; áâà ¨æ á ®¡à ¡®â稪®¬ ¯à¥àë¢ ¨ï
|
||
.INT_ID EQU #C127 ; ¥á«¨ = #AA - § ç¨âì ®¡à ¡®â稪 ãáâ ®¢«¥
|
||
.DS_1440 EQU #C128 ; ä« £¨ ¯¥à¥ª«î票ï 720/1440
|
||
.FilesPerSector EQU #C129 ;.F_P_S ; ç¨á«® ä ©«®¢ëå § ¯¨á¥© ¢ ᥪâ®à¥
|
||
.SectorsPerCluster EQU #C12A ;.S_P_C ; ç¨á«® ᥪâ®à®¢ ä ©«®¢ëå § ¯¨á¥© ¢ ª« áâ¥à¥ Root Dir
|
||
.COUNT_FL EQU #C12B ; áç¥â稪 ä ©«®¢ ¢ ᥪâ®à¥
|
||
.COUNT_SEC EQU #C12C ; áç¥â稪 ᥪâ®à®¢ ¢ ª â «®£¥
|
||
.CURRENT_HDD EQU #C12D ; [x] bit0 - master/slave, bit1: Primary/Secondary, bit2..3: ¨á¯®«ì§ãî騩áï à §¤¥« ¢ MBR
|
||
.Block_IDs EQU #C12E
|
||
.Block_ID.vROM EQU .Block_IDs + 0 ; [ ] free zx pages!
|
||
.Block_ID.vRAM EQU .Block_IDs + 1 ; [ ] free zx pages!
|
||
.FAT_FLAG EQU #C130 ; FAT ä« £ + FAT sector??? #81FF - FAT16, #01FF - FAT12
|
||
.MSD_CONT_SEC EQU #C132 ; ⥪ã騩 ᥪâ®à ¤«ï MS-DOS
|
||
.MSD_CONT_SEC2 EQU #C134
|
||
.S_X_H EQU #C136 ; ª®«¨ç¥á⢮ ᥪâ®à®¢ 樫¨¤à¥
|
||
.SCREEN_TABLE EQU #C138 ; "CONFIG_ALL" ¤à¥á â ¡«¨æã ®¯¨á ⥫ï íªà - 2 ¡ ©â
|
||
;
|
||
;…áâì â ª®© ª®¤, ¯à¨¬¥à:
|
||
; LD DE,CNF_0+D_TBOFF
|
||
; LD (SYS_PAGE.CONFIG_DE),DE
|
||
; ¯¥à¢ë© ¡ ©â ¤«ï SYS_PORT_ON/OFF (०¨¬ âãà¡® ¨ CNF).
|
||
; ¢â®à®© ¡ ©â ¤«ï ¢ë¡®à ®âªã¤ áâ à⮢ âì ¯à¨ § ¯ã᪥ äãªæ¨ï¬¨ <20>‡“:
|
||
; 0 - ‚•Ž„ ‚ BASIC 128
|
||
; 1 - ‚•Ž„ ‚ BASIC 48
|
||
; 2 - ‚•Ž„ ‚ TR-DOS 128
|
||
; 3 - ‚•Ž„ ‚ EXPANSION
|
||
; 4 - ‚•Ž„ ‚ TR-DOS 48
|
||
; 5 - ‚•Ž„ ‚ BASIC 48 á § ªàëâ묨 128-¬¨ ¯®àâ ¬¨
|
||
.CONFIG_DE EQU #C13A ; ®¯¨á â¥«ì ª®ä¨£ãà æ¨¨ - 2 ¡ ©â
|
||
.CONFIG_DE.CNF_PORT EQU .CONFIG_DE
|
||
.CONFIG_DE.ZX_START EQU .CONFIG_DE+1
|
||
;
|
||
; 2 ¡ ©â ª®ä¨£ãà æ¨¨ - á«¥¤¨¥ Sp97.
|
||
; Œ« ¤è¨© ¡ ©â ⥪ãé ï ª®ä (⨯ PG_SP1)
|
||
; ‘â à訩 ¡ ©â ¥á«¨ 0, â® íâ ª®ä ªâ¨¢¨à®¢ .
|
||
; ‚ Sp2000 â㤠¯¨å ¥âáï § 票¥ ⨯ #FEFF
|
||
.CONFIG_BYTE EQU #C13E
|
||
;
|
||
;;;; ;!TODO 16 bytes
|
||
; .WIN_MAP_SC EQU #C140 ; ¥ ¨á¯®«ì§ãîâáï
|
||
; .WIN_TAB_SC EQU #C142 ; ¥ ¨á¯®«ì§ãîâáï
|
||
; .WIN_SAV_HL EQU #C144 ; ¥ ¨á¯®«ì§ãîâáï
|
||
; .WIN_SAV_DE EQU #C146 ; ¥ ¨á¯®«ì§ãîâáï
|
||
; .WIN_SAV_BC EQU #C148 ; ¥ ¨á¯®«ì§ãîâáï
|
||
; .WIN_ZG EQU #C14A ; ¥ ¨á¯®«ì§ãîâáï
|
||
; .WIN_PLACE_WIN EQU #C14C ; ¥ ¨á¯®«ì§ãîâáï
|
||
; .WIN_GR_MAP EQU #C14E ; ¥ ¨á¯®«ì§ãîâáï
|
||
;;;;
|
||
|
||
.SYS_WORK1 EQU #C150 ; word
|
||
.SYS_WORK2 EQU #C152 ; word
|
||
;.SYS_WORK3 EQU #C154 ; ¥ ¨á¯®«ì§ãîâáï
|
||
;.SYS_WORK4 EQU #C156 ; ¥ ¨á¯®«ì§ãîâáï
|
||
;!TODO
|
||
;.WIN_MAP_LAB1 EQU #C158
|
||
;.WIN_MODE_SH EQU #C15C ; ¬¥áâ® ¯® ¢¥à⨪ «¨ á ¤à¥á®¬
|
||
;.WIN_MODE_SC EQU #C15E ; ¬¥áâ® ¯® £®à¨§®â «¨ ¨ áâà ¨æ ¬®¤ë
|
||
|
||
.MSD_FAT_SEC EQU #C160 ; ZX-ROMS TR-DOS ; ç «ìë© á¥ªâ®à FAT
|
||
.MSD_FAT_SEC2 EQU #C162 ; ZX-ROMS TR-DOS ; ç «ìë© á¥ªâ®à FAT
|
||
.MSD_CAT_SEC EQU #C164 ; ZX-ROMS TR-DOS ; ç «ìë© á¥ªâ®à CAT
|
||
.MSD_CAT_SEC2 EQU #C166 ; ZX-ROMS TR-DOS ; ç «ìë© á¥ªâ®à CAT
|
||
.MSD_DAT_SEC EQU #C168 ; ZX-ROMS TR-DOS ; ç «ìë© á¥ªâ®à DAT
|
||
.MSD_DAT_SEC2 EQU #C16A ; ZX-ROMS TR-DOS ; ç «ìë© á¥ªâ®à DAT
|
||
.CLUSTER_LEN EQU #C16C ; ZX-ROMS TR-DOS ; ¤«¨ ª« áâ¥à ¢ ¡ ©â å
|
||
.CLUSTER_LEN2 EQU #C16E ; ZX-ROMS TR-DOS ; ¤«¨ ª« áâ¥à ¢ ¡ ©â å
|
||
|
||
.TMP_BUFFER EQU #C170; - #C17F
|
||
.TMP_BUFFER.Size EQU 16
|
||
|
||
.RAMD_KEYS EQU #C180 ; RAM-Disks ID's - ¤à¥á ¢ SYS_PAGE ¤«ï ª ¦¤®© ¡ãª¢ë à ¬¤¨áª
|
||
.RAMD_KEYS.E EQU #C180 ; ¯® ª®â®à®¬ã åà ¨âáï ¥£® ç «ìë© ¡«®ª ¯ ¬ïâ¨
|
||
.RAMD_KEYS.F EQU #C181
|
||
.RAMD_KEYS.G EQU #C182
|
||
.RAMD_KEYS.H EQU #C183
|
||
.RAMD_KEYS.I EQU #C184
|
||
.RAMD_KEYS.J EQU #C185
|
||
.RAMD_KEYS.K EQU #C186
|
||
.RAMD_KEYS.L EQU #C187
|
||
.RAMD_KEYS.M EQU #C188
|
||
.RAMD_KEYS.N EQU #C189
|
||
.RAMD_KEYS.O EQU #C18A
|
||
.RAMD_KEYS.P EQU #C18B
|
||
.RAMD_KEYS.Q EQU #C18C
|
||
.RAMD_KEYS.R EQU #C18D
|
||
.RAMD_KEYS.S EQU #C18E
|
||
.RAMD_KEYS.T EQU #C18F
|
||
.RAMD_KEYS.NUM EQU 16
|
||
|
||
;!TODO EQU #C190..#C191
|
||
.HDD_PARTITION_OFFSET EQU #C192 ; - #C195 ; [x] à ¡®â á à §¤¥« ¬¨ ¤«ï äãªæ¨© 4x ¢ BIOS
|
||
;[ ] current dir ¤«ï TR-DOS HDD
|
||
.CURRENT_DIR_SEC_L EQU #C196 ; word
|
||
.CURRENT_DIR_SEC_H EQU #C198 ; word
|
||
.CURRENT_DIR_DRIVE EQU #C19A
|
||
.CURRENT_DIR_DRIVE_COPY EQU #C19B
|
||
;
|
||
;=======================================================================
|
||
;.ATAPI_DRQ_INTERCEPTOR EQU #C19C ; [ ] ¤«ï äãªæ¨© 5x ¨ ATAPI ;!FIXIT
|
||
;!TODO EQU #C19C..#C19F
|
||
;.LIB_TABLE EQU #C1A0..#C1BF ; â ¡«¨æë Library 32 ¡ ©â
|
||
; <EFBFBD>… <EFBFBD>€‡„…‹Ÿ’œ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||
; .IDE_0 EQU #C1C0
|
||
; .IDE_1 EQU #C1C8
|
||
; .IDE_2 EQU #C1D0
|
||
; .IDE_3 EQU #C1D8
|
||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||
;=======================================================================
|
||
; EQU #C19C..#C19F
|
||
; <EFBFBD>… <EFBFBD>€‡„…‹Ÿ’œ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||
.IDE_0 EQU #C1A0
|
||
.IDE_1 EQU #C1B0
|
||
.IDE_2 EQU #C1C0
|
||
.IDE_3 EQU #C1D0
|
||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||
;=======================================================================
|
||
.FDD_0 EQU #C1E0
|
||
.FDD_1 EQU #C1E8
|
||
.FDD_TBL.Size EQU #10
|
||
;
|
||
; ª®¯¨¨ à ¬¤¨áª®¢ ¤«ï ¯¥à¥ª«îç¥¨ï ¬¥¦¤ã ०¨¬ ¬¨ Spectrum / Sprinter
|
||
.Sp_RAMD_KEYS EQU #C1F0
|
||
.Sp_RAMD_KEYS.E EQU #C1F0
|
||
.Sp_RAMD_KEYS.F EQU #C1F1
|
||
.Sp_RAMD_KEYS.G EQU #C1F2
|
||
.Sp_RAMD_KEYS.H EQU #C1F3
|
||
.Sp_RAMD_KEYS.I EQU #C1F4
|
||
.Sp_RAMD_KEYS.J EQU #C1F5
|
||
.Sp_RAMD_KEYS.K EQU #C1F6
|
||
.Sp_RAMD_KEYS.L EQU #C1F7
|
||
.Sp_RAMD_KEYS.M EQU #C1F8
|
||
.Sp_RAMD_KEYS.N EQU #C1F9
|
||
.Sp_RAMD_KEYS.O EQU #C1FA
|
||
.Sp_RAMD_KEYS.P EQU #C1FB
|
||
.Sp_RAMD_KEYS.Q EQU #C1FC
|
||
.Sp_RAMD_KEYS.R EQU #C1FD
|
||
.Sp_RAMD_KEYS.S EQU #C1FE
|
||
.Sp_RAMD_KEYS.T EQU #C1FF
|
||
.Sp_RAMD_KEYS.NUM EQU .RAMD_KEYS.NUM
|
||
;
|
||
//°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
|
||
.RAM_TABLE EQU #C200 ; ALIGN 256 ; RAM Table
|
||
.RAM_TABLE.Size EQU 256
|
||
;!TODO free EQU #C300 - #C3FF
|
||
//°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
|
||
.MS_BPB EQU #C400 ; ¡ãä¥à BPB
|
||
//°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
|
||
; IDENTIFY ATA buffer
|
||
.HD_IDF_ADR EQU #C600 ; !FIXIT áâàãªâãன ᤥ« âì!!!
|
||
.HD_IDF_ADR.sec_cyl EQU .HD_IDF_ADR+4
|
||
.HD_IDF_ADR.heads EQU .HD_IDF_ADR+6 ; Number of heads
|
||
.HD_IDF_ADR.sectors EQU .HD_IDF_ADR+12 ; Number of sectors per track
|
||
.HD_IDF_ADR.LBA_CHS EQU .HD_IDF_ADR+99 ; LBA/CHS
|
||
.HD_IDF_ADR.ModelNum EQU .HD_IDF_ADR+54
|
||
//°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
|
||
.MS_DIR EQU #C800 ; ¡ãä¥à DIR sector
|
||
//°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
|
||
.MS_FAT EQU #CC00 ; ¡ãä¥à FAT sector
|
||
//°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
|
||
.MS_BUF EQU #D000 ; ¡ãä¥à DAT sector
|
||
//°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
|
||
|
||
//°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
|
||
.WIN_MAP_IX EQU #E000 ; ¤ ë¥ ª àâ ®ª® (96 ®¯¨á ⥫¥© ¯® 32 ¡ ©â )
|
||
//°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
|
||
|
||
//°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
|
||
.ZX_TASK _ZX_TASK = #EC00 ; ’¥ªãé ï § ¤ ç
|
||
;.END EQU #EC4F
|
||
//°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
|
||
;!TODO EQU #EC50 ;-ECFF
|
||
.SHARED_BUFFER_256b EQU #ED00
|
||
//°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
|
||
;!TODO EQU #EE00 - #EFFF
|
||
|
||
.RESTART_ID EQU #F000 ; db "RESTART",0 ;First start identificator
|
||
|
||
.PowerOnTime EQU #F008 ; ¢à¥¬ï ¢ª«îç¥¨ï ¨ ¯¥à¥§ £à㧪¨ #F008 - #F017
|
||
|
||
|
||
.USER_VARS EQU #F018 ; ¯¥à¥¬¥ë¥ ¯®«ì§®¢ ⥫ï
|
||
.SHARED_BUFFER_32b EQU #FEE0; - #FEFF
|
||
.CMOS_EMULATOR EQU #FF00
|
||
.USER_VARS_2 EQU .CMOS_EMULATOR + CMOS.MAX_ADDRESS + 1
|
||
;------------[ OLD ]-------------;
|
||
;.SYSTEM_ID EQU #C020 ; ¨á¯®«ì§®¢ « áì ¤«ï ¯®¤¬¥ë ¡¨®á "NEW_BIOS"
|
||
;.MSD_FAT_SEC EQU #C122 ; ç «ìë© á¥ªâ®à FAT
|
||
;.INT_ADRESS EQU #C124 ; ç «ìë© á¥ªâ®à CAT
|
||
;.INT_PAGE EQU #C126 ; ç «ìë© á¥ªâ®à DAT
|
||
;.ClusterPerBank EQU #C12D ;.C_P_B ; <20>… ˆ‘<CB86>Ž‹œ‡“…’‘Ÿ ç¨á«® ª« áâ¥à®¢ ¡«®ª އ“
|
||
;.CLASTER_LEN EQU #C12E ; WORD ¤«¨ ª« áâ¥à ¢ ¡ ©â å
|
||
;.CMOS_FLAG_1 EQU #C170
|
||
;---------------------------------------------------------------------[]
|
||
;
|
||
|
||
|
||
; STRUCT FDD_INIT_TABLE
|
||
; DISK BYTE 0
|
||
; F144 EQU FDD_0+0
|
||
; SECTORS EQU FDD_0+1
|
||
; MS_SECS EQU .SECTORS
|
||
; HEADS EQU FDD_0+2
|
||
; CYLINDL EQU FDD_0+3
|
||
; CYLINDH EQU FDD_0+4
|
||
; B_P_S EQU FDD_0+5
|
||
; ENDS
|
||
|
||
;
|
||
MODULE FDD_INIT_TABLE ; !FIXIT â ¡«¨æë ¤«ï FDD ãáâனá⢠32 ¡ ©â . ¯à¨¢ï§ âìáï ª áâàãªâãॠ¢ëè¥
|
||
FDD EQU 3 ; ????? å¥à ¥£® § ¥â, çâ® § ¯ à ¬¥âà, à §®¡à âìáï
|
||
FDD_0 EQU SYS_PAGE.FDD_0
|
||
.DISK EQU FDD_0+0
|
||
.F144 EQU .DISK
|
||
.SECTORS EQU FDD_0+1
|
||
.MS_SECS EQU .SECTORS
|
||
.HEADS EQU FDD_0+2
|
||
.CYLINDL EQU FDD_0+3
|
||
.CYLINDH EQU FDD_0+4
|
||
.BytesPerSector EQU FDD_0+5 ;WORD B_P_S
|
||
.ID EQU .BytesPerSector + 1
|
||
FDD_1 EQU SYS_PAGE.FDD_1
|
||
.DISK EQU FDD_1+0
|
||
.F144 EQU .DISK
|
||
.SECTORS EQU FDD_1+1
|
||
.MS_SECS EQU .SECTORS
|
||
.HEADS EQU FDD_1+2
|
||
.CYLINDL EQU FDD_1+3
|
||
.CYLINDH EQU FDD_1+4
|
||
.BytesPerSector EQU FDD_1+5 ;WORD B_P_S
|
||
.ID EQU .BytesPerSector + 1
|
||
ENDMODULE
|
||
;
|
||
|
||
;
|
||
STRUCT BIOS_DATE_FORMAT ; !FIXIT ¯¥à¥¤¥« âì ¯®¤ áâàãªâãà㠢ᥠ¯¥à¥¬¥ë¥ #FE
|
||
hour BYTE
|
||
minute BYTE
|
||
second BYTE
|
||
day BYTE
|
||
month BYTE
|
||
year_high BYTE
|
||
year_low BYTE
|
||
reserved BYTE
|
||
ENDS
|
||
|
||
PowerOnDate BIOS_DATE_FORMAT = SYS_PAGE.PowerOnTime
|
||
RebootDate BIOS_DATE_FORMAT = PowerOnDate + BIOS_DATE_FORMAT
|
||
;#F008-#F00F : db hour,min,sec,day,month,century-1,year-century,reserved ; PowerOn date
|
||
;#F010-#F017 : db hour,min,sec,day,mouth,century-1,year-century,reserved ; Reboot date
|
||
;
|
||
|
||
;----------[CMOS Registers]-------------
|
||
CMOS.Port.Data:
|
||
.Read EQU #FFBD
|
||
.Write EQU #BFBD
|
||
CMOS.Port.Address:
|
||
.Write EQU #DFBD
|
||
|
||
|
||
CMOS.Register:
|
||
.seconds EQU #00
|
||
.alarmSeconds EQU #01
|
||
.minutes EQU #02
|
||
.alarmMinutes EQU #03
|
||
.hours EQU #04
|
||
.alarmHours EQU #05
|
||
.dayOfWeek EQU #06
|
||
.date EQU #07
|
||
.month EQU #08
|
||
.year EQU #09
|
||
.century EQU #32
|
||
|
||
; bit7 - Update-In-Progress. read-only
|
||
; bit6..4 - %010: to turn the oscillator on and allow the RTC to keep time.
|
||
; %11x: enables the oscillator but holds the countdown chain in reset.
|
||
; The next update occurs at 500ms after a pattern of 010 is written.
|
||
; bit3..0 - Rate Selector. These four rate-selection bits select one of
|
||
; the 13 taps on the 15-stage divider or disable the divider output.
|
||
; The tap selected can be used to generate an output square wave (SQW pin)
|
||
; and/or a periodic interrupt. The user can do one of the following:
|
||
; 1) Enable the interrupt with the PIE bit;
|
||
; 2) Enable the SQW output pin with the SQWE bit;
|
||
; 3) Enable both at the same time and the same rate; or
|
||
; 4) Enable neither.
|
||
.CTRLregA EQU #0A
|
||
|
||
; bit7 - SET. ¢ëáâ ¢«ïâì ¢ 1 ¯¥à¥¤ ãáâ ®¢ª®© ¢à¥¬¥¨/¤ âë, ¯®á«¥ ®¡à â® ¢ 0.
|
||
; bit6 - Periodic Interrupt Enable (PIE)
|
||
; bit5 - Alarm Interrupt Enable (AIE)
|
||
; bit4 - Update-Ended Interrupt Enable (UIE)
|
||
; bit3 - Square-Wave Enable (SQWE)
|
||
; bit2 - Data Mode (DM). ä®à¬ â ¤ âë ¨ ¢à¥¬¥¨: BCD/HEX
|
||
; bit1 - time format: 12/24
|
||
; bit0 - Daylight Saving Enable (DSE)
|
||
.CTRLregB EQU #0B
|
||
|
||
; bit7 - Interrupt Request Flag (IRQF)
|
||
; bit6 - Periodic Interrupt Flag (PF), read-only
|
||
; bit5 - Alarm Interrupt Flag (AF)
|
||
; bit4 - Update-Ended Interrupt Flag (UF)
|
||
; bit3..0 - Unused, read-only == 0
|
||
.CTRLregC EQU #0C ; read-only
|
||
|
||
; bit7 - Valid RAM and Time (VRT). …᫨ 1, â® ¡ â à¥ï ¢ ®à¬¥, ¥á«¨ 0, â® ¡ â à¥ï á¤®å« .
|
||
; bit6..0 - Unused, read-only == 0
|
||
.CTRLregD EQU #0D ; read-only
|
||
|
||
CMOS.USED_MIN_ADDRESS EQU #0E
|
||
CMOS.USED_MAX_ADDRESS EQU #3F
|
||
CMOS.MAX_ADDRESS EQU #7F
|
||
CMOS.TEST_CELL EQU CMOS.MAX_ADDRESS
|
||
|
||
CMOS.Cell.CheckSum EQU CMOS.USED_MAX_ADDRESS
|
||
|
||
MODULE CMOS_CELL
|
||
|
||
BootUpParams EQU #0E
|
||
.Mask.MemTest EQU %1000'0000 * 256 + BootUpParams ;!TODO ; MEMORY TEST
|
||
.Mask.SaveRAMdisks EQU %0100'0000 * 256 + BootUpParams ; SAVE RAM DISKS
|
||
.Mask.UpdBios EQU %0010'0000 * 256 + BootUpParams ;!TODO ; UPDATE BIOS
|
||
.Mask.StartDelay EQU %0001'1000 * 256 + BootUpParams ; START DELAY
|
||
.Mask.Language EQU %0000'0100 * 256 + BootUpParams ; LANGUAGE
|
||
;.Mask.Reserved EQU %0000'0010 * 256 + BootUpParams ; NOT USED
|
||
.Mask.QuickStartROM EQU %0000'0001 * 256 + BootUpParams ; QUICK START
|
||
|
||
Typematic EQU #0F
|
||
.Mask.Enabled EQU %1000'0000 * 256 + Typematic ; ON/OFF
|
||
.Mask.Delay EQU %0110'0000 * 256 + Typematic ; DELAY 00-250, 01-500, 10-750, 11-1000
|
||
;.Mask.Reserved EQU %0001'1000 * 256 + Typematic
|
||
.Mask.Rate EQU %0000'0111 * 256 + Typematic ; RATE 0-6, 1-8, 2-10, 3-12, 4-15, 5-20, 6-24, 7-30
|
||
|
||
;FDD-1, FDD-2, IDE-1, IDE-2, IDE-3, IDE-4, Ram Dsk, Recovery
|
||
BootDrives EQU #10
|
||
.Mask.SysDisk EQU %0000'0111 * 256 + BootDrives
|
||
.Mask.AltSysDisk EQU %0111'0000 * 256 + BootDrives
|
||
|
||
DrivesSetup_1 EQU #11
|
||
.Mask.FirstFDD EQU %0000'0011 * 256 + DrivesSetup_1 ; FDD First 720/1.44/NONE
|
||
.Mask.SecondFDD EQU %0000'1100 * 256 + DrivesSetup_1 ; FDD Second 720/1.44/NONE
|
||
.Mask.PriIDEmaster EQU %0011'0000 * 256 + DrivesSetup_1 ; IDE Pri Master Auto/Setup/Disabled
|
||
.Mask.PriIDEslave EQU %1100'0000 * 256 + DrivesSetup_1 ; IDE Pri Slave Auto/Setup/Disabled
|
||
|
||
IDE_Setup.PriMaster:
|
||
.CylindersLow EQU #12
|
||
.CylindersHigh EQU #13
|
||
.Heads EQU #14
|
||
.Sectros EQU #15
|
||
|
||
IDE_Setup.PriSlave:
|
||
.CylindersLow EQU #16
|
||
.CylindersHigh EQU #17
|
||
.Heads EQU #18
|
||
.Sectros EQU #19
|
||
|
||
ScreenSET EQU #1A
|
||
.Mask.ColorStyle EQU %0000'1111 * 256 + ScreenSET ; COLOR STYLE For Setup
|
||
.Mask.Int EQU %0011'0000 * 256 + ScreenSET ; Frame Int (Default/Pentagon/Scorpion/Original)
|
||
.Mask.Sinc EQU %1100'0000 * 256 + ScreenSET ; Screen V-Sinc (Default/312 lines 50 HZ/320 Lines 49 Hz)
|
||
|
||
;;;;;;;;;;;;;;;;;;;;;;;; CONFIG ;;;;;;;;;;;;;;;;;;;;;;;;;
|
||
HardwareConfiguration EQU #1B
|
||
.Mask.TurboMode EQU %0000'0001 * 256 + HardwareConfiguration ; TURBO MODE (D0..D3 - 6 OR 7)
|
||
.Mask.TurboExchange EQU %0000'0010 * 256 + HardwareConfiguration ; TURBO EXCHANGE ON/OFF - 1
|
||
.Mask.PortExchange EQU %0000'0100 * 256 + HardwareConfiguration ; PORT EXCHANGE ON/OFF - 1
|
||
.Mask.Computer EQU %0001'1000 * 256 + HardwareConfiguration ; CONF: 0 - sprinter, 1 - spectrum, 2 - , 3 - ;!TODO
|
||
;
|
||
QuickStartSetUp EQU #1C
|
||
.Mask.ZxRom EQU %0000'0111 * 256 + QuickStartSetUp
|
||
.ZxRom.Basic128 EQU 0
|
||
.ZxRom.Basic48_Ram128 EQU 1
|
||
.ZxRom.TrDos EQU 2
|
||
.ZxRom.Expansion EQU 3
|
||
.ZxRom.TrDos48 EQU 4
|
||
.ZxRom.Basic48 EQU 5
|
||
.Mask.Hardware EQU %0011'1000 * 256 + QuickStartSetUp
|
||
.Hardware.SprinterZX EQU 0
|
||
.Hardware.Pentagon48 EQU 1
|
||
.Hardware.Pentagon128 EQU 2
|
||
.Hardware.Pentagon512 EQU 3
|
||
.Hardware.Scorpion256 EQU 4
|
||
.Hardware.ZXSpectrum48 EQU 5
|
||
.Hardware.ZXSpectrum128 EQU 6
|
||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||
|
||
Options EQU #1D
|
||
.Mask.HDDwriteProtect EQU %0000'0001 * 256 + Options ; [x] ã¡à ®. à ¡®â «® ⮫쪮 á äãªæ¨ï¬¨ 5å ¨ ¯®áâ®ï® ¤ñ࣠«® CMOS ¯à¨ § ¯¨á¨
|
||
.Mask.RebootMSG EQU %0000'0010 * 256 + Options
|
||
.Mask.LoadZXroms EQU %0000'1100 * 256 + Options
|
||
|
||
TRDOSmount EQU #1E
|
||
.Mask.A EQU %0000'0011 * 256 + TRDOSmount ;Default - 0/ FDD - 1/ HDD - 2/ RMD - 3
|
||
.Mask.B EQU %0000'1100 * 256 + TRDOSmount
|
||
.Mask.C EQU %0011'0000 * 256 + TRDOSmount
|
||
.Mask.D EQU %1100'0000 * 256 + TRDOSmount
|
||
|
||
ScreenPosition EQU #1F
|
||
.Mask.X EQU %1111'0000 * 256 + ScreenPosition
|
||
.Mask.Y EQU %0000'1111 * 256 + ScreenPosition
|
||
|
||
DrivesSetup_2 EQU #20
|
||
.Mask.SecIDEmaster EQU %0011'0000 * 256 + DrivesSetup_2 ; IDE Sec Master Auto/Setup/Disabled
|
||
.Mask.SecIDEslave EQU %1100'0000 * 256 + DrivesSetup_2 ; IDE Sec Slave Auto/Setup/Disabled
|
||
|
||
|
||
|
||
; <20>… ˆ‘<CB86>Ž‹œ‡“…’‘Ÿ, â㤠áàãâ áâ àë¥ ¯à®£¨ ¨ vROM
|
||
;REGISTER #35 - BASIC SETTING 1 (SYS_PAGE.CONFIG_DE+1 = #C13B on PAGE #FE), § 票¥ ¤«ï CNF_PORT
|
||
; HardwareConfiguration EQU #35
|
||
; .Mask.TurboMode EQU %0000'0001 * 256 + HardwareConfiguration ; TURBO MODE (D0..D3 - 6 OR 7)
|
||
; .Mask.TurboExchange EQU %0000'0010 * 256 + HardwareConfiguration ; TURBO EXCHANGE ON/OFF - 1
|
||
; .Mask.PortExchange EQU %0000'0100 * 256 + HardwareConfiguration ; PORT EXCHANGE ON/OFF - 1
|
||
; .Mask.Computer EQU %0001'1000 * 256 + HardwareConfiguration ; COMPUTER: 0-SPRINTER, 1-Scorpion 256, 2-PENTAGON 128, 3-Other
|
||
|
||
; <20>… ˆ‘<CB86>Ž‹œ‡“…’‘Ÿ ¯®ª
|
||
;REGISTER #36 - BASIC SETTING 2
|
||
; %0000 0111
|
||
; QuickStartSetUp EQU #36
|
||
; .Mask.ZxRom EQU %0000'0111 * 256 + QuickStartSetUp
|
||
; ; 0 - Basic128
|
||
; ; 1 - Basic48_Ram128
|
||
; ; 2 - TrDos
|
||
; ; 3 - Expansion
|
||
; ; 4 - TrDos48
|
||
; ; 5 - Basic48
|
||
; .Mask.Hardware EQU %0011'1000 * 256 + QuickStartSetUp
|
||
; ; 0 - ZX-Sprinter
|
||
; ; 1 - Pentagon 48
|
||
; ; 2 - Pentagon 128
|
||
; ; 3 - Pentagon 512
|
||
; ; 4 - Scorpion 256
|
||
; ; 5 - ZX Spectrum 48
|
||
; ; 6 - ZX Spectrum 128
|
||
|
||
|
||
IDE_Setup.SecMaster:
|
||
.CylindersLow EQU #37
|
||
.CylindersHigh EQU #38
|
||
.Heads EQU #39
|
||
.Sectros EQU #3A
|
||
|
||
IDE_Setup.SecSlave:
|
||
.CylindersLow EQU #3B
|
||
.CylindersHigh EQU #3C
|
||
.Heads EQU #3D
|
||
.Sectros EQU #3E
|
||
|
||
CheckSum EQU CMOS.Cell.CheckSum
|
||
|
||
; Disabled use word CONFIG_DE
|
||
;
|
||
; LD A,#1C
|
||
; CALL READCMS
|
||
; PUSH AF
|
||
; LD A,#1B
|
||
; CALL READCMS
|
||
; POP DE
|
||
; LD E,A
|
||
ENDMODULE
|
||
;-----------------------------------------------------------------------
|
||
|
||
|
||
; <20>®àâë Š<>1818‚ƒ93 ¨ â.¯.
|
||
FDC_93:
|
||
.Command EQU #0F ; WG_COM R_COM ;Command/Status
|
||
.Track EQU #3F ; WG_TRK R_TRK ;Track
|
||
.Sector EQU #5F ; WG_SEC R_SEC ;Sector
|
||
.Data EQU #7F ; WG_DATA R_DAT ;Data
|
||
.DrvCTRL EQU #FF ; P_DOS_FF R_DSK ;Drive Control
|
||
;
|
||
|
||
;***************************************
|
||
; !FIXIT ¨á¯®«ì§®¢ âì áâàãªâãàã _sBOOT_SECTOR
|
||
SEC_SIZE EQU 11
|
||
CLAST_SIZE EQU 13
|
||
RESERV_SECS EQU 14
|
||
FATS_NUM EQU 16
|
||
FLS_NUM EQU 17
|
||
S_P_D EQU 19
|
||
FORM_CODE EQU 21
|
||
S_P_F EQU 22
|
||
S_P_T EQU 24
|
||
H_P_S EQU 26
|
||
SPECIAL_SECS EQU 28
|
||
FAT_ID EQU #36
|
||
;***************************************
|
||
|
||
; ***** - Žª®ë¥ ¯¥à¥¬¥ë¥ - *****
|
||
STRUCT Window_UserVars
|
||
.SIZE_H BYTE 0 ; +00 £®à¨§®â «ìë© à §¬¥à ¢ § ª®¬¥áâ å
|
||
.SIZE_V BYTE 0 ; +01 ¢¥à⨪ «ìë© à §¬¥à ¢ § ª®¬¥áâ å
|
||
.PLACE_H BYTE 0 ; +02 ¯®«®¦¥¨¥ ¯® £®à¨§®â «¨, ¢ § ª®¬¥áâ å
|
||
.PLACE_V BYTE 0 ; +03 ¯®«®¦¥¨¥ ¯® ¢¥à⨪ «¨ ¢ § ª®¬¥áâ å
|
||
.MODE BYTE 0 ; +04 ०¨¬ § ª®¬¥áâ
|
||
.MODE_S BYTE 0 ; +05 ¤®¯®«¨â¥«ìë© à¥¦¨¬: ¡¨â 0 - Sp-SCR
|
||
.GR_X BYTE 0 ; +06 ¯®«®¦¥¨¥ ¯® X ¢ ¯®«¥ £à 䨪¨ (¯® § ª®¬¥áâ ¬)
|
||
.GR_Y BYTE 0 ; +07 ¯®«®¦¥¨¥ ¯® Y ¢ ¯®«¥ £à 䨪¨ (¯® § ª®¬¥áâ ¬)
|
||
ENDS
|
||
;
|
||
STRUCT Window_Variables
|
||
.USER Window_UserVars 0,0,0,0,0,0,0,0
|
||
; text mode
|
||
.LineAddr WORD 0;.reg_HL ; +08 á®åà ¥¨¥ HL. HL - ª®®à¤¨ â Y ¢ ®¯¨á ⥫ïå ¤«ï SLOT3
|
||
.reg_BC WORD 0;.reg_BC ; +10 á®åà ¥¨¥ BC. B - ª®«-¢® ᨬ¢®«®¢ ¢ áâப¥. C - temp
|
||
.ColumnRGADR_TXTMode WORD 0;.reg_DE ; +12 á®åà ¥¨¥ DE. D - PORT_Y (ª®®à¤. X), E - bit0: mode txt40/80
|
||
;
|
||
.V_BEG BYTE 0 ; +14 ç «® ®ª ¯® ¢¥à⨪ «¨
|
||
.V_END BYTE 0 ; +15 ª®¥æ ®ª ¯® ¢¥à⨪ «¨
|
||
.H_BEG BYTE 0 ; +16 ç «® ®ª ¯® £®à¨§®â «¨
|
||
.H_END BYTE 0 ; +17 ª®¥æ ®ª ¯® £®à¨§®â «¨
|
||
.SIZE_REL BYTE 0 ; +18 ॠ«ìë© à §¬¥à ¢ ᨬ¢®« å
|
||
.MODE_E BYTE 0 ; +19 ¤®¯®«¨â¥«ìë© à¥¦¨¬ íªà . bit0 - RGMOD
|
||
.WORK_1 BYTE 0 ; +20 à ¡®ç ï ¯¥à¥¬¥ ï 1
|
||
.WORK_2 BYTE 0 ; +21 à ¡®ç ï ¯¥à¥¬¥ ï 2
|
||
.WORK_3 WORD 0 ; +22 à ¡®ç ï ¯¥à¥¬¥ ï 3
|
||
.GRAF_X WORD 0 ; +24 ç «ì ï ª®®à¤¨ â ¯® X
|
||
.GRAF_Y WORD 0 ; +26 ç «ì ï ª®®à¤¨ â ¯® Y
|
||
.RESERVED BLOCK 4,0 ; +28 § १¥à¢¨à®¢ ® ¤® 32-å ¡ ©â®¢
|
||
ENDS
|
||
;-------------[]
|
||
; default window
|
||
WIN_ID_0 Window_Variables = SYS_PAGE.WIN_MAP_IX + Window_Variables * 0
|
||
;WIN_ID_1 Window_Variables = SYS_PAGE.WIN_MAP_IX + Window_Variables * 1
|
||
;WIN_ID_2 Window_Variables = SYS_PAGE.WIN_MAP_IX + Window_Variables * 2
|
||
; ...
|
||
;WIN_ID_95 Window_Variables = SYS_PAGE.WIN_MAP_IX + Window_Variables * 95
|
||
;-------------[]
|
||
|
||
; ; ***** - Žª®ë¥ ¯¥à¥¬¥ë¥ - *****
|
||
; WIN_SIZE_H EQU 0 ; £®à¨§®â «ìë© à §¬¥à ¢ § ª®¬¥áâ å
|
||
; WIN_SIZE_V EQU 1 ; ¢¥à⨪ «ìë© à §¬¥à ¢ § ª®¬¥áâ å
|
||
; WIN_PLACE_H EQU 2 ; ¯®«®¦¥¨¥ ¯® £®à¨§®à «¨, ¢ § ª®¬¥áâ å
|
||
; WIN_PLACE_V EQU 3 ; ¯®«®¦¥¨¥ ¯® ¢¥à⨪ «¨ ¢ § ª®¬¥áâ å
|
||
; WIN_MODE EQU 4 ; ०¨¬ § ª®¬¥áâ
|
||
; WIN_MODE_S EQU 5 ; ¤®¯®«¨â¥«ìë© à¥¦¨¬ ; ¡¨â 0 - Sp-SCR,
|
||
; WIN_GR_X EQU 6 ; ¯®«®¦¥¨¥ ¯® X ¢ ¯®«¥ £à 䨪¨ (¯® § ª®¬¥áâ)
|
||
; WIN_GR_Y EQU 7 ; ¯®«®¦¥¨¥ ¯® Y ¢ ¯®«¥ £à 䨪¨ (¯® § ª®¬¥áâ)
|
||
|
||
; WIN_HL EQU 8 ; á®åà ¥¨¥ HL
|
||
; WIN_BC EQU 10 ; á®åà ¥¨¥ BC
|
||
; WIN_DE EQU 12 ; á®åà ¥¨¥ DE
|
||
; WIN_V_BEG EQU 14 ; ç «® ®ª ¯® ¢¥à⨪ «¨
|
||
; WIN_V_END EQU 15 ; ª®¥æ ®ª ¯® ¢¥à⨪ «¨
|
||
; WIN_H_BEG EQU 16 ; ç «® ®ª ¯® £®à¨§®â «¨
|
||
; WIN_H_END EQU 17 ; ª®¥æ ®ª ¯® £®à¨§®â «¨
|
||
; WIN_SIZE_REL EQU 18 ; ॠ«ìë© à §¬¥à ¢ ᨬ¢®« å
|
||
; WIN_MODE_E EQU 19 ; ¤®¯®«¨â¥«ìë© à¥¦¨¬ íªà
|
||
; WIN_WORK_1 EQU 20 ; à ¡®ç ï ¯¥à¥¬¥ ï 1
|
||
; WIN_WORK_2 EQU 21 ; à ¡®ç ï ¯¥à¥¬¥ ï 2
|
||
; WIN_GRAF_X EQU 24 ; ç «ì ï ª®®à¤¨ â ¯® X
|
||
; WIN_GRAF_Y EQU 26 ; ç «ì ï ª®®à¤¨ â ¯® Y
|
||
|
||
;
|
||
;
|
||
;SW_ROM EQU #3CF9 ;!HARDCODE from zx roms
|
||
|
||
; IF .PROJ4
|
||
;RGADR EQU 0D0H
|
||
;RGSCR EQU 0D1H
|
||
;RGMOD EQU 0D2H
|
||
;RGACC EQU 0D3H
|
||
;PGACC EQU 0FCH
|
||
|
||
;PAGE0 EQU 0C0H
|
||
;PAGE1 EQU 0C5H
|
||
;PAGE2 EQU 0C2H
|
||
;PAGE3 EQU 0C0H
|
||
|
||
; ELSE
|
||
|
||
; ENDIF
|
||
;ALTERA EQU #1400 ; ¤à¥á ¢ <20>‡“ ᦠ⮩ áâà ¨æë DCP
|
||
|
||
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ
|
||
MODULE ACEX
|
||
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ
|
||
DEFINE ACEX.RELOAD_STRING 'ACEX_30K_LOADING'
|
||
LOADER:
|
||
.String_Address EQU #FEF0
|
||
.Reload_Flag_Address EQU #FEE0
|
||
.Reload_Flag EQU 'MI'
|
||
|
||
Chip_ID:
|
||
.K30 EQU #397B
|
||
.K50 EQU #3C7B
|
||
;
|
||
; ¢ãâ२¥ ¯®àâë Altera (ç áâ¨ç® ¥à §®¡à ® ®â Sp97)
|
||
;#00 <09>¥â ¯®àâ
|
||
;#01 reserved
|
||
;#02 reserved
|
||
;#03 reserved
|
||
;#04 reserved
|
||
;#05 reserved
|
||
;#06 reserved
|
||
;#07 reserved
|
||
;#08 reserved
|
||
;#09 reserved
|
||
;#0A reserved
|
||
;#0B reserved
|
||
;#0C reserved
|
||
;#0D reserved
|
||
;#0E reserved
|
||
;#0F reserved
|
||
VG93_1F EQU #10 ; ¯®àâ ‚ƒ93 (1F)
|
||
VG93_3F EQU #11 ; ¯®àâ ‚ƒ93 (3F)
|
||
VG93_5F EQU #12 ; ¯®àâ ‚ƒ93 (5F)
|
||
VG93_7F EQU #13 ; ¯®àâ ‚ƒ93 (7F)
|
||
VG93_State EQU #14 ; ¯®àâ § ¯¨áì - á®áâ®ï¨¥ ª®â஫«¥à ¤¨áª®¢®¤ (¢¥è¨© ¯®àâ #FF)
|
||
JOY_VG93 EQU #15 ; ¯®àâ ç⥨¥ - ¤¦®©á⨪ ¨ IRQ/INTRQ ª®â஫«¥à ‚ƒ93
|
||
|
||
; <20>®àâ FDD 720 ; #00BD - ¯¥à¥ª«î票¥ ¢ 720 - § á« âì 1. ¬®¦® LD A,#01 : OUT (#BD),A. <20> ¡®â ¥â c DOS ON «¨¡® ¢ CNF_3 á DOS OFF
|
||
FDD720 EQU #16
|
||
; <20>®àâ FDD 1.44 ; #20BD - ¯¥à¥ª«î票¥ ¢ 1.44 - § á« âì 1. ¬®¦® LD A,#21 : OUT (#BD),A. <20> ¡®â ¥â c DOS ON «¨¡® ¢ CNF_3 á DOS OFF
|
||
FDD144 EQU #17
|
||
|
||
;#18 reserved
|
||
;#19 reserved
|
||
;#1A reserved
|
||
|
||
ISA_CTRL EQU #1B ; #9FBD
|
||
CMOS_DATA.READ EQU #1C ; #FFBD
|
||
CMOS_ADDR.WRITE EQU #1D ; #DFBD
|
||
CMOS_DATA.WRITE EQU #1E ; #BFBD
|
||
|
||
;#1F reserved
|
||
|
||
IDE_DATA_1F0 EQU #20 ; HDD - ॣ¨áâà ¤ ëå. ¢¥è¨© #0050
|
||
IDE_ERROR_1F1 EQU #21 ; HDD - ॣ¨áâà á®áâ®ï¨ï/®è¨¡®ª. ¢¥è¨© #0051
|
||
IDE_COUNTER_1F2 EQU #22 ; HDD - ॣ. ª®«-¢ ᥪ-®¢ ¤«ï R/W. ¢¥è¨© #0052
|
||
IDE_SECTOR_1F3 EQU #23 ; HDD - ॣ¨áâà ᥪâ®à . ¢¥è¨© #0053
|
||
IDE_CYLINDER_L_1F4 EQU #24 ; HDD - ॣ¨áâà ¤®à®¦ª¨-low. ¢¥è¨© #0054
|
||
IDE_CYLINDER_H_1F5 EQU #25 ; HDD - ॣ¨áâà ¤®à®¦ª¨-high. ¢¥è¨© #0055
|
||
IDE_DEVICE_HEAD_1F6 EQU #26 ; HDD - ॣ. heads/¢ë¡®à mas-slave. ¢¥è¨© #4052
|
||
IDE_STATUS_CMD_1F7 EQU #27 ; HDD - ॣ¨áâà ª®¬ ¤. ¢¥è¨© #4053
|
||
IDE_CONTROL_3F6 EQU #28 ; HDD - ¤®¯. ॣ¨áâà ã¯à ¢«¥¨ï 3F6. ¢¥è¨© #4054
|
||
IDE_STATUS_3F7 EQU #29 ; HDD - ¤®¯. ॣ¨áâà á®áâ®ï¨ï 3F7. ¢¥è¨© #4055
|
||
IDE_CHANEL_1 EQU #2A ; HDD - ¢ë¡¨à ¥â Secondary IDE, ¢¥è¨© #BC
|
||
IDE_CHANEL_2 EQU #2B ; HDD - ¢ë¡¨à ¥â Primary IDE, ¢¥è¨© #BC
|
||
VSYNC320 EQU #2C ; #40BD
|
||
VSYNC312 EQU #2D ; #60BD
|
||
RESET EQU #2E ; S_RESET - #40A4 - Reset port
|
||
UNKNOWN EQU #2F ; ????? ; #60BC - çâ®-â® § ¯¨áì
|
||
;#30 - ????? ISA-SLOT 1 - ports R/W
|
||
;#31 - ????? ISA-SLOT 2 - ports R/W
|
||
ISA_Control EQU #32 ; ISA-signals such as RESET, AEN, A19...A14. ‚¥è¨© #9FBD
|
||
;#33 - ????? ISA-SLOT 2 - memory R/W
|
||
;#34 reserved
|
||
;#35 reserved
|
||
;#36 reserved
|
||
;#37 reserved
|
||
;#38 reserved
|
||
;#39 reserved
|
||
;#3A reserved
|
||
;#3B reserved
|
||
;#3C reserved
|
||
;#3D reserved
|
||
;#3E reserved
|
||
;#3F reserved
|
||
ZX_Keyboard EQU #40 ; ZX-Keyboard (¯®àâ FE)
|
||
;#41 reserved
|
||
;#42 reserved
|
||
;#43 reserved
|
||
;#44 reserved
|
||
;#45 reserved
|
||
;#46 reserved
|
||
;#47 reserved
|
||
;#48 reserved
|
||
;#49 reserved
|
||
;#4A reserved
|
||
;#4B reserved
|
||
;#4C reserved
|
||
;#4D reserved
|
||
;#4E reserved
|
||
;#4F reserved
|
||
;#50 reserved
|
||
;#51 reserved
|
||
AY_FFFD_READ EQU #52 ; AY_D READ ; AY-8910-port (FFFD) ç⥨¥ ¤ ëå
|
||
;#53 reserved
|
||
;#54 reserved
|
||
;#55 reserved
|
||
;#56 reserved
|
||
;#57 reserved
|
||
Kempston_Mouse EQU #58 ; #FADF ¢¥è¨©
|
||
;#59 reserved
|
||
;#5A reserved
|
||
;#5B reserved
|
||
;#5C reserved
|
||
;#5D reserved
|
||
;#5E reserved
|
||
;#5F reserved
|
||
;#60 reserved
|
||
;#61 reserved
|
||
;#62 reserved
|
||
;#63 reserved
|
||
;#64 reserved
|
||
;#65 reserved
|
||
;#66 reserved
|
||
;#67 reserved
|
||
;#68 reserved
|
||
;#69 reserved
|
||
;#6A reserved
|
||
;#6B reserved
|
||
;#6C reserved
|
||
;#6D reserved
|
||
;#6E reserved
|
||
;#6F reserved
|
||
;#70 reserved
|
||
;#71 reserved
|
||
;#72 reserved
|
||
;#73 reserved
|
||
;#74 reserved
|
||
;#75 reserved
|
||
;#76 reserved
|
||
;#77 reserved
|
||
;#78 reserved
|
||
;#79 reserved
|
||
;#7A reserved
|
||
;#7B reserved
|
||
;#7C reserved
|
||
;#7D reserved
|
||
;#7E reserved
|
||
;#7F reserved
|
||
;- - - - - - - - - - - - - - - [RAM CELLS] - - - - - - - - - - - - - - -;
|
||
;#80 reserved
|
||
;#81 reserved
|
||
;#82 reserved
|
||
;#83 reserved
|
||
;#84 reserved
|
||
;#85 reserved
|
||
;#86 reserved
|
||
;#87 reserved
|
||
CBL_OUT EQU #88 ; Write to COVOX/COVOX-Blaster
|
||
CBL_SYS_PORT EQU #89 ; CBL_DIR
|
||
;#8A reserved
|
||
;#8B reserved
|
||
;#8C reserved 3000 -- AY_D READ ; !TEST
|
||
;#8D reserved 2000 -- AY_A WRITE ; ¢ ª®ä¥ å प®¤ #90
|
||
;#8E reserved 2000 -- AY_D WRITE ; ¢ ª®ä¥ å प®¤ #91
|
||
ROM_RG EQU #8F ; ¯®àâ ¯¥à¥ª«î票ï áâà ¨æ ROM ¨ FastRam, ¤ã¡«¨àã¥âáï ¢¥è¨¬ ¯®à⮬ #5C
|
||
AY_FFFD_WRITE EQU #90 ; AY-8910-port (FFFD) ;!!!!! § ¯¨áì ¤à¥á ??????
|
||
AY_BFFD EQU #91 ; AY-8910-port (BFFD)
|
||
;#92 reserved
|
||
;#93 reserved
|
||
;#94 reserved
|
||
;#95 reserved
|
||
;#96 reserved
|
||
;#97 reserved
|
||
;#98 reserved
|
||
;#99 reserved
|
||
;#9A reserved
|
||
;#9B reserved
|
||
;#9C reserved
|
||
;#9D reserved
|
||
;#9E reserved
|
||
;#9F reserved
|
||
;#A0 reserved
|
||
;#A1 reserved
|
||
;#A2 reserved
|
||
;#A3 reserved
|
||
;#A4 reserved
|
||
;#A5 reserved
|
||
;#A6 reserved
|
||
;#A7 reserved
|
||
;#A8 reserved
|
||
;#A9 reserved
|
||
;#AA reserved
|
||
;#AB reserved
|
||
;#AC reserved
|
||
;#AD reserved
|
||
;#AE reserved
|
||
;#AF reserved
|
||
;#B0 reserved
|
||
;#B1 reserved
|
||
;#B2 reserved
|
||
;#B3 reserved
|
||
;#B4 reserved
|
||
;#B5 reserved
|
||
;#B6 reserved
|
||
;#B7 reserved
|
||
;#B8 reserved
|
||
;#B9 reserved
|
||
;#BA reserved
|
||
;#BB reserved
|
||
;#BC reserved
|
||
;#BD reserved
|
||
;#BE reserved
|
||
;#BF reserved
|
||
Scorp_1FFD EQU #C0
|
||
Pent_7FFD EQU #C1
|
||
Border_FE EQU #C2 ; #FE, write only
|
||
ALL_MODE EQU #C3 ; ‚¥è¨© - #204E
|
||
PORT_Y EQU #C4 ; #89
|
||
RGMOD EQU #C5 ; #C9
|
||
CNF_PORT EQU #C6 ; #3C / #7C, #24 / #74
|
||
SCALE EQU #C7 ;PGACC - SCALE_PORT (#FC)
|
||
;#C8 - ª®¯¨ï Scorp_1FFD
|
||
;#C9 - ª®¯¨ï Pent_7FFD
|
||
;#CA - ª®¯¨ï Border_FE
|
||
HOLD EQU #CB ; ‡ ¤ ñâ § 票ï áçñâ稪®¢ á¨åந§ â®à á¨åந¬¯ã«ìᮢ. %xxxx'yyyy - ¯®§¨æ¨ï íªà
|
||
;#CC - ª®¯¨ï PORT_Y
|
||
;#CD - ª®¯¨ï RGMOD
|
||
;#CE - ª®¯¨ï CNF_PORT
|
||
;#CF - ª®¯¨ï SCALE
|
||
|
||
;#D0 - vRAM page 0 for 512 kb (®ª® C000-FFFF)
|
||
;#D1 - vRAM page 1 for 512 kb (®ª® C000-FFFF)
|
||
;#D2 - vRAM page 2 for 512 kb (®ª® C000-FFFF)
|
||
;#D3 - vRAM page 3 for 512 kb (®ª® C000-FFFF)
|
||
;#D4 - vRAM page 4 for 512 kb (®ª® C000-FFFF)
|
||
;#D5 - vRAM page 5 for 512 kb (®ª® C000-FFFF)
|
||
;#D6 - vRAM page 6 for 512 kb (®ª® C000-FFFF)
|
||
;#D7 - vRAM page 7 for 512 kb (®ª® C000-FFFF)
|
||
;#D8 - vRAM page 8 for 512 kb (®ª® C000-FFFF)
|
||
;#D9 - vRAM page 9 for 512 kb (®ª® C000-FFFF)
|
||
;#DA - vRAM page A for 512 kb (®ª® C000-FFFF)
|
||
;#DB - vRAM page B for 512 kb (®ª® C000-FFFF)
|
||
;#DC - vRAM page C for 512 kb (®ª® C000-FFFF)
|
||
;#DD - vRAM page D for 512 kb (®ª® C000-FFFF)
|
||
;#DE - vRAM page E for 512 kb (®ª® C000-FFFF)
|
||
;#DF - vRAM page F for 512 kb (®ª® C000-FFFF)
|
||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||
vROM: ;
|
||
.ZX_EXPANSION: EQU #E0 ; vROM page EXPANSION. Port #1FFD bit1=1 (#24 bit6=0, bit0=0)
|
||
.TR_DOS: EQU #E1 ; vROM page TR-DOS. PC = #3D00..#3DFF and #1FFD bit1=0 (#24 bit0=0)
|
||
.BASIC_128: EQU #E2 ; vROM page BASIC-128. #7FFD bit4=0 and #1FFD bit1=0 (#24 bit0=0)
|
||
.BASIC_48: EQU #E3 ; vROM page BASIC-48. #7FFD bit4=1 and #1FFD bit1=0 (#24 bit0=0)
|
||
; ;
|
||
.ZX_EXPANSION_2: EQU #E4 ; vROM page EXPANSION 2. Port #1FFD bit1=1 (#24 bit6=0, bit0=1)
|
||
.TR_DOS_2: EQU #E5 ; vROM page TR-DOS 2. PC = #3D00..#3DFF and #1FFD bit1=0 (#24 bit0=1)
|
||
.BASIC_128_2: EQU #E6 ; vROM page BASIC-128 2. #7FFD bit4=0 and #1FFD bit1=0 (#24 bit0=1)
|
||
.BASIC_48_2: EQU #E7 ; vROM page BASIC-48 2. #7FFD bit4=1 and #1FFD bit1=0 (#24 bit0=1)
|
||
;
|
||
.ZX_BIOS_1 EQU #EB ; vROM page BIOS-3 Port #74 = 0
|
||
.ZX_BIOS_2 EQU #EF ; vROM page BIOS-4 Port #74 = 1
|
||
;
|
||
;#EC - user's memory cell = FF ; áî¤ ¬®¦® á®åà ¨âì 㦮¥ § 票¥ ;?????
|
||
;#ED - user's memory cell = 00 ; áî¤ ¬®¦® á®åà ¨âì 㦮¥ § 票¥ ;?????
|
||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||
SLOT0 EQU #E8 ; RAM page (®ª® 0000-3FFF)
|
||
SLOT1 EQU #E9 ; RAM page (®ª® 4000-7FFF)
|
||
SLOT2 EQU #EA ; RAM page (®ª® 8000-BFFF)
|
||
RET_PORT EQU #EE ; Page set after Soft RESET. ‹î¡®¥, ªà®¬¥ 0, § 票¥ - áâà ¨æ ªã¤ ¯¥à¥¤ áâáï ã¯à ¢«¥¨¥ ¯®á«¥ Soft reset
|
||
|
||
; “áâ ®¢ª § ç¥¨ï ¢ ª ª®© «¨¡® ¯®àâ ®â #F0 ¤® #FF ¯à¨¢¥¤¥â ª ®¤®¬ã ¨ ⮬㠦¥ १ã«ìâ âã, çâ® ¨ ¯à®áâ® ãáâ ®¢ª § ç¥¨ï ¢ ¯®àâ #F0. ‚ á奬¥ ᤥ«
|
||
; ¯¥à¥ ¤à¥á æ¨ï ®¬¥à ¯®àâ â ª, çâ® ¯à¨ § 票¨ #Fx ®¬¥à ¯®àâ ¡¥à¥âáï ª ª #F0+Spectrum_PAGE, £¤¥ Spectrum_PAGE - ®¬¥à ᯥªâà㬮¢áª®© áâà ¨æë, ¤à¥á㥬®©
|
||
; ¯® ¯®àâ ¬ #7FFD ¨ #1FFD. ’ ª¨¬ ®¡à §®¬ ¤®á⨣ ¥âáï ᮢ¬¥á⨬®áâì á <20>¥â £®®¬ ¨ ‘ª®à¯¨®®¬ ¯® à á¯à¥¤¥«¥¨î ¯ ¬ï⨠¨ ¤¥« ¥âáï ¢®§¬®¦ë¬ ãáâ ®¢ª «î¡®£®
|
||
; ®¬¥à áâà ¨æë á¯à¨â¥à®¢áª®© ¯ ¬ï⨠¤«ï «î¡®© áâà ¨æë ‘¯¥ªâà㬠.
|
||
;
|
||
SLOT3 EQU #F0 ; RAM page for 128/256 kb (®ª® C000-FFFF)
|
||
;F1h - RAM page for 128/256 kb (®ª® C000-FFFF)
|
||
;F2h - RAM page for 128/256 kb (®ª® C000-FFFF)
|
||
;F3h - RAM page for 128/256 kb (®ª® C000-FFFF)
|
||
;F4h - RAM page for 128/256 kb (®ª® C000-FFFF)
|
||
;F5h - RAM page for 128/256 kb (®ª® C000-FFFF)
|
||
;F6h - RAM page for 128/256 kb (®ª® C000-FFFF)
|
||
;F7h - RAM page for 128/256 kb (®ª® C000-FFFF)
|
||
;F8h - RAM page for 256 kb (®ª® C000-FFFF)
|
||
;F9h - RAM page for 256 kb (®ª® C000-FFFF)
|
||
;FAh - RAM page for 256 kb (®ª® C000-FFFF)
|
||
;FBh - RAM page for 256 kb (®ª® C000-FFFF)
|
||
;FCh - RAM page for 256 kb (®ª® C000-FFFF)
|
||
;FDh - RAM page for 256 kb (®ª® C000-FFFF)
|
||
;FEh - RAM page for 256 kb (®ª® C000-FFFF)
|
||
;FFh - RAM page for 256 kb (®ª® C000-FFFF)
|
||
;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -;
|
||
|
||
;------------------------;
|
||
Config_ID:
|
||
.Sp2000 EQU #FEFF
|
||
; OLD:
|
||
.Sp97_DOOM EQU #FFF9
|
||
.Sp97_Video EQU #FFFA
|
||
.Sp97_Game EQU #FFFB
|
||
.Sp97_AY EQU #FFFC
|
||
.Sp97_2 EQU #FFFD
|
||
.Sp97_1 EQU #FFFE
|
||
;
|
||
Config_PG:
|
||
.Sp2000_AcexSetUpSet EQU #FA ; [x] ãáâ ®¢ª ¯¥à¥å¢ â c ¯¥à¥§ «¨¢ª®© ª®äë
|
||
.Sp2000_SoftRestartSet EQU #FB ; [x] ãáâ ®¢ª ¯¥à¥å¢ â soft-à¥á¥â
|
||
.Sp2000_SoftRestartNow EQU #FC ; [x] soft-à¥á¥â á ¯¥à¥å¢ ⮬
|
||
.Sp2000_SetUp EQU #FD ; [x] २¨â ( ªá¥«ï, ¯à¨¬¥à)
|
||
.Sp2000_AcexSetUpNow EQU #FE ; [x] ¯¥à¥§ «¨¢ª ª®äë á ¯¥à¥å¢ ⮬
|
||
; áâà ¨æë á ª®ä®© ¤«ï Sp97, ¤«ï ᮢ¬¥á⨬®áâ¨ á ¤à¥¢¨¬¨ ¯à®£ ¬¨
|
||
.Sp97_AY EQU #EA
|
||
.Sp97_1 EQU #EC
|
||
.Sp97_2 EQU #EE
|
||
;------------------------;
|
||
; DW #FEFF ; Sprinter-2000
|
||
;
|
||
; DW #FFFE ; Sprinter-1
|
||
; DB 0 ; ⨯ ªá¥«¥à â®à
|
||
; DB 1 ; íªà
|
||
; DB 2 ; ª« ¢¨ âãà
|
||
; DB 1 ; ª®¢®ªá;
|
||
;
|
||
; DW #FFFD ; Sprinter-2
|
||
; DB 2 ; ⨯ ªá¥«¥à â®à
|
||
; DB 1 ; íªà
|
||
; DB 0 ; ª« ¢¨ âãà
|
||
; DB 1 ; ª®¢®ªá;
|
||
;
|
||
; DW #FFFC ; AY
|
||
; DB 0 ; ⨯ ªá¥«¥à â®à
|
||
; DB 0 ; íªà
|
||
; DB 2 ; ª« ¢¨ âãà
|
||
; DB 0 ; ª®¢®ªá;
|
||
;
|
||
; DW #FFF9 ; ¨¤¥â¨ä¨ª â®à ª®ä¨£ãà æ¨¨ DooM
|
||
; DB 3 ; ⨯ ªá¥«¥à â®à
|
||
; DB 1 ; íªà
|
||
; DB 0 ; ª« ¢¨ âãà
|
||
; DB 2 ; ª®¢®ªá (¡« áâ¥à)
|
||
;------------------------;
|
||
;;;;;;;
|
||
ENDMODULE
|
||
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ
|
||
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ
|
||
|
||
|
||
|
||
;
|
||
/*
|
||
¢ãâ२¥ ¯®àâë Z84C15:
|
||
#10
|
||
#11
|
||
#12
|
||
#13
|
||
#14
|
||
#15
|
||
#16
|
||
#17
|
||
#18
|
||
#19
|
||
#1A
|
||
#1B
|
||
#1C
|
||
#1D
|
||
#1E
|
||
#1F
|
||
#EE
|
||
#EF
|
||
#F0
|
||
#F1
|
||
#F4
|
||
*/
|
||
;=======================================
|
||
|
||
;===============[ CMOS ]================ ; !TODO
|
||
|
||
;REGISTER #0E
|
||
; %10000000 - MEMORY TEST
|
||
; %01000000 - SAVE RAM DISKS
|
||
; %00100000 - UPDATE BIOS
|
||
; %00011000 - START DELAY
|
||
; %00000100 - LANGUAGE
|
||
; %00000010 - NOT USED ;!TODO
|
||
; %00000001 - QUICK START
|
||
|
||
;REGISTER #0F
|
||
; %10000000 - TYPEMATIC ON/OFF
|
||
; %01100000 - TYPEMATIC DELAY 00-250, 01-500, 10-750, 11-1000
|
||
; %00011111 - TYPEMATIC RATE 0-6, 1-8, 2-10, 3-12, 4-15, 5-20, 6-24, 7-30
|
||
|
||
;REGISTER #10
|
||
; %00000111 - SYSTEM DISK
|
||
; 1st FDD
|
||
; 2nd FDD
|
||
; 1st IDE
|
||
; 2nd IDE
|
||
; 3rd IDE
|
||
; 4th IDE
|
||
; Ram Dsk
|
||
; Recovery
|
||
; %01110000 - ALT SYSTEM DISK
|
||
|
||
;REGISTER #11
|
||
; %00000011 - FDD FIRST 720 / 1.44 / NONE
|
||
; %00001100 - FDD SECOND
|
||
; %00110000 - IDE Primary MASTER AUTO / SETUP / DISABLED
|
||
; %11000000 - IDE Primary SLAVE -----//------
|
||
|
||
;-------------[HDD PRIMARY]-------------
|
||
;REGISTER #12 - CYLINDERS (MASTER) L
|
||
;REGISTER #13 - -----//------ H
|
||
;REGISTER #14 - HEADS (MASTER)
|
||
;REGISTER #15 - SECTORS (MASTER)
|
||
;
|
||
;REGISTER #16 - CYLINDERS (SLAVE) L
|
||
;REGISTER #17 - -----//------ H
|
||
;REGISTER #18 - HEADS (SLAVE)
|
||
;REGISTER #19 - SECTORS (SLAVE)
|
||
;----------------------------------------
|
||
;------------[HDD Secondary]-------------
|
||
;REGISTER #37 - CYLINDERS (MASTER) L
|
||
;REGISTER #38 - -----//------ H
|
||
;REGISTER #39 - HEADS (MASTER)
|
||
;REGISTER #3A - SECTORS (MASTER)
|
||
;
|
||
;REGISTER #3B - CYLINDERS (SLAVE) L
|
||
;REGISTER #3C - -----//------ H
|
||
;REGISTER #3D - HEADS (SLAVE)
|
||
;REGISTER #3E - SECTORS (SLAVE)
|
||
;----------------------------------------
|
||
;REGISTER #1A
|
||
; %00001111 - COLOR STYLE
|
||
; %00110000 - Frame Int (Default/Pentagon/Scorpion/Original)
|
||
; %11000000 - Screen V-Sinc (Default/312 lines 50 HZ/320 Lines 49 Hz)
|
||
|
||
;!FIXIT <EFBFBD>… ˆ‘<EFBFBD>Ž‹œ‡“…’‘Ÿ
|
||
;REGISTER #1B - HARDWARE CONFIGURATION
|
||
; %00000001 - TURBO MODE (D0..D3 - 6 OR 7)
|
||
; %00000010 - TURBO EXCHANGE ON/OFF - 1
|
||
; %00000100 - PORT EXCHANGE ON/OFF - 1
|
||
; %00011000 - COMPUTER:
|
||
; 0-SPRINTER
|
||
; 1-SPECTRUM 256
|
||
; 2-PENTAGON 128
|
||
; 3-OTHER
|
||
; %11100000 - RESERVED ;!TODO
|
||
;!FIXIT <EFBFBD>… ˆ‘<EFBFBD>Ž‹œ‡“…’‘Ÿ
|
||
;REGISTER #1C - RESET MODE
|
||
; 0-RESET 128 Basic
|
||
; 1-RESET 48 Basic & 128 mem
|
||
; 2-RESET TR-DOS & 128 mem
|
||
; 3-RESET EXPANSION (Disabled)
|
||
; 4-RESET TR-DOS & 48 mem
|
||
; 5-RESET 48 Basic
|
||
|
||
;REGISTER #1D
|
||
; %00000010 - Reboot message
|
||
; %00000001 - HDD Write protect
|
||
|
||
;REGISTER #1E
|
||
; %00000011 - TR DOS A: Default / FDD / HDD / RMD
|
||
; %00001100 - TR DOS B: Default / FDD / HDD / RMD
|
||
; %00110000 - TR DOS C: Default / FDD / HDD / RMD
|
||
; %11000000 - TR DOS D: Default / FDD / HDD / RMD
|
||
|
||
;REGISTER #1F ;R06
|
||
; %11110000 - X-Screen position
|
||
; %00001111 - Y-Screen position
|
||
|
||
;REGISTER #20
|
||
; %00110000 - IDE Secondary MASTER AUTO / SETUP / DISABLED
|
||
; %11000000 - IDE Secondary SLAVE -----//------
|
||
; .
|
||
; .
|
||
|
||
;REGISTER#36 - BASIC SETTING 2 ; áâ àë¥ § ç¥¨ï ¥¨§¢¥áâë
|
||
; %0000 0111
|
||
; ®¢ë¥ § 票ï:
|
||
; 0 - ZX-Sprinter
|
||
; 1 - Pentagon 48
|
||
; 2 - Pentagon 128
|
||
; 3 - Pentagon 512
|
||
; 4 - Scorpion 256
|
||
; 5 - ZX Spectrum 48
|
||
; 6 - ZX Spectrum 128
|
||
|
||
;REGISTER #3F - CHECKSUM SETTING
|
||
;=======================================
|
||
|
||
;
|
||
;-------------------------------[ TEST ]--------------------------------
|
||
MODULE IDE
|
||
;
|
||
; 0 - ª®¯¨ï DRV_HEAD. bit6 - LBA/CHS, bit4 - MASTER/SLAVE, bit0 - Primary/Secondary Chanel
|
||
; 1 - ᥪâ®à®¢ ¤®à®¦ª¥
|
||
; 2 - ç¨á«® £®«®¢®ª
|
||
; 3 - ª®«¨ç¥á⢮ 樫¨¤à®¢ ¬«.
|
||
; 4 - ª®«¨ç¥á⢮ 樫¨¤à®¢ áâ à訩.
|
||
; 5 - ᥪâ®à®¢ 樫¨¤à ¬«.
|
||
; 6 - ᥪâ®à®¢ 樫¨¤à áâ àè.
|
||
; 7 - ⨯ ¤à ©¢ HDD - 1, CD-ROM - 2...
|
||
; 8 - à §¬¥à ᥪâ®à
|
||
;10 - Removable Media Parameters
|
||
;11 - Peripheral Device Type for ATAPI
|
||
STRUCT HDD_INIT_TABLE
|
||
.DRV_Flags BYTE ; 0 DRVHD_H
|
||
.SectorsPerTrack BYTE ; 1 SC_PT_H
|
||
.HeadsNumber BYTE ; 2 HEADS_H
|
||
.CylinderNumberLow BYTE ; 3 CYL_L_H ; for ATAPI MediaSizeLow (word)
|
||
.CylinderNumberHigh BYTE ; 4 CYL_H_H
|
||
.SectorsPerCylinderLow BYTE ; 5 SPCLL_H ; for ATAPI MediaSizeHigh (word)
|
||
.SectorsPerCylinderHigh BYTE ; 6 SPCLH_H
|
||
.DriveType BYTE ; 7 DTYPE_H
|
||
.SectorSize WORD ; 8
|
||
.MediaParameters BYTE ; 10 ; bit0=1 removable, bit1=1 drive changed, bit7..2 reserved
|
||
.PDT BYTE ; 11 ; Peripheral Device Type for ATAPI
|
||
.RESERVED_2 BYTE ; 12
|
||
.RESERVED_3 BYTE ; 13
|
||
.RESERVED_4 BYTE ; 14
|
||
.RESERVED_5 BYTE ; 15
|
||
ENDS
|
||
HDD_INIT_TABLE.MediaSizeLow EQU HDD_INIT_TABLE.CylinderNumberLow ; For ATAPI
|
||
HDD_INIT_TABLE.MediaSizeHigh EQU HDD_INIT_TABLE.SectorsPerCylinderLow; For ATAPI
|
||
;
|
||
|
||
INIT_TBL_IDE0 HDD_INIT_TABLE = SYS_PAGE.IDE_0 ; !HARDCODE table in SYS_PAGE
|
||
INIT_TBL_IDE1 HDD_INIT_TABLE = SYS_PAGE.IDE_1 ; !HARDCODE table in SYS_PAGE
|
||
INIT_TBL_IDE2 HDD_INIT_TABLE = SYS_PAGE.IDE_2 ; !HARDCODE table in SYS_PAGE
|
||
INIT_TBL_IDE3 HDD_INIT_TABLE = SYS_PAGE.IDE_3 ; !HARDCODE table in SYS_PAGE
|
||
;
|
||
|
||
; <EFBFBD>¥£¨áâà ¤à¥á ª®¯¨â¥«ï (#3F7 ç⥨¥) ᮤ¥à¦¨â ®¬¥à £®«®¢ª¨ ¨ HDD, ¢ë¡à ë¥ ¢ ¯à¥¤ë¤ã饩 ®¯¥à 樨.
|
||
; <EFBFBD>¨âë 0, 1 - /DSO, /DS1 - ¡¨âë ¢ë¡®à ᮮ⢥âáâ¢ãî饣® ª®¯¨â¥«ï 0 ¨«¨ 1.
|
||
; <EFBFBD>¨âë 2...5 - /HSO../HS3 - ᮤ¥à¦ â ¤¢®¨çë© ª®¤ ¢ë¡à ®© £®«®¢ª¨.
|
||
; <EFBFBD>¨â 6 - Write Gate - ¡¨â ¢ë¯®«¥¨ï § ¯¨á¨, ªâ¨¢¥ ¢® ¢à¥¬ï ®¯¥à 樨 § ¯¨á¨
|
||
|
||
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
|
||
.ByteCountLow EQU .CylinderLow ; ATAPI
|
||
.ByteCountHigh EQU .CylinderHigh ; ATAPI
|
||
.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
|
||
.InterruptReason EQU .Counter ; ATAPI
|
||
.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
|
||
.ByteCountLow EQU .CylinderLow ; ATAPI
|
||
.ByteCountHigh EQU .CylinderHigh ; ATAPI
|
||
.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
|
||
|
||
ErrorBit:
|
||
.Abort EQU 2
|
||
|
||
ErrorByte:
|
||
.Abort EQU #04
|
||
|
||
InterruptReasonBit: ; 0000 0000
|
||
; EQU 7;ÄÄÄÄÙ³³³ ³³³³ ; reserved
|
||
; EQU 6;ÄÄÄÄÄÙ³³ ³³³³ ; reserved
|
||
; EQU 5;ÄÄÄÄÄÄÙ³ ³³³³ ; reserved
|
||
; EQU 4;ÄÄÄÄÄÄÄÙ ³³³³ ; reserved
|
||
; EQU 3;ÄÄÄÄÄÄÄÄÄÙ³³³ ; reserved
|
||
; EQU 2;ÄÄÄÄÄÄÄÄÄÄÙ³³ ; reserved
|
||
.IO EQU 1;ÄÄÄÄÄÄÄÄÄÄÄÙ³ ; Direction for the Information transfer. 1 - to Host
|
||
.CoD EQU 0;ÄÄÄÄÄÄÄÄÄÄÄÄÙ ; Command or user Data
|
||
|
||
InterruptReasonByte: ; 0000 0000
|
||
; EQU #80;ÄÄÙ³³³ ³³³³ ; reserved
|
||
; EQU #40;ÄÄÄÙ³³ ³³³³ ; reserved
|
||
; EQU #20;ÄÄÄÄÙ³ ³³³³ ; reserved
|
||
; EQU #10;ÄÄÄÄÄÙ ³³³³ ; reserved
|
||
; EQU #08;ÄÄÄÄÄÄÄÙ³³³ ; reserved
|
||
; EQU #04;ÄÄÄÄÄÄÄÄÙ³³ ; reserved
|
||
.IO EQU #02;ÄÄÄÄÄÄÄÄÄÙ³ ; Direction for the Information transfer. 1 - to Host
|
||
.CoD EQU #01;ÄÄÄÄÄÄÄÄÄÄÙ ; Command or user Data
|
||
|
||
CtrlBit: ; 0000 0000 ; Bits for IDE.Read.Status
|
||
.Busy EQU 7;ÄÄÄÄÙ³³³ ³³³³ ; BSY
|
||
.Ready EQU 6;ÄÄÄÄÄÙ³³ ³³³³ ; RDY
|
||
.Fault EQU 5;ÄÄÄÄÄÄÙ³ ³³³³ ; DMA ready for ATAPI
|
||
.SeekComplete EQU 4;ÄÄÄÄÄÄÄÙ ³³³³ ; Service for ATAPI
|
||
.DataRequest EQU 3;ÄÄÄÄÄÄÄÄÄÙ³³³ ; DRQ
|
||
.CorrectedData EQU 2;ÄÄÄÄÄÄÄÄÄÄÙ³³ obsolete
|
||
.Index EQU 1;ÄÄÄÄÄÄÄÄÄÄÄÙ³ obsolete; .SenseDataAvailable
|
||
.Error EQU 0;ÄÄÄÄÄÄÄÄÄÄÄÄÙ ; Indicates an error occurred. Send a new command to clear it (or nuke it with a Software Reset).
|
||
.CheckCondition EQU .Error
|
||
.StreamError EQU .Fault
|
||
.ATAPI_DMAReady EQU .Fault
|
||
.ATAPI_Service EQU .SeekComplete
|
||
|
||
CtrlByte: ; Bytes for IDE.Read.Status
|
||
.Busy EQU #80 ; BSY
|
||
.Ready EQU #40 ; RDY
|
||
.Fault EQU #20
|
||
.SeekComplete EQU #10
|
||
.DataRequest EQU #08 ; DRQ
|
||
.CorrectedData EQU #04 ; obsolete
|
||
.Index EQU #02 ; obsolete
|
||
.Error EQU #01 ; Indicates an error occurred. Send a new command to clear it (or nuke it with a Software Reset).
|
||
.CheckCondition EQU .Error
|
||
.StreamErrror EQU .Fault
|
||
.ATAPI_DMAReady EQU .Fault
|
||
.ATAPI_Service EQU .SeekComplete
|
||
/*
|
||
Bit Abbreviation Function
|
||
0 ERR Indicates an error occurred. Send a new command to clear it (or nuke it with a Software Reset).
|
||
1 IDX Index. Always set to zero.
|
||
2 CORR Corrected data. Always set to zero.
|
||
3 DRQ Set when the drive has PIO data to transfer, or is ready to accept PIO data.
|
||
4 SRV Overlapped Mode Service Request.
|
||
5 DF Drive Fault Error (does not set ERR).
|
||
6 RDY Bit is clear when drive is spun down, or after an error. Set otherwise.
|
||
7 BSY Indicates the drive is preparing to send/receive data (wait for it to clear). In case of 'hang' (it never clears), do a software reset.
|
||
*/
|
||
Chanel:
|
||
.Set_0: EQU #20BC ; ¤«ï ¨á¯®«ì§®¢ ¨ï á ¯®«®© ¤à¥á 樥© (ॣ BC), § á« âì '1'
|
||
.Set_1: EQU #00BC ; ¤«ï ¨á¯®«ì§®¢ ¨ï á ¯®«®© ¤à¥á 樥© (ॣ BC), § á« âì '1'
|
||
.Set: EQU #BC ; ¤«ï ¨á¯®«ì§®¢ ¨ï á ¥¯®«®© ¤à¥á 樥© out (#bc),a.
|
||
.Primary EQU #21 ; ¤«ï ¨á¯®«ì§®¢ ¨ï á ¥¯®«®© ¤à¥á 樥© out (#bc),a. ‚ë¡®à ª « 0
|
||
.Secondary EQU #01 ; ¤«ï ¨á¯®«ì§®¢ ¨ï á ¥¯®«®© ¤à¥á 樥© out (#bc),a. ‚ë¡®à ª « 1
|
||
|
||
; <EFBFBD>ã¬¥à æ¨ï BIOS
|
||
MODULE Device
|
||
NONE EQU #FF
|
||
HDD EQU 1
|
||
ATAPI EQU 2
|
||
.MAGNETIC_DISKETTE EQU #00
|
||
.CDROM EQU #05
|
||
.OPTICAL_DISKETTE EQU #07
|
||
.UNKNOWN EQU #1F
|
||
ENDMODULE
|
||
;
|
||
Drive:
|
||
.Master EQU %1010'0000
|
||
.Slave EQU %1011'0000
|
||
|
||
MODULE CMD
|
||
ATAPI:
|
||
.Reset EQU #08
|
||
.Packet EQU #A0
|
||
.IdentifyPacketDevice EQU #A1
|
||
;
|
||
ATA:
|
||
; ATA-2 commands ************************
|
||
.ExecuteDeviceDiagnostic EQU #90
|
||
.IdentifyDevice EQU #EC
|
||
.InitializeDeviceParameters EQU #91
|
||
.ReadSectorsWithRetry EQU #20
|
||
.ReadSectors EQU #21
|
||
.ReadVerifySectorsWithRetry EQU #40
|
||
.ReadVerifySectors EQU #41
|
||
.Seek EQU #70
|
||
.WriteSectorsWithRetry EQU #30
|
||
.WriteSectors EQU #31
|
||
; ****** additional commands ************
|
||
.AcknowledgeMediaChange EQU #db
|
||
.PostBoot EQU #dc
|
||
.PreBoot EQU #dd
|
||
.DoorLock EQU #de
|
||
.DoorUnlock EQU #df
|
||
.DownloadMicrocode EQU #92
|
||
; Power Mode
|
||
.CheckPowerMode EQU #98
|
||
.CheckPowerMode2 EQU #e5
|
||
.Idle EQU #97
|
||
.Idle2 EQU #e3
|
||
.IdleImmediate EQU #95
|
||
.IdleImmediate2 EQU #e1
|
||
.Sleep EQU #99
|
||
.Sleep2 EQU #e6
|
||
.Standby EQU #96
|
||
.Standby2 EQU #e2
|
||
.StandbyImmediate EQU #94
|
||
.StandbyImmediate2 EQU #e0
|
||
;
|
||
.MediaEject EQU #ed
|
||
.Nop EQU #00
|
||
.ReadBuffer EQU #e4
|
||
.ReadDMA EQU #c8
|
||
.ReadLong EQU #22
|
||
.ReadMultiple EQU #c4
|
||
.Recalibrate EQU #10
|
||
.SetFeatures EQU #ef
|
||
.SetFeatures.Disable8bit EQU #81 ; Disable 8-bit data transfers (¯¨á âì ¢ .Features)
|
||
.SetFeatures.DisableWriteCache EQU #82 ; Disable write cache (¯¨á âì ¢ .Features)
|
||
.SetMultipleMode EQU #c6
|
||
.WriteBuffer EQU #e8
|
||
.WriteDMA EQU #ca
|
||
.WriteLong EQU #32
|
||
.WriteMultiple EQU #c5
|
||
.WriteSame EQU #e9
|
||
.WriteVerify EQU #3c
|
||
; **** device specific commands *************
|
||
.FormatTrack EQU #50
|
||
; command modificators:
|
||
; for ReadSectors, WriteSectors, ReadVerifySectors,
|
||
; ReadDMA, WriteDMA, ReadLong, WriteLong
|
||
.WithoutRetry EQU #01
|
||
; ATA
|
||
; .Master EQU #A0
|
||
; .Slave EQU #B0
|
||
ENDMODULE
|
||
|
||
|
||
; ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
|
||
; º Š ª à ¡®â ¥â á奬 ç⥨ï/§ ¯¨á¨? º
|
||
; º º
|
||
; º Z80 ÚÄÄÄ¿ º
|
||
; º bus ³Buf³ º
|
||
; º ÄÄÂÄÄ´<Ä>ÃÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄ<Ä> Low Byte º
|
||
; º ³ ³ 1 ³ ³ º
|
||
; º ³ ÃÄÄÄ´ ÚÄÄÄ¿ ³ º
|
||
; º ³ ³Buf³ ³Reg³ ³ º
|
||
; º ÀÄÄ´ÄÄ>ÃÄÄÂÄÄ´ÄÄ>ÃÄÄÙ HDD bus º
|
||
; º ³ 2 ³ ³ ³ 3 ³ º
|
||
; º ÀÄÄÄÙ ³ ÀÄÄÄÙ º
|
||
; º ³ º
|
||
; º ÀÄÄÄÄÄÄÄÄÄÄÄÄ<Ä> High Byte º
|
||
; º º
|
||
; º 1. —⥨¥ ¢á¥å ॣ¨áâ஢, ªà®¬¥ ॣ¨áâà ¤ ëå, A8 = 0 º
|
||
; º „ ë¥ á è¨ë HDD ç¥à¥§ ¡ãä¥à 1 ¯¥à¥¤ îâáï ¢ ¯à®æ¥áá®à. º
|
||
; º ’®«ìª® ¬« ¤è¨© ¡ ©â, áâ à訩 ¥ 㦥. º
|
||
; º º
|
||
; º 2.1 —⥨¥ ॣ¨áâà ¤ ëå, A8 = 0 º
|
||
; º „ ë¥ á è¨ë HDD ç¥à¥§ ¡ãä¥à 1 ¯¥à¥¤ îâáï ¢ ¯à®æ¥áá®à. º
|
||
; º ’®«ìª® ¬« ¤è¨© ¡ ©â, áâ à訩 㦥 ¨ ® § 饫ª¨¢ ¥âáï ¢ º
|
||
; º ॣ¨áâॠ3 º
|
||
; º º
|
||
; º 2.2 —⥨¥ ॣ¨áâà ¤ ëå, A8 = 1 º
|
||
; º „ ë¥ ¨§ ॣ¨áâà 3 ç¥à¥§ ¡ãä¥à 1 ¯¥à¥¤ îâáï ¢ ¯à®æ¥áá®à. º
|
||
; º - áâ à訩 ¡ ©â - HDD ¢ íâ®â ¬®¬¥â ¥ ¢ë¡¨à ¥âáï º
|
||
; º º
|
||
; º 3. ‡ ¯¨áì ¢á¥å ॣ¨áâ஢, ªà®¬¥ ॣ¨áâà ¤ ëå, A8 = 1 º
|
||
; º „ ë¥ á è¨ë Z80 ç¥à¥§ ¡ãä¥à 1 ¯¥à¥¤ îâáï è¨ã HDD. º
|
||
; º ’®«ìª® ¬« ¤è¨© ¡ ©â, áâ à訩 ¥ 㦥. º
|
||
; º º
|
||
; º 4.1 ‡ ¯¨áì ॣ¨áâà ¤ ëå, A8 = 0 º
|
||
; º „ ë¥ á è¨ë Z80 ç¥à¥§ ¡ãä¥à 2 ¯¥à¥¤ îâáï ¢ ॣ¨áâà 3. º
|
||
; º ’®«ìª® ¬« ¤è¨© ¡ ©â, áâ à訩 㦥 ¨ ® ®¦¨¤ ¥âáï ¢ á«¥¤ãî饬 º
|
||
; º 横«¥. HDD ¢ íâ®â ¬®¬¥â ¥ ¢ë¡¨à ¥âáï. º
|
||
; º º
|
||
; º 4.2 ‡ ¯¨áì ॣ¨áâà ¤ ëå, A8 = 1 º
|
||
; º „ ë¥ ¨§ ॣ¨áâà 3 ¯¥à¥¤ îâáï è¨ã HDD - ¬« ¤è¨© ¡ ©â. º
|
||
; º - áâ à訩 ¡ ©â - ç¥à¥§ ¡ãä¥à 2 ¯¥à¥¤ ¥âáï á ¯à®æ¥áá®à º
|
||
; º º
|
||
; º <EFBFBD>®ç¥¬ã ¯ãªâ 4.2 ®â«¨ç ¥âáï ®â 3, å®âï ®¯¥à 樨 ¯® ¢¨¤ã º
|
||
; º ®¤¨ ª®¢ë? º
|
||
; º <EFBFBD>®â®¬ã çâ® ¯¥à¥¤ 4.2 ¢á¥£¤ ¨¤¥â 4.1, ª®â®àë© ãáâ ¢«¨¢ ¥â º
|
||
; º âਣ¥à WRH ¢ ¥¤¨¨æã ¨, â ª¨¬ ®¡à §®¬ ¯¥à¥ª«îç ¥â ¯ãâì º
|
||
; º ¯à®å®¦¤¥¨ï ¡ ©â®¢. <EFBFBD>â® ¨ ¯®§¢®«ï¥â ¨á¯®«ì§®¢ âì ª®¬ ¤ë OUTI º
|
||
; º ¤«ï § ¯¨á¨ ᥪâ®à ¢ HDD º
|
||
; º º
|
||
; ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
|
||
|
||
; ŠŽ„› Ž˜ˆ<EFBFBD>ŽŠ, ‚އ‚<EFBFBD>€™€…Œ›… „ˆ‘ŠŽ‚މ ‘ˆ‘’…ŒŽ‰
|
||
; #08 ;Ž˜ˆ<CB9C>Š€ €„<E282AC>…‘€–ˆˆ
|
||
; #09 ;Š€<C5A0>€‹ <20>… <20><>ˆ‘Ž…„ˆ<E2809E>…<EFBFBD>
|
||
; #40 ;Ž˜ˆ<CB9C>Š€ €<><E282AC>€<EFBFBD>€’“<E28099>›
|
||
; #41 ;<3B>…‘ŽŽ’‚…’‘’‚ˆ… „<>€‰‚…<E2809A>€ €<><E282AC>€<EFBFBD>€’“<E28099>…
|
||
; #50 ;<3B>…„Ž<E2809E>“‘’ˆŒ›‰ <20>ŽŒ…<C592> „<>€‰‚…<E2809A>€ ‚ Š€<C5A0>€‹…
|
||
; #51 ;„<>€‰‚…<E2809A> Ž’‘“’‘’‚“…’
|
||
; #52 ;‡€<E280A1><E282AC>…™…<E284A2><E280A6>€Ÿ ŠŽŒ€<C592>„€
|
||
; #53 ;Ž˜ˆ<CB9C>Š€ ‚‚Ž„€/‚›‚Ž„€
|
||
; #54 ;‡€™ˆ’€ Ž’ ‡€<E280A1>ˆ‘ˆ
|
||
; #56 ;<3B>… Ž<><C5BD>€<EFBFBD>Ž’€<E28099><E282AC>€Ÿ ”€’€‹œ<E280B9>€Ÿ Ž˜ˆ<CB9C>Š€
|
||
; #59 ;<3B>…’ ƒŽ’Ž‚<C5BD>Ž‘’ˆ €<><E282AC>€<EFBFBD>€’“<E28099>› (TIMEOUT)
|
||
; #81 ;‘…Š’Ž<E28099> <20>… <20>€‰„…<E2809E>
|
||
; #82 ;€„<E282AC>…‘<E280A6>›‰ Œ€<C592>Š…<C5A0> <20>… <20>€‰„…<E2809E>
|
||
; #83 ;OVERRUN
|
||
; #84 ;Ž˜ˆ<CB9C>Š€ ‚ CRC
|
||
ENDMODULE
|
||
;-----------------------------------------------------------------------
|
||
|
||
;
|
||
/*
|
||
KBD_COM EQU #1B
|
||
KBD_DAT EQU #1A
|
||
COM_B EQU #1B
|
||
DAT_B EQU #1A
|
||
|
||
COM_A EQU #19
|
||
DAT_A EQU #18
|
||
|
||
LPT1_D EQU #1C
|
||
LPT1_C EQU #1D
|
||
LPT2_D EQU #1E
|
||
LPT2_C EQU #1F
|
||
|
||
STC0_C EQU #10
|
||
STC1_C EQU #11
|
||
STC2_C EQU #12
|
||
STC3_C EQU #13
|
||
*/
|
||
; !TODO ¯à¨¤ã¬ âì ª ª ®¡®§¢ âì, ç⮡ ¡ë«® ¯®ïâ® ª®£¤ ¯¨èãâ ¤«ï ¬ë誨, ª®£¤ ¤«ï ª« ¢ë ¨ â.¤.
|
||
MODULE Z84
|
||
;-------------------[Ports]
|
||
; Counter Timer Control
|
||
CTC:
|
||
.Ch_0 EQU #10 ; Control Register
|
||
.Ch_1 EQU #11 ; Control Register
|
||
.Ch_2 EQU #12 ; Control Register
|
||
.Ch_3 EQU #13 ; Control Register
|
||
; Serial I/O
|
||
SIO:
|
||
.Ch_A.Data EQU #18 ; Data register keyboard DAT_A
|
||
.Ch_A.Ctrl EQU #19 ; Control register keyboard COM_A
|
||
.Ch_B.Data EQU #1A ; Data register mouse DMOUSE
|
||
.Ch_B.Ctrl EQU #1B ; Control register mouse CMOUSE
|
||
; Parallel I/O
|
||
PIO:
|
||
.Port_A.Data EQU #1C ; Data register LPT 1
|
||
.Port_A.Command EQU #1D ; Command register LPT 1
|
||
.Port_B.Data EQU #1E ; Data register LPT 2
|
||
;⮫쪮 ç¥à¥§ ॣ¨áâà BC, ¨ ç¥ €«ìâ¥à ¯¥à¥å¢ â¨â
|
||
.Port_B.Command EQU #1F ; Command register LPT 2
|
||
; Watch Dog timer
|
||
WDT:
|
||
.Master_Reg EQU #F0 ; Master register WDTMR
|
||
.Control_Reg EQU #F1 ; Control register WDTCR
|
||
; Interrupt Priority Register
|
||
IntPrior_Reg EQU #F4
|
||
;System Control
|
||
SYS:
|
||
.Control EQU #EE ; System Control Register Pointer SCRP
|
||
.Data EQU #EF ; System Control Data Port SCDP
|
||
;------------------------[]
|
||
|
||
;-------------------[Regs ]
|
||
REG:
|
||
.WaitState_Ctrl EQU 00 ; Wait state control register WCR
|
||
.WaitState_MemBound EQU 01 ; Memory Wait state Boundary Register MWBR
|
||
.CS_Boundary EQU 02 ; Chip Select Boundary Register CSBR
|
||
.Misc_Ctrl EQU 03 ; Misc.Control Register MCR
|
||
;------------------------[]
|
||
ENDMODULE
|
||
;
|
||
|
||
;INIT_TIMER:
|
||
; LD A,#D5 ; 7-© ¡¨â à §à¥è¥¨¥ ¯à¥àë¢ ¨ï
|
||
; OUT (#12),A
|
||
; LD A,20
|
||
; OUT (C),A
|
||
; LD A,#55 ; 7-© ¡¨â à §à¥è¥¨¥ ¯à¥àë¢ ¨ï
|
||
; OUT (#13),A
|
||
; LD A,0
|
||
; OUT (C),A
|
||
; LD A,0 ; ¢¥ªâ®à ¯à¥àë¢ ¨ï
|
||
; OUT (#10),A
|
||
|
||
; LD A,TABLE/256
|
||
; LD I,A
|
||
; IM 2
|
||
|
||
;Disable:
|
||
; DI
|
||
; LD BC,#12 ; 2-nd timer
|
||
; LD A,#55 ; 7-© ¡¨â à §à¥è¥¨¥ ¯à¥àë¢ ¨ï
|
||
; OUT (C),A
|
||
; IM 1
|
||
; EI
|
||
; RET
|
||
|
||
|
||
;=======================================================================;
|
||
; <EFBFBD><EFBFBD>Ž <EFBFBD><EFBFBD>ˆŠŽ‹ ‚ˆ<EFBFBD>’€ ;
|
||
;=======================================================================;
|
||
; ¥á«¨ ª « ¯ãá⮩, â® ç¨â ¥âáï ¨§ ¯®àâ â®, çâ® ¡ë«® ¢ëáâ ¢«¥®
|
||
; ¯®á«¥¤¨¬ è¨ã c çñ⮣® ¤à¥á ¢ ¯ ¬ï⨠íâ® ¯¥à¢ë© ¨«¨ ¢â®à®©
|
||
; ¡ ©â ª®¤ ª®¬ ¤ë
|
||
; ALIGN 2 ; âãâ 㦮 ¢ëà ¢¨¢ ¨¥ ¯® § ¤ã¬ ë¬ ¤à¥á ¬ ¤«ï ª®¬ ¤ çâ¥¨ï ¨§ ¯®à⮢
|
||
; .CheckChanel: LD BC,IDE.Read.Status
|
||
; IN A,(C) ;#ED78 A=#78
|
||
; IN L,(C) ;#ED68 L=#68
|
||
; LD D,A
|
||
; IN A,(C) ;#ED60 A=#ED
|
||
; LD E,L
|
||
; ; ¥á«¨ ¯ãá⮩: DE=#7868, A=#ED
|
||
; ;
|
||
; LD HL,#7868 + #ED
|
||
; AND A
|
||
; SBC HL,DE
|
||
; XOR L
|
||
; RET NZ ; not absent
|
||
; SCF
|
||
; RET ; absent
|
||
;==============================================================================================================;
|
||
|
||
|
||
;=======================================================================;
|
||
; <EFBFBD><EFBFBD>Ž Š‚€„<EFBFBD>€’› ˆ<EFBFBD>’€ ;
|
||
;=======================================================================;
|
||
;INT_X = !DFF(GND,(SVIDEO.INTT & KEYS.int),,((/IO or /M1) & DFF(DFF(!INT_X,CTH2,,),CTH2,,))) or !CBL_INT;
|
||
;BORD = DFF( (MODE0[7..4] == 15), LWR_COL,,);
|
||
;INTTX = DFF( (BORD & MODE03 & MODE02 & MODE00), LWR_COL,,);
|
||
;
|
||
;INTT = DFF( !(INTTX & (CTV[2..0] == 7)), CT5,,);
|
||
;CTV - áçñâ稪 áâப, CT - áçñâ稪 ¯¨ªá¥«¥© ¢ ª¢ ¤à ⨪¥ (0-7), CTH - áçñâ稪 § ª®¬¥áâ
|
||
;
|
||
; | --- | --- | ---- | --- | --- | ---- |
|
||
; | S | R | C | D | Q+1 | !Q+1 |
|
||
; | --- | --- | ---- | --- | --- | ---- |
|
||
; | 1 | 0 | - | - | 1 | 0 |
|
||
; | 0 | 1 | - | - | 0 | 1 |
|
||
; | 1 | 1 | - | - | 1* | 1* |
|
||
; | 0 | 0 | 0->1 | 1 | 1 | 0 |
|
||
; | 0 | 0 | 0->1 | 0 | 0 | 1 |
|
||
; | 0 | 0 | 0 | - | Q | !Q |
|
||
; | --- | --- | ---- | --- | --- | ---- |
|
||
;384 448*320*6=860160 20966400 ⠪⮢ 41932800 448*312=139776 *6 =
|
||
;<EFBFBD> §à¥è¥¨¥ íªà 56 ª¢ ¤à ⮢ ¯® £®à¨§®â «¨ ¨ 39(40) ¯® ¢¥à⨪ «¨ (᪮௠¨«¨ ¯¥ì)
|
||
;
|
||
; - <EFBFBD> ª ªãî ®£ã âਣ£¥à ᨣ « ¨¤¥â?
|
||
; - ª«®ª, ¯® äà®âã ¢ë室 ª®¯¨àã¥âáï § 票¥ á ¤ âë
|
||
; - € ª®£¤ íâ® äà®â ¢®§¨ª ¥â?
|
||
; - ¯® ¨â㠮⠢¨¤¥®/ª« ¢ë
|
||
;
|
||
;‚ᥠ¦¥ ¯à®áâ®. <EFBFBD> ª¢ ¤à ⨪ å á ¨â®¬ INTT = 0, ®áâ «ìëå INTT = 1
|
||
;¯®«ãç ¥âáï, çâ® äà®â ¢®§¨ª ¥â ¯à¨ ¯¥à¥å®¤¥ á ª¢ ¤à ⨪ á ¨â®¬ ª¢ ¤à ⨪ ¡¥§ ¨â
|
||
;Žâ ª®«¨ç¥á⢠ª¢ ¤à ⮢ ¤«¨ ¨â ¥ § ¢¨á¨â
|
||
|
||
; Š®à®ç¥, ¯®£ «¨ ®â M1 ¨ IO. ލ ¢¬¥á⥠¢ ã«¥ ª®£¤ ¯à¥àë¢ ¨¥ ¯®¤â¢¥à¤¨«®áì. <EFBFBD>®«ì ¨å OR ¡ã¤¥â ⮫쪮
|
||
; ¯à¨ ¯®¤â¢¥à¦¤¥¨¨ ¯à¥àë¢ ¨ï. <EFBFBD>®«ì ã室¨â ¤ «ìè¥ AND ¨ ®ââ㤠S, ¯®á«¥ 祣® !Q ã
|
||
; á ⮦¥ ®«ì - ¨â áï«áï. …᫨ ¨â áï«áï ¨ à ¢¥ 0, â® 1 ¨¤ñâ á ¬ë© «¥¢ë© âਣ£¥à ¢ D, ®
|
||
; ¯¥à¥å®¤¨â á।¨© âਣ£¥à ⮫쪮 ¯® CTH2 - áçñâ稪 ¤«¨ë ¨â ª®â®àë© â¨ª ¥â ¥§ ¢¨á¨¬® ®â ⮣®, ¥áâì
|
||
; ® ¨«¨ ¥â. Š®£¤ ⨪¥â, ¥¤¨¨æ ¯¥à¥å®¤¨â ¤ «ìè¥ D ¨ ¦¤¥â ®¯ïâì ⨪ , ¯®á«¥ 祣® ¯®¯ ¤ ¥â AND,
|
||
; â ¬ ¢â®à®¬ ¢ë¢®¤¥ ⮦¥ 1, ¯®â®¬ã ç⮠ᨣ «ë M1 ¨ IO ¨¢¥àáë¥ ¨ ç¥à¥§ OR, ¢¬¥á⥠¢ ã«¥ ®¨ ⮫쪮
|
||
; ¯à¨ ¯®¤â¢¥à¦¤¥¨¨ ¨â . …¤¨¨æ ®ââ㤠¢âëª ¥âáï ¢ S, çâ® ¤ ñâ ¢®§¬®¦®áâì ¯¥à¥¤ âì ªã᮪ !§¥¬«¨ á D !Q
|
||
; ¯à¨ ¯¥à¥å®¤¥ ª«®ª á 0 ¢ 1. € â ª®© ¯¥à¥å®¤ ¡ã¤¥â ⮫쪮 ¢ áâப¥ á«¥¤ãî饣® ¯®á«¥ ¨â®¢®£® ¥¨â®¢®£®
|
||
; ª¢ ¤à ⨪ á 3 4 ¯¨ªá¥«. € á«¥¤ãî騩 ª¢ ¤à ⨪ á ¨â®¬ ¯®á«¥ ª¢ ¤à ⨪ ¨â ®ââ¢ ¥â £¥¥à æ¨î ¨â
|
||
; ᥡï. Š®à®ç¥, ¨â £¥¥à¨àã¥âáï ¯®á«¥ ¯¥à¥å®¤ á ª¢ ¤à ⠨⠪¢ ¤à â ¡¥§ ¨â . …᫨ â®ç¥¥, â® ¢®
|
||
; ¢à¥¬ï ¯à®à¨á®¢ª¨ ¯®á«¥¤¥© «¨¨¨ § ª®¬¥áâ á«¥¤ãî饬 § ª®¬¥áâ¥. „¢ ª¢ ¤à â ¨â ç¥à¥§ ®¡ëçë©
|
||
; ª¢ ¤à â ¥ ᬮ£ãâ ¯®¢«¨ïâì ¯®â®¬ã çâ® ¨â «¨¡® ¡ã¤¥â ¢áñ ¥éñ ¢¨á¥âì ¨ íâ® ¡ã¤¥â § ¬¥ 1 1))) «¨¡® ¨â
|
||
; ᨬ¥âáï ç¥à¥§ IO ¨ M1 ãáâ ®¢¨¢ S ¢ ¯®«®¦¥¨¥ ?¯®å¥à D ¨ C?, ª®â®à®¥ ᬥ¨âáï ⮫쪮 ¯®á«¥ ⮣® ª ª
|
||
; ¯à®â¨ª îâ «¥¢ë¥ áçñâ稪¨.
|
||
;==============================================================================================================;
|
||
|
||
|
||
;ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
|
||
;³ <EFBFBD>«®ª-‘奬 ‚¨¤¥®ª®â஫«¥à ³ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³
|
||
;³ Š®¬¯ìîâ¥à Sprinter ³ ³ RGB Registers ÃÄÄÄ> RED ³
|
||
;³ (á¨«ì® ã¯à®é¥ ï) ³ ³ & Video DACs ÃÄÄÄ> GREEN ³
|
||
;³ ³ ³ ÃÄÄÄ> BLUE ³
|
||
;ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ ÀÄÄÄÄÄÄÂÂÄÄÄÄÄÄÄÙ ³
|
||
;³ ÚÄÂÄÄÄ¿ ÚÄÄÄÄÄÄÄ¿ ³³ ÚÄÄÄÄÂÄÄÄÄÄÂÄÄÄÄ¿ ³
|
||
;³ CPU ÄÄÄ´ ³MXAÃÄÄÄ´ Video ÃÄÅÅÄ´MODE³Pixel³PAL ÃÄÄÄ· ³
|
||
;³ Adress ÄÄÄ´ ³ ÃÄÄÄ´ MEM ÃÄÅÅÄ´Reg ³Atrib³Reg ÃÄÄĶ ³
|
||
;³ ÃÄ´ ÃÄÄÄ´ ÃÄÅÅÄ´ ³ Reg ³ ÃÄÄĶ ³
|
||
;³ Y-port ÄÄÄ´ ³ ÃÄÄÄ´ ÃÄÅÅÄ´ ³ ³ ³.. º ³
|
||
;³ Graf Reg ÄÄÄ´ ³ ÃÄÄÄ´ ³ ³³ ³ ³ ³ ³.. º ³
|
||
;³ ÚÄÄÄÄÄÄÄÄÄÄÄÄ¿ ÃÄ´ ÃÄÄÄ´ ³ ³³ ³ ³ ³ ³.. º ³
|
||
;³ ³ Mode ÃÄÄÄ´ ³ ÃÄÄÄ´ ÃÄÅÅÄ´ ³ ³ ÃÄÄĶ ³
|
||
;³ ³ Counter ÃÄÄÄ´ ³ ÃÄÄÄ´ ÃÄÁÁÄ´ ³ ³ ÃÄÄĶ ³
|
||
;³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÙ ÃÄ´ ÃÄÄÄ´ ³ ÀÄÂÂÄÁÄÄÄÂÄÁÄÄÄÄÙ º ³
|
||
;³ ÖÄÄ Adress ÄÄÄ´ ³ ÃÄÄÄ´ ³ ³³ ÀÄÄÄÄÄÄÄÄ>Ķ ³
|
||
;³ ÇÄÄ From MODE ÄÄÄ´ ³ ÃÄÄÄ´ ³ ³ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄ>Ķ ³
|
||
;³ º ÚÄÄÄÄÄÄÄÄÄÄ¿ ÃÄ´ ÃÄÄÄ´ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ>Ķ ³
|
||
;³ º ³ Line/Pix ÃÄÄÄ´ ³ ÃÄÄÄ´ ³ º ³
|
||
;³ º ³ Counters ÃÄÄÄ´ ³ ÃÄÄÄ´ ³ º ³
|
||
;³ º ÀÄÄÄÄÄÄÄÄÄÄÙ ÃÄ´ ÃÄÄÄ´ ³ º ³
|
||
;³ ÇÄÄ Pixel/PAL ÄÄÄ´ ³ ÃÄÄÄ´ ³ º ³
|
||
;³ ÇÄÄ Registers ÄÄÄ´ ³ ÃÄÄÄ´ ³ º ³
|
||
;³ º ÀÄÁÄÄÄÙ ÀÄÄÄÄÄÄÄÙ º ³
|
||
;³ º º ³
|
||
;³ ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ ³
|
||
;ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
|
||
;³ Š ª à ¡®â ¥â ¢¨¤¥®ª®â஫«¥à? ³
|
||
;³ ³
|
||
;³ €¤à¥á ¢¨¤¥®¤ ëå á®áâ ¢«ï¥â 16 ¡¨â ³
|
||
;³ ˜¨à¨ è¨ë ¤ ëå ¢¨¤¥®-އ“ - 32 ¡¨â. ³
|
||
;³ ޤ®¢à¥¬¥® ¨á¯®«ì§ãîâáï ¤® 3 ¡ ©â. ³
|
||
;³ <EFBFBD>ਠ£à ä¨ç¥áª®© ¤à¥á 樨 ¢¨¤¥®-އ“ ¯à¥¤áâ ¢«ï¥â ᮡ®© 256 ³
|
||
;³ «¨¨© ¯® 1024 ¡ ©â . ‹¨¨¨ ¤à¥áãîâáï ç¥à¥§ Y-port, ¡ ©âë ¢ ³
|
||
;³ «¨¨¨ 10 ¬« ¤è¨¬¨ ¡¨â ¬¨ ¤à¥á ¯à®æ¥áá®à . ³
|
||
;³ ‚ ⥪á⮢®¬ ०¨¬¥ ¢¨¤¥®-އ“ ¯à¥¤áâ ¢«ï¥â ᮡ®© ¡®à ¨§ ³
|
||
;³ 32-å 8Kb áâà ¨æ, ª®â®àë¥ ¯®¤ª«îç îâáï ª ¯¥à¢®© ¯®«®¢¨¥ ³
|
||
;³ 5-© ¨ 7-© áâà ¨æë ¯ ¬ï⨠ZX-Spectrum. <EFBFBD>®¬¥à áâà ¨æë § ¤ ¥âáï³
|
||
;³ ⥬ ¦¥ Y-port-®¬. <EFBFBD>¥à¥ª«î票¥ ०¨¬ ¤à¥á 樨 ¯à®¨§¢®¤¨âáï ³
|
||
;³ ¯® ®¬¥àã áâà ¨æë އ“. ’ ª, ¤ ¦¥ ¥á«¨ ¢ 5-© ᯥªâà㬮¢áª®© ³
|
||
;³ áâà ¨æ¥ ®ª ¦¥âáï ãáâ ®¢«¥ áâà ¨æ 50h އ“, â® ¢¨¤¥®¯ ¬ïâì³
|
||
;³ ¡ã¤¥â ¤à¥á®¢ âìáï ª ª £à ä¨ç¥áª ï. ³
|
||
;³ ’¥ªá⮢ ï ¤à¥á æ¨ï ï¥âáï â ª ¦¥ ¨ ᯥªâà㬮¢áª®©. ³
|
||
;³ ” ªâ¨ç¥áª¨ ¢ ¢¨¤¥®-އ“ ¨¬¥¥âáï 32 ᯥªâà㬮¢áª¨å íªà , ¨§ ³
|
||
;³ ª®â®àëå ॠ«ì® ¬®¦® ¨á¯®«ì§®¢ âì 24, ¯®â®¬ã çâ® ³
|
||
;³ ®áâ «ìë¥ áâà ¨æë ¨á¯®«ì§ãîâáï ¤«ï ¯ «¨âàë ¨ ¤ ëå ०¨¬®¢ ³
|
||
;³ íªà . ³
|
||
;³ ³
|
||
;³ <EFBFBD>ªà ¯à¥¤áâ ¢«ï¥â ᮡ®© ¡®à § ª®¬¥áâ, ¢ ª®â®àëå ¬®¦® ³
|
||
;³ ¥§ ¢¨á¨¬® ãáâ ¢«¨¢ âì ०¨¬ ®â®¡à ¦¥¨ï ¨ä®à¬ 樨. ³
|
||
;³ Š ¦¤®¥ § ª®¬¥áâ® ¯® à §¬¥àã ᮮ⢥âáâ¢ã¥â ª¢ ¤à âã 8x8 ०¨¬ ³
|
||
;³ 320 â®ç¥ª ¢ «¨¨¨. ‚ᥣ® íªà ¥ 40x32 § ª®¬¥áâ. ”¨§¨ç¥áª¨ ³
|
||
;³ ¨¬¥¥âáï 64x64 § ª®¬¥áâ, ® ç áâì ¨§ ¨å ¨ª®£¤ ¥ ¯®¯ ¤ ¥â ³
|
||
;³ íªà , ç áâì 室¨âáï ¢ ®¡« á⨠¨¬¯ã«ìᮢ á¨åந§ 樨 ³
|
||
;³ ¨ £ è¥¨ï «ãç . ‚ ª ¦¤®¬ § ª®¬¥á⥠¬®¦® ãáâ ®¢¨âì ᢮© ³
|
||
;³ ०¨¬, ¢¯«®âì ¤® ãáâ ®¢ª¨ ०¨¬®¢ ¡®à¤¥à ¨ £ è¥¨ï «ãç . ³
|
||
;³ Žá®¢ë¥ ०¨¬ë, ãáâ ¢«¨¢ ¥¬ë¥ ¢ § ª®¬¥áâ å: ³
|
||
;³ ZX-40 ⥪áâ®¢ë© à¥¦¨¬ 40 ᨬ¢®«®¢ ¢ áâப¥ ¨«¨ 1 ᨬ¢®« ³
|
||
;³ § ª®¬¥áâ®. Ž ¦¥ ᯥªâà㬮¢áª¨©. ³
|
||
;³ ZX-80 ⥪áâ®¢ë© à¥¦¨¬ 80 ᨬ¢®«®¢ ¢ áâப¥ ¨«¨ 2 ᨬ¢®« ³
|
||
;³ § ª®¬¥áâ®. ³
|
||
;³ GR-256-8 £à ä¨ç¥áª¨© ०¨¬ 320x256 â®ç¥ª, 256 梥⮢. Ž ¦¥ ³
|
||
;³ 8x8 â®ç¥ª 256 梥⮢ ®¤® § ª®¬¥áâ® ³
|
||
;³ GR-16-16 £à ä¨ç¥áª¨© ०¨¬ 640x256 â®ç¥ª, 16 梥⮢. Ž ¦¥ ³
|
||
;³ 16x8 â®ç¥ª 16 梥⮢ ®¤® § ª®¬¥áâ® ³
|
||
;³ „®¯®«¨â¥«ìë¥ à¥¦¨¬ë: ³
|
||
;³ BORDER § ª®¬¥áâ® ¢ëᢥ稢 ¥âáï æ¢¥â®¬ ¡®à¤¥à ³
|
||
;³ BLANK § ª®¬¥áâ® § ⥬¥® ³
|
||
;³ INT-Mode ०¨¬ £¥¥à 樨 ᨣ « INT ¤¥©áâ¢ã¥â ⮫쪮 ³
|
||
;³ § ª®¬¥áâ å á ०¨¬®¬ BLANK ¨ ¯®§¢®«ï¥â ãáâ ¢«¨¢ âì INT ³
|
||
;³ ¢ 㦮¥ ¬¥áâ®, ¢¯«®âì ¤® ãáâ ®¢ª¨ 40 ¨¬¯ã«ìᮢ INT ª ¤à ³
|
||
;³ ³
|
||
;³ ’ ªâ®¢ ï ç áâ®â - 42MHz <EFBFBD>¥à¨®¤ - 6 ®¤®â ªâ®¢ëå æ¨ª«®¢ ³
|
||
;³ ³
|
||
;³ –¨ª«ë à á¯à¥¤¥«ïîâáï á«¥¤ãî騬 ®¡à §®¬: ³
|
||
;³ ³
|
||
;³ ’ ªâ 1 - ¢ë¡®àª ¡ ©â ¯¨ªá¥«¥© ⥪á⮢®£® ०¨¬ ³
|
||
;³ ¢ £à ä¨ç¥áª®¬ ०¨¬¥ - 宫®á⮩ 室 ³
|
||
;³ ’ ªâ 2 - ¢ë¡®àª ¡ ©â âਡã⮢ ⥪á⮢®£® ०¨¬ ³
|
||
;³ ® ¦¥ ¢ë¡®àª ¡ ©â ¯¨ªá¥«ï £à ä¨ç¥áª®£® ०¨¬ ³
|
||
;³ ’ ªâ 3 - ¢ë¡®àª 3-å ¡ ©â ¯ «¨âàë á § ¯¨áìî ¢ RGB ॣ¨áâàë ³
|
||
;³ ¤«ï ०¨¬®¢ 640 â®ç¥ª, ¢ ०¨¬¥ 320 宫®á⮩ 室 ³
|
||
;³ ’ ªâ 4 - ¢ë¡®àª á«®¢ ०¨¬ íªà ³
|
||
;³ ¢ë¡®àª ¯à®¨§¢®¤¨âáï ®¤¨ à § ¢ ç¥âëॠ¯¥à¨®¤ ³
|
||
;³ ’ ªâ 5 - 横« § ¯¨á¨ ¤ ëå ®â ¯à®æ¥áá®à ³
|
||
;³ ¥áâ¥á⢥®, ¤ ë¥ ¯¨èãâáï ⮫쪮 ª®£¤ 㦮 ³
|
||
;³ ’ ªâ 6 - ¢ë¡®àª 3-å ¡ ©â ¯ «¨âàë á § ¯¨áìî ¢ RGB ॣ¨áâàë ³
|
||
;³ ³
|
||
;³ ‚á¥ ç¨ ¥âáï á â ªâ 4. €¤à¥á ¤«ï ०¨¬ ®¯à¥¤¥«ï¥âáï ³
|
||
;³ áç¥â稪®¬ ¢¥à⨪ «¨ ¨ £®à¨§®â «¨. ‘ç¨â îâáï 8 â®ç¥ª 320-£® ³
|
||
;³ ०¨¬ ¯® ¢¥à⨪ «¨ ¨ 8 áâப ¯® £®à¨§®â «¨. ³
|
||
;³ <EFBFBD>¥¦¨¬ § ¤ ¥âáï 16 ¡¨â ¬¨, ¨§ ª®â®àëå 12 § ¤ îâ ¤à¥á ª¢ ¤à â ³
|
||
;³ 8x8 ¡ ©â £à ä¨ç¥áª®£® ०¨¬ . ‚ ⥪á⮢®¬ ०¨¬¥ í⨠¦¥ ¡¨âë ³
|
||
;³ § ¤ îâ ¤à¥á ¤ ëå íªà , ® ¥áª®«ìª® ¨ ç¥. ³
|
||
;³ Žá⠢訥áï 4 ¡¨â ०¨¬ § ¤ îâ ᮡá⢥® ०¨¬. ޤ¨ ¡¨â ³
|
||
;³ § ¤ ¥â £à ä¨ç¥áª¨© ¨«¨ ⥪áâ®¢ë© à¥¦¨¬ § ª®¬¥áâ . …é¥ ®¤¨ ³
|
||
;³ ¡¨â § ¤ ¥â ०¨¬ 320 ¨«¨ 640 â®ç¥ª. „¢ ®áâ ¢è¨åáï ¡¨â ¢ ³
|
||
;³ ⥪á⮢®¬ ०¨¬¥ ïîâáï ¤®¯®«¥¨¥¬ ¤à¥á ¤ ëå, ¢ ³
|
||
;³ £à ä¨ç¥áª®¬ § ¤ îâ ®¤ã ¨§ 4-å 256-â¨æ¢¥âëå ¯ «¨âà ³
|
||
;³ ³
|
||
;³ ‘ ¯ïâë¬ â ªâ®¬ ¢á¥ ïá®. ‡ ¨áª«î票¥¬ ⮣®, çâ® ¤«ï ³
|
||
;³ £à ä¨ç¥áª®£® ¨ ⥪á⮢®£® ०¨¬®¢ ¨§¬¥ï¥âáï ¤à¥á æ¨ï އ“ ³
|
||
;³ ˆ§¬¥¥¨¥ § ¤ ¥âáï ®¬¥à®¬ áâà ¨æë ‘âà ¨æë 50..5F áç¨â îâáï ³
|
||
;³ £à ä¨ç¥áª¨¬ އ“. ‘«¥¤ã¥â ®â¬¥â¨âì, çâ® ¯®ï⨥ £à ä¨ç¥áª®£® ¨ ³
|
||
;³ ⥪á⮢®£® ०¨¬ ¤à¥á 樨 ¥ ᮢᥬ ¢¥à® ®âà ¦ ¥â áãâì. ³
|
||
;³ ‚뢮¤ ¤ ëå ¢ íªà ®¥ އ“ ¬®¦¥â ®áãé¥á⢫ïâìáï ¢ ®¡®¨å ³
|
||
;³ ०¨¬ å ¥§ ¢¨á¨¬® ®â ¤¥©á⢨⥫쮣® ०¨¬ íªà . ³
|
||
;³ ³
|
||
;³ 6-© â ªâ. —⥨¥ ¯ «¨âàë. ‚ ⥪á⮢®¬ ०¨¬¥ ¤à¥á ¯ «¨âàë ³
|
||
;³ á®áâ ¢«ï¥â 10 ¡¨â. 8 ¡¨â - ¡ ©â âਡãâ . 1 ¡¨â - ¯¨ªá¥«ì. ³
|
||
;³ 1 ¡¨â - FLASH. <EFBFBD>â®â ¡¨â ä ªâ¨ç¥áª¨ ¯¥à¥ª«îç ¥â ¤¢¥ ¯ «¨âàë ³
|
||
;³ á ç áâ®â®© FLASH. …᫨ ¯ «¨âàë ¤«ï ¤ ®£® âਡãâ ᮢ¯ ¤ îâ ³
|
||
;³ â® FLASH ¥ ¡«î¤ ¥âáï. ³
|
||
;³ ‚ £à ä¨ç¥áª®¬ ०¨¬¥ ¤à¥á ¯ «¨âàë á®áâ ¢«ï¥â 8 ¡¨â ¡ ©â ³
|
||
;³ ¯¨ªá¥«ï ¨ 2 ¡¨â ®¬¥à ¯ «¨âàë, áç¨â ®£® ¢ 4-¬ â ªâ¥, ® ³
|
||
;³ § ¤¥à¦ ®£® 1 ¯¥à¨®¤ ¤«ï á¨åà®®£® ¨§¬¥¥¨ï ०¨¬ ³
|
||
;³ ¨ ¯ «¨âàë ¢ § ª®¬¥áâ¥. ³
|
||
;³ …é¥ ®¤¨ ¡¨â ¤à¥á ¨á¯®«ì§ã¥âáï ¤«ï à §¤¥«¥¨ï ¯ «¨âà ³
|
||
;³ ⥪á⮢®£® ¨ £à ä¨ç¥áª®£® ०¨¬®¢. Žá⠢訥áï ¤à¥á އ“ ³
|
||
;³ ãáâ ¢«¨¢ îâáï ¢ "1" ¨ ¢áï ¯ «¨âà ®ª §ë¢ ¥âáï ª®æ å ³
|
||
;³ 1024-å ¡ ©â®¢ëå «¨¨© £à ä¨ç¥áª®£® ०¨¬ . ³
|
||
;³ ³
|
||
;³ ’ ªâ 1. ‡¤¥áì ç¨ ¥â ¤¥©á⢮¢ âì ®¢ë© ०¨¬, áç¨â ë© ¢ ³
|
||
;³ ⠪⥠4. €¤à¥á އ“ ï¥âáï ¤à¥á®¬ ¡ ©â ¯¨ªá¥«¥© ⥪á⮢®£® ³
|
||
;³ ०¨¬ . <EFBFBD> ©â ¯¨ªá¥«¥© § ¯¨áë¢ ¥âáï ¢ ᤢ¨£®¢ë© ॣ¨áâà ¨ ³
|
||
;³ ¯¥à¢ë© ¢ë¤¢¨ãâë© ¡¨â ç¨ ¥â ¤¥©á⢮¢ âì ¢ 6-¬ â ªâ¥. ³
|
||
;³ ³
|
||
;³ ’ ªâ 2. ‚ë¡¨à ¥âáï ¡ ©â âਡãâ . €¤à¥á ®â«¨ç ¥âáï ®â ¤à¥á ³
|
||
;³ ¡ ©â ¯¨ªá¥«¥© ¯® ¨§¢¥á⮬㠑¯¥ªâà㬮¢áª®¬ã § ª®ã. ³
|
||
;³ …᫨ ¯¥à¥¤ í⨬ ¢ 4-¬ ⠪⥠¡ë« áç¨â £à ä¨ç¥áª¨© ०¨¬, â® ³
|
||
;³ €¤à¥á âਡãâ áâ ®¢¨âáï ¤à㣨¬ ¨ ᮮ⢥âáâ¢ã¥â ¡ ©âã ¯¨ªá¥«ï³
|
||
;³ £à ä¨ç¥áª®£® ०¨¬ . <EFBFBD>¥£¨áâà âਡãâ ¢ £à ä¨ç¥áª®¬ ०¨¬¥ ³
|
||
;³ ï¥âáï ॣ¨áâ஬ ¡ ©â ¯¨ªá¥«ï. ³
|
||
;³ ³
|
||
;³ ’ ªâ 3. —⥨¥ ¯ «¨âàë ¤«ï ०¨¬ 640 â®ç¥ª. ‘«¥¤ã¥â § ¬¥â¨âì ³
|
||
;³ çâ® ¢ £à ä¨ç¥áª®¬ ०¨¬ 640 â®ç¥ª, 4 áâ àè¨å ¡¨â ॣ¨áâà ³
|
||
;³ ¯¨ªá¥«ï ¬ ᪨àãîâáï ã«ï¬¨ ¨ ¢ í⮬ ⠪⥠¢ ¬« ¤è¨å ¡¨â å ³
|
||
;³ ¤à¥á ®ª §ë¢ îâáï ⥠ç¥âëॠ¡¨â , ª®â®àë¥ ¡ë«¨ § ¬ ᪨஢ ë ³
|
||
;³ ¢ 6-¬ â ªâ¥. ’ ª ®à£ ¨§ã¥âáï 16 梥⮢ â®çªã. ³
|
||
;³ ³
|
||
;ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
|
||
;³ <EFBFBD>à®£à ¬¬¨à®¢ ¨¥. ³
|
||
;³ 1. ’¥ªáâ®¢ë© à¥¦¨¬ ¤à¥á 樨 ®¡êï¥âáï ®â¬¨à î騬 ¨ ¥£® ³
|
||
;³ ¨á¯®«ì§®¢ ¨¥ à §à¥è¥® ⮫쪮 ¤«ï ª®ä¨£ãà æ¨© ᮢ¬¥á⨬ëå á ³
|
||
;³ ZX-Spectrum. ’.¥. Sprinter-1 ¨ AY. (¢ AY ¤à㣮£® ¨ ¥â) ³
|
||
;³ 2. ‚ª«î票¥ £à ä¨ç¥áª®£® ०¨¬ ¤à¥á 樨. ³
|
||
;³ „«ï í⮣® ¤®áâ â®ç® ¢ª«îç¨âì áâà ¨æã 50..5F ¢ ª ª®¥ «¨¡® ¨§ ³
|
||
;³ ®ª® ¯à®æ¥áá®à . ³
|
||
;³ <EFBFBD>ਬ¥à: ³
|
||
;³ LD A,50h ³
|
||
;³ OUT (PAGE3),A ³
|
||
;³ <EFBFBD>®á«¥ ¨á¯®«¥¨ï íâ¨å ª®¬ ¤ ®ª® C000..FFFF ¡ã¤¥â ᮤ¥à¦ âì ³
|
||
;³ ¤ ë¥ £à ä¨ç¥áª®© ¯ ¬ï⨠(¢¥à¥¥, ¥¥ ª®¯¨¨ ¢ ®á®¢®¬ އ“) ³
|
||
;³ 3. “áâ ®¢ª ®¬¥à «¨¨¨. ³
|
||
;³ ƒà ä¨ç¥áª®¥ އ“, ª ª 㦥 ¡ë«® ᪠§ ®, á®á⮨⠨§ 256-⨠«¨¨©³
|
||
;³ ¯® 1024 ¡ ©â. ‚ ®ª¥ ¡ã¤¥â ¢¨¤ ⮫쪮 ®¤ «¨¨ï. €¤à¥á ³
|
||
;³ ®â«¨ç î騥áï ç¨á«® ªà ⮥ 400h 䨧¨ç¥áª¨ ¤à¥áãîâ ®¤¨ ¨ ³
|
||
;³ ⥠¦¥ ï祩ª¨ ¯ ¬ïâ¨. ³
|
||
;³ „«ï ¨§¬¥¥¨ï ®¬¥à «¨¨¨ ¤® ¢ë¢¥á⨠®¬¥à «¨¨¨ ¢ ¯®àâ. ³
|
||
;³ LD A,40h ³
|
||
;³ OUT (Y_port),A ³
|
||
;³ <EFBFBD>®á«¥ ¨á¯®«¥¨ï íâ¨å ª®¬ ¤ á ¤à¥á ¢ ®ª¥ ¢¨¤¥®-އ“ ¡ã¤¥â ³
|
||
;³ 室¨âìáï 64-ï «¨¨ï íªà ( ç¨ ï ᢥàåã, á 0-©) ³
|
||
;³ 4. Š ¦¤ë© ª¢ ¤à â ¢¨¤¥®-އ“ à §¬¥à®¬ 8x8 ¡ ©â ¬®¦¥â ¡ëâì ³
|
||
;³ ãáâ ®¢«¥ ¢ «î¡®¥ § ª®¬¥áâ®. €¤à¥á ¢ãâਠª¢ ¤à â ¥áâì ³
|
||
;³ ¬« ¤è¨¥ âਠ¡¨â ¤à¥á «¨¨¨ ¨ ¬« ¤è¨¥ âਠ¡¨â ®¬¥à «¨¨¨.³
|
||
;³ <EFBFBD> ©âë 000..2FFh «¨¨ïå ïîâáï ¯à®áâ묨 ¤ 묨, ª®â®àë¥ ³
|
||
;³ ¬®¦® ¨á¯®«ì§®¢ âì ¤«ï ¢ë¢®¤ íªà . ³
|
||
;³ <EFBFBD> ©âë 300h..3A0h ïîâáï ¡ ©â ¬¨ ०¨¬ íªà . ³
|
||
;³ <EFBFBD> ©âë 3E0h..3FFh - ¡ ©âë ¯ «¨âà. ³
|
||
;³ €¤à¥á ª¢ ¤à â ¤ ëå, ª®â®àë¥ ¢ë¢®¤¨âáï ¢ § ª®¬¥áâ® § ¤ ¥âáï³
|
||
;³ ¢ ¡ ©â å ०¨¬ íªà . ³
|
||
;ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
|
||
;__________________________________________________________________________________________________________#
|
||
; MACRO _mGET_FAT_START slot_num
|
||
; .correct EQU (SLOT3 and slot_num)*2
|
||
|
||
; IN A,(slot_num)
|
||
; LD B,A
|
||
; LD A,SYS_PAGE
|
||
; OUT (slot_num),A
|
||
; LD HL,SYS_PAGE.RAM_TABLE - .correct
|
||
|
||
; DISPLAY "CORRECT = ",/h,.correct
|
||
; ENDM
|
||
|
||
; MACRO _mGET_FAT_END slot_num
|
||
; OUT (slot_num),A
|
||
; ENDM
|
||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||
;
|
||
; DW #FEFF ; Sprinter-2000
|
||
;
|
||
; DW #FFFE ; Sprinter-1
|
||
; DB 0 ; ªá¥«¥à â®à
|
||
; DB 1 ; íªà
|
||
; DB 2 ; ª« ¢¨ âãà
|
||
; DB 1 ; ª®¢®ªá;
|
||
;
|
||
; DW #FFFD ; Sprinter-2
|
||
; DB 2 ; ªá¥«¥à â®à
|
||
; DB 1 ; íªà
|
||
; DB 0 ; ª« ¢¨ âãà
|
||
; DB 1 ; ª®¢®ªá;
|
||
;
|
||
; DW #FFFC ; AY
|
||
; DB 0 ; ccselerator
|
||
; DB 0 ; Screen
|
||
; DB 2 ; ª« ¢¨ âãà
|
||
; DB 0 ; ª®¢®ªá;
|
||
;
|
||
; DW #FFF9 ; ¨¤¥â¨ä¨ª â®à ª®ä¨£ãà æ¨¨ DooM
|
||
; DB 3 ; accelerator type
|
||
; DB 1 ; íªà
|
||
; DB 0 ; ª« ¢¨ âãà
|
||
; DB 2 ; ª®¢®ªá (¡« áâ¥à)
|
||
;
|
||
|
||
;ELCOM256 EQU 1 ; ०¨¬ ELCOM-256
|
||
;IF ELCOM256 EQ 1
|
||
;ELSE
|
||
;D_TBON EQU 03h ; ¤ ë¥ ¤«ï ¢ª«î票ï TURBO
|
||
;D_TBOFF EQU 02h ; ¤ ë¥ ¤«ï ¢ª«î票ï TURBO
|
||
;D_ROM16ON EQU 40h
|
||
;D_ROM16OFF EQU 00h
|
||
;CNF_0 EQU 04h
|
||
;CNF_1 EQU 0Ch
|
||
;CNF_2 EQU 14h
|
||
;CNF_3 EQU 1Ch
|
||
;ENDIF
|
||
|
||
;TTTT_EEEE EQU 100
|
||
|
||
|
||
;R170 EQU #0050 ;Data
|
||
;R171 EQU #0051 ;Error
|
||
;R172 EQU #0052 ;Direct
|
||
;R173 EQU #0053 ;Reserve
|
||
;R174 EQU #0054 ;Lenght block low
|
||
;R175 EQU #0055 ;Lenght block high
|
||
;R176 EQU #4052 ;Drive device
|
||
;R177 EQU #4053 ;Status
|
||
;W170 EQU #0150 ;Data
|
||
;W171 EQU #0151 ;????
|
||
;W172 EQU #0152 ;????
|
||
;W173 EQU #0153 ;Reserve
|
||
;W174 EQU #0154 ;Lenght block low
|
||
;W175 EQU #0155 ;Lenght block high
|
||
;W176 EQU #4152 ;Drive device
|
||
;W177 EQU #4153 ;Command
|
||
;HDW_COM EQU #4153 ; #1F7 Command
|
||
;P_CMD EQU #4153 ; WRITE
|
||
;HDW_DRV EQU #4152 ; #1F6 Drive Control
|
||
;P_HD_CS EQU #4152
|
||
;HDW_CLH EQU #0155 ; #1F5 Cylinder High
|
||
;P_C_HIG EQU #0155
|
||
;HDW_CLL EQU #0154 ; #1F4 Cylinder Low
|
||
;P_C_LOW EQU #0154
|
||
;HDW_SEC EQU #0153 ; #1F3 Sector
|
||
;P_S_NUM EQU #0153
|
||
;HDW_CNT EQU #0152 ; #1F2 Counter
|
||
;P_S_CNT EQU #0152
|
||
;HDW_ERR EQU #0151 ; #1F1 Error
|
||
;HDW_DAT EQU #0150 ; #1F0 Data
|
||
;HDR_CTL EQU #4053 ; #1F7 Status (Control)
|
||
;P_HDST EQU #4053 ; READ
|
||
;HDR_DRV EQU #4052 ; #1F6 Drive Control
|
||
;HDR_CLH EQU #0055 ; #1F5 Cylinder High
|
||
;HDR_CLL EQU #0054 ; #1F4 Cylinder Low
|
||
;HDR_SEC EQU #0053 ; #1F3 Sector
|
||
;HDR_CNT EQU #0052 ; #1F2 Counter
|
||
;HDR_ERR EQU #0051 ; #1F1 Error
|
||
;P_ERR EQU #0051 ; READ
|
||
;HDR_DAT EQU #0050 ; #1F0 Data
|
||
;P_DATS EQU #0050 ; READ/WRITE INIR/OTIR
|
||
|
||
;;Bits for HDR_CTL
|
||
;;---[]
|
||
;BSY EQU 7
|
||
;RDY EQU 6
|
||
;DRQ EQU 3
|
||
;ERR EQU 0
|
||
;;---[]
|
||
;HDD EQU 1
|
||
;CDROM EQU 2
|
||
;;EQU FOR IY+
|
||
;DRVHD_H EQU 0
|
||
;SC_PT_H EQU 1
|
||
;HEADS_H EQU 2
|
||
;CYL_L_H EQU 3
|
||
;CYL_H_H EQU 4
|
||
;SPCLL_H EQU 5
|
||
;SPCLH_H EQU 6
|
||
;DTYPE_H EQU 7
|
||
|
||
;IDE0 EQU #C1C0
|
||
;IDE1 EQU #C1C8
|
||
;IDE2 EQU #C1D0
|
||
;IDE3 EQU #C1D8
|
||
|
||
;HDD_INI_TABLE EQU #C1C0
|
||
|
||
|
||
; D_TBON EQU 3 ; ¤ ë¥ ¤«ï ¢ª«î票ï TURBO
|
||
; D_TBOFF EQU 2 ; ¤ ë¥ ¤«ï ¢ëª«î票ï TURBO
|
||
|
||
; CNF_0 EQU #04 ; ª àâ ¯®à⮢ 0
|
||
; CNF_1 EQU #0C ; ª àâ ¯®à⮢ 1
|
||
; CNF_2 EQU #14 ; ª àâ ¯®à⮢ 2
|
||
; CNF_3 EQU #1C ; ª àâ ¯®à⮢ 3
|
||
; CNF_512 EQU #80 ; ¢ª«î票¥ Pentagon 128
|
||
|
||
|
||
; áâà ¨æë á ª®ä®© ¤«ï Sp97, ¤«ï ᮢ¬¥á⨬®áâ¨ á ¤à¥¢¨¬¨ ¯à®£ ¬¨
|
||
; PG_SP1 equ #EC
|
||
; PG_SP2 equ #EE
|
||
; PG_AY equ #EA
|
||
|
||
; SPRINTER EQU 4 ; ‚…<EFBFBD>‘ˆŸ !!!
|
||
; ISD_WARM EQU 3
|
||
; ISD_COLD EQU 0
|
||
; IS_KEY EQU #40 ; „€<E2809E><E282AC>›… „‹Ÿ ‚›‚Ž„€ ‚ <20>Ž<EFBFBD>’ <20><>ˆ ‚Š‹ž—…<E28094>ˆˆ IS-DOS
|
||
; IS_RAM_ADR EQU #5BC0 ; €„<E282AC>…‘ ‡€ƒ<E282AC>“‡Šˆ <20><>Žƒ<C5BD>€ŒŒ› <20>…<EFBFBD>…•Ž„€ ‚ IS-DOS
|
||
; TB_WAITES EQU #00 ; WAITë ¤«ï TURBO-MODE
|
||
; NTB_WAITES EQU #00 ; WAITë ¤«ï neTURBO-MODE
|
||
; IS_WAITES EQU #00 ; WAITë ¤«ï IS-DOS
|
||
|
||
; SYS_PORT_ON EQU #7D
|
||
; SYS_PORT_OFF EQU #3D
|
||
|
||
; RAMD_LET EQU ('R' - 'A')
|
||
|
||
; HD_HEADS EQU 5
|
||
; HD_CS EQU #A0
|
||
|
||
; HD_S_P_T EQU 17
|
||
; HD_S_X_H EQU (HD_S_P_T * HD_HEADS) ; ??? ç¨á«® ᥪâ®à®¢ 樫¨¤à¥
|
||
|
||
; P_DATS EQU #50 ; READ/WRITE INIR/OTIR
|
||
|
||
; P_ERR EQU #051 ; READ
|
||
; P_PREC EQU #151 ; WRITE
|
||
|
||
; P_S_CNT EQU #152
|
||
; P_S_NUM EQU #153
|
||
; P_C_LOW EQU #154
|
||
; P_C_HIG EQU #155 ;<-\
|
||
; P_HD_CS EQU #4152 ;<-/
|
||
|
||
; P_HDST EQU #4053 ; READ
|
||
; P_CMD EQU #4153 ; WRITE
|
||
|
||
; P_HD3F6 EQU #4154 ; WRITE 3F6
|
||
; P_HD3F7 EQU #4055 ; READ 3F7
|
||
|
||
|
||
;---------------------------------------
|
||
; GR_BIT_END EQU 7
|
||
|
||
; S_BIT_END EQU 7
|
||
; S_BIT_LIN EQU 6
|
||
; S_BIT_MOD EQU 5
|
||
|
||
; BIT_1440 EQU 1
|
||
; BIT_MASK_1440 EQU %00000010
|
||
|
||
; ¥á«¨ à㤨¬¥â, â® ã¡à âì ¨§ १¥à¢¨à®¢ ¨ï ¢ â ¡«¨æ¥ áâà ¨æ
|
||
;MODE_PAGE EQU #FC
|
||
;---------------------------------------
|
||
|
||
;=================================================================================
|
||
; <EFBFBD>®pâë Sprinter. (¡ ©âë PORT_X)<<
|
||
; 0 - port FF<<
|
||
; 1 - port keyboard<<
|
||
; 2 - port BORDER<<
|
||
; 3 - port 1FFDh<<
|
||
; 4 - port 7FFDh<<
|
||
; 5 - port 3FFDh<<
|
||
; 6 - port Start-ROM<<
|
||
; 7 - port Start-ROM-ALT<<
|
||
; 8 - port ROM-BASIC48<<
|
||
; 9 - port ROM-BASIC128<<
|
||
; 10 - port ROM-TR-DOS<<
|
||
; 11 - port ROM-EXPANSION<<
|
||
; 12 - port ROM-BASIC48-ALT<<
|
||
; 13 - port ROM-BASIC128-ALT<<
|
||
; 14 - port ROM-TR-DOS-ALT<<
|
||
; 15 - port ROM-EXPANSION-ALT<<
|
||
; 16 ??<<
|
||
; .. ??<<
|
||
; 31 ???ports RAM-PAGES - ¯®pâë 㪠§ë¢ î騥, ª ª ï áâp ¨æ އ“<<
|
||
; ¯®¤ª«îç¥ ¢ ª ç¥á⢥ áâp ¨æë 0..F ¢ ª®ä¨£ãp 樨 Scorpion.<<
|
||
; 33 - port RAM-0 áâp ¨æ އ“ ¯®¤ª«îç ¥¬ ï ¢ ã«¥¢®¥ ®ª® ¯p®æ¥áá®p <<
|
||
; 34 - port RAM-5 áâp ¨æ އ“ ¯®¤ª«îç ¥¬ ï ¢ ¯¥p¢®¥ ®ª® ¯p®æ¥áá®p <<
|
||
; 35 - port RAM-2 áâp ¨æ އ“ ¯®¤ª«îç ¥¬ ï ¢® ¢â®p®¥ ®ª® ¯p®æ¥áá®p <<
|
||
; 36 - port CONFIG<<
|
||
; 37 - port COVOX-1<<
|
||
; 38 - port COVOX-2<<
|
||
; 39 - port AY-3-8910-adr<<
|
||
; 40 - port AY-3-8910-dat<<
|
||
; 41 - port KEMPSTON<<
|
||
; 42 - port ISA-interface<<
|
||
; 43 ??reserv<<
|
||
; .. ??<<
|
||
; 47 ??<<
|
||
; 48 - 51 ¯®pâë ‚ƒ93<<
|
||
; 52 - ¯®pâ DOS-1<<
|
||
; 53 - ¯®pâ DOS-2<<
|
||
; 54 ?? á«ã¦¥¡ë¥ ¯®pâë<<
|
||
; .. ??<<
|
||
; 63 ??<<
|
||
; 64 ?? ¯®pâë IDE interface<<
|
||
; .. ??<<
|
||
; 79 ??<<
|
||
; 80..127 - p¥§¥p¢.<<
|
||
; 128..143 - ¯®pâë ¨¤¥â¨ä¨ª â®p ¬ è¨ë ( ⮫쪮 ¤«ï ç⥨ï.)<<
|
||
; 144..254 - p¥§¥p¢<<
|
||
; 255 - ã«ì-¯®pâ - ®âª«î祮¥ á®áâ®ï¨¥.<<
|
||
;================================================================================= |