Subversion Repositories pentevo

Rev

Rev 1120 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
573 savelij 1
 
1186 savelij 2
; LAST UPDATE: 14.02.2025 savelij
573 savelij 3
 
764 savelij 4
        TITLE "addons.a80 ROM_RST82"
5
 
1031 savelij 6
DRV_VAR         EQU 0x4000
573 savelij 7
 
1186 savelij 8
        PHASE 0
831 savelij 9
                JP $
585 savelij 10
 
1186 savelij 11
                DB ADR_SEL_ROM-$ DUP 0xFF
573 savelij 12
                OUT (C),A
13
                NOP
14
                RET
15
 
1186 savelij 16
                DB 0x0030-$ DUP 0xFF
585 savelij 17
                JP CALL2PAGE
18
 
1186 savelij 19
                DB 0x0038-$ DUP 0xFF            ; 0038
585 savelij 20
                PUSH HL
21
                LD HL,(ADR_INT)
22
                EX (SP),HL
23
                RET
24
 
573 savelij 25
                EI
26
                RET
27
 
761 savelij 28
                JP UNPACK_DOS_FE
875 savelij 29
                JP INST_SONGLN
643 savelij 30
 
1186 savelij 31
                DB 0x0080-$ DUP 0xFF
643 savelij 32
                binclude ../../dec40.bin
33
 
1186 savelij 34
                DB 0x00FF-$ DUP 0xFF
1031 savelij 35
                DW 0x0038
573 savelij 36
 
961 savelij 37
; ============================SD  㤠============================
1186 savelij 38
SDCARD_LOST
39
 WINHDR 0x08,0x08,0x04,0x10,0x17,0,%00000000,0, \
40
        0,0,.TXT_SDLOST,0,0,0
41
 
42
.TXT_SDLOST     DB "\x17\xFF\r\x03SD card lost\r\x03Press RESET",0
961 savelij 43
; ============================SD  㤠============================
573 savelij 44
 
961 savelij 45
; ========================設    =====================
1031 savelij 46
SPRAR           DB 0x3F,0x00,0x1F,0x40,0x0F,0x60,0x07,0x50,0x03,0x48,0x01,0x4C,0x01,0x70,0x07,0x00
47
SPRAR2          DB 0x3F,0x00,0x1F,0x40,0x0F,0x60,0x07,0x70,0x03,0x78,0x01,0x7C,0x01,0x70,0x07,0x00
961 savelij 48
; ========================設    =====================
573 savelij 49
 
1186 savelij 50
                DB 0x0200-$ DUP 0xFF
588 savelij 51
CHARS           binclude altstd.bin
52
 
1031 savelij 53
BUFTSC          DW 0x4000,0x4100,0x4200,0x4300,0x4400,0x4500,0x4600,0x4700
54
                DW 0x4020,0x4120,0x4220,0x4320,0x4420,0x4520,0x4620,0x4720
55
                DW 0x4040,0x4140,0x4240,0x4340,0x4440,0x4540,0x4640,0x4740
56
                DW 0x4060,0x4160,0x4260,0x4360,0x4460,0x4560,0x4660,0x4760
57
                DW 0x4080,0x4180,0x4280,0x4380,0x4480,0x4580,0x4680,0x4780
58
                DW 0x40A0,0x41A0,0x42A0,0x43A0,0x44A0,0x45A0,0x46A0,0x47A0
59
                DW 0x40C0,0x41C0,0x42C0,0x43C0,0x44C0,0x45C0,0x46C0,0x47C0
60
                DW 0x40E0,0x41E0,0x42E0,0x43E0,0x44E0,0x45E0,0x46E0,0x47E0
585 savelij 61
 
1031 savelij 62
                DW 0x4800,0x4900,0x4A00,0x4B00,0x4C00,0x4D00,0x4E00,0x4F00
63
                DW 0x4820,0x4920,0x4A20,0x4B20,0x4C20,0x4D20,0x4E20,0x4F20
64
                DW 0x4840,0x4940,0x4A40,0x4B40,0x4C40,0x4D40,0x4E40,0x4F40
