?login_element?

Subversion Repositories NedoOS

Rev

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

Rev Author Line No. Line
724 alone 1
cls
2
        call setscrpg
3
        ld hl,0x4000
4
        ld de,0x4001
5
        ld bc,0x17ff
6
        ld (hl),l;0
7
        ldir
727 alone 8
        jp setpgroots
724 alone 9
 
727 alone 10
        if 1==0
713 alone 11
downhl
12
        inc h
13
downhl_afterinch
14
        ld a,h
15
        and 7
16
        ret nz
17
        ld a,l
18
        add a,32
19
        ld l,a
20
        ret c
21
        ld a,h
22
        sub 8
23
        ld h,a
24
        ret
727 alone 25
        endif
713 alone 26
 
27
nextchrline_de
28
        ld a,e
29
        add a,32
30
        ld e,a
31
        ret nc;jr nc,$+6
32
         ld a,d
33
         add a,8
34
         ld d,a
35
        ret
36
 
715 alone 37
nextchrline_hl
38
        ld a,l
39
        add a,32
40
        ld l,a
41
        ret nc;jr nc,$+6
42
         ld a,h
43
         add a,8
44
         ld h,a
45
        ret
46
 
712 alone 47
prchardig
48
        push de
49
        ;push hl
50
        ld h,digfont/256
51
        jr prchar_h
697 alone 52
prcharnote
53
        push de
712 alone 54
        ;push hl
697 alone 55
        ld h,notefont/256
56
        jr prchar_h
57
prchar
58
        push de
712 alone 59
        ;push hl
697 alone 60
        ld h,font/256
61
prchar_h
62
        ld l,a
711 alone 63
        push bc
64
        call setscrpg
65
        pop bc
697 alone 66
        dup 7
67
        ld a,(de)
68
        xor (hl)
69
        and c
70
        xor (hl)
71
        ld (de),a
72
        inc h
73
        inc d
74
        edup
75
        ld a,(de)
76
        xor (hl)
77
        and c
78
        xor (hl)
79
        ld (de),a
712 alone 80
        ;pop hl
697 alone 81
        pop de
711 alone 82
        push bc
83
        call setpgroots
84
        pop bc
697 alone 85
        ld a,c
86
        xor 0xff
87
        ld c,a
88
        ret m
89
        inc e
90
        ret
91
 
92
prcur
93
;bc=YX
94
;0b000YYyyy 0b00XXXXXx
95
;0b010YY000 0byyyXXXXX
711 alone 96
        push bc
97
        call setscrpg
98
        pop bc
697 alone 99
        ld a,b
100
        and 0x18
101
        add a,0x40
102
        ld d,a
103
        ld a,c
104
        add a,a
105
        add a,a ;0bXXXXXx00
106
        rr b
107
        rra
108
        rr b
109
        rra
110
        rr b
111
        rra ;0xbyyyXXXXX, CY=x
112
        ld e,a
113
        sbc a,a
114
        xor 0xf0
115
        ld c,a
116
        dup 7
117
        ld a,(de)
118
        xor c
119
        ld (de),a
120
        inc d
121
        edup
122
        ld a,(de)
123
        xor c
124
        ld (de),a
711 alone 125
        call setpgroots
697 alone 126
        ret
127
 
128
prtext
129
prtext0keepde
130
        ld (prtext_cr_de),de
131
        ld a,c
132
        ld (prtext_cr_c),a
133
prtext0
134
        ld a,(hl)
135
        or a
136
        ret z
137
        inc hl
138
        cp 13
139
        jr z,prtext_cr
712 alone 140
        push hl
697 alone 141
        call prchar
712 alone 142
        pop hl
697 alone 143
        jr prtext0
144
prtext_cr
145
prtext_cr_c=$+1
146
        ld c,0
147
prtext_cr_de=$+1
148
        ld de,0
713 alone 149
        call nextchrline_de
697 alone 150
        jr prtext0keepde
151
 
152
        align 256
153
font
154
        incbin "64qua.fnt"
766 alone 155
fnotes
156
        incbin "fnotes.fnt"
712 alone 157
notefont=0x6000
158
        ;ds 2048
159
digfont=0x6800
160
        ;ds 2048
697 alone 161
 
162
;;;;;;;;;;;;;;;;;;;;;;;;; high level view ;;;;;;;;;;;;;;;;;;;;;;;;
724 alone 163
getscrntracks
164
        ld a,(ntracks)
