?login_element?

Subversion Repositories NedoOS

Rev

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

Rev Author Line No. Line
1903 alone 1
        DEVICE ZXSPECTRUM128
1916 alone 2
        include "settings.asm"
1903 alone 3
 
2082 alone 4
;music=doublescr
1958 alone 5
 
1916 alone 6
NTEXPGS=0
1958 alone 7
;curpg=0x5b5c
213 alone 8
 
1916 alone 9
pgtmp=#04
1977 alone 10
pgmusic=#06
435 alone 11
 
1982 alone 12
texturesinpg=12
13
spritesinpg=8;4
14
 
213 alone 15
;tcos=#5B00
16
imer=#7F7F
1916 alone 17
INTSTACK=imer
1909 alone 18
imstackbegin=imer&0xff00
213 alone 19
distbuf=#7C00 ;#300 ;ID,texx,dist
435 alone 20
 
1903 alone 21
        page 0
22
        ORG #6000;,0
213 alone 23
begin
1907 alone 24
        jp init
25
       IF doublescr
1977 alone 26
SETPGmusic_silent
27
        ld a,pgmusic
28
        jr SETPG_silent
1907 alone 29
SETPG
30
        LD (curpg),A
1977 alone 31
SETPG_silent
1907 alone 32
curscr=$+1
33
        OR 0
34
        LD BC,#7FFD
35
        OUT (C),A
36
        RET
37
       ENDIF
38
 
1977 alone 39
        include "my_int.asm"
1907 alone 40
        INCLUDE "WCTRL.ASM"
41
 
1960 alone 42
        include "beeper.asm"
43
        include "beeper_sfxdata.asm"
1962 alone 44
        include "anims.asm"
45
        include "savestate.asm"
1960 alone 46
 
2080 alone 47
drawhud
48
;뢠  ZXLOOP
49
       IF doublescr
50
        LD A,#17
51
        CALL SETPG
52
       ENDIF
53
        ld hl,sprweapon1
54
        ld de,0x50e0
55
        call drawsprchr2
56
        inc e
57
        call drawsprchr2
58
        inc e
59
        call drawsprchr2
60
        inc e
61
        call drawsprchr2
62
        inc e
63
        call drawsprchr ;sprbullets
64
        ld a,(bullets)
65
        call draw99
66
        inc e
67
        call drawsprchr ;sprgrenades
68
        ld a,(grenades)
69
        call draw9
70
        inc e
71
        ld a,(leveltime+1)
72
        call draw99
73
        ld a,(leveltime)
74
        call draw99
75
        ld bc,0x52e0+21
76
        call drawhuddot
77
        ld bc,0x55e0+21
78
        call drawhuddot
79
        inc e
80
        call drawsprchr ;sprhealth
81
;drawhudhealth
82
        if doublescr
83
        push de
84
        call drawhudhealth_1scr
85
        pop de
86
        set 7,d
87
drawhudhealth_1scr
88
        endif
89
        ex de,hl
90
        inc h
91
        ;ld hl,0x50e0+25
92
        ld a,(health)
93
        srl a
94
        ld e,a
95
drawhudhealthline0        
96
        push hl
97
        ld (hl),0x3f
98
        ld b,6
99
        inc l
100
        ld (hl),0xff
101
        djnz $-3
102
        pop hl
103
        inc h
104
        bit 0,h
105
        jr z,drawhudhealthline0
106
        ld (hl),0x20
107
        inc h
108
 
109
        ld a,-4
110
        call drawhudhealthcolumncount
111
        set 5,c
112
        call drawhudhealthcolumn      
113
        call drawhudhealthcolumncountdraw2
114
        call drawhudhealthcolumncountdraw2
115
drawhudhealthcolumncountdraw2
116
        call drawhudhealthcolumncountdraw
117
drawhudhealthcolumncountdraw
118
        call drawhudhealthcolumncount
119
drawhudhealthcolumn
120
;de=scraddr
121
;c=1100000  ..
122
        ld (hl),c
123
        inc h
124
        ld (hl),c
125
        inc h
126
        ld (hl),c
127
        dec h
128
        dec h
129
        inc l
130
        ret
131
 
132
drawhudhealthcolumncount
133
;e=health
134
;a=health left value
135
        ld c,1