65
                DW 0x4860,0x4960,0x4A60,0x4B60,0x4C60,0x4D60,0x4E60,0x4F60
66
                DW 0x4880,0x4980,0x4A80,0x4B80,0x4C80,0x4D80,0x4E80,0x4F80
67
                DW 0x48A0,0x49A0,0x4AA0,0x4BA0,0x4CA0,0x4DA0,0x4EA0,0x4FA0
68
                DW 0x48C0,0x49C0,0x4AC0,0x4BC0,0x4CC0,0x4DC0,0x4EC0,0x4FC0
69
                DW 0x48E0,0x49E0,0x4AE0,0x4BE0,0x4CE0,0x4DE0,0x4EE0,0x4FE0
585 savelij 70
 
1031 savelij 71
                DW 0x5000,0x5100,0x5200,0x5300,0x5400,0x5500,0x5600,0x5700
72
                DW 0x5020,0x5120,0x5220,0x5320,0x5420,0x5520,0x5620,0x5720
73
                DW 0x5040,0x5140,0x5240,0x5340,0x5440,0x5540,0x5640,0x5740
74
                DW 0x5060,0x5160,0x5260,0x5360,0x5460,0x5560,0x5660,0x5760
75
                DW 0x5080,0x5180,0x5280,0x5380,0x5480,0x5580,0x5680,0x5780
76
                DW 0x50A0,0x51A0,0x52A0,0x53A0,0x54A0,0x55A0,0x56A0,0x57A0
77
                DW 0x50C0,0x51C0,0x52C0,0x53C0,0x54C0,0x55C0,0x56C0,0x57C0
78
                DW 0x50E0,0x51E0,0x52E0,0x53E0,0x54E0,0x55E0,0x56E0,0x57E0
585 savelij 79
 
1031 savelij 80
BUFTSC1         DW 0xC000,0xC100,0xC200,0xC300,0xC400,0xC500,0xC600,0xC700
81
                DW 0xC020,0xC120,0xC220,0xC320,0xC420,0xC520,0xC620,0xC720
82
                DW 0xC040,0xC140,0xC240,0xC340,0xC440,0xC540,0xC640,0xC740
83
                DW 0xC060,0xC160,0xC260,0xC360,0xC460,0xC560,0xC660,0xC760
84
                DW 0xC080,0xC180,0xC280,0xC380,0xC480,0xC580,0xC680,0xC780
85
                DW 0xC0A0,0xC1A0,0xC2A0,0xC3A0,0xC4A0,0xC5A0,0xC6A0,0xC7A0
86
                DW 0xC0C0,0xC1C0,0xC2C0,0xC3C0,0xC4C0,0xC5C0,0xC6C0,0xC7C0
87
                DW 0xC0E0,0xC1E0,0xC2E0,0xC3E0,0xC4E0,0xC5E0,0xC6E0,0xC7E0
585 savelij 88
 
1031 savelij 89
                DW 0xC800,0xC900,0xCA00,0xCB00,0xCC00,0xCD00,0xCE00,0xCF00
90
                DW 0xC820,0xC920,0xCA20,0xCB20,0xCC20,0xCD20,0xCE20,0xCF20
91
                DW 0xC840,0xC940,0xCA40,0xCB40,0xCC40,0xCD40,0xCE40,0xCF40
92
                DW 0xC860,0xC960,0xCA60,0xCB60,0xCC60,0xCD60,0xCE60,0xCF60
93
                DW 0xC880,0xC980,0xCA80,0xCB80,0xCC80,0xCD80,0xCE80,0xCF80
94
                DW 0xC8A0,0xC9A0,0xCAA0,0xCBA0,0xCCA0,0xCDA0,0xCEA0,0xCFA0
95
                DW 0xC8C0,0xC9C0,0xCAC0,0xCBC0,0xCCC0,0xCDC0,0xCEC0,0xCFC0
96
                DW 0xC8E0,0xC9E0,0xCAE0,0xCBE0,0xCCE0,0xCDE0,0xCEE0,0xCFE0
585 savelij 97
 
1031 savelij 98
                DW 0xD000,0xD100,0xD200,0xD300,0xD400,0xD500,0xD600,0xD700