165
        ld b,SCRNTRACKS
166
        cp b
167
        ret nc
168
        ld b,a
169
        ret
170
 
713 alone 171
setneedprtypes
172
        ld a,55 ;"scf"
173
        ld (needprtypes),a
174
        ret
724 alone 175
setneedprtracks
176
        ld a,-1
177
        ld (oldtoptrack),a
178
        ret
713 alone 179
 
697 alone 180
updatescr
750 alone 181
;ᥩ  
182
 
727 alone 183
;塞, ᫨  lefttime  toptrack
714 alone 184
; ᬥ toptrack ⠪ ᮢ ⥫ ४
750 alone 185
        call getcurplayxonscreen
186
        ld (curplayxonscreen),a
187
oldcurplayxonscreen=$+1
188
oldcurplayyonscreen=$+2
189
        ld bc,0
190
        ;cp c
191
        ;jr z,updatescr_noplaycur
192
        ld a,c
193
        or a
194
        call nz,prcur
195
updatescr_noplaycur
196
 
197
        call getcurx
198
tracksmode=$+1
199
        ld c,0
200
        dec c
201
        jr nz,$+5
202
         ld a,(tracks_curx) ;edit tracks mode
203
        ld (curxonscreen),a
204
oldcurxonscreen=$+1
205
oldcuryonscreen=$+2
206
        ld bc,0
207
        ;cp c
208
        ;jr z,updatescr_nocur
209
        call prcur
210
updatescr_nocur
211
 
212
;⥯   
724 alone 213
        ld a,(toptrack)
214
oldtoptrack=$+1
215
        ld c,-1
216
        ld (oldtoptrack),a
713 alone 217
        ld hl,(lefttime)
746 alone 218
        ld (curlefttime),hl
713 alone 219
oldlefttime=$+1
220
        ld de,0x8000
221
        ld (oldlefttime),hl
734 alone 222
        cp c
223
        jp nz,updatescr_scrollupdown
713 alone 224
        or a
225
        sbc hl,de
226
        jr nz,updatescr_scroll
227
        jp updatescr_scrollq
724 alone 228
updatescr_scrollupdown
229
        call setneedpralltracks
230
        call setneedprtypes
231
        jp updatescr_scroll_noprall
232
 
713 alone 233
updatescr_scroll
234
;hl=lefttime-oldlefttime
715 alone 235
        bit 7,h
1213 alone 236
        jp nz,updatescr_scroll_right        
237
;updatescr_scroll_left
715 alone 238
        ld bc,9
239
        or a
240
        sbc hl,bc
241
        jp nc,updatescr_scroll_prall
242
        add hl,bc
243
        ld c,l;1
724 alone 244
        ld hl,0x4020+(TRACKX/2);+(SCRTRACKWID/2)-1
245
        call getscrntracks;ld b,SCRNTRACKS
246
        ld a,(toptrack)
247
        ld hx,a;0 ;track
1213 alone 248
        call scroll_left_c ;c=scroll amount (in chars)
713 alone 249
        call setpgroots
250
        jp updatescr_scroll_noprall
697 alone 251
 
713 alone 252
updatescr_scroll_right
715 alone 253
        xor a
254
        sub l
255
        ld l,a
256
        sbc a,h
257
        sub l
258
        ld h,a ;hl=-hl
259
        ld bc,9
260
        or a
261
        sbc hl,bc
262
        jp nc,updatescr_scroll_prall
263
        add hl,bc
264
        ld c,l;1
724 alone 265
        ld hl,0x4020+(TRACKX/2)
266
        call getscrntracks;ld b,SCRNTRACKS
267
        ld a,(toptrack)
268
        ld hx,a;0 ;track
1213 alone 269
        call scroll_right_c ;c=scroll amount (in chars)
713 alone 270
        call setpgroots
271
        jp updatescr_scroll_noprall
712 alone 272
 
713 alone 273
updatescr_scroll_prall
274
        call setneedpralltracks
724 alone 275
updatescr_scroll_noprall
713 alone 276
;뢠 ६ ⮫쪮  ஫ (TODO   )
724 alone 277
        ld de,0x4000+(TRACKX/2)
704 alone 278
        ld b,SCRTRACKWID
279
        ld c,0x0f
746 alone 280
        ld hl,(curlefttime)