136
drawhudhealthcolumncount0
137
        cp e
138
        rl c
139
        inc a
140
        jr nc,drawhudhealthcolumncount0
141
        ret
142
 
143
draw99
144
        ld bc,10-256
145
        inc b
146
        sub c
147
        jr nc,$-2
148
        add a,c
149
        push af
150
        ld a,b
151
        call draw9
152
        pop af
153
draw9
154
        push hl
155
        add a,a
156
        add a,a
157
        add a,a
158
        ld hl,sprdigits
159
        add a,l
160
        ld l,a
161
        jr nc,$+3
162
        inc h
163
        call drawsprchr
164
        pop hl
165
        ret
166
 
167
drawhuddot
168
        if doublescr
169
        call drawhuddot_1scr
170
        set 7,b
171
drawhuddot_1scr
172
        endif
173
        ld a,(bc)
174
        or 0x80
175
        ld (bc),a
176
        ret
177
 
178
drawsprchr2
179
        call drawsprchr
180
drawsprchr
181
        if doublescr
182
        push de
183
        push hl
184
        set 7,d
185
        call drawsprchr_1scr
186
        pop hl
187
        pop de
188
drawsprchr_1scr
189
        endif
190
        push de
191
        ld b,8
192
drawsprchr0
193
        ld a,(hl)
194
        ld (de),a
195
        inc hl
196
        inc d
197
        djnz drawsprchr0
198
        pop de
199
        inc e
200
        ret
201
 
202
 
1907 alone 203
;६ ७ (  砫 ७)
204
curXx
205
curx    DB #80
206
curX    DB #0
207
curYy
208
cury    DB #80
209
curY    DB #0
210
curxy   DW 0
211
curyx   DW 0
212
curYX   DW 0
213
curangle
214
        DW tsin
1977 alone 215
       if 0
1907 alone 216
demobegin
217
       IF demoplay
218
        INCBIN "demorec*"
219
       ELSE
220
        DB %00111111 ;all keys released
221
       ENDIF
1977 alone 222
       endif
1907 alone 223
 
2080 alone 224
        include "hud.ast"
225
 
1907 alone 226
        align 256
213 alone 227
tlogd2sca
1903 alone 228
       IF scale64
229
       IF scale64 == 3
213 alone 230
        INCBIN "logd2sc3"
231
       ELSE
232
        INCBIN "logd2sc2"
233
       ENDIF
234
       ELSE
235
        INCBIN "logd2sc_"
236
       ENDIF
237
tsqr2
238
        INCBIN "sqr2int"
239
tlogd
1977 alone 240
        INCBIN "logd" ; 128  (64  antizalom)  ᯮ - TODO
213 alone 241
tcorrlogd
242
        INCBIN "corlogd_"
243
        ORG $-256
244
       DUP 256
435 alone 245
        DB {$+(scrtopx*8)}&0xff
213 alone 246
       EDUP
435 alone 247
       IF lores
213 alone 248
        ORG $-256
249
_=$
250
       DUP 128
435 alone 251
        DB {_}&0xff
213 alone 252
_=_+2
253
       EDUP
254
        DS 128
255
       ENDIF
256
tcos
257
        DS 256
258
tlogcos
259
        INCBIN "pluslcos"
260
tda
261
        INCBIN "da"
435 alone 262
        ORG $-256
213 alone 263
       DUP 256
435 alone 264
        DB 0xff&({$}+128)
213 alone 265
       EDUP
266
        ORG $-256
267
       DUP 256
435 alone 268
        DB 0xff&({$+(scrtopx*8)})
213 alone 269
       EDUP
435 alone 270
       IF lores
213 alone 271
        ORG $-256
272
_=$
273
       DUP 128
435 alone 274
        DB {_}&0xff
213 alone 275
_=_+2
276
       EDUP
277
        DS 128
278
       ENDIF
279
tctg
280
        INCBIN "plusctg"
281
tsin
282
        INCBIN "sin"
283
cursprites
284
        DS 256
285
 
1910 alone 286
        DISPLAY "tables end=",$
287
tscalesw3
288
        incbin "scalesw3"
213 alone 289
 
1910 alone 290
 
1909 alone 291
        ;DS #8000-$
213 alone 292
 
1909 alone 293
        ds imstackbegin-$