99
                DW 0xD020,0xD120,0xD220,0xD320,0xD420,0xD520,0xD620,0xD720
100
                DW 0xD040,0xD140,0xD240,0xD340,0xD440,0xD540,0xD640,0xD740
101
                DW 0xD060,0xD160,0xD260,0xD360,0xD460,0xD560,0xD660,0xD760
102
                DW 0xD080,0xD180,0xD280,0xD380,0xD480,0xD580,0xD680,0xD780
103
                DW 0xD0A0,0xD1A0,0xD2A0,0xD3A0,0xD4A0,0xD5A0,0xD6A0,0xD7A0
104
                DW 0xD0C0,0xD1C0,0xD2C0,0xD3C0,0xD4C0,0xD5C0,0xD6C0,0xD7C0
105
                DW 0xD0E0,0xD1E0,0xD2E0,0xD3E0,0xD4E0,0xD5E0,0xD6E0,0xD7E0
573 savelij 106
 
961 savelij 107
;  砫 ப ஬ ⥪⬮ (, ࠢ)
1031 savelij 108
TBUFTSC         DW 0xC1C0,0xD1C0        ; 00
109
                DW 0xC200,0xD200        ; 01
110
                DW 0xC240,0xD240        ; 02
111
                DW 0xC280,0xD280        ; 03
112
                DW 0xC2C0,0xD2C0        ; 04
113
                DW 0xC300,0xD300        ; 05
114
                DW 0xC340,0xD340        ; 06
115
                DW 0xC380,0xD380        ; 07
116
                DW 0xC3C0,0xD3C0        ; 08
117
                DW 0xC400,0xD400        ; 09
118
                DW 0xC440,0xD440        ; 10
119
                DW 0xC480,0xD480        ; 11
120
                DW 0xC4C0,0xD4C0        ; 12
121
                DW 0xC500,0xD500        ; 13
122
                DW 0xC540,0xD540        ; 14
123
                DW 0xC580,0xD580        ; 15
124
                DW 0xC5C0,0xD5C0        ; 16
125
                DW 0xC600,0xD600        ; 17
126
                DW 0xC640,0xD640        ; 18
127
                DW 0xC680,0xD680        ; 19
128
                DW 0xC6C0,0xD6C0        ; 20
129
                DW 0xC700,0xD700        ; 21
130
                DW 0xC740,0xD740        ; 22
131
                DW 0xC780,0xD780        ; 23
132
                DW 0xC7C0,0xD7C0        ; 24
573 savelij 133
 
961 savelij 134
;  砫 ப 梥 ⥪⬮ (, ࠢ)
1031 savelij 135
TBUFTSC_C       DW 0xF1C0,0xE1C1        ; 00
136
                DW 0xF200,0xE201        ; 01
137
                DW 0xF240,0xE241        ; 02
138
                DW 0xF280,0xE281        ; 03
139
                DW 0xF2C0,0xE2C1        ; 04
140
                DW 0xF300,0xE301        ; 05
141
                DW 0xF340,0xE341        ; 06
142
                DW 0xF380,0xE381        ; 07
143
                DW 0xF3C0,0xE3C1        ; 08
144
                DW 0xF400,0xE401        ; 09
145
                DW 0xF440,0xE441        ; 10
146
                DW 0xF480,0xE481        ; 11
147
                DW 0xF4C0,0xE4C1        ; 12
148
                DW 0xF500,0xE501        ; 13
149
                DW 0xF540,0xE541        ; 14
150
                DW 0xF580,0xE581        ; 15
151
                DW 0xF5C0,0xE5C1        ; 16
152
                DW 0xF600,0xE601        ; 17
153
                DW 0xF640,0xE641        ; 18
154
                DW 0xF680,0xE681        ; 19
155
                DW 0xF6C0,0xE6C1        ; 20
156
                DW 0xF700,0xE701        ; 21
157
                DW 0xF740,0xE741        ; 22
158
                DW 0xF780,0xE781        ; 23
159
                DW 0xF7C0,0xE7C1        ; 24
573 savelij 160
 
