Subversion Repositories NedoOS

Rev

Rev 1947 | Details | Compare with Previous | Last modification | View Log

Rev Author Line No. Line
68 Alone 1
        DEVICE ZXSPECTRUM128
76 Alone 2
        ;device pentagon1024
8 dimkam 3
 
4
        include "../_sdk/syssets.asm"
964 alone 5
       ifdef USETOPDOWNMEM
1947 dimkam 6
TOPDOWNMEM=1
964 alone 7
       else
574 alone 8
TOPDOWNMEM=0;1
964 alone 9
       endif
8 dimkam 10
 
2004 alone 11
EFF7VALUE=0x10 ;noturbo
12
 
147 alone 13
                if atm != 2
14
memport0000=0x37f7
15
memport4000=0x77f7
16
memport8000=0xb7f7
17
memportc000=0xf7f7
18
memportrom0000=0x3ff7
19
memportrom4000=0x7ff7
20
memportrom8000=0xbff7
21
memportromc000=0xfff7
22
pagexor=0xff
92 DimkaM 23
        else
147 alone 24
memport0000=0x3ff7
25
memport4000=0x7ff7
26
memport8000=0xbff7
27
memportc000=0xfff7
28
memportrom0000=0x3ff7
29
memportrom4000=0x7ff7
30
memportrom8000=0xbff7
31
memportromc000=0xfff7
32
pagexor=0x7f
92 DimkaM 33
        endif
34
 
78 Alone 35
        if NEMOIDE==1
344 alone 36
;奬 Nemo:
147 alone 37
hddstat=0xF0
38
hddcmd=0xF0
39
hddhead=0xD0
40
hddcylhi=0xB0
41
hddcyllo=0x90
42
hddsec=0x70
43
hddcount=0x50
44
hdderr=0x30
45
hdddatlo=0x10
46
hdddathi=0x11
47
hddupr=0xC8
8 dimkam 48
hdduprON=0
49
        else
344 alone 50
;奬 ATM:
147 alone 51
hddstat=0xFEEF
52
hddcmd=0xFEEF
53
hddhead=0xFECF
54
hddcylhi=0xFEAF
55
hddcyllo=0xFE8F
56
hddsec=0xFE6F
57
hddcount=0xFE4F
58
hdderr=0xFE2F
59
hdddatlo=0xFE0F
60
hdddathi=0xFF0F
344 alone 61
hddupr=0xFEBE ; ⠭ b7 FFBA
147 alone 62
hdduprON=0xFFBA
63
hddupr1=0xF7
64
hddupr0=0x77
8 dimkam 65
        endif
66
memport8000_hi=memport8000/256
67
memportc000_hi=memportc000/256
92 DimkaM 68
 
62 Alone 69
SYSMINSTACK=0x3b00
8 dimkam 70
 
344 alone 71
resident=0x6000;0x6000+8000 (    ⪥ ࠭) ;pgtrdosfs
147 alone 72
trdos_catbuf=0x6300;0x3200 ;,0x900 ;pgtrdosfs (0x4000)
106 alone 73
trdos_sectorbuf=0x6c00
74
trdos_fcbbuf=0x6d00 ;size=0x200*trdos_MAXFILES
62 Alone 75
trdos_MAXFILES=8
453 alone 76
INTMUZSTACK=0x3e00 ;kernelspace
768 alone 77
;INTSTACK1=0x3f00 ;kernelspace ( 室  ࠡ稪   ⥪) ( ᥪ   ⥪ !!!)
344 alone 78
INTSTACK2=0x5f00;0x6000 ;pgkillable  pgtrdosfs (ࠡ稩 ⥪ ࠡ稪 뢠) (>=0x4000,   몫 ⥭ )
79
TRDOSSTACK=0x5f00-96;0x6000-96 ;⮡  ᥪ  INTSTACK ( ஬⪥  ४祭ﬨ ࠭  ந ⥬ 뢠),    ࠭  
62 Alone 80
BDOSSTACK=0x4000 ;kernelspace
81
STACK=0x4000 ;userspace
344 alone 82
; 맮 BDOS ⥪ ஥ ६ ⠪ ,   ᯥ
83
;⮬  室  BDOS    0x4000...0xffff ࠭,   
84
;।,     ⥪  0x3b00,    ⥬
8 dimkam 85
 
86
        include "../_sdk/sys_h.asm"
87
 
92 DimkaM 88
        if TOPDOWNMEM
89
pgtrdosfs=pagexor-(sys_npages-1)
90
pgfatfs=pagexor-(sys_npages-2)
91
pgsys=pagexor-(sys_npages-3)
116 alone 92
pgfatfs2=pagexor-(sys_npages-4) ;structs
92 DimkaM 93
        else
94
pgtrdosfs=pagexor-8
95
pgfatfs=pagexor-9
8 dimkam 96
pgsys=pagexor-10
116 alone 97
pgfatfs2=pagexor-11 ;structs
92 DimkaM 98
        endif
99
 
344 alone 100
pgkillable=pagexor-4 ; 128K , ..  
92 DimkaM 101
;pgfirstfree=pagexor-11
8 dimkam 102
 
103
pgscr0_0=pagexor-1
104
pgscr0_1=pagexor-5
105
pgscr1_0=pagexor-3
106
pgscr1_1=pagexor-7
107
 
344 alone 108
fd_system=0x57;%01010111 ;%0x01sx1x ; ࠢ 2  A9=1,   ࠭  0x7ffd  㤥 , ᫨   memportc000
109
fd_system_getchar=0x56;%01010110 ;%0x01sx1x ; ࠢ 2  A9=1,   ࠭  0x7ffd  㤥 , ᫨   memportc000
110
fd_user=0x47;%01000111 ;%0x00sx1x ; ࠢ 2  A9=1,   ࠭  0x7ffd  㤥 , ᫨   memportc000
92 DimkaM 111
 
344 alone 112
;᫮ ࠭  sjasm
8 dimkam 113
COMPILEPG_INIT=0
116 alone 114
COMPILEPG_SYS0=4
115
COMPILEPG_SYS1=6
8 dimkam 116
 
117
        SLOT 1
118
        page COMPILEPG_INIT
147 alone 119
        org 0x6000
8 dimkam 120
begin
821 dimkam 121
        di
8 dimkam 122
        xor a
147 alone 123
        out (0xfe),a
821 dimkam 124
        ifdef KOE
125
            display "KOE!!!"
2004 alone 126
            ld a,0+EFF7VALUE ;turbo ;0x10 ;noturbo
821 dimkam 127
            ld bc,0xeff7
128
            out (c),a ;for KOE
129
            ld a,0x10
130
            ld bc,0x7ffd
131
            out (c),a
132
        endif
1358 alone 133
        if atm==2
821 dimkam 134
            ld hl,basvar.tape
135
            ld de,0x5c00
136
            ld bc,basvar.endtape - basvar.tape
137
            ldir
138
            ld sp,0x5800
139
            ld a,(0x3CBC)
140
            cp 0x83
141
            call z,0x3C9E
142
            ;call 0x3d21
143
        endif
1358 alone 144
        if atm==3
145
         ld a,32 ;xor a ;D5=444 palette
146
         out (0xbf),a
147
        endif
147 alone 148
        LD (IY+1),0xCC
86 Alone 149
 
150
        if 1==0
821 dimkam 151
            LD A,(23833)
152
            ADD A,'A'
153
            LD (src),A
154
            LD (dst),A
155
            XOR A
156
            LD (23658),A ;0x5c6a
157
            ;LD L,A,H,L
158
            ;LD (23802),HL 
86 Alone 159
        endif
821 dimkam 160
        XOR A
161
        ld (0x5d10),a
86 Alone 162
 
1343 alone 163
        call reset_ay
164
 
147 alone 165
        ;ld hl,0xc9f1 ;pop af:ret
166
        ;ld (0x5cc2),hl
8 dimkam 167
 
444 alone 168
        ;ld bc,0xfbdf ;x
169
        ;in l,(c)
170
        ;ld b,0xff
171
        ;in h,(c)
172
        ;ld (init_oldmousecoords),hl
8 dimkam 173
 