294
        ds imer-$
1916 alone 295
        include "int.asm"
435 alone 296
 
1908 alone 297
        ;DS ((IMER/256+1)<<8)-$
1909 alone 298
        ;ds (IMER&0xff00)-$
213 alone 299
 
1908 alone 300
        ds 0x8000-$ ;ORG #8000
213 alone 301
imvec
1909 alone 302
        DS 257,imer&0xff
213 alone 303
 
1916 alone 304
        INCLUDE "zxloop.asm"
435 alone 305
        INCLUDE "WSCAN10.asm"
306
        INCLUDE "WREND.asm"
213 alone 307
 
1912 alone 308
badmonstexture
309
        db 0xc0,0xff
310
 
1903 alone 311
        align 256
312
t1x
313
        db 255
314
        dup 255
315
        db (255*2/($&0xff)+1)/2
316
        edup
317
 
1913 alone 318
        DISPLAY "48K PROG END=",$
213 alone 319
 
320
        ORG distbuf
1916 alone 321
        include "recmap.asm"
435 alone 322
 
213 alone 323
        DS distbuf+#300-$
324
 
1907 alone 325
;;;;;
213 alone 326
        ORG scrbuf
327
GO
1918 alone 328
        ;xor a
329
        ;out (0xfe),a
213 alone 330
        DI
331
        LD HL,WAStcos
332
        LD DE,tcos
333
       PUSH DE
334
        LD BC,256
335
        LDIR
336
       POP HL
337
REtcos0
338
       DUP 2;4
339
        SRA (HL)
340
       EDUP
341
        INC L
1903 alone 342
        jr nz,REtcos0
213 alone 343
 
344
        LD HL,imvec
345
        LD DE,imvec+1
1909 alone 346
        LD (HL),imer/256
213 alone 347
        LD B,E,C,L
348
        LD A,H
349
        LDIR
350
        LD I,A
351
        IM 2
352
        EI
353
       HALT
354
        LD HL,-2
355
        ADD HL,SP
356
        LD (clscrbufsp),HL
357
        LD (eorfillsp),HL
1916 alone 358
        ld hl,ZXLOOP
359
        push hl
360
        LD BC,#FBDF
361
        IN A,(C)
362
        LD (mouseoldx),A       
1907 alone 363
        JP RECMAP ;->ZXLOOP
364
 
365
        display "ZXLOOP=",ZXLOOP
213 alone 366
 
367
WASMAP
1917 alone 368
       IF invmap;atm
435 alone 369
        INCBIN "mapatm.E"
370
       ELSE
213 alone 371
        INCBIN "map48.E"
435 alone 372
       ENDIF
213 alone 373
szMAP=$-WASMAP
374
 
375
WAStcos
376
        INCBIN "cos"
1903 alone 377
init
1918 alone 378
        if mouse
379
        call initmouse
380
        endif
213 alone 381
;prepare 48K block
382
        DI ;IY
1910 alone 383
        LD HL,#5800
384
        LD DE,#5801
385
        LD BC,767
386
        LD (HL),L
387
        LDIR
1958 alone 388
        call gettexpg
389
       if doublescr        
390
       LD A,0x10+pgtmp
391
       call SETPG
392
        call gettexpg
1977 alone 393
       endif
394
       IF music && !atm
395
        call SETPGmusic_silent
396
        CALL #c000 ;init mus
397
       ENDIF
398
       if doublescr        
1958 alone 399
       LD A,0x10
400
       call SETPG
401
       endif
402
        LD IY,23610
403
        EI
2080 alone 404
       JP GO ;⠬ recmap,  INICLS
1958 alone 405
 
406
gettexpg
1982 alone 407
        ld hl,wasgoods
408
        ld de,0x4000
409
        ld bc,0x1000
410
        ldir
411
        ld de,0xb000
412
        ld bc,0x1000
413
        ldir
414
        ld hl,0xffff-0x2000
415
        ld de,0xffff
416
        ld bc,0x2000
417
        lddr
418
        LD HL,0x2000+waswalls;#C000
419
        call copyscrcolumns_2k
1912 alone 420
        LD DE,#C000+0x80;maxscale+1
421
       LD HY,d;0xc0;#FE