1031 savelij 161
RD_SET_PAL      IN A,(0xFF)
162
                AND %00111111
163
                PUSH AF
164
                LD HL,(ADR_INT)
596 savelij 165
                PUSH HL
166
                LD HL,EI_RET
167
                LD (ADR_INT),HL
1031 savelij 168
                LD DE,0xAF0F                    ;  ࠭塞 ⥪ 
169
                LD BC,0xBD77
961 savelij 170
                OUT (C),D                       ; 祭 ⥪⬮
596 savelij 171
                LD HL,(ADR_PALITRA)
172
                LD BC,RD_PALITRA
173
                EI
174
                HALT
175
                DI
1031 savelij 176
.L3             LD A,E
596 savelij 177
                BIT 3,E
1031 savelij 178
                OUT (0xFE),A
179
                JR Z,.L4
180
                OUT (0xF6),A
181
.L4             IN A,(C)
596 savelij 182
                LD (HL),A
183
                INC HL
184
                DEC E
1031 savelij 185
                JP P,.L3                        ;  ࠭
596 savelij 186
                LD HL,MAGIC_PAL
1031 savelij 187
                LD E,0x0F
188
.L1             LD A,E
596 savelij 189
                BIT 3,E
1031 savelij 190
                OUT (0xFE),A
191
                JR Z,.L2
192
                OUT (0xF6),A
193
.L2             LD A,(HL)
596 savelij 194
                INC HL
195
                OR %00001100
1031 savelij 196
                OUT (0xFF),A
596 savelij 197
                DEC E
1031 savelij 198
                JP P,.L1
199
                LD BC,0xFF77
596 savelij 200
                OUT (C),D
201
                POP HL
202
                LD (ADR_INT),HL
1031 savelij 203
                POP AF
204
                OUT (0xFF),A
596 savelij 205
                RET
573 savelij 206
 
1031 savelij 207
MAGIC_PAL       DB 0x0C,0x2D,0x4E,0x6F,0x9C,0xBD,0xDE,0xFF
208
                DB 0xEC,0xED,0xEE,0xEF,0xFC,0xFD,0xFE,0xFF
596 savelij 209
 
961 savelij 210
;   SPECTRUM ०
1031 savelij 211
TRSTPAL         DB 0x00,0x21,0x42,0x63,0x90,0xB1,0xD2,0xF3
212
                DB 0xE0,0xE1,0xE2,0xE3,0xF0,0xF1,0xF2,0xF3
596 savelij 213
 
214
SETUP_PAL1      LD HL,(RREG_L)
1186 savelij 215
                LD DE,EXTERN_PAL-CPU2
1031 savelij 216
                LD BC,0x10
217
        ROMCALL LDIR_BYTES,ROM_RST83
596 savelij 218
                LD HL,EXTERN_PAL
219
                JR RESTOREPAL1
220
 
221
SETUP_PAL       LD A,(RREG_A)
222
                AND A
223
                JR NZ,SETUP_PAL1
224
                LD HL,TRSTPAL
225
RESTOREPAL1     LD (ADR_PALITRA),HL
1031 savelij 226
RESTORE_PAL     IN A,(0xFF)
227
                AND %00111111
228
                PUSH AF
229
                LD HL,(ADR_INT)
596 savelij 230
                PUSH HL
231
                LD HL,EI_RET
232
                LD (ADR_INT),HL
233
                LD HL,(ADR_PALITRA)
1031 savelij 234
                LD DE,0xAF0F
235
                LD BC,0xBD77                    ;   
961 savelij 236
                OUT (C),D                       ; .PAL
596 savelij 237
                EI
238
                HALT
239
                DI
1031 savelij 240
.L1             LD A,E
596 savelij 241
                BIT 3,E
1031 savelij 242
                OUT (0xFE),A
596 savelij 243
                JR Z,$+4
1031 savelij 244
                OUT (0xF6),A
596 savelij 245
                LD A,(HL)
246
                INC HL
247
                OR %00001100
1031 savelij 248
                OUT (0xFF),A
596 savelij 249
                DEC E
1031 savelij 250
                JP P,.L1