174
;;;;;;;;;;;;;;;;;;; set gfx mode ;;;;;;;;;;;;;;;;;
774 dimkam 175
                ei
8 dimkam 176
        halt
147 alone 177
        ;LD A,0xaa;%10101010 ;640x200 mode
178
        ;LD A,0xae;%10101110 ;textmode
145 dimkam 179
                if atm==1
848 dimkam 180
init_rst_buf=0x4000
181
            ;஢ਬ  ers
182
            ld d,0x00
183
                        rst 0x08
184
                        defb 0x4d,0x00
185
            ld hl,-0x5812    ;ERS_MIN_VERSION 0.58.12
186
            add hl,de
187
            ld a,0xff
188
            jr nc,.err_version
436 dimkam 189
                        ;᭨ 㤠 ⨫
190
                        ld hl,init_rst_buf
191
                        rst 0x08
192
                        defb 0x50,0x03
193
                        rst 0x08        ;  D ୥ ⥪騩 ࠩ
194
                        defb 0x50,0x02
195
                        ld a,d
196
                        add a,a
197
                        add a,a
198
                        add a,a
199
                        ld hl,init_rst_buf
200
                        ld b,0
201
                        ld c,a
202
                        add hl,bc
203
                        ld de,init_rst_buf+512
204
                        ld bc,8
205
                        ldir
206
                        ld a,(init_rst_buf+512)
207
                        rst 0x08
208
                        defb 0x50,0x05
209
                        ld a,(init_rst_buf+512)
210
                        and 1 ;m/s
211
                        ld hl,init_rst_buf
212
                        ld bc,0x0000
213
                        ld d,b
214
                        ld e,c
215
                        ld a,2
775 alone 216
                        ex af,af' ;'
436 dimkam 217
                        ld a,1
218
                        rst 0x08
219
                        defb 0x50,0x04,0x02
220
                        ld a,(init_rst_buf+512)
221
                        ld d,12
222
                        cp 0x0f
223
                        jr z,.l3
224
                        ld d,3
225
                        cp 4
226
                        jr z,.init_sysdev_part
227
                        ld d,7
228
                        cp 5
229
                        jp nz,init_sysdev_end
230
.init_sysdev_part
231
                        ld hl,init_rst_buf+0x01BE+0x0008-12
232
.l2
233
                        inc d
234
                        push de
235
                        ld bc,12
236
                        add hl,bc
237
                        ld bc,0x0400
238
                        ld de,init_rst_buf+512+3
239
.l1                     ld a,(de)
240
                        xor (hl)
241
                        or c
242
                        ld c,a
243
                        inc de
244
                        inc hl
245
                        djnz .l1
246
                        pop de
247
                        or a
248
                        jr nz,.l2
249
.l3
250
                        ld a,d
848 dimkam 251
.err_version
436 dimkam 252
                        ld (init_sysdrv_val),a
253
init_sysdev_end
254
                        halt
285 dimkam 255
                        ld bc,0xeff7
2004 alone 256
                        ld a,0x80+EFF7VALUE
285 dimkam 257
                        out (c),a
258
                        ld a,0x10
259
                        ld bc,0x7ffd
260
                        out (c),a
209 dimkam 261
                        ld bc,0x01bf
262
                        out (c),b
285 dimkam 263
                        LD A,0xa8;%10101000 ;320x200 mode
145 dimkam 264
                        ld bc,0xbd77    ;shadow ports and palette remain on
265
                        out (c),a
1356 alone 266
                         ld a,32 ;xor a ;D5=444 palette
145 dimkam 267
                        out (0xbf),a
268
                else
285 dimkam 269
                        LD A,0xa8;%10101000 ;320x200 mode
145 dimkam 270
                        CALL INIT_OUTSHADON
271
        endif
8 dimkam 272
        call INIT_blackpal
273
 
274
        di
145 dimkam 275
                if atm==1 and PS2KBD
276
                        ld bc,0xdef7   
277
                        out (c),c              
278
                        ld b,0xbe              
279
                        ld a,2                 
280
                        out (c),a
281
                endif
282
 
283
                if atm==3 or atm==1
147 alone 284
                        ld a,0x7f-5
141 dimkam 285
                        ld bc,memportrom4000
344 alone 286
                        out (c),a ;⪫砥 7ffd
147 alone 287
                        ld a,0x7f-2
141 dimkam 288
                        ld bc,memportrom8000
344 alone 289
                        out (c),a ;⪫砥 7ffd
147 alone 290
                        ;ld a,0x7f-2
141 dimkam 291
                        ld bc,memportromc000
344 alone 292
                        out (c),a ;⪫砥 7ffd
141 dimkam 293
                endif
821 dimkam 294
 
891 alone 295
                if atm != 1
145 dimkam 296
                        call findpgdos
297
                else
739 dimkam 298
                        ld a,0x04
1947 dimkam 299
                        in a,(0xbd)
739 dimkam 300
                        and 0xbf;%10111111
301
                        ;ld a,0x8b
145 dimkam 302
                endif
821 dimkam 303
        ld lx,a
344 alone 304
        ld (sys_pgdos),a ; ⠭ १
8 dimkam 305
 
306
        ld a,pgsys
307
        call INIT_setpg_c000
147 alone 308
        ld hl,0x8000
309
        ld de,0xc000
310
        ld bc,0x4000
8 dimkam 311
        ldir
312
 
313
        ld a,pgtrdosfs
314
        call INIT_setpg_c000
315
        ld hl,wastrdosfs
147 alone 316
        ld de,0xc000+idle;COMMANDLINE;PROGSTART ;idle code
8 dimkam 317
        ld bc,trdosfs_sz
318
        ldir
848 dimkam 319
        ld a,(init_sysdrv_val)  ;㦭  ஢ન ᨨ ERS
320
        ld (0xc000+idle+6),a    ; ࠢ쭮 ERS ᤨ==0xff
209 dimkam 321
                        ld a,0xc3
322
                        ld (0x5cc2),a
323
                        ld hl,ONERR;ddrv
324
                        ld (0x5cc3),hl
208 dimkam 325
                        ld hl,0x5c00
326
                        ld de,0xc000+0x1c00
712 alone 327
                        ld bc,0x0400;for run hobeta;0x0200;0x5d3b-0x5c00
208 dimkam 328
                        ldir
8 dimkam 329
        ld hl,wasresident
147 alone 330
        ld de,resident+0xc000-0x4000
8 dimkam 331
        ld bc,resident_sz
332
        ldir
208 dimkam 333
                        ld hl,0x5c4b
334
                        ld de,varbas_stor+0x8000
335
                        ld bc,32
336
                        ldir
77 Alone 337
 
147 alone 338
        ld hl,0xc000+trdos_fcbbuf-0x4000
77 Alone 339
        ld d,h
340
        ld e,l
341
        inc de
342
        ld bc,0x200*trdos_MAXFILES-1
343
        ld (hl),l;0
344
        ldir
8 dimkam 345
 
346
        ;ld a,pgidle
347
        ;call INIT_setpg_c000
348
        ;ld hl,wasidle
147 alone 349
        ;ld de,0x0100+0xc000
8 dimkam 350
        ;ld bc,idle_sz
351
        ;ldir
352
 
353
        ld a,pgsys
354
        call INIT_setpg_8000
355
        ld a,pgfatfs
356
        call INIT_setpg_c000
357
 
854 alone 358
        ;jr $
359
;ॡ뢠 16K 㯠   0xb000
360
        ld hl,wassys+0x4fff
147 alone 361
        ld de,0xffff
854 alone 362
        ld bc,0x5000
8 dimkam 363
        lddr
344 alone 364
;ᯠ뢠  0x6400
854 alone 365
        ld hl,0xb000;wassys
147 alone 366
        ld de,0x6400;0x8000
854 alone 367
        call DEC40 ;ᯠ뢠  de (⠬ 㦥 祭 ⥬ ࠭窨)
344 alone 368
;ॡ뢠 32K  0x6400  0x8000
147 alone 369
        ld hl,0x6400+0x7fff
370
        ld de,0x8000+0x7fff
371
        ld bc,0x8000