1910 alone 422
;4 upper textures = #09A6
423
;4 lower textures = #0AAC
1982 alone 424
        LD HL,0x5000
1910 alone 425
        CALL GETTEX
426
        CALL GETTEX
427
        CALL GETTEX
428
        CALL GETTEX
1982 alone 429
        LD HL,0x2000+waswalls+0x800;#C000
430
        call copyscrcolumns_2k
431
        LD HL,0x5000
1910 alone 432
        CALL GETTEX
433
        CALL GETTEX
434
        CALL GETTEX
435
        CALL GETTEX
1982 alone 436
        LD HL,0x2000+waswalls+0x1000;#C000
437
        call copyscrcolumns_2k
438
        LD HL,0x5000
1910 alone 439
        CALL GETTEX
440
        CALL GETTEX
1912 alone 441
         CALL GETTEX
442
         CALL GETTEX
1982 alone 443
        ;walls: [e2b8] (e3b4 8spr, e274 4spr?), walls2: (eef6 8spr, ec88 4spr?)
444
        ;LD HL,wasgoods
445
        ;call copyscrcolumns_4k
446
      if sprites
447
       LD HL,0x4000
1939 alone 448
       CALL GETSPR
1982 alone 449
       LD HL,0x4400
1939 alone 450
       CALL GETSPR
1982 alone 451
       LD HL,0x4800
1912 alone 452
       CALL GETSPR
1982 alone 453
       LD HL,0x4c00
1912 alone 454
       CALL GETSPR
1982 alone 455
        ;LD HL,wasgoods+0x1000;#C000
456
        ;call copyscrcolumns_4k
457
        ;jr $
458
      if spritesinpg==8
459
       LD HL,0xb000
460
       CALL GETSPR
461
       LD HL,0xb400
462
       CALL GETSPR
463
       LD HL,0xb800
464
       CALL GETSPR
465
       LD HL,0xbc00
466
       CALL GETSPR
467
      endif
468
      endif
469
        ;jr $ ;walls:  ⨬樥 f699(f4c0) (12 +4 ࠩ  ⨬樨( ⨬樥)), (fdbd 8spr, fb6f 4spr?) walls2: 00f4(febd), (0cc0 8spr, 07d6 4spr?)
1912 alone 470
        ;jr $ ; 7:  ⨬樥 de=ec70[ebdf] (f4c8 12 )
471
        ;jr $ ; 3:  ⨬樥 de=e1e4[de70]
472
        ;jr $ ; 2:  ⨬樥 de=f070[f6cd]
473
        ;jr $ ; 1:  ⨬樥 de=efdf[ef76,  ⨬樨 f256]
474
 
475
        if 1
476
;ࠢ塞 ९ ᮢ ⥪ (   塞  0xc080,   ࠩ⮢  badmonstexture)
477
        ld h,0xc0
478
fixtexoverflow0
479
        ld l,0x40
480
fixtexoverflow1
481
        ld e,(hl)
482
        inc h
483
        ld d,(hl)
484
        bit 7,d
485
        jr nz,$+5 ;  
486
badaddrpatch=$+1
487
         ld de,0xc080
488
        ld (hl),d
489
        dec h
490
        ld (hl),e
491
        inc l
492
        jp p,fixtexoverflow1
493
        inc h
494
        inc h
495
        ld de,badmonstexture
496
        ld a,h
1982 alone 497
        cp 0xc0+(2*texturesinpg)
1912 alone 498
        jr c,$+6
499
         ld (badaddrpatch),de
1982 alone 500
        cp 0xc0+(2*(texturesinpg+spritesinpg))
1912 alone 501
        jr nz,fixtexoverflow0
502
        endif
503
 
504
;⠢塞 ⠡ ⠡஢     
1910 alone 505
        ld hl,tscalesw3
506
        ld c,0
507
        ld b,64
508
initscales0
509
        ld e,(hl)
510
        inc hl
511
        ld d,(hl)
512
        inc hl
513
        push hl
514
        ld l,c
515
        push bc
516
        ld b,d
517
        ld c,e ;adder 8.8
518
;  0040...0400 ᤥ 78..00  砫(0x80 -08..-80) = 0x80 - adder*32
519
;  0040...0400 ᤥ 78..04  砫 (0x80 -08..-7c) = 0x80 - adder*31
520
;...
521
;  0040...0400 ᤥ 87..f4          (0x80 +07..+74)
522
;  0040...0400 ᤥ 88..f8    (0x80 +08..+78)
523
        dup 5