251
                LD BC,0xFF77
596 savelij 252
                OUT (C),D
253
                POP HL
254
                LD (ADR_INT),HL
1031 savelij 255
                POP AF
256
                OUT (0xFF),A
596 savelij 257
                RET
258
 
259
PRINT_REGS      LD E,(IX)
260
                INC IX
261
                LD D,(IX)
262
                INC IX
263
PRTT_HL_        LD A,H
264
                CALL PRTT_A
265
                LD A,L
266
PRTT_A          PUSH AF
267
                RRCA
268
                RRCA
269
                RRCA
270
                RRCA
271
                CALL PRTT_A_1
272
                POP AF
1031 savelij 273
PRTT_A_1        AND 0x0F
274
                CP 0x0A
596 savelij 275
                CCF
276
                ADC A,"0"
277
                DAA
1031 savelij 278
                AND 0x7F
952 savelij 279
                JP PRTT_A_
596 savelij 280
 
281
PRINT_REG       LD E,(IX)
282
                INC IX
283
                LD D,(IX)
284
                INC IX
285
                JR PRTT_A
286
 
1031 savelij 287
COORDINAT_REGS  DW Y_OFFSET +  1 + (X_OFFSET + 3      ) * 0x100 ; SP
288
                DW Y_OFFSET +  1 + (X_OFFSET + 3 +  9 ) * 0x100 ; PC
289
                DW Y_OFFSET +  2 + (X_OFFSET + 3      ) * 0x100 ; IR
290
                DW Y_OFFSET +  3 + (X_OFFSET + 3      ) * 0x100 ; AF
291
                DW Y_OFFSET +  3 + (X_OFFSET + 3 +  9 ) * 0x100 ; AF'
292
                DW Y_OFFSET +  4 + (X_OFFSET + 3      ) * 0x100 ; BC
293
                DW Y_OFFSET +  4 + (X_OFFSET + 3 +  9 ) * 0x100 ; BC'
294
                DW Y_OFFSET +  5 + (X_OFFSET + 3      ) * 0x100 ; DE
295
                DW Y_OFFSET +  5 + (X_OFFSET + 3 +  9 ) * 0x100 ; DE'
296
                DW Y_OFFSET +  6 + (X_OFFSET + 3      ) * 0x100 ; HL
297
                DW Y_OFFSET +  6 + (X_OFFSET + 3 +  9 ) * 0x100 ; HL'
298
                DW Y_OFFSET +  7 + (X_OFFSET + 3      ) * 0x100 ; IX
299
                DW Y_OFFSET +  7 + (X_OFFSET + 3 +  9 ) * 0x100 ; IY
300
                DW Y_OFFSET +  8 + (X_OFFSET + 5      ) * 0x100 ; INT EI/DI
301
                DW Y_OFFSET +  8 + (X_OFFSET + 3 + 10 ) * 0x100 ; INT IM 1/2
302
                DW Y_OFFSET + 11 + (X_OFFSET + 6      ) * 0x100 ; CPU3 MAP0
303
                DW Y_OFFSET + 11 + (X_OFFSET + 6 +  3 ) * 0x100 ; CPU3 MAP1
1186 savelij 304
                DW Y_OFFSET + 12 + (X_OFFSET + 6      ) * 0x100 ; CPU2 MAP0
305
                DW Y_OFFSET + 12 + (X_OFFSET + 6 +  3 ) * 0x100 ; CPU2 MAP1
1031 savelij 306
                DW Y_OFFSET + 13 + (X_OFFSET + 6      ) * 0x100 ; CPU5 MAP0
307
                DW Y_OFFSET + 13 + (X_OFFSET + 6 +  3 ) * 0x100 ; CPU5 MAP1
308
                DW Y_OFFSET + 14 + (X_OFFSET + 6      ) * 0x100 ; CPU0 MAP0
309
                DW Y_OFFSET + 14 + (X_OFFSET + 6 +  3 ) * 0x100 ; CPU0 MAP1
310
                DW Y_OFFSET + 16 + (X_OFFSET + 5      ) * 0x100 ; PORT 7FFD