8 dimkam 372
        lddr
373
 
147 alone 374
fatfspatchaddr=0xc000
8 dimkam 375
 
376
        ld hl,devices_init
115 alone 377
        ld (0xc000+FFS_DRV.init),hl
112 dimkam 378
        ld hl,disk_status
115 alone 379
        ld (0xc000+FFS_DRV.status),hl
112 dimkam 380
        ld hl,devices_read      ;read to userspace
115 alone 381
        ld (0xc000+FFS_DRV.rd_to_usp),hl
116 alone 382
        ld hl,devices_readnopg  ;read to buffer
115 alone 383
        ld (0xc000+FFS_DRV.rd_to_buf),hl
112 dimkam 384
        ld hl,devices_write     ;write from userspace
115 alone 385
        ld (0xc000+FFS_DRV.wr_fr_usp),hl
116 alone 386
        ld hl,devices_writenopg ;write from buffer
115 alone 387
        ld (0xc000+FFS_DRV.wr_fr_buf),hl
8 dimkam 388
        ld hl,get_fattime
115 alone 389
        ld (0xc000+FFS_DRV.RTC),hl
390
        ld hl,strcpy_lib2usp   
391
        ld (0xc000+FFS_DRV.strcpy_lib2usp),hl
392
        ld hl,strcpy_usp2lib
393
        ld (0xc000+FFS_DRV.strcpy_usp2lib),hl
394
        ld hl,memcpy_lib2usp
395
        ld (0xc000+FFS_DRV.memcpy_lib2usp),hl
396
        ld hl,memcpy_usp2lib
397
        ld (0xc000+FFS_DRV.memcpy_usp2lib),hl
398
        ld hl,memcpy_buf2usp
399
        ld (0xc000+FFS_DRV.memcpy_buf2usp),hl
400
        ld hl,memcpy_usp2buf
401
        ld (0xc000+FFS_DRV.memcpy_usp2buf),hl
8 dimkam 402
 
344 alone 403
;樠    室  ᯥ:
404
;HALT (⮡ 뢠  ந諮   )
405
;[砥 ࠭ ⥬ᯥ (     ⠪ ,   ᯥ) - 㦥   ࠭ 5]
406
; ᯥ 砥  ࠭  ୠ ( )
8 dimkam 407
        ld a,fd_user
147 alone 408
        out (0xfd),a
145 dimkam 409
                if atm==3 or atm==1
147 alone 410
         ld a,0x7f
8 dimkam 411
         ld bc,memportrom0000
344 alone 412
         out (c),a ;⪫砥 
147 alone 413
         ld a,0x7f-5
8 dimkam 414
         ld bc,memportrom4000
344 alone 415
         out (c),a ;⪫砥 7ffd
147 alone 416
         ld a,0x7f-2
8 dimkam 417
         ld bc,memportrom8000
344 alone 418
         out (c),a ;⪫砥 7ffd
147 alone 419
         ;ld a,0x7f-2
8 dimkam 420
         ld bc,memportromc000
344 alone 421
         out (c),a ;⪫砥 7ffd
8 dimkam 422
        endif
423
        ld a,pgtrdosfs ;idle
424
        ld bc,memport0000
425
        out (c),a
426
 
147 alone 427
        ;ld hl,wasuserkernel+0x8000
8 dimkam 428
        ;ld de,0
429
        ;ld bc,userkernel_sz
430
        ;ldir
431
 
432
        ld a,fd_system
147 alone 433
        out (0xfd),a
145 dimkam 434
                if atm==3 or atm==1
147 alone 435
         ld a,0x7f
8 dimkam 436
         ld bc,memportrom0000
344 alone 437
         out (c),a ;⪫砥 
438
         ;4000,8000,c000 㦥 ⪫稫 7ffd 
8 dimkam 439
        endif
440
        ld a,pgsys
441
        ld bc,memport0000
442
        out (c),a
344 alone 443
; ⥬ᯥ:
444
; fatfs
445
;⠢ १  7fxx
446
;室  sys_intq,  㤠  init_resident
8 dimkam 447
 
86 Alone 448
        if 1==0
449
        ld a,lx;(sys_pgdos)
450
        ld bc,memportrom0000
451
        out (c),a
147 alone 452
        LD A,0xa8;%10101000 ;320x200 mode
453
        ld bc,0xff77 ;shadow ports off, palette off
86 Alone 454
        out (c),a
455
        ld a,1
456
        ld c,1
147 alone 457
        call 0x3d13
458
        ld c,0x18
459
        call 0x3d13
460
        ld hl,0xc000
461
        ld de,0x0000
462
        ld bc,0x0805
463
        call 0x3d13
86 Alone 464
        jr $
465
        endif
8 dimkam 466
 
467
        ld sp,BDOSSTACK
468
        ;ei
344 alone 469
        ;halt ;⮡ 뢠  ந諮   
8 dimkam 470
        ;di
92 DimkaM 471
        ;jr $
444 alone 472
;init_oldmousecoords=$+1
473
;        ld hl,0
474
;        ld (sys_oldmousecoords),hl
116 alone 475
         call BDOS_setpgstructs
476
         ld hl,0xc000
477
         ld de,0xc001
478
         ld bc,0x3fff
479
         ld (hl),l;0
344 alone 480
         ldir ; 
436 dimkam 481
init_sysdrv_val=$+1
482
         ld a,SYSDRV
483
         ld (SYSDRV_VAL),a
506 alone 484
        jp setkernelpages_go ;di!!!
1343 alone 485
 
486
reset_ay
487
        ld a,0xfe
488
        call reset_ay_ay
489
        ld a,0xff
490
reset_ay_ay
491
        ld bc,#fffd
492
        out (c),a
493
        xor a
494
        ld l,a
495
reset_ay_ay0
496
        ld b,#ff
497
        out (c),a
498
        ld b,#bf
499
        out (c),l
500
        inc a
501
        cp 14
502
        jr nz,reset_ay_ay0
503
        ret
504
 
891 alone 505
                if atm != 1
8 dimkam 506
INIT_OUTSHADON
147 alone 507
        ;LD BC,0xFF77 ;shadow ports remain off
508
                        LD BC,0xBD77 ;shadow ports and palette remain on
145 dimkam 509
                        LD IX,10835
510
                        PUSH IX
147 alone 511
                        JP 0x3D2F
145 dimkam 512
                endif
8 dimkam 513
 
514
INIT_setpg_low
147 alone 515
        LD BC,memportrom0000 ;page for 0x0000..0x3fff
8 dimkam 516
        OUT (C),A
517
        ret
518
 
519
INIT_setpg_8000
147 alone 520
        LD BC,memport8000 ;page for 0x8000..0xbfff
8 dimkam 521
        OUT (C),A
522
        ret
523
 
524
INIT_setpg_c000
147 alone 525
        LD BC,memportc000 ;page for 0xc000..0xffff
8 dimkam 526
        OUT (C),A
527
        ret
821 dimkam 528
 
529
                if atm==2
530
basvar
531
.tape
532
        defb 0xFF, 0x00, 0x00, 0x00, 0x0D, 0x05, 0x10, 0x0D, 0x0D, 0x10, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00
533
        defb 0x01, 0x00, 0x06, 0x00, 0x0B, 0x00, 0x01, 0x00, 0x01, 0x00, 0x06, 0x00, 0x10, 0x00, 0x00, 0x00
534
        defb 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFD, 0x7F, 0x3E, 0x14, 0xED, 0x79, 0xC3, 0x00, 0xC0
535
        defb 0x18, 0xF4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x40, 0x00, 0xFF, 0xCC, 0x01, 0xFC, 0x5F, 0x00
536
        defb 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x00, 0x02, 0x07, 0x00, 0x00, 0xB4, 0x5D, 0x00, 0x00, 0x26
537
        defb 0x5D, 0x26, 0x5D, 0x3B, 0x5D, 0xB4, 0x5D, 0x3A, 0x5D, 0xB5, 0x5D, 0xB5, 0x5D, 0xB3, 0x5D, 0x00