704 alone 281
        inc hl
282
        inc hl
283
updatescr_time0
284
;⠥ ⮫쪮   (32), 2  ᫥  2 ࠢ
285
        ld a,l
286
        and 31
287
        cp 4
288
        ld a,'.'
289
        jr nc,updatescr_time0_skip
290
        ld a,l
291
        and 0xfc
292
        bit 1,l
293
        jr nz,$+3
294
         ld a,h
295
        bit 0,l
296
        jr nz,$+6
297
         rra
298
         rra
299
         rra
300
         rra
301
        or 0xf0
302
        daa
303
        add a,0xa0
304
        adc a,0x40
305
updatescr_time0_skip
712 alone 306
        push hl
704 alone 307
        call prchar
712 alone 308
        pop hl
704 alone 309
        inc hl
310
        inc c
311
        djnz updatescr_time0
714 alone 312
 
713 alone 313
updatescr_scrollq
714 alone 314
        ;xor a
315
        ;ld (untr_needredraw),a
718 alone 316
        ;ld de,0x4001
317
        ;ld c,0x0f
318
        ;ld hl,ttypes
713 alone 319
needprtypes=$
320
        scf
321
        call c,prtypes
322
        ld a,55+128 ;"or a"
323
        ld (needprtypes),a
712 alone 324
 
713 alone 325
;needpralltracks=$
326
;        scf
327
        ;jr nc,updatescr_prcurtrack
328
; ⮫쪮 ४,   (   ப  ᨭ஭ ᮢ!!!)
724 alone 329
        ld de,0x4020+(TRACKX/2)
330
        call getscrntracks;ld b,SCRNTRACKS
331
        ld a,(toptrack)
332
        ld hx,a;0 ;track
713 alone 333
updatescr_tracks0
334
        push bc
335
        push de
336
        ld c,0x0f
337
        ld b,SCRTRACKWID
338
        call prtrack
339
        pop de
340
        call nextchrline_de
341
        pop bc
342
        inc hx ;track
343
        djnz updatescr_tracks0
344
;        ld a,55+128 ;"or a"
345
;        ld (needpralltracks),a
346
;        jr updatescr_prcurtrackq
347
;updatescr_prcurtrack
348
;        ld a,(curtrack)
349
;        ld hx,a
350
;        ld c,0x0f
351
;        call prtrack
352
;updatescr_prcurtrackq
353
 
746 alone 354
        ld hl,(FreeMem_value)
355
        ld de,0x4000
356
        ld c,0x0f
357
        push hl
358
        ld a,h
359
        call prhex
360
        pop hl
361
        ld a,l
362
        call prhex
363
 
750 alone 364
;draw cursors
365
curplayxonscreen=$+1
366
        ld a,0
367
        ld (oldcurplayxonscreen),a
368
        ld c,a
369
        xor a ;call getcury
370
        ld (oldcurplayyonscreen),a
371
        ld b,a
372
        ld a,c
373
        or a
374
        call nz,prcur
375
 
376
curxonscreen=$+1
377
        ld a,0
378
        ld (oldcurxonscreen),a
379
        ld c,a
380
        call getcury
381
        ld (oldcuryonscreen),a
382
        ld b,a
383
        call prcur
384
 
697 alone 385
        ret
746 alone 386
prhex
387
        call prhexdig
388
prhexdig
389
        rrca
390
        rrca
391
        rrca
392
        rrca
393
        push af
394
        or 0xf0
395
        daa
396
        add a,0xa0
397
        adc a,0x40
398
        call prchar
399
        pop af
400
        ret
697 alone 401
 
713 alone 402
prtypes
403
        ld hl,ttypes
724 alone 404
        ld a,(toptrack)
405
        add a,a
406
        add a,a
407
        add a,a
408
        ld e,a
409
        ld d,0
410
        add hl,de
411
        ld de,0x4020
412
        call getscrntracks;ld b,SCRNTRACKS
713 alone 413
prtypes0
724 alone 414
        push bc
705 alone 415
        push de
718 alone 416
        ld bc,0x070f
417
prtypes0new0
418
        ld a,(hl)
419
        push hl
420
        call prchardig
421
        pop hl
422
        inc hl
423
        djnz prtypes0new0
424
        inc hl
425
        pop de
426
        call nextchrline_de
724 alone 427
        pop bc