311
                DW Y_OFFSET + 17 + (X_OFFSET + 5      ) * 0x100 ; PORT EFF7
312
                DW Y_OFFSET + 18 + (X_OFFSET + 0      ) * 0x100 ; PORT XX77
313
                DW Y_OFFSET + 18 + (X_OFFSET + 0 +  5 ) * 0x100 ; BYTE IN PORT XX77
314
                DW Y_OFFSET + 19 + (X_OFFSET + 5      ) * 0x100 ; PORT BF
315
                DW Y_OFFSET + 20 + (X_OFFSET + 5      ) * 0x100 ; BIT DOS ENABLE
316
                DW Y_OFFSET + 16 + (X_OFFSET + 5 +  6 ) * 0x100 ; FF
317
                DW Y_OFFSET + 17 + (X_OFFSET + 5 +  6 ) * 0x100 ; 7F
318
                DW Y_OFFSET + 18 + (X_OFFSET + 5 +  6 ) * 0x100 ; 5F
319
                DW Y_OFFSET + 19 + (X_OFFSET + 5 +  6 ) * 0x100 ; 3F
320
                DW Y_OFFSET + 20 + (X_OFFSET + 5 +  6 ) * 0x100 ; 1F
1120 savelij 321
                DW Y_OFFSET + 21 + (X_OFFSET + 5 +  2 ) * 0x100 ; ADR BREAK
322
                DW Y_OFFSET + 22 + (X_OFFSET + 5 +  2 ) * 0x100 ; TURBO CURRENT
596 savelij 323
 
324
PRT_PORTREGS    LD A,MAGIC_COLOR
325
                LD (TXT_COLOR),A
326
                LD IX,COORDINAT_REGS
327
                LD HL,(NMI_SAVE_SP)
961 savelij 328
                CALL PRINT_REGS                 ; SP
596 savelij 329
                LD HL,(NADRRET_L)
961 savelij 330
                CALL PRINT_REGS                 ; PC
596 savelij 331
                LD A,(NREG_I)
332
                LD H,A
333
                LD A,(NREG_R)
334
                LD L,A
961 savelij 335
                CALL PRINT_REGS                 ; IR
596 savelij 336
                LD HL,(NREG_F)
961 savelij 337
                CALL PRINT_REGS                 ; AF
596 savelij 338
                LD HL,(NREG_FF)
961 savelij 339
                CALL PRINT_REGS                 ; AF'
596 savelij 340
                LD HL,(NREG_C)
961 savelij 341
                CALL PRINT_REGS                 ; BC
596 savelij 342
                LD HL,(NREG_CC)
961 savelij 343
                CALL PRINT_REGS                 ; BC'
596 savelij 344
                LD HL,(NREG_E)
961 savelij 345
                CALL PRINT_REGS                 ; DE
596 savelij 346
                LD HL,(NREG_EE)
961 savelij 347
                CALL PRINT_REGS                 ; DE'
596 savelij 348
                LD HL,(NREG_L)
961 savelij 349
                CALL PRINT_REGS                 ; HL
596 savelij 350
                LD HL,(NREG_LL)
961 savelij 351
                CALL PRINT_REGS                 ; HL'
596 savelij 352
                LD HL,(NREG_IXL)
961 savelij 353
                CALL PRINT_REGS                 ; IX
596 savelij 354
                LD HL,(NREG_IYL)
961 savelij 355
                CALL PRINT_REGS                 ; IY
761 savelij 356
                LD A,(INT_MODE)
1186 savelij 357
                ADD A,'0'
961 savelij 358
                CALL PRINT_1NUM                 ; INT ON/OFF
761 savelij 359
                LD A,(NUM_IM)
1186 savelij 360
                ADD A,'1'
961 savelij 361
                CALL PRINT_1NUM                 ; IM 1/2
596 savelij 362
                LD A,(B0_CPU3)
961 savelij 363
                CALL PRINT_REG                  ; CPU3 MAP0
596 savelij 364
                LD A,(B1_CPU3)
961 savelij 365
                CALL PRINT_REG                  ; CPU3 MAP1
596 savelij 366
                LD A,(B0_CPU2)