524
        sla e
525
        rl d
526
        edup
527
        xor a
528
        sub e
529
        ld e,a
530
        ld a,0x80
531
        sbc a,d
532
        ld d,a ;0x80 - adder*32
533
        ld h,0xc0
1911 alone 534
        ld (hl),0 ;祬?  d ᭥ - ࠩ⮢
1910 alone 535
        inc h
536
initscales1
537
        ex de,hl
538
        add hl,bc
539
        ex de,hl
540
        ld (hl),d ;Ys=(Y/32-1)*sc
541
        inc h
542
        jr nz,initscales1
543
        pop bc
544
        inc c
545
        pop hl
546
        djnz initscales0
213 alone 547
        LD H,#C1
548
INIRETAB0 ;
549
        LD L,0
550
        LD B,maxscale+1
551
INIRETAB1 ;
552
        LD A,(HL)
553
        CP 128-(scrhgtpix/2)
1903 alone 554
        jr nc,$+4
213 alone 555
        LD A,128-(scrhgtpix/2)
556
        CP 128+(scrhgtpix/2);-1
1903 alone 557
        jr c,$+4
1912 alone 558
       ;LD A,128+(scrhgtpix/2)-1 ;    ९-
1903 alone 559
       LD A,0xff&(dropline-(scrbuf+(scrhgtpix/2)-128))
560
        ADD A,+(0xff&scrbuf)+(scrhgtpix/2)-128
213 alone 561
        LD (HL),A
562
        INC L
563
        DJNZ INIRETAB1
564
        INC H
565
        LD A,H
566
        INC A ;#C0XX,#FFXX  ண
1903 alone 567
        jr nz,INIRETAB0
213 alone 568
       LD HL,#FF00
569
       LD DE,#FF01
570
       LD BC,maxscale
571
       LD (HL),1
572
       LDIR
1958 alone 573
        ret
213 alone 574
 
1918 alone 575
        if mouse
576
initmouse
577
        ei
578
        halt
579
      ;প, ⮡ 誠 ᯥ  - min 2500 ⠪⮢  Evo (  280 ⠪⮢ த⢨)
580
      LD B,75
581
prosirtime
582
      LD DE,(0)        ;20 ⠪⮢
583
      DJNZ prosirtime  ;13 ⠪⮢
584
  ld a, 0x90
585
  out (0x7F), a
586
  out (0x5F), a
587
  ld bc, 0x0FFDF
588
  in h, (c)
589
  ld b, 0x0FB
590
  in l, (c)
591
  dec b
592
  in a, (c)
593
  cp l
594
  ret nz ;jr nz, @detected
595
  cp h
596
  ret nz ;jr z, @comeon
597
        LD A,0xaf ;xor a
598
        LD (mouseon),A
599
        ;ld hl,0x18+(256*readmousejr) ;"jr"
600
        ;ld (readmouse_patch),hl
601
        ret
602
        endif
603
 
1982 alone 604
copyscrcolumns_2k
605
        push de
606
        ld de,0x5000
607
        ld bc,0x800
608
        ldir
609
        pop de
1910 alone 610
        ret
611
 
213 alone 612
GETTEX
1903 alone 613
       IF scale64
213 alone 614
        LD LY,#40
615
       ELSE
616
        LD LY,#80
617
       ENDIF
618
        LD BC,#0880 ;B=width/8, C=#80(mask)
619
GETTEX00 ;
620
       PUSH BC
1982 alone 621
GETTEX0
622
        push hl
623
        CALL GETTEXLINE
624
        pop hl
213 alone 625
        INC LY
1903 alone 626
       IF scale64 == 0
213 alone 627
       INC LY
628
       ENDIF
629
        RRC C
1903 alone 630
        jr nc,GETTEX0
1982 alone 631
        ;INC L
632
        ld bc,64
633
        add hl,bc
213 alone 634
       POP BC
635
        DJNZ GETTEX00
1912 alone 636
       inc hy,hy;DEC HY,HY
213 alone 637
        RET
638
 
639
GETSPR
1982 alone 640
        ;jr $