538
        defb 0x00, 0xB7, 0x5D, 0xC3, 0x5D, 0xC3, 0x5D, 0x2D, 0x92, 0x5C, 0x10, 0x02, 0x00, 0x00, 0x00, 0x00
539
        defb 0x00, 0x00, 0x00, 0x00, 0xB6, 0x1A, 0x92, 0x00, 0x24, 0x01, 0x00, 0x58, 0xFF, 0x00, 0x00, 0x21
540
        defb 0x00, 0x5B, 0x21, 0x17, 0x00, 0x40, 0xE0, 0x50, 0x21, 0x18, 0x21, 0x17, 0x01, 0x07, 0x00, 0x07
541
        defb 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
542
        defb 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
543
        defb 0x00, 0x00, 0xFF, 0x5F, 0xFF, 0xFF, 0xF4, 0x09, 0xA8, 0x10, 0x4B, 0xF4, 0x09, 0xC4, 0x15, 0x53
544
        defb 0x81, 0x0F, 0xC9, 0x49, 0x91, 0xF4, 0x09, 0xC4, 0x83, 0x83, 0x83, 0x83, 0x00, 0x00, 0x00, 0x35
545
        defb 0x36, 0x31, 0x36, 0x0E, 0x00, 0x00, 0x03, 0x6B, 0x5E, 0x95, 0x5E, 0x00, 0x25, 0x73, 0x74, 0x73
546
        defb 0x35, 0x2E, 0x31, 0x61, 0x20, 0x43, 0x00, 0xDB, 0x00, 0x25, 0x25, 0x03, 0x09, 0x00, 0x00, 0x00
547
        defb 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x08, 0x08, 0x80, 0x08
548
        defb 0x00, 0xC8, 0xFA, 0x5C, 0xFA, 0x5C, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00
549
        defb 0xFF, 0x89, 0x5D, 0xFC, 0x5F, 0xFF, 0x3C, 0xAA, 0x00, 0x00, 0x01, 0x02, 0xFA, 0x5F, 0x03, 0x00
550
        defb 0xFE, 0x0D, 0x80, 0x00, 0x00, 0xFF, 0xF4, 0x09, 0xA8, 0x10, 0x4B, 0xF4, 0x09, 0xC4, 0x15, 0x53
551
        defb 0x81, 0x0F, 0xC4, 0x15, 0x52, 0xF4, 0x09, 0xC4, 0x15, 0x50, 0x80, 0x01, 0x00, 0x23, 0x00, 0xFD
552
        defb 0xB0, 0x22, 0x36, 0x35, 0x33, 0x36, 0x38, 0x22, 0x3A, 0xF9, 0xC0, 0xB0, 0x22, 0x31, 0x35, 0x36
553
        defb 0x31, 0x39, 0x22, 0x3A, 0xEA, 0x3A, 0xF7, 0x22, 0x62, 0x6F, 0x6F, 0x74, 0x20, 0x20, 0x20, 0x20
554
        defb 0x22, 0x0D, 0x80, 0xF4, 0x5C, 0x01, 0x05, 0x2E, 0x21, 0x00, 0x60, 0xE5, 0xC3, 0x13, 0x3D, 0x0D
555
.endtape
556
        endif
660 alone 557
 
891 alone 558
                if atm != 1
8 dimkam 559
findpgdos
344 alone 560
;᫨   ࠭ ⥪饣 ,      ZX Evo  㤥 ࠡ ( ࠭ 0x83 祬-    㬮砭)
8 dimkam 561
        call crcdos
562
        ld (doscrchi),de
563
        ld (doscrclo),bc
147 alone 564
        ld lx,0x83
8 dimkam 565
findpgdos0
566
        ld a,lx
567
        call INIT_setpg_low
568
        call crcdos
569
doscrchi=$+1
570
        ld hl,0
571
        or a
572
        sbc hl,de
573
        jr nz,doscrcbad
574
doscrclo=$+1
575
        ld hl,0
576
        or a
577
        sbc hl,bc
578
        jr nz,doscrcbad
579
        ld a,lx
580
        ret
581
doscrcbad
582
        ld a,lx
583
        add a,4
584
        ld lx,a
147 alone 585
        cp 0xc0
8 dimkam 586
        jr c,findpgdos0
147 alone 587
        ld a,0x83 ;not found
8 dimkam 588
        ret
589
crcdos
147 alone 590
        ld hl,0x0000
8 dimkam 591
        ld bc,0
592
        ld de,0
593
crcdos0
594
        ld a,d
595
        add a,a
596
        rl c
597
        rl b
598
        rl e
599
        rl d
600
        xor b
601
        ld b,a
602
        ld a,(hl)
603
        xor c
604
        ld c,a
605
        inc hl
606
        bit 6,h
607
        jr z,crcdos0
608
        ret
145 dimkam 609
                endif
8 dimkam 610
 
611
INIT_blackpal
612
        LD HL,blackpalend
344 alone 613
        ;halt ;halt   - ࠭, ⮡  ᢥ⨫ 祣
147 alone 614
        LD DE,0xa80f ;0xab=6912 ;palette on, EGA, turbo
615
        LD BC,0xBD77
8 dimkam 616
        OUT (C),D
617
INIT_setpal0 LD A,E
618
        and 7
619
        BIT 3,E
147 alone 620
        OUT (0xFE),A
8 dimkam 621
        JR Z,$+4
147 alone 622
        OUT (0xF6),A
8 dimkam 623
        LD A,(HL)
624
        DEC HL
625
        ld b,(hl) ;DDp palette low bits
626
        dec hl
147 alone 627
        ld c,0xff
628
        OUT (c),a;(0xFF),A
8 dimkam 629
        DEC E
630
        JP P,INIT_setpal0
631
        ret
632
 
775 alone 633
        ifdef NOPAL
634
        dw 0xffff,0xfefe,0xfdfd,0xfcfc,0xefef,0xeeee,0xeded,0xecec
635
        dw 0xffff,0xdede,0xbdbd,0x9c9c,0x6f6f,0x4e4e,0x2d2d,0x0c0c
636
        else
147 alone 637
        ds 32,0xf3
775 alone 638
        endif
8 dimkam 639
blackpalend=$-1
640
 
62 Alone 641
        include "unmegalz.asm" ;DEC40
8 dimkam 642
 
643
wasresident
210 dimkam 644
        disp resident
891 alone 645
                if atm != 1
210 dimkam 646
readmouse  ;=$-wasresident+resident
147 alone 647
;sp=0x7fxx
8 dimkam 648
;e=gfxmode
891 alone 649
;out:
650
;a=gfxmode, hl=mousecoords, d=mousebuttons, e=kempstonbuttons
210 dimkam 651
                        call sys_SHADOFF
775 alone 652
                       ;ifdef NOMOUSE
653
                       ; ld hl,0
654
                       ; ld d,0x0f ;buttons
655
                       ;else
210 dimkam 656
                        ld bc,0xfadf ;buttons
657
                        in d,(c)
658
                        inc b ;ld bc,0xfbdf ;x
659
                        in l,(c)
660
                        ld b,0xff ;y
661
                        in h,(c)
891 alone 662
                        ld c,0x1f
663
                        in e,(c) ;kempstonbuttons
664
                        inc e
665
                        jr nz,$+3 ;0xff = kempston joystick absent
666
                         inc e ;will be 0 after dec
667
                        dec e
668
                        jr shadon_pgsys_a
775 alone 669
                       ;endif
145 dimkam 670
                endif
210 dimkam 671
shadon_pgsys  ;=$-wasresident+resident
147 alone 672
        LD A,e;0xa8;%10101000 ;320x200 mode
210 dimkam 673
shadon_pgsys_a  ;=$-wasresident+resident
891 alone 674
                if atm != 1
145 dimkam 675
                        CALL sys_SHADON
676
                else
677
                        ld bc,0x01bf
678
                        out (c),b
679
                        ld bc,0xbd77    ;shadow ports and palette remain on
680
                        out (c),a
1356 alone 681
                         ld a,32 ;xor a ;D5=444 palette
145 dimkam 682
                        out (0xbf),a
683
                endif
684
 
685
                if atm==3 or atm==1
147 alone 686
                        ld a,0x7f