1186 savelij 367
                CALL PRINT_REG                  ; CPU2 MAP0
596 savelij 368
                LD A,(B1_CPU2)
1186 savelij 369
                CALL PRINT_REG                  ; CPU2 MAP1
596 savelij 370
                LD A,(B0_CPU1)
961 savelij 371
                CALL PRINT_REG                  ; CPU5 MAP0
596 savelij 372
                LD A,(B1_CPU1)
961 savelij 373
                CALL PRINT_REG                  ; CPU5 MAP1
596 savelij 374
                LD A,(B0_CPU0)
961 savelij 375
                CALL PRINT_REG                  ; CPU0 MAP0
596 savelij 376
                LD A,(B1_CPU0)
961 savelij 377
                CALL PRINT_REG                  ; CPU0 MAP1
1031 savelij 378
        READ_7FFD
961 savelij 379
                CALL PRINT_REG                  ; PORT 7FFD
596 savelij 380
                LD A,(N_EFF7)
961 savelij 381
                CALL PRINT_REG                  ; PORT EFF7
596 savelij 382
                LD A,(N_77)
383
                AND %11100000
384
                RRCA
385
                LD B,A
386
                RRCA
387
                RRCA
388
                RRCA
389
                RRCA
390
                OR B
1031 savelij 391
                OR 0xBC
961 savelij 392
                CALL PRINT_REG                  ; PORT XX77
596 savelij 393
                LD A,(N_77)
1031 savelij 394
                AND 0x0F
961 savelij 395
                CALL PRINT_REG                  ; BYTE IN PORT XX77
596 savelij 396
                LD A,(N_BF)
961 savelij 397
                CALL PRINT_REG                  ; PORT BF
596 savelij 398
                LD A,(N_77)
1031 savelij 399
                AND 0x10
596 savelij 400
                RRCA
401
                RRCA
402
                RRCA
403
                RRCA
1186 savelij 404
                ADD A,'0'
1031 savelij 405
                CALL PRINT_1NUM
406
                IN A,(0xFF)
407
                AND %00111111
408
                CALL PRINT_REG
409
                IN A,(0x7F)
410
                CALL PRINT_REG
411
                IN A,(0x5F)
412
                CALL PRINT_REG
413
                IN A,(0x3F)
414
                CALL PRINT_REG
415
                IN A,(0x1F)
416
                CALL PRINT_REG
417
                LD BC,BREAK_HIGH
418
                IN H,(C)
419
                LD B,HIGH (BREAK_LOW)
420
                IN L,(C)
1120 savelij 421
                CALL PRINT_REGS
422
                LD BC,5
423
                LD A,(N_77)
424
                BIT 3,A
425
                LD HL,TXT_FREQ
426
                JR NZ,.L1
427
                ADD HL,BC
428
                LD A,(N_EFF7)
429
                BIT 4,A
430
                JR Z,.L1
431
                ADD HL,BC
432
.L1             LD E,(IX)
433
                INC IX
434
                LD D,(IX)
435
                INC IX
436
                JP PRTT_MSG
1031 savelij 437
 
761 savelij 438
PRINT_1NUM      LD E,(IX)
439
                INC IX
440
                LD D,(IX)
441
                INC IX
952 savelij 442
                JP PRTT_A_
596 savelij 443
 
961 savelij 444
; ⠭ ०
596 savelij 445
SET_MODE        LD A,(RREG_A)
446
ISET_MODE       AND A
1186 savelij 447
                JR Z,.L5                        ; ᫨ 0  祭 ०
596 savelij 448
                LD E,A
961 savelij 449
                LD (TEK_MODES),A                ; ࠭ ⠭ ०
1120 savelij 450
                AND %00000111
838 savelij 451
                JR Z,.L4
961 savelij 452
; ⠭  ࠭
838 savelij 453
                LD D,A
454
                LD A,(B_PORT77)
455
                AND %11111000
596 savelij 456
                OR D
961 savelij 457
                LD (B_PORT77),A                 ; ⠭  ०   xx77
838 savelij 458
.L4             LD A,E
596 savelij 459
                RRCA