428
        djnz prtypes0
718 alone 429
        ret
430
 
713 alone 431
prtrack_gettype
710 alone 432
        ld a,hx
713 alone 433
        call gettracktype
710 alone 434
        ld hl,prcharnote
737 alone 435
        cp _t;CHNTYPE_NOTES
710 alone 436
        jr z,$+5
712 alone 437
         ld hl,prchardig
710 alone 438
        ld (prtrack_prproc),hl
713 alone 439
        ret
710 alone 440
 
713 alone 441
prtrack_Nchars
442
;(after prtrack_gettype)
443
;de=scr
444
;hx=track
445
;c=0x0f/0xf0
446
;b=SCRTRACKWID
447
;hl=time
697 alone 448
prtrack0
712 alone 449
        push hl
698 alone 450
        push de
712 alone 451
        ld a,hx ;track
731 alone 452
        call tracktime_totrackpartindex ;out: a=track, hl=index, ly=part
712 alone 453
        call peektrackpartindex
698 alone 454
        pop de
710 alone 455
prtrack_prproc=$+1
697 alone 456
        call prcharnote
712 alone 457
        pop hl
701 alone 458
         inc hl
697 alone 459
        djnz prtrack0
713 alone 460
        ret
461
 
462
prtrack
463
;de=scr
464
;hx=track
465
;c=0x0f/0xf0
466
;b=SCRTRACKWID
737 alone 467
        push de
713 alone 468
        ld a,hx
737 alone 469
        call amulchnsstep_tohl
470
        ld de,chns-2;tracks
471
        add hl,de
472
        pop de
473
        ld a,(hl)
713 alone 474
        or a
475
        ret p ;४  
476
         res 7,(hl)
737 alone 477
        call prtrack_gettype
713 alone 478
 
746 alone 479
        ld hl,(curlefttime)
713 alone 480
        push de
481
        call prtrack_Nchars
697 alone 482
        pop de
711 alone 483
 
484
        call setscrpg
485
 
746 alone 486
        ld hl,(curlefttime)
697 alone 487
        ld c,0x01
488
        dec e
489
        push hl
490
        ld a,l
491
        sub 8
492
        ld l,a
493
        and 7
494
        push de
713 alone 495
        call prbar_or_nobar
697 alone 496
        pop de
497
        pop hl
498
        inc e
499
        ld a,l
500
        cpl
701 alone 501
        and 7 ;᫨ l&7=0,  ਡ塞 3... ᫨ 7,  ਡ塞 0
697 alone 502
        rra
503
        add a,e
504
        ld e,a
505
        bit 0,l
506
        jr z,$+4
711 alone 507
         ld c,0x10        
697 alone 508
        ld b,SCRTRACKWID/8
509
prtrack_bars0
510
        push de
511
        call prbar
512
        pop de
513
        ld a,e
514
        add a,4
515
        ld e,a
516
        djnz prtrack_bars0
517
 
711 alone 518
        call setpgroots
697 alone 519
        ret
520
 
713 alone 521
        macro BARPIXEL
522
        ld a,(de)
523
        or c
524
        ld (de),a
525
        endm
526
 
527
        macro NOBARPIXEL
528
        ld a,(de)
529
        cpl
530
        or c
531
        cpl
532
        ld (de),a
533
        endm
534
 
535
nobar
536
;c=0x10/0x01
537
        dup 7
538
        NOBARPIXEL
539
        inc d
540
        edup
541
        NOBARPIXEL
542
        ret
543
 
544
prbar_or_nobar
545
        jr nz,nobar
697 alone 546
prbar
713 alone 547
;l=lefttime
697 alone 548
        ld a,l
549
        add a,8
550
        ld l,a
551
        and 3*8
552
        jr z,prbar_lined
553
prbar_dotted
554
;c=0x10/0x01
713 alone 555
        BARPIXEL
697 alone 556
        inc d
713 alone 557
        NOBARPIXEL
697 alone 558
        inc d
713 alone 559
        BARPIXEL
697 alone 560
        inc d
713 alone 561
        NOBARPIXEL
697 alone 562
        inc d
713 alone 563
        BARPIXEL
697 alone 564
        inc d
713 alone 565
        NOBARPIXEL
697 alone 566
        inc d
713 alone 567
        BARPIXEL
568
        inc d
569
        NOBARPIXEL
697 alone 570
        ret