1903 alone 641
       IF scale64
213 alone 642
        LD LY,#40
643
       ELSE
644
        LD LY,#80
645
       ENDIF
646
        LD BC,#0880 ;B=width/8, C=#80(mask)
647
GETSPR00 ;
648
       PUSH BC
1982 alone 649
GETSPR0
650
        push hl
651
        CALL GETSPRLINE
652
        pop hl
213 alone 653
        INC LY
1903 alone 654
       IF scale64 == 0
213 alone 655
       INC LY
656
       ENDIF
657
        RRC C
1903 alone 658
        jr nc,GETSPR0
1982 alone 659
        ;INC L
660
        ld bc,128;64
661
        add hl,bc
213 alone 662
       POP BC
663
        DJNZ GETSPR00
1912 alone 664
       inc hy,hy;DEC HY,HY
213 alone 665
        RET
666
 
1982 alone 667
GETTEXincD
668
        call GETincD
669
       JR GETTEXRETRY
670
 
213 alone 671
GETTEXLINE
672
       PUSH HL
673
GETTEXRETRY ;
674
       LD (gettexDE),DE ;linelength addr
675
       POP HL
676
       PUSH HL
677
        LD (IY),E
1903 alone 678
       IF scale64 == 0
213 alone 679
       LD (IY+1),E
680
       ENDIF
681
        INC HY
682
        LD (IY),D
1903 alone 683
       IF scale64 == 0
213 alone 684
       LD (IY+1),D
685
       ENDIF
686
        DEC HY
1982 alone 687
       inc e
688
       dec e
689
       jr z,GETTEXincD
213 alone 690
        INC E
1982 alone 691
        ;jr z,GETTEXincD
213 alone 692
        LD LX,0;C ;bit
1912 alone 693
        LD HX,17 ;17-pixels
213 alone 694
        LD B,62 ;62..1 -> 1..62
695
GETTEX1 ;
1982 alone 696
        inc hl;CALL DHL
213 alone 697
        LD A,(HL)
698
        AND C
699
        CP LX
700
        LD LX,A
1903 alone 701
        jr z,GETTEXN
213 alone 702
       LD A,HX
703
       OR A
1912 alone 704
       jr z,GETTEXN ;can't add more pixels
1982 alone 705
       inc e
706
       dec e
707
       jr z,GETTEXincD
1903 alone 708
        LD A,tscale/256+63
213 alone 709
        SUB B
710
        LD (DE),A
711
        DEC HX ;17-pixels
712
        INC E ;todo check before write
1982 alone 713
        ;jr z,GETTEXiD
213 alone 714
GETTEXN ;
1911 alone 715
        DJNZ GETTEX1   
213 alone 716
        LD A,HX ;17-pixels
717
        ADD A,A
718
        ADD A,A
719
        ADD A,A
1912 alone 720
        SUB HX  ;(17-pixels)*7
1903 alone 721
       ADD A,DWJP&0xff
213 alone 722
gettexDE=$+1
723
        LD (0),A
1982 alone 724
        ld a,17+1
725
        sub hx ;17+1-(17-pixels)
726
        ld (gettexB),a ;size=1+pixels (min=2 -  )
727
       POP HL
728
 
729
GETTEX_cmp ;ࠢ  ।騬 ⮫栬
1912 alone 730
         push de
731
         push iy
1982 alone 732
GETTEX_cmpnext
1912 alone 733
        ld hl,(gettexDE)
734
        ld a,ly
735
        cp 0x40 ; ⮣ tscales
736
        jr nz,GETTEX_cmpgo
737
        ld a,hy
738
        cp 0xc0
739
        jr z,GETTEX_endcmp
1982 alone 740
        ld ly,0x80;7f
1912 alone 741
        dec hy,hy
742
GETTEX_cmpgo
743
        dec ly
744
        ld e,(iy)
745
        inc hy
746
        ld d,(iy)
747
        dec hy
1982 alone 748
        ;ld a,17+1
749
        ;sub hx ;17+1-(17-pixels)
750
gettexB=$+1
751
        ld b,0;a ;size=1+pixels (min=2 -  )
1912 alone 752
GETTEX_cmp1
753
        ld a,(de)
754
        cp (hl)