145 dimkam 687
                        call sys_setpg_low
688
                        ld a,pgsys
689
                        ld bc,memport0000
690
                        jr sys_outca_jr
92 DimkaM 691
         else
147 alone 692
                        ld a,0x7f-(pagexor-pgsys)
92 DimkaM 693
         endif
210 dimkam 694
sys_setpg_low  ;=$-wasresident+resident
145 dimkam 695
                ld bc,memportrom0000
696
                jr sys_outca_jr
210 dimkam 697
sys_SHADOFF  ;=$-wasresident+resident
344 alone 698
sys_pgdos=wasresident+(($+1)-resident) ; 
147 alone 699
                ld a,0x83 ;48 basic switchable to DOS
145 dimkam 700
                call sys_setpg_low
147 alone 701
        LD A,e;0xa8;%10101000 ;320x200 mode
702
                ld bc,0xff77 ;shadow ports off, palette off
8 dimkam 703
sys_outca_jr
704
        out (c),a
145 dimkam 705
                ret
891 alone 706
                if atm != 1
210 dimkam 707
sys_SHADON  ;=$-wasresident+resident
145 dimkam 708
                        LD bc,10835
709
                        PUSH bc
147 alone 710
                        LD BC,0xBD77 ;shadow ports and palette remain on
711
                        JP 0x3D2F
145 dimkam 712
                endif
8 dimkam 713
 
344 alone 714
;TODO   pgtrdos
210 dimkam 715
dos3d13_resident  ;=$-wasresident+resident
288 dimkam 716
 
344 alone 717
;ᥩ 祭 pg5
8 dimkam 718
;iy=23610
210 dimkam 719
        ld (dos3d13_sp_st),sp
344 alone 720
        ld sp,trdos_sp ; ⥪  0x4000+ ( ᥪ騩  INTSTACK, .. ᥩ  ந ⥬ 뢠),  㬮砭 ⥪   0x3fxx
8 dimkam 721
        ;call swap_sysvars
891 alone 722
        ex af,af' ;'
344 alone 723
        call sys_SHADOFF ;稫 
210 dimkam 724
                ld (em3d13_de_st),de    ;push de ;e=gfxmode
725
 
726
                ;*****************************  
727
                ;call EM3D13PP;0x3d13
344 alone 728
                ;ᮡ⢥ pp,  0x313 (   ᯮ짮)
729
                ; 室 - A p 0 -  ,  0 - 訡
730
                ;  p楤yp DRAW_WINDOWS, PRINT_WINDOWS  REST_WINDOW
731
                ;ᯮy ᢮.
210 dimkam 732
                ;Kurleson
733
;EM3D13PP
734
        ld      hl,em3d13pp_ret
735
        push    hl
736
        ld      (23613),sp
737
        xor     a
738
        ld (23801),a
739
        ld      (23823),a
740
        ld      (23824),a
741
        ld hl,varbas_stor
742
        ld de,0x5c4b
743
        ld bc,32
744
        ldir
745
        if atm == 1
1356 alone 746
                 ld a,32 ;xor a ;D5=444 palette
210 dimkam 747
                out (0xbf),a
748
        endif
749
        exx     ;pop hl,de,bc
891 alone 750
        ex af,af' ;'
210 dimkam 751
        jp      0x3D13
660 alone 752
 
210 dimkam 753
ONERR
754
        ex      (sp),hl
755
        push    af
756
        ld a,(0x5d0f)
757
        or a
758
        jr nz,em3d13pp_ret
759
        ld      a,h
760
        cp      0x0d
761
        jr      z,em3d13_error
762
ONERR_NO
763
        pop     af
764
        ex      (sp),hl
765
        ret
766
em3d13_error  
767
        ld      a,0xff
768
        ld (0x5d0f),a
769
em3d13pp_ret
660 alone 770
 
210 dimkam 771
em3d13_de_st=$+1
772
    ld de,0     ;e=gfxmode
116 alone 773
        di
344 alone 774
    call shadon_pgsys ;몫稫  (⮬୮ -    !!!)
116 alone 775
        ei
8 dimkam 776
        ;call swap_sysvars
210 dimkam 777
dos3d13_sp_st=$+1       ;-wasresident+resident
778
        ld sp,0
344 alone 779
        ld a,(0x5d0f)   ; 訡
210 dimkam 780
        ret
1659 alone 781
 
1665 alone 782
        if atm != 1
1659 alone 783
                if atm2clock != 1
1398 Kulich 784
; প ᮢ GLUK  2+ (㠫쭠 楤  Evo 室  syskrnl)
145 dimkam 785
NVRAM_REG=0xdf
786
NVRAM_VAL=0xbf
1659 alone 787
 
788
bin2cmos ;a to cmos cell b (BCD)
789
        push af
790
        ld a,b
791
        ld bc,0xf7 + (NVRAM_REG<<8)
792
        out (c),a
793
        pop af
794
        ld b,-1
795
        inc b
796
        sub 10
797
        jr nc,$-3
798
        add a,10
799
;a=num mod 10
800
;b=num div 10
801
        sla b
802
        sla b
803
        sla b
804
;b=(num div 10) *8
805
        add a,b
806
        add a,b
807
        ld b,NVRAM_VAL
808
        out (c),a ;BCD
809
        ret
810
 
210 dimkam 811
minmes  ;=$-wasresident+resident
1659 alone 812
        ld h,a
813
        xor a
814
        srl h
815
        rra
816
        srl h
817
        rra
818
        srl h
819
        rra
820
        ret
8 dimkam 821
 
210 dimkam 822
bcd2bin  ;=$-wasresident+resident
1659 alone 823
        ld bc,0xf7 + (NVRAM_REG<<8)
824
        out (c),a
825
        ld b,NVRAM_VAL
826
        in a,(c)
827
        ld b,a
828
        and 0xf0
829
        rra ;*8
830
        ld c,a ;*8
831
        rra ;*4
832
        rra ;*2
833
        add a,c ;*10
834
        res 7,b
835
        res 6,b
836
        res 5,b
837
        res 4,b
838
        add a,b
839
        ret
840
 
210 dimkam 841
readtime  ;=$-wasresident+resident
147 alone 842
;sp=0x7fxx
8 dimkam 843
;e=gfxmode
844
;out: hl=date, de=time
344 alone 845
;TODO ⮬୮
145 dimkam 846
        call sys_SHADOFF
147 alone 847
        LD A,e;0xa8;%10101000 ;320x200 mode
145 dimkam 848
        push af
849
        ld bc,0xeff7
2004 alone 850
        ld a,0x80+EFF7VALUE
145 dimkam 851
        out (c),a
898 alone 852
        ;ld bc,0xf7 + (NVRAM_REG<<8)
853
    ;ld a,0x0b
854
    ;out (c),a
855
    ;ld b,NVRAM_VAL
856
    ;in a,(c)
857
    ;or 0x04
858
    ;out (c),a
8 dimkam 859
    xor a               ;sec
860
    call bcd2bin
861
    srl a
862
    ld e,a
863
 
864
    ld a,2              ;min
865
    call bcd2bin
1659 alone 866
    call minmes ;a0 >> 3 => ha
8 dimkam 867
    add a,e
868
    ld e,a
869
    ld d,h
870
 
871
    ld a,4              ;h
872
    call bcd2bin
873
    add a,a
874
    add a,a
875
    add a,a
876
    add a,d
877
    ld d,a
878
 
879
    ld a,7              ;day
880
    call bcd2bin
881
    ld l,a
882
 
660 alone 883
    ld a,8              ;month
8 dimkam 884
    call bcd2bin
1659 alone 885
    call minmes ;a0 >> 3 => ha
8 dimkam 886
    add a,l
887
    ld l,a
888
 
660 alone 889
    ld a,9              ;year
8 dimkam 890
    call bcd2bin
891
    add a,20
892
    add a,a
893
    add a,h
894
    ld h,a
1659 alone 895
    jp readtimeq
896
 
897
writetime
1665 alone 898
;bc=time
899
;hl=date
900
       push bc
1659 alone 901
        call sys_SHADOFF
902
        LD A,e;0xa8;%10101000 ;320x200 mode