571
 
572
prbar_lined
573
        ld a,l
574
        and 3*16
575
        jr z,prbar_solid
576
;c=0x10/0x01
713 alone 577
        BARPIXEL
697 alone 578
        inc d
713 alone 579
        BARPIXEL
697 alone 580
        inc d
713 alone 581
        BARPIXEL
697 alone 582
        inc d
713 alone 583
        NOBARPIXEL
697 alone 584
        inc d
713 alone 585
        BARPIXEL
697 alone 586
        inc d
713 alone 587
        BARPIXEL
697 alone 588
        inc d
713 alone 589
        BARPIXEL
590
        inc d
591
        NOBARPIXEL
697 alone 592
        ret
593
 
594
prbar_solid
595
;c=0x10/0x01
596
        dup 7
713 alone 597
        BARPIXEL
697 alone 598
        inc d
599
        edup
713 alone 600
        BARPIXEL
697 alone 601
        ret
602
 
603
;========================== init =====================
604
gennotefont
605
        ld hl,notefont
606
        ld de,notefont+1
712 alone 607
        ld bc,2*2048-1 ;digfont ⮦
697 alone 608
        ld (hl),l;0
609
        ldir
610
 
712 alone 611
        ld hx,font/256
612
        ld de,digfont+1
613
        ld hl,tdigfont
614
        ld bc,62*256+8
615
        call gennotefont120
616
 
724 alone 617
        ld hl,tpausefont
618
        ld de,notefont+(NOTE_GLISS&0xff)
619
        ld bc,2*256+8
620
        ld hx,font/256
621
        call gennotefont120
622
 
697 alone 623
        ld e,NOTE_LOWEST
624
        ld c,7
766 alone 625
        ld hx,0 ;ld hx,font/256
697 alone 626
        ld d,notefont/256+1
766 alone 627
        call gennotefont12768 ; ᤢ 
697 alone 628
        ld c,8
766 alone 629
        ld hx,0 ;ld hx,font/256
697 alone 630
        ld d,notefont/256
766 alone 631
        call gennotefont12768
697 alone 632
        ld c,7
766 alone 633
        ld hx,1 ;ld hx,font/256+1
697 alone 634
        ld d,notefont/256
701 alone 635
        ;call gennotefont12 ; ᤢ 
697 alone 636
        ;ret
637
 
766 alone 638
gennotefont12768
639
;c=nlines
640
;hx=font/256+
641
;d=notefont/256+
642
        ld hl,tnotefont
643
        ld b,12
644
gennotefont127680
645
        push bc
646
        push hl
647
        ;ld l,(hl)
648
        ;ld a,hx
649
        ;ld h,a;font/256
650
        ;jr $
651
        ld l,(hl)
652
        ld h,0
653
        add hl,hl
654
        add hl,hl
655
        add hl,hl
656
        ld a,h
657
        add a,fnotes/256-1
658
        ld h,a
659
        ld a,l
660
        add a,hx
661
        ld l,a
767 alone 662
         dec hl
766 alone 663
        push de
664
        ld b,c
665
gennotefont127681
666
        ld a,(hl)
667
        inc hl
668
        ld (de),a
669
        inc d
670
        djnz gennotefont127681
671
        pop de
672
        pop hl
673
        pop bc
674
        inc hl
675
        inc e ;next symbol in notefont
676
        djnz gennotefont127680
677
        ret
678
 
697 alone 679
gennotefont12
680
;c=nlines
681
;hx=font/256+
682
;d=notefont/256+
683
        ld hl,tnotefont
684
        ld b,12
685
gennotefont120
686
        push bc
687
        push hl
688
        ld l,(hl)
689
        ld a,hx
690
        ld h,a;font/256
691
        push de
692
        ld b,c
693
gennotefont121
694
        ld a,(hl)
695
        inc h
696
        ld (de),a
697
        inc d
698
        djnz gennotefont121
699
        pop de
700
        pop hl
701
        pop bc
702
        inc hl
703
        inc e ;next symbol in notefont
704
        djnz gennotefont120
705
        ret
706
 
724 alone 707
tpausefont
708
        db "-|"
697 alone 709
tnotefont
712 alone 710
;  稭   1
697 alone 711
        db "CcDdEFfGgAaB"
712 alone 712
tdigfont
713
;  稭   1
717 alone 714
        db "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"