Rev 1120 | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
585 | savelij | 1 | |
1186 | savelij | 2 | ; LAST UPDATE: 16.02.2025 savelij |
585 | savelij | 3 | |
1026 | savelij | 4 | TITLE "addon1.a80 ROM_RST81" |
764 | savelij | 5 | |
1186 | savelij | 6 | PHASE CPU0 |
585 | savelij | 7 | JP $ |
8 | |||
1186 | savelij | 9 | DB 0x0008 - $ DUP 0xFF |
585 | savelij | 10 | JP $ |
11 | |||
1186 | savelij | 12 | DB 0x0010 - $ DUP 0xFF |
585 | savelij | 13 | JP $ |
14 | |||
1186 | savelij | 15 | DB ADR_SEL_ROM - $ DUP 0xFF |
1031 | savelij | 16 | OUT (C),A ; 0014 |
585 | savelij | 17 | NOP |
18 | RET |
||
19 | |||
1186 | savelij | 20 | DB 0x0018 - $ DUP 0xFF |
585 | savelij | 21 | JP $ |
22 | |||
1186 | savelij | 23 | DB 0x0020 - $ DUP 0xFF |
585 | savelij | 24 | JP $ |
25 | |||
1186 | savelij | 26 | DB 0x0028 - $ DUP 0xFF |
585 | savelij | 27 | JP $ |
28 | |||
1186 | savelij | 29 | DB 0x0030 - $ DUP 0xFF |
585 | savelij | 30 | JP CALL2PAGE |
31 | |||
1186 | savelij | 32 | DB ADR_PERFECT - $ DUP 0xFF |
596 | savelij | 33 | DW PERFECTCOM |
34 | |||
1186 | savelij | 35 | DB 0x0038 - $ DUP 0xFF ; 0038 |
585 | savelij | 36 | EI |
37 | RET |
||
38 | |||
1186 | savelij | 39 | DB 0x003E - $ DUP 0xFF |
623 | savelij | 40 | EI |
41 | RET |
||
42 | |||
1186 | savelij | 43 | DB 0x0040 - $ DUP 0xFF |
1026 | savelij | 44 | JP INSTALL_NMIRST ; ⠭ ࠡ稪 NMI RST |
585 | savelij | 45 | |
1186 | savelij | 46 | DB 0x0080 - $ DUP 0xFF |
585 | savelij | 47 | binclude ../../dec40.bin |
48 | |||
1186 | savelij | 49 | DB 0x00FF - $ DUP 0xFF |
1026 | savelij | 50 | DW 0x0038 |
585 | savelij | 51 | |
1186 | savelij | 52 | PHASE $ + 0x4000 |
585 | savelij | 53 | include rst8_data.a80 |
54 | |||
1186 | savelij | 55 | PHASE $ & 0x3FFF |
585 | savelij | 56 | |
1186 | savelij | 57 | DB (HIGH ($) + 1) * 0x100 - $ DUP 0xFF |
1026 | savelij | 58 | BUF_CRC16_TABL DB 0x00,0x10,0x20,0x30,0x40,0x50,0x60,0x70,0x81,0x91,0xA1,0xB1,0xC1,0xD1,0xE1,0xF1 |
59 | DB 0x12,0x02,0x32,0x22,0x52,0x42,0x72,0x62,0x93,0x83,0xB3,0xA3,0xD3,0xC3,0xF3,0xE3 |
||
60 | DB 0x24,0x34,0x04,0x14,0x64,0x74,0x44,0x54,0xA5,0xB5,0x85,0x95,0xE5,0xF5,0xC5,0xD5 |
||
61 | DB 0x36,0x26,0x16,0x06,0x76,0x66,0x56,0x46,0xB7,0xA7,0x97,0x87,0xF7,0xE7,0xD7,0xC7 |
||
62 | DB 0x48,0x58,0x68,0x78,0x08,0x18,0x28,0x38,0xC9,0xD9,0xE9,0xF9,0x89,0x99,0xA9,0xB9 |
||
63 | DB 0x5A,0x4A,0x7A,0x6A,0x1A,0x0A,0x3A,0x2A,0xDB,0xCB,0xFB,0xEB,0x9B,0x8B,0xBB,0xAB |
||
64 | DB 0x6C,0x7C,0x4C,0x5C,0x2C,0x3C,0x0C,0x1C,0xED,0xFD,0xCD,0xDD,0xAD,0xBD,0x8D,0x9D |
||
65 | DB 0x7E,0x6E,0x5E,0x4E,0x3E,0x2E,0x1E,0x0E,0xFF,0xEF,0xDF,0xCF,0xBF,0xAF,0x9F,0x8F |
||
66 | DB 0x91,0x81,0xB1,0xA1,0xD1,0xC1,0xF1,0xE1,0x10,0x00,0x30,0x20,0x50,0x40,0x70,0x60 |
||
67 | DB 0x83,0x93,0xA3,0xB3,0xC3,0xD3,0xE3,0xF3,0x02,0x12,0x22,0x32,0x42,0x52,0x62,0x72 |
||
68 | DB 0xB5,0xA5,0x95,0x85,0xF5,0xE5,0xD5,0xC5,0x34,0x24,0x14,0x04,0x74,0x64,0x54,0x44 |
||
69 | DB 0xA7,0xB7,0x87,0x97,0xE7,0xF7,0xC7,0xD7,0x26,0x36,0x06,0x16,0x66,0x76,0x46,0x56 |
||
70 | DB 0xD9,0xC9,0xF9,0xE9,0x99,0x89,0xB9,0xA9,0x58,0x48,0x78,0x68,0x18,0x08,0x38,0x28 |
||
71 | DB 0xCB,0xDB,0xEB,0xFB,0x8B,0x9B,0xAB,0xBB,0x4A,0x5A,0x6A,0x7A,0x0A,0x1A,0x2A,0x3A |
||
72 | DB 0xFD,0xED,0xDD,0xCD,0xBD,0xAD,0x9D,0x8D,0x7C,0x6C,0x5C,0x4C,0x3C,0x2C,0x1C,0x0C |
||
73 | DB 0xEF,0xFF,0xCF,0xDF,0xAF,0xBF,0x8F,0x9F,0x6E,0x7E,0x4E,0x5E,0x2E,0x3E,0x0E,0x1E |
||
74 | DB 0x00,0x21,0x42,0x63,0x84,0xA5,0xC6,0xE7,0x08,0x29,0x4A,0x6B,0x8C,0xAD,0xCE,0xEF |
||
75 | DB 0x31,0x10,0x73,0x52,0xB5,0x94,0xF7,0xD6,0x39,0x18,0x7B,0x5A,0xBD,0x9C,0xFF,0xDE |
||
76 | DB 0x62,0x43,0x20,0x01,0xE6,0xC7,0xA4,0x85,0x6A,0x4B,0x28,0x09,0xEE,0xCF,0xAC,0x8D |
||
77 | DB 0x53,0x72,0x11,0x30,0xD7,0xF6,0x95,0xB4,0x5B,0x7A,0x19,0x38,0xDF,0xFE,0x9D,0xBC |
||
78 | DB 0xC4,0xE5,0x86,0xA7,0x40,0x61,0x02,0x23,0xCC,0xED,0x8E,0xAF,0x48,0x69,0x0A,0x2B |
||
79 | DB 0xF5,0xD4,0xB7,0x96,0x71,0x50,0x33,0x12,0xFD,0xDC,0xBF,0x9E,0x79,0x58,0x3B,0x1A |
||
80 | DB 0xA6,0x87,0xE4,0xC5,0x22,0x03,0x60,0x41,0xAE,0x8F,0xEC,0xCD,0x2A,0x0B,0x68,0x49 |
||
81 | DB 0x97,0xB6,0xD5,0xF4,0x13,0x32,0x51,0x70,0x9F,0xBE,0xDD,0xFC,0x1B,0x3A,0x59,0x78 |
||
82 | DB 0x88,0xA9,0xCA,0xEB,0x0C,0x2D,0x4E,0x6F,0x80,0xA1,0xC2,0xE3,0x04,0x25,0x46,0x67 |
||
83 | DB 0xB9,0x98,0xFB,0xDA,0x3D,0x1C,0x7F,0x5E,0xB1,0x90,0xF3,0xD2,0x35,0x14,0x77,0x56 |
||
84 | DB 0xEA,0xCB,0xA8,0x89,0x6E,0x4F,0x2C,0x0D,0xE2,0xC3,0xA0,0x81,0x66,0x47,0x24,0x05 |
||
85 | DB 0xDB,0xFA,0x99,0xB8,0x5F,0x7E,0x1D,0x3C,0xD3,0xF2,0x91,0xB0,0x57,0x76,0x15,0x34 |
||
86 | DB 0x4C,0x6D,0x0E,0x2F,0xC8,0xE9,0x8A,0xAB,0x44,0x65,0x06,0x27,0xC0,0xE1,0x82,0xA3 |
||
87 | DB 0x7D,0x5C,0x3F,0x1E,0xF9,0xD8,0xBB,0x9A,0x75,0x54,0x37,0x16,0xF1,0xD0,0xB3,0x92 |
||
88 | DB 0x2E,0x0F,0x6C,0x4D,0xAA,0x8B,0xE8,0xC9,0x26,0x07,0x64,0x45,0xA2,0x83,0xE0,0xC1 |
||
89 | DB 0x1F,0x3E,0x5D,0x7C,0x9B,0xBA,0xD9,0xF8,0x17,0x36,0x55,0x74,0x93,0xB2,0xD1,0xF0 |
||
605 | savelij | 90 | |
1026 | savelij | 91 | ; (⠡筠) 㭪 CRC-16, |
92 | ; IX = *DATA, HL = SIZE |
||
93 | ; 室: -> HL = ⠭ 祭 |
||
585 | savelij | 94 | CRC16_FAST LD B,H |
95 | LD C,L |
||
1026 | savelij | 96 | LD HL,0xFFFF |
585 | savelij | 97 | EXX |
98 | PUSH HL |
||
99 | LD DE,BUF_CRC16_TABL |
||
100 | LD C,0 |
||
101 | EXX |
||
1186 | savelij | 102 | .L1 LD A,(IX) |
585 | savelij | 103 | XOR H |
104 | INC IX |
||
105 | EXX |
||
106 | LD L,A |
||
107 | LD H,C |
||
108 | ADD HL,DE |
||
109 | LD A,(HL) |
||
110 | INC H |
||
111 | EXX |
||
112 | XOR L |
||
113 | LD H,A |
||
114 | EXX |
||
115 | LD A,(HL) |
||
116 | EXX |
||
117 | LD L,A |
||
118 | DEC BC |
||
119 | LD A,B |
||
120 | OR C |
||
1186 | savelij | 121 | JP NZ,.L1 |
585 | savelij | 122 | EXX |
123 | POP HL |
||
124 | EXX |
||
125 | RET |
||
126 | |||
1026 | savelij | 127 | ; ⠭ ࠡ稪 RST 8 NMI, 樠 ६ |
128 | INSTALL_NMIRST |
||
129 | ATMPORT WIN_A3,0x40 ; ᨬ 7FFD |
||
1186 | savelij | 130 | EVOPORT WIN_P2,RAM_NMI ; 稫 ࠭ ६ |
131 | LD HL,ADR_MAGIC | CPU2 ; ⠭ ࠡ稪 NMI |
||
132 | LD (HL),0xC3 |
||
133 | INC HL |
||
134 | LD (HL),LOW (NMI_SERVICE) |
||
135 | INC HL |
||
136 | LD (HL),HIGH (NMI_SERVICE) |
||
952 | savelij | 137 | LD BC,FDD_EMU_PORT |
138 | XOR A |
||
139 | OUT (C),A ; 㠫 |
||
961 | savelij | 140 | LD (B_PORT_VIRT),A |
1026 | savelij | 141 | LD A,0xEF |
142 | IN A,(0xFE) |
||
585 | savelij | 143 | RRCA |
1120 | savelij | 144 | JR NC,.L2 |
1186 | savelij | 145 | ; '0' ਭ㤨⥫ ࠭ |
764 | savelij | 146 | LD IX,CPU2+STACK_NMI |
1026 | savelij | 147 | LD HL,0x40 |
148 | CALL CRC16_FAST ; ⠥ CRC ࠡ稪 |
||
149 | PUSH HL ; ࠭ CRC |
||
150 | LD IX,CODE_NMIRST + STACK_NMI |
||
151 | LD HL,0x40 |
||
585 | savelij | 152 | CALL CRC16_FAST |
1026 | savelij | 153 | POP BC ; 㫨 ࠭ ⠭ CRC |
585 | savelij | 154 | XOR A |
1026 | savelij | 155 | SBC HL,BC ; ࠢ |
1186 | savelij | 156 | JR Z,.L1 ; CRC ᮢ 祣 |
157 | ; ᮢ, 祭 ⠭ ࠡ稪 뫨 ᯮ祭 |
||
158 | .L2 |
||
159 | EVOPORT WIN_P3,RAM_FATVARS |
||
646 | savelij | 160 | LD HL,CPU0 |
1186 | savelij | 161 | CALL FILL_MEM ; ⪠ ࠭ ६ FAT |
162 | EVOPORT WIN_P3,RAM_MOUNTER ; 稫 ࠭ 騪 ࠧ |
||
163 | LD HL,CPU0 |
||
164 | CALL FILL_MEM ; ⪠ ࠭ 騪 ࠧ |
||
165 | LD A,(HDDTIMEOUT) ; ࠭塞 祩 ᨬ ᮤন |
||
1120 | savelij | 166 | LD HL,CPU3 |
1186 | savelij | 167 | CALL FILL_MEM ; ⪠ ࠭ RAM |
1120 | savelij | 168 | LD (HDDTIMEOUT),A ; ⠭ 祩 |
585 | savelij | 169 | LD HL,CODE_NMIRST |
1186 | savelij | 170 | LD DE,CPU2 |
171 | LD BC,ENMI_SERVICE - ADR_SEL_ROM - CPU2 |
||
1026 | savelij | 172 | LDIR ; ⠭ ࠡ稪 |
1186 | savelij | 173 | LD (BUF_VOLUMES + 0xFE),BC ; CRC ⠡ ࠧ |
665 | savelij | 174 | XOR A |
1186 | savelij | 175 | LD (CPU2 + DEBUG_ONOFF),A ; 0 - DEBUGGER OFF |
176 | LD (DEVMAN_VARS.FLAGS_DRV),A ; 䫠 ࠩ |
||
177 | LD (FATVARSFLAGS),A |
||
178 | LD A,CMOS.BYTE_00 |
||
702 | savelij | 179 | LD BC,CMOSD_SET_ADR |
180 | OUT (C),A |
||
181 | LD BC,CMOSD_RD_WR |
||
182 | IN A,(C) |
||
183 | CALL LD_SET_FONT |
||
1186 | savelij | 184 | LD A,CMOS.VIRT_REAL_DRIVE |
764 | savelij | 185 | LD BC,CMOSD_SET_ADR |
186 | OUT (C),A |
||
187 | LD BC,CMOSD_RD_WR |
||
188 | IN A,(C) |
||
1026 | savelij | 189 | LD (CPU2 + VIRT_BITS),A ; 㥬 ⮫쪮 ࠬ |
1120 | savelij | 190 | .L1 |
1031 | savelij | 191 | IF BUILD_DEBUG=1 |
192 | ROMCALL UNPACK_STS,ROM_RST80 |
||
193 | ENDIF |
||
194 | ROMCALL INIT_CMOS,ROM_RST82 ; ઠ 樠 CMOS 訡 CRC |
||
678 | savelij | 195 | CALL SET4RESETFONT |
831 | savelij | 196 | IF 0;USB_ENABLE |
1031 | savelij | 197 | EVOPORT WIN_P3,RAM_SCR_FONT ; ࠭ ࠩ |
1026 | savelij | 198 | EVOPORT WIN_A2,ROM_RST83 |
199 | LD HL,USB_DRV + CPU2 ; ࠩ |
||
200 | LD DE,OFFSET_USBDRV + CPU3 ; ࠡ |
||
201 | LD BC,ECOMUSBF - COMUSBF |
||
831 | savelij | 202 | LDIR |
1026 | savelij | 203 | EVOPORT WIN_P6,0 |
831 | savelij | 204 | ENDIF |
1186 | savelij | 205 | ROMCALL RESTORE_FATVARS,ROM_RST82 |
1026 | savelij | 206 | LD BC,0xFF << 8 + PN_1F7 |
678 | savelij | 207 | IN A,(C) |
1026 | savelij | 208 | CP 0x50 |
678 | savelij | 209 | LD A,1 |
1120 | savelij | 210 | JR Z,.L3 |
211 | LD A,(HDDTIMEOUT) |
||
212 | DEC A |
||
213 | JR Z,.L5 ; 祩 ࠢ 1 প CMOS 㥬 |
||
1186 | savelij | 214 | LD H,CMOS.HDD_TIMEOUT |
1026 | savelij | 215 | ROMCALL READCMOS,ROM_RST82 |
678 | savelij | 216 | AND A |
217 | LD A,1 |
||
1120 | savelij | 218 | JR Z,.L3 |
678 | savelij | 219 | XOR A |
1120 | savelij | 220 | .L4 ADD A,25 |
678 | savelij | 221 | DEC L |
1120 | savelij | 222 | JR NZ,.L4 |
223 | .L3 LD (HDDTIMEOUT),A |
||
224 | .L5 LD HL,STEK_PAGES |
||
585 | savelij | 225 | LD (TEKPAGE),HL |
226 | LD HL,READ_KEYS |
||
227 | LD (ADR_INT),HL |
||
228 | LD BC,WIN_A0 |
||
229 | XOR A |
||
1186 | savelij | 230 | LD (CPU2 + FOR_RET),A |
585 | savelij | 231 | JP ADR_SEL_ROM |
232 | |||
646 | savelij | 233 | FILL_MEM EX DE,HL |
234 | LD HL,0 |
||
235 | ADD HL,SP |
||
236 | EX DE,HL |
||
237 | LD SP,HL |
||
238 | LD HL,0 |
||
239 | LD B,L |
||
1026 | savelij | 240 | FILL_MEM1 |
241 | REPT 0x20 |
||
646 | savelij | 242 | PUSH HL |
1026 | savelij | 243 | ENDM |
646 | savelij | 244 | DJNZ FILL_MEM1 |
245 | EX DE,HL |
||
246 | LD SP,HL |
||
247 | RET |
||
248 | |||
702 | savelij | 249 | SETUP_FONT LD A,(RREG_A) |
250 | AND A |
||
251 | LD HL,ATM_FONT |
||
252 | JR Z,SET_FONT1 |
||
831 | savelij | 253 | DEC A |
702 | savelij | 254 | LD HL,CP866_FONT |
831 | savelij | 255 | JR Z,SET_FONT1 |
256 | DEC A |
||
257 | RET NZ |
||
258 | LD HL,(RREG_L) |
||
702 | savelij | 259 | JR SET_FONT1 |
260 | |||
1186 | savelij | 261 | SET4RESETFONT LD A,CMOS.BYTE_00 |
585 | savelij | 262 | LD BC,CMOSD_SET_ADR |
263 | OUT (C),A |
||
264 | LD BC,CMOSD_RD_WR |
||
265 | IN A,(C) |
||
266 | LD L,A |
||
1186 | savelij | 267 | AND CMOS_ED.M_RELOAD_FONT |
1026 | savelij | 268 | RET NZ ; 1, १㦠 |
585 | savelij | 269 | LD A,L |
1186 | savelij | 270 | LD_SET_FONT AND CMOS_ED.M_TYPE_FONT ; । ࠭ |
1026 | savelij | 271 | LD HL,ATM_FONT ; 0 = ATM |
702 | savelij | 272 | JR Z,SET_FONT1 |
1026 | savelij | 273 | LD HL,CP866_FONT ; 1 = CP866 |
274 | SET_FONT1 LD DE,CPU3 + OFFSET_BUFSYM |
||
275 | EVOPORT WIN_P3,RAM_SCR_FONT |
||
585 | savelij | 276 | PUSH DE |
1026 | savelij | 277 | ROMCALL UNPACK,ROM_RST80 |
585 | savelij | 278 | POP HL |
1026 | savelij | 279 | LD BC,0x0800 |
585 | savelij | 280 | LD D,C |
281 | LD E,C |
||
1026 | savelij | 282 | PEC_ON M_SHADOW_BF+M_FONT_BF |
585 | savelij | 283 | LDIR |
1026 | savelij | 284 | PEC_OFF M_FONT_BF |
585 | savelij | 285 | RET |
286 | |||
821 | savelij | 287 | CurrAdr := $ |
288 | |||
585 | savelij | 289 | include nmi_service.a80 |
290 | |||
1186 | savelij | 291 | PHASE $ + CurrAdr |
596 | savelij | 292 | PERFECTCOM binclude perfpack_pack.bin |
588 | savelij | 293 | |
1026 | savelij | 294 | FREE_ADDON1 EQU 0x3FF6 - $ |
831 | savelij | 295 | |
1186 | savelij | 296 | DB FREE_ADDON1 DUP 0xFF |
1026 | savelij | 297 | DW FREE_ADDON1 ; ࠧ |
585 | savelij | 298 | DB "ADDON1" |
299 | DW DATA_VERS |
||
1186 | savelij | 300 | DEPHASE |