755
        jr nz,GETTEX_cmpnext
756
        inc hl
757
        inc de
758
        djnz GETTEX_cmp1
759
;⠢ 뫪   
760
        ld e,(iy)
761
        inc hy
762
        ld d,(iy)
763
         pop iy
764
         pop af;de
765
        LD (IY),e
766
        INC HY
767
        LD (IY),d
768
        DEC HY
769
        ld de,(gettexDE) ;⪠ DE
1982 alone 770
        ret
1912 alone 771
GETTEX_endcmp
772
         pop iy
773
         pop de
213 alone 774
        RET
775
 
1982 alone 776
GETSPRincD
777
        call GETincD
778
        JR GETSPRRETRY
779
 
213 alone 780
GETSPRLINE
781
       PUSH HL
782
GETSPRRETRY ;
1982 alone 783
       LD (gettexDE),DE ;linelength addr
213 alone 784
       POP HL
785
       PUSH HL
786
        LD (IY),E
1903 alone 787
       IF scale64 == 0
213 alone 788
       LD (IY+1),E
789
       ENDIF
790
        INC HY
791
        LD (IY),D
1903 alone 792
       IF scale64 == 0
213 alone 793
       LD (IY+1),D
794
       ENDIF
795
        DEC HY
1982 alone 796
       ld a,l
797
       add a,2*62
798
       ld l,a ;line 62
213 alone 799
        LD HX,1
1982 alone 800
        ld lx,2 ;size
213 alone 801
GETSPR1 ;
802
        CALL FIND10
1903 alone 803
        jr nc,GETSPRQ ;end of column
1982 alone 804
       inc e
805
       dec e
806
       jr z,GETSPRincD
213 alone 807
        LD A,HX
808
        CPL
809
        LD (DE),A ;Y
1982 alone 810
         inc lx
213 alone 811
        INC E
1982 alone 812
        ;jr z,GETSPRiD
213 alone 813
        CALL FIND1HEIGHT
1982 alone 814
       inc e
815
       dec e
816
       jr z,GETSPRincD
213 alone 817
        LD A,HX
818
        CPL
819
        LD (DE),A ;Y2
1982 alone 820
         inc lx
213 alone 821
        INC E
1982 alone 822
        ;jr z,GETSPRiD
213 alone 823
        CALL FIND0HEIGHT
1982 alone 824
       inc e
825
       dec e
826
       jr z,GETSPRincD
213 alone 827
        LD A,HX
828
        CPL
829
        LD (DE),A ;Y3
1982 alone 830
         inc lx
213 alone 831
        INC E
1982 alone 832
        ;jr z,GETSPRiD
213 alone 833
        JR GETSPR1
834
GETSPRQ
1982 alone 835
       inc e
836
       dec e
837
       jr z,GETSPRincD
213 alone 838
        LD A,#C0
839
        LD (DE),A
840
        INC E
1982 alone 841
        ;jr z,GETSPRiD
842
       inc e
843
       dec e
844
       jr z,GETSPRincD
213 alone 845
        LD A,#FF
846
        LD (DE),A
847
        INC E
1982 alone 848
        ;jr nz,$+5
849
        ; INC D
850
        ; LD E,maxscale+1
213 alone 851
       POP HL
1982 alone 852
        ld a,lx
853
        ld (gettexB),a
854
 
855
        jp GETTEX_cmp ;ࠢ  ।騬 ⮫栬
213 alone 856
 
1982 alone 857
GETincD
858
        INC D
859
       LD E,0x80;maxscale+1
860
       ld a,d
861
       cp 0xc0+(2*(texturesinpg+spritesinpg))
862
       jr c,$+4;GETSPRRETRY
863
       ld e,0x40 ;  ⠡ ᮢ
864
       ret
213 alone 865
 
1982 alone 866
maxVhgt=12;14;10 ; ᨬ쭮 㢥祭 ( 4 ࠧ)  ᮢ뢠   maxlinehgt=59 ᥫ! (TODO 祬 13,14 ???)
867
 
213 alone 868
;HX=V
869
;HL=mask
870
FIND10
871
        LD A,HX
872
        CP 63
873
        RET Z ;CY=0: end of column
874
        CALL GETPIXEL
875
        RET C ;CY=1: pixel
