Subversion Repositories pentevo

Rev

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

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