1665 alone 903
       pop de
1659 alone 904
        push af
145 dimkam 905
        ld bc,0xeff7
2004 alone 906
        ld a,0x80+EFF7VALUE
1659 alone 907
        out (c),a
908
 
909
        ld a,e
910
        add a,a
911
        and 63
912
        ld b,0          ;sec
913
        call bin2cmos
914
 
915
        ld a,d
916
        rra
917
        rra
918
        rra
919
        and 31 ;h
920
        ld b,4
921
        call bin2cmos
922
 
923
        ex de,hl
924
        add hl,hl
925
        add hl,hl
926
        add hl,hl
927
        ex de,hl
1667 alone 928
        ld a,d
1659 alone 929
        and 63 ;m
930
        ld b,2
931
        call bin2cmos
932
 
933
        ld a,h
934
        srl a
935
        sub 20
936
        ld b,9          ;year
937
        call bin2cmos
938
 
939
        ld a,l
940
        and 31
941
        ld b,7          ;day
942
        call bin2cmos
943
 
944
        add hl,hl
945
        add hl,hl
946
        add hl,hl
947
        ld a,h
948
        and 15
949
        ld b,8          ;month
950
        call bin2cmos
951
readtimeq
952
        ld bc,0xeff7
2004 alone 953
        ld a,0+EFF7VALUE
145 dimkam 954
        out (c),a
955
        pop af
1665 alone 956
        ld e,a ;!!! ⮬ 㤥 ᯮ짮  readtime
957
        jp shadon_pgsys
958
 
959
                else ;if atm2clock == 1
960
 
1398 Kulich 961
; প ᮢ 8952  2+  8             
962
cmd2ve: ;e=command       頥 १  A
963
                di
1668 kulich 964
                ld bc,0x55FE            ; 8952
965
                in a,(c)                ;室  ० 
966
                ld b,e                  ;  E ७c  B
967
                in a,(c)                ;믮 
1398 Kulich 968
                ei
969
                ret
1668 kulich 970
send2ve:        ;e=command b=data
971
                push de
972
                ld e,b
973
                ld d,a
974
                di
975
                ld bc,0x55FE            ; 8952
976
                in a,(c)                ;室  ० 
977
                ld b,e                  ;  E ७c  B 
978
                IN a,(c)
979
                ld b,d                  ;ࠬ
980
                in a,(c)
981
                ei
982
                pop de
983
                ret
1659 alone 984
writetime
1665 alone 985
;bc=time
986
;hl=date
987
;TODO (keep de!)
1668 kulich 988
        push bc
989
        call sys_SHADOFF
990
        LD A,e;0xa8;%10101000 ;320x200 mode
991
        pop de
992
        push af
993
        ld bc,0xeff7
2004 alone 994
        ld a,0x80+EFF7VALUE
1668 kulich 995
        out (c),a
1659 alone 996
 
1668 kulich 997
        ld a,e
998
        add a,a
999
        and 63
1000
        ld b,0x11               ;sec
1001
        call send2ve
1002
 
1003
        ld a,d
1004
        rra
1005
        rra
1006
        rra
1007
        and 31 ;h
1008
        ld b,0x91
1009
        call send2ve
1010
 
1011
        ex de,hl
1012
        add hl,hl
1013
        add hl,hl
1014
        add hl,hl
1015
        ex de,hl
1016
        ld a,d
1017
        and 63                  ;m
1018
        ld b,0x51
1019
        call send2ve
1020
 
1021
        ld a,h
1022
        srl a
1023
        ;sub 20
1024
        ld b,0x93               ;year
1025
        call send2ve
1026
 
1027
        ld a,l
1028
        and 31
1029
        ld b,0x13               ;day
1030
        call send2ve
1031
 
1032
        add hl,hl
1033
        add hl,hl
1034
        add hl,hl
1035
        ld a,h
1036
        and 15
1037
        ld b,0x53               ;month
1038
        call send2ve
1039
        ld bc,0xeff7
2004 alone 1040
        ld a,0+EFF7VALUE
1668 kulich 1041
        out (c),a
1042
        pop af
1043
        ld e,a                   ;!!! ⮬ 㤥 ᯮ짮  readtime
1044
        jp shadon_pgsys
1045
 
1046
 
1398 Kulich 1047
readtime  ;=$-wasresident+resident
1048
;sp=0x7fxx
1049
;e=gfxmode
1050
;out: hl=date, de=time
1051
;TODO ⮬୮
8 dimkam 1052
 
1398 Kulich 1053
        call sys_SHADOFF
1054
        LD A,e;0xa8;%10101000 ;320x200 mode
1055
        push af
1056
        push bc
1057
 
1058
        ld e, 0x90              ;hours
1059
        call cmd2ve
1060
        ld l, a
1061
        ADD HL,HL
1062
        ADD HL,HL
1063
        ADD HL,HL
1064
        ADD HL,HL
1065
        ADD HL,HL
1066
        ADD HL,HL
1067
        ld e, 0x50              ;Minutes
1068
        call cmd2ve
1069
        add a,l
1070
        ld l,a
1071
        ADD HL,HL
1072
        ADD HL,HL
1073
        ADD HL,HL
1074
        ADD HL,HL
1075
        ADD HL,HL
1076
        ld e, 0x10              ;Seconds
1077
        call cmd2ve
1078
        srl a
1079
        add a,l
1080
        ld l,a
1081
        push hl                 ;save time
1082
 
1083
;       Date    
1084
        ld e, 0x92              ;year
1085
        call cmd2ve
1668 kulich 1086
        ;add a, 20
1398 Kulich 1087
        ld l, a
1088
        ADD HL,HL
1089
        ADD HL,HL
1090
        ADD HL,HL
1091
        ADD HL,HL
1092
 
1093
        ld e, 0x52              ;month
1094
        call cmd2ve
1095
        add a,l
1096
        ld l,a 
1097
        ADD HL,HL
1098
        ADD HL,HL
1099
        ADD HL,HL
1100
        ADD HL,HL
1101
        ADD HL,HL
1102
 
1103
        ld e, 0x12              ;day
1104
        call cmd2ve
1105
        add a,l
1106
        ld l,a
1107
        pop de
1108
 
1109
        pop bc
1110
        pop af
1111
        jp shadon_pgsys_a
1665 alone 1112
 
1113
                endif ;if atm2clock != 1
1114
 
1115
        endif ;if atm != 1
210 dimkam 1116
        ;disp $-wasresident+resident
1117
 
208 dimkam 1118
 
1119
                ds 100
1120
trdos_sp
1121
varbas_stor
1122
                ds 32
106 alone 1123
        ent
8 dimkam 1124
resident_sz=$-wasresident
106 alone 1125
        display "residentend=",resident+resident_sz,"<=",trdos_catbuf
8 dimkam 1126
 
1127
wastrdosfs
1128
        disp COMMANDLINE;PROGSTART
1129
idle
1130
        db "idle",0
1131
        ds PROGSTART-$
1132
        include "idle.asm"
1133
idle_sz=$-idle
1134
        ent
147 alone 1135
        disp 0x4000+idle+idle_sz
8 dimkam 1136
        include "trdosfs.asm"
62 Alone 1137
        include "trdosio.asm"
8 dimkam 1138
        include "bdospg2.asm"
1139
        ent
1140
trdosfs_sz=$-wastrdosfs
147 alone 1141
        display "trdosfs_sz=",/h,trdosfs_sz,"<=0x1c00"
8 dimkam 1142
 
1143
end
1144
wassys
1145
 
1146
        SLOT 0
1147
        page COMPILEPG_SYS0
1148
        SLOT 1
1149
        page COMPILEPG_SYS1
147 alone 1150
        org 0x0000
8 dimkam 1151
sysbegin
62 Alone 1152
        include "syskrnl.asm"
1123 alone 1153
 
1154
        display "$ before align=",syskrnl_end
1155
       if 1
1156
       macro SETHANDLER cmd,addr
1157
        org wastbdoscmds+cmd
1158
        db addr&0xff
1159
        org wastbdoscmds+256+cmd
1160
        db addr/256