460
                RRCA
461
                RRCA
462
                RRCA
961 savelij 463
                LD E,A                          ; ᥩ  1-0 ᮤঠ ࡮ ०
464
                AND 3                           ; 﫨  ࡮०
465
                JR Z,.L3                        ; ᫨ 0  ० ࡮  塞
466
; ᬥ ࡮०
596 savelij 467
                EXX
961 savelij 468
                DEC A                           ; 1
1031 savelij 469
                LD HL,0x0010                    ; TURBO 3,5 MHZ
838 savelij 470
                JR Z,.L2
961 savelij 471
                DEC A                           ; 2
1031 savelij 472
                LD HL,0x0000                    ; TURBO 7,0 MHZ
838 savelij 473
                JR Z,.L2
1031 savelij 474
                LD HL,0x0800                    ; TURBO 14 MHZ
838 savelij 475
.L2             LD A,(R_EFF7)
596 savelij 476
                AND %11101111
477
                OR L
961 savelij 478
                LD (R_EFF7),A                   ; ⠭ ࡮   EFF7
596 savelij 479
                LD A,(B_PORT77)
480
                AND %11110111
481
                OR H
961 savelij 482
                LD (B_PORT77),A                 ; ⠭ ࡮ ०   xx77
596 savelij 483
                EXX
838 savelij 484
.L3             LD A,E
1120 savelij 485
                RRCA
486
                RRCA
961 savelij 487
                AND 3                           ; 뤥  ० 
1186 savelij 488
                JR Z,.L5                        ; ᫨ 0  ०   塞
961 savelij 489
; ᬥ ० 
596 savelij 490
                DEC A
1031 savelij 491
                LD HL,0x0000                    ;  1024
838 savelij 492
                JR Z,.L1
493
                DEC A
1031 savelij 494
                LD HL,0x2004                    ;  48
838 savelij 495
                JR Z,.L1
1031 savelij 496
                LD HL,0x0004                    ;  128
838 savelij 497
.L1             LD A,(R_7FFD)
498
                AND %11011111
499
                OR H
500
                LD (R_7FFD),A
501
                LD A,(R_EFF7)
502
                AND %11111011
503
                OR L
504
                LD (R_EFF7),A
505
                RET
596 savelij 506
 
1186 savelij 507
.L5             LD A,(TEK_MODES)
596 savelij 508
                LD (RREG_A),A
509
                RET
510
 
961 savelij 511
; 䮫 祭  
838 savelij 512
;                   ED   EC   EB   EA   E9   E8
1031 savelij 513
CMOS_DEFAULT    DB 0x04,0x82,0x00,0x00,0x00,0x00
596 savelij 514
ECMOS_DEFAULT
515
 
875 savelij 516
INST_SONGLN     LD HL,SONGLNBIN
1031 savelij 517
                LD DE,0xC000
875 savelij 518
                JP UNPACK
519
 
520
SONGLNBIN       binclude songln_pack.bin
596 savelij 521
                include tape.a80
522
                include ay_printer.a80
523
                include txtmode_proc.a80
524
                include window.a80
525
                include selector.a80
526
                include input_keys.a80
527
                include mouse.a80
528
                include file_browser.a80
646 savelij 529
                include call_trdos.a80
623 savelij 530
                include call_cmos.a80
596 savelij 531
 
1186 savelij 532
        PHASE $+CPU3
761 savelij 533
UNPACK_DOS_FE   LD HL,PACK_DOS_FE
534
                LD DE,CPU2
535
                JP UNPACK+CPU3
536
 
537
PACK_DOS_FE     binclude ../../page1/dos_fe_pack.rom
1186 savelij 538
        DEPHASE
761 savelij 539
 
1031 savelij 540
FREE_ADDONS     EQU 0x3FF6-$
831 savelij 541
 
1186 savelij 542
                DB FREE_ADDONS DUP 0xFF
961 savelij 543
                DW FREE_ADDONS                  ; ࠧ ᢮ 
573 savelij 544
                DB "ADDONS"
585 savelij 545
                DW DATA_VERS
1186 savelij 546
        DEPHASE