1982 alone 876
        dec hl;CALL UHL
877
         dec hl
213 alone 878
        INC HX ;V
879
        JR FIND10
880
FIND1HEIGHT
881
       ;LD LX,HX ;oldV
882
        LD B,0
883
F1H0    CALL GETPIXEL
884
        RET NC ;transparent
885
        RET Z ;0
1982 alone 886
        dec hl;CALL UHL
887
         dec hl
213 alone 888
        INC HX ;V
889
        INC B
890
        LD A,B
891
        CP maxVhgt
1903 alone 892
        jr c,F1H0
213 alone 893
        RET
894
FIND0HEIGHT
895
       ;LD LX,HX ;oldV
896
        LD B,0
897
F0H0    CALL GETPIXEL
898
        RET NC ;transparent
899
        RET NZ ;1
1982 alone 900
        dec hl;CALL UHL
901
         dec hl
213 alone 902
        INC HX ;V
903
        INC B
904
        LD A,B
905
        CP maxVhgt
1903 alone 906
        jr c,F0H0
213 alone 907
        RET
908
 
909
GETPIXEL
910
        LD A,HX
911
        CP 63
912
        RET Z ;CY=0: transparent
1982 alone 913
        inc l;set 1,h;SET 3,L
213 alone 914
        LD A,(HL)
1982 alone 915
        dec l;res 1,h;RES 3,L
213 alone 916
        AND C
917
        RET NZ ;CY=0: transparent
918
        LD A,(HL)
919
        AND C
920
        SCF ;CY=1: pixel (Z)
921
        RET
1982 alone 922
 
923
        if 0
213 alone 924
UHL
925
        LD A,H
926
        DEC H
927
        AND 7
928
        RET NZ
929
        LD A,L
930
        SUB #20
931
        LD L,A
932
        RET C
933
        LD A,H
934
        ADD A,8
935
        LD H,A
936
        RET
1982 alone 937
        endif
1907 alone 938
;endall
1982 alone 939
        display "end init=",$
213 alone 940
 
1982 alone 941
        DS 0xb000-$
213 alone 942
        DS #C000-$
1910 alone 943
 
944
        if 0
1907 alone 945
        ;ORG #C000
946
       IF scale64
947
       IF scale64 == 3
948
        INCBIN "tscale3"
949
       ELSE
950
        INCBIN "tscale2"
951
       ENDIF
952
       ELSE
953
        INCBIN "tscale"
1910 alone 954
       ENDIF
955
        endif
956
 
1958 alone 957
;hicode_begin
1939 alone 958
        ;ds 0x10000-0x1800-0x0800-$ ;0x040..7f ᮤন ⠡ ᮢ ⥪ (16 ⥪?)
1982 alone 959
        ds 0x10000-0x1800-0x2000-$ ;0x040..7f ᮤন ⠡ ᮢ ⥪ (16 ⥪?)
1910 alone 960
waswalls
1982 alone 961
        incbin "walls.bin"
1910 alone 962
wasgoods
1982 alone 963
        incbin "goods.bin"
1958 alone 964
;hicode_end
965
end
966
 
967
        page pgtmp
968
        org 0xc000
969
hicode_begin
1982 alone 970
        ds 0x10000-0x1800-0x2000-$
1958 alone 971
;waswalls
1982 alone 972
        incbin "walls2.bin"
1958 alone 973
;wasgoods
1982 alone 974
        incbin "goods2.bin"
1910 alone 975
hicode_end
976
 
1977 alone 977
        page pgmusic
978
        org 0xc000
979
hicode2_begin
980
        include "../../_sdk/ptsplay.asm"
981
MDLADDR
982
        incbin "testmusi.pt3"
983
hicode2_end
984
 
1907 alone 985
        page 0
1986 alone 986
       if doublescr
1907 alone 987
        savebin "code.c",begin,end-begin
1958 alone 988
        page pgtmp
989
        savebin "hicode.c",hicode_begin,hicode_end-hicode_begin
1977 alone 990
        page pgmusic
991
        savebin "hicode2.c",hicode2_begin,hicode2_end-hicode2_begin
1986 alone 992
       else
993
        savebin "code.c",begin,hicode_end-begin
994
       endif
1907 alone 995
 
996
        LABELSLIST "../../../us/user.l",1