1161
       endm
1162
 
1163
        ds 0xff&(-syskrnl_end)
1164
tbdoscmds=syskrnl_end+(0xff&(-syskrnl_end))
1165
wastbdoscmds
1323 alone 1166
        ds 256,BDOS_fail&0xff
1167
        ds 256,BDOS_fail/256
1123 alone 1168
 
1297 alone 1169
         SETHANDLER CMD_GETPAGEOWNER,BDOS_getpageowner
1123 alone 1170
         SETHANDLER CMD_WRITEHANDLE,BDOS_writehandle
1171
         SETHANDLER CMD_WIZNETREAD,BDOS_wiznetread
1172
         SETHANDLER CMD_YIELDKEEP,BDOS_yieldkeep
1173
         SETHANDLER CMD_YIELD,BDOS_yield
1174
         SETHANDLER CMD_READHANDLE,BDOS_readhandle
1175
          SETHANDLER CMD_GETKEYMATRIX,BDOS_getkeymatrix
1176
          SETHANDLER CMD_GETTIMER,BDOS_gettimer
1177
          SETHANDLER CMD_CHECKPID,BDOS_checkpid
1178
          SETHANDLER CMD_SETSCREEN,BDOS_setscreen
1179
         SETHANDLER CMD_PRATTR,BDOS_prattr
1180
         SETHANDLER CMD_SETXY,BDOS_setxy
1181
         SETHANDLER CMD_SETCOLOR,BDOS_setcolor
1182
         SETHANDLER CMD_PRCHAR,BDOS_prchar
1183
         SETHANDLER CMD_GETATTR,BDOS_getattr
1184
        SETHANDLER CMD_SETDTA,BDOS_setdta;0x1a
1185
        SETHANDLER CMD_FOPEN,BDOS_fopen;0x0f
1186
        SETHANDLER CMD_FREAD,BDOS_fread;0x14
1187
        SETHANDLER CMD_FCLOSE,BDOS_fclose;0x10
1188
        SETHANDLER CMD_FDEL,BDOS_fdel;0x13 ;DEPRECATED!!!!! 
1189
        SETHANDLER CMD_FCREATE,BDOS_fcreate;0x16
1190
        SETHANDLER CMD_FWRITE,BDOS_fwrite;0x15
1191
        SETHANDLER CMD_FSEARCHFIRST,BDOS_fsearchfirst;0x11
1192
        SETHANDLER CMD_FSEARCHNEXT,BDOS_fsearchnext;0x12
1193
        SETHANDLER CMD_OPENDIR,BDOS_opendir
1194
        SETHANDLER CMD_READDIR,BDOS_readdir
1195
        SETHANDLER CMD_SETDRV,BDOS_setdrv
1196
        SETHANDLER CMD_PARSEFNAME,BDOS_parse_filename;0x5c
1197
        SETHANDLER CMD_CHDIR,BDOS_chdir
1198
        SETHANDLER CMD_GETPATH,BDOS_getpath
1199
        SETHANDLER CMD_RUNAPP,BDOS_runapp
1200
        SETHANDLER CMD_NEWAPP,BDOS_newapp
1201
        SETHANDLER CMD_CLS,BDOS_cls
1202
        SETHANDLER CMD_SETGFX,BDOS_setgfx
1203
        SETHANDLER CMD_SETPAL,BDOS_setpal
1204
        SETHANDLER CMD_GETMAINPAGES,BDOS_getmainpages
1205
        SETHANDLER CMD_NEWPAGE,BDOS_newpage
1206
        SETHANDLER CMD_DELPAGE,BDOS_delpage
1207
        SETHANDLER CMD_MOUNT,BDOS_mount
1208
        SETHANDLER CMD_FREEZEAPP,BDOS_freezeapp
1209
        SETHANDLER CMD_MKDIR,BDOS_mkdir
1210
        SETHANDLER CMD_RENAME,BDOS_rename
1211
        SETHANDLER CMD_SETSYSDRV,BDOS_setsysdrv
1212
        ;SETHANDLER CMD_FWRITE_NBYTES,BDOS_fwrite_nbytes
1213
        SETHANDLER CMD_SCROLLUP,BDOS_scrollup
1214
        SETHANDLER CMD_SCROLLDOWN,BDOS_scrolldown
1215
        SETHANDLER CMD_OPENHANDLE,BDOS_openhandle
1216
        SETHANDLER CMD_CREATEHANDLE,BDOS_createhandle
1217
        SETHANDLER CMD_CLOSEHANDLE,BDOS_closehandle
1218
        SETHANDLER CMD_SEEKHANDLE,BDOS_seekhandle
1219
        SETHANDLER CMD_TELLHANDLE,BDOS_tellhandle
1220
        SETHANDLER CMD_SETFILETIME,BDOS_setfiletime
1221
        SETHANDLER CMD_GETFILETIME,BDOS_getfiletime
1222
        SETHANDLER CMD_GETTIME,BDOS_gettime
1223
        SETHANDLER CMD_GETXY,BDOS_getxy
1224
        SETHANDLER CMD_GETAPPMAINPAGES,BDOS_getappmainpages
1225
        SETHANDLER CMD_DROPAPP,BDOS_dropapp
1226
        SETHANDLER CMD_WIZNETOPEN,BDOS_wiznetopen
1227
        SETHANDLER CMD_WIZNETCLOSE,BDOS_wiznetclose
1228
        SETHANDLER CMD_WIZNETWRITE,BDOS_wiznetwrite
1229
        SETHANDLER CMD_GETFILESIZE,BDOS_getfilesize
1230
        SETHANDLER CMD_DELETE,BDOS_delete
1231
        SETHANDLER CMD_GETCHILDRESULT,BDOS_getchildresult
1232
        SETHANDLER CMD_SETWAITING,BDOS_setwaiting
1233
        SETHANDLER CMD_SETBORDER,BDOS_setborder
1234
        SETHANDLER CMD_READSECTORS,BDOS_readsectors
1235
        SETHANDLER CMD_WRITESECTORS,BDOS_writesectors
1236
        SETHANDLER CMD_SETMAINPAGE,BDOS_setmainpage
1237
        SETHANDLER CMD_SETMUSIC,BDOS_setmusic
1238
        SETHANDLER CMD_PLAYCOVOX,BDOS_playcovox
1239
        SETHANDLER CMD_GETSTDINOUT,BDOS_getstdinout
1240
        SETHANDLER CMD_SETSTDINOUT,BDOS_setstdinout
1241
        SETHANDLER CMD_HIDEFROMPARENT,BDOS_hidefromparent
1242
        SETHANDLER CMD_RNDRD,BDOS_rndrd
1243
        SETHANDLER CMD_RNDWR,BDOS_rndwr
1244
        SETHANDLER CMD_GETFILINFO,BDOS_getfilinfo
1245
        SETHANDLER CMD_RESERV_1,BDOS_reserv_1
1246
        SETHANDLER CMD_GETCONFIG,BDOS_get_config
1477 alone 1247
        SETHANDLER CMD_GETMEMPORTS,BDOS_getmemports
1659 alone 1248
        SETHANDLER CMD_SETTIME,BDOS_settime
1895 alone 1249
        SETHANDLER CMD_GETPAL,BDOS_getpal
1123 alone 1250
 
1251
         org wastbdoscmds+512
1252
trecode=tbdoscmds+512
1253
 
1254
       else
1255
 
1256
tbdoscmds=syskrnl_end
1257
wastbdoscmds
1258
         db CMD_WRITEHANDLE
1259
         db CMD_WIZNETREAD
1260
         db CMD_YIELDKEEP
1261
         db CMD_YIELD
1262
         db CMD_READHANDLE
1263
          db CMD_GETKEYMATRIX
1264
          db CMD_GETTIMER
1265
          db CMD_CHECKPID
1266
          db CMD_SETSCREEN
1267
         db CMD_PRATTR
1268
         db CMD_SETXY
1269
         db CMD_SETCOLOR
1270
         db CMD_PRCHAR
1271
         db CMD_GETATTR
1272
        db CMD_SETDTA;0x1a
1273
        db CMD_FOPEN;0x0f
1274
        db CMD_FREAD;0x14
1275
        db CMD_FCLOSE;0x10
1276
        db CMD_FDEL;0x13 ;DEPRECATED!!!!! 
1277
        db CMD_FCREATE;0x16
1278
        db CMD_FWRITE;0x15
1279
        db CMD_FSEARCHFIRST;0x11
1280
        db CMD_FSEARCHNEXT;0x12
1281
        db CMD_OPENDIR
1282
        db CMD_READDIR
1283
        db CMD_SETDRV
1284
        db CMD_PARSEFNAME;0x5c
1285
        db CMD_CHDIR
1286
        db CMD_GETPATH
1287
        db CMD_RUNAPP
1288
        db CMD_NEWAPP
1289
        db CMD_CLS
1290
        db CMD_SETGFX
1291
        db CMD_SETPAL
1292
        db CMD_GETMAINPAGES
1293
        db CMD_NEWPAGE
1294
        db CMD_DELPAGE
1295
        db CMD_MOUNT
1296
        db CMD_FREEZEAPP
1297
        db CMD_MKDIR
1298
        db CMD_RENAME
1299
        db CMD_SETSYSDRV
1300
        ;db CMD_FWRITE_NBYTES
1301
        db CMD_SCROLLUP
1302
        db CMD_SCROLLDOWN
1303
        db CMD_OPENHANDLE
1304
        db CMD_CREATEHANDLE
1305
        db CMD_CLOSEHANDLE
1306
        db CMD_SEEKHANDLE
1307
        db CMD_TELLHANDLE
1308
        db CMD_SETFILETIME
1309
        db CMD_GETFILETIME
1310
        db CMD_GETTIME
1311
        db CMD_GETXY
1312
        db CMD_GETAPPMAINPAGES
1313
        db CMD_DROPAPP
1314
        db CMD_WIZNETOPEN
1315
        db CMD_WIZNETCLOSE
1316
        db CMD_WIZNETWRITE
1317
        db CMD_GETFILESIZE
1318
        db CMD_DELETE
1319
        db CMD_GETCHILDRESULT
1320
        db CMD_SETWAITING
1321
        db CMD_SETBORDER
1322
        db CMD_READSECTORS
1323
        db CMD_WRITESECTORS
1324
        db CMD_SETMAINPAGE
1325
        db CMD_SETMUSIC
1326
        db CMD_PLAYCOVOX
1327
        db CMD_GETSTDINOUT
1328
        db CMD_SETSTDINOUT
1329
        db CMD_HIDEFROMPARENT
1330
        db CMD_RNDRD
1331
        db CMD_RNDWR
1332
        db CMD_GETFILINFO
1333
        db CMD_RESERV_1
1334
        db CMD_GETCONFIG
1477 alone 1335
        db CMD_GETMEMPORTS
1659 alone 1336
        db CMD_SETTIME
1895 alone 1337
        db CMD_GETPAL
1123 alone 1338
nbdoscmds=$-wastbdoscmds
1895 alone 1339
        dw BDOS_getpal
1659 alone 1340
        dw BDOS_settime
1477 alone 1341
        dw BDOS_getmemports
1123 alone 1342
        dw BDOS_get_config
1343
        dw BDOS_reserv_1
1344
        dw BDOS_getfilinfo
1345
        dw BDOS_rndwr
1346
        dw BDOS_rndrd
1347
        dw BDOS_hidefromparent
1348
        dw BDOS_setstdinout
1349
        dw BDOS_getstdinout
1350
        dw BDOS_playcovox
1351
        dw BDOS_setmusic
1352
        dw BDOS_setmainpage
1353
        dw BDOS_writesectors
1354
        dw BDOS_readsectors
1355
        dw BDOS_setborder
1356
        dw BDOS_setwaiting
1357
        dw BDOS_getchildresult
1358
        dw BDOS_delete
1359
        dw BDOS_getfilesize
1360
        dw BDOS_wiznetwrite
1361
        dw BDOS_wiznetclose
1362
        dw BDOS_wiznetopen
1363
        dw BDOS_dropapp
1364
        dw BDOS_getappmainpages
1365
        dw BDOS_getxy
1366
        dw BDOS_gettime
1367
        dw BDOS_getfiletime
1368
        dw BDOS_setfiletime
1369
        dw BDOS_tellhandle
1370
        dw BDOS_seekhandle
1371
        dw BDOS_closehandle
1372
        dw BDOS_createhandle
1373
        dw BDOS_openhandle
1374
        dw BDOS_scrolldown
1375
        dw BDOS_scrollup
1376
        ;dw BDOS_fwrite_nbytes
1377
        dw BDOS_setsysdrv
1378
        dw BDOS_rename
1379
        dw BDOS_mkdir
1380
        dw BDOS_freezeapp
1381
        dw BDOS_mount
1382
        dw BDOS_delpage
1383
        dw BDOS_newpage
1384
        dw BDOS_getmainpages
1385
        dw BDOS_setpal
1386
        dw BDOS_setgfx
1387
        dw BDOS_cls
1388
        dw BDOS_newapp
1389
        dw BDOS_runapp
1390
        dw BDOS_getpath
1391
        dw BDOS_chdir
1392
        dw BDOS_parse_filename
1393
        dw BDOS_setdrv
1394
        dw BDOS_readdir
1395
        dw BDOS_opendir
1396
        dw BDOS_fsearchnext
1397
        dw BDOS_fsearchfirst
1398
        dw BDOS_fwrite
1399
        dw BDOS_fcreate
1400
        dw BDOS_fdel ;DEPRECATED!!!!! 
1401
        dw BDOS_fclose
1402
        dw BDOS_fread
1403
        dw BDOS_fopen
1404
        dw BDOS_setdta
1405
         dw BDOS_getattr
1406
         dw BDOS_prchar
1407
         dw BDOS_setcolor
1408
         dw BDOS_setxy
1409
         dw BDOS_prattr
1410
          dw BDOS_setscreen
1411
          dw BDOS_checkpid
1412
          dw BDOS_gettimer
1413
          dw BDOS_getkeymatrix
1414
         dw BDOS_readhandle
1415
         dw BDOS_yield
1416
         dw BDOS_yieldkeep
1417
         dw BDOS_wiznetread
1418
         dw BDOS_writehandle
1419
trecode=tbdoscmds+$-wastbdoscmds
1420
       endif
1421
 
1422
;TODO ࠭ אַ  ⥪⮢ ࠭?  ᫨ ,  ⠭?   ᮡ?
1423
        incbin "../_sdk/codepage/866toatm"
1424
 
1425
syscodesz=trecode+256-wassyscode
1426
        display "syscodesz=",/h,syscodesz," < minstack=",/h,SYSMINSTACK
1427
 
8 dimkam 1428
wasuserkernel
147 alone 1429
        disp 0x0000
62 Alone 1430
        include "userkrnl.asm"
8 dimkam 1431
        ent
1432
userkernel_sz=$-wasuserkernel
1433
        ;display "wasuserkernel=",/d,wasuserkernel
1434
        ;display "wasuserkernel_end=",/d,$
1435
        ;display "userkernel_sz=",/d,userkernel_sz
1123 alone 1436
;wastjump
1437
;        include "tjump.asm"
1438
;tjump_sz=$-wastjump
147 alone 1439
        ds 0x4000-$
95 demige 1440
        incbin "../fatfs4os/fatfs.raw"
8 dimkam 1441
sysend
1442
 
1443
        ;display "begin=",/d,begin
1444
        ;display "end=",/d,end
1445
 
1446
        ;display "sysbegin=",/d,sysbegin
1447
        ;display "sysend=",/d,sysend
299 alone 1448
 
8 dimkam 1449
        SLOT 1
1450
        page COMPILEPG_INIT
1451
        savebin "initcode.c",begin,end-begin
1452
 
1453
        SLOT 0
1454
        page COMPILEPG_SYS0
1455
        SLOT 1
1456
        page COMPILEPG_SYS1
1457
        savebin "syscode.c",sysbegin,sysend-sysbegin
1458
 
1475 alone 1459
        LABELSLIST "..\..\us\user.l",1