Subversion Repositories NedoOS

Rev

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

Rev Author Line No. Line
881 alone 1
        ;MAIN "VERA",8
2
 
3
;IM_2 ணࠬ   뢠
4
;       ORG IM2 ;#6666
5
IMS
6
       if INT_IM2
7
        EX (SP),HL
8
        LD (adr_ret+1),HL
9
        POP HL
10
        LD (IM2_SP+1),SP
11
        PUSH BC     ;楤  ࠩ⮢
12
                    ; ஢  ॣ஬ BC (POP BC)
13
        LD SP,VARS  ;  , ⮫쪮  㬮!
14
        PUSH IX,IY,HL,DE,BC,AF
15
        EX AF,AF' ;'
16
        EXX
17
        PUSH HL,DE,BC,AF
885 alone 18
       endif
881 alone 19
 
20
        LD A,(curpgc000) ;ok ;(NUMPAGE)  ;  ⥪. .
886 alone 21
        LD (RST_PGp1),A
910 alone 22
IM2Nm2=$+1
881 alone 23
        JP IM2N
24
 
25
IM2N    ;LD A,PG_VIEW
26
        CALL PAGE_PG_VIEW
27
 
913 alone 28
       if EGA
29
       ld a,(im_arroff)
30
       cp 55
31
       CALL nz,ARROFF ;࠭   ᭮ (visible) ࠭ (..  ⠬,  ᥩ  ⠩)
32
       else
911 alone 33
        CALL ARROFF ;࠭   ᭮ (visible) ࠭ (..  ⠬,  ᥩ  ⠩)
913 alone 34
       endif
881 alone 35
 
36
        CALL DAYS ;뢮 ࠩ -
37
 
38
        LD A,(DIALOG+1)
39
        AND A
40
        CALL NZ,WKEYS ; ">>"  
41
        CALL Z,FL_MESH
42
 
43
TXT0    LD A,PG_MUZ
44
        CALL PAGE
45
 
46
TXT     LD HL,ONESYM+1; ⥪. ᨬ
47
        LD A,(HL)
48
        INC HL
49
        LD B,(HL)
50
        EXA
51
        ;LD A,PG_VIEW
52
        CALL PAGE_PG_VIEW
53
        EXA
54
        LD DE,ONESYM
55
        LD (DE),A
56
        CP 5
57
        JR NZ,TOKN
58
;ᮡ ਯ  뤠  HL  
59
        LD A,B
60
        CALL SCRIPT
61
        LD (TXT+1),HL
62
        JR TXT0
63
 
64
TOKN    CP TOKEN
65
        JR C,CLT
66
        LD (TXT+1),HL
67
TXT1    LD HL,#0A11   ;H-X,L-Y ⥪.  
68
        CP 13
69
        JR NZ,TXT3
70
TXT2    LD H,10
71
        INC L
72
        JR TXT4
896 alone 73
TXT3    
74
       if EGA
899 alone 75
        ;ld ix,0x3fc9 ;bg color 9 (green), color 7 (white)
76
        ld ix,0x00c9 ;bg color 9 (green), color 0 (black)
896 alone 77
       endif
911 alone 78
        CALL PR64    ;ᨬ쭠     ;TODO ⮫쪮  ⥭ ࠭
918 alone 79
        ld a,55 ;"scf"
80
        ld (wasdrawimg),a ;    뢮,    뢠,  ࠧ
881 alone 81
        INC H
82
TXT4    LD (TXT1+1),HL
83
 
84
CLT     JR PRT
85
        CALL CLTXT
86
        LD A,PRT-CLT-2
87
        LD (CLT+1),A
88
 
89
PRT     JR INV
90
        LD DE,0     ; ப
91
        LD HL,#320E ;H-X,L-Y
896 alone 92
       if EGA
93
        ld ix,0x003f ;bg color 7 (white), color 0 (black)
94
       endif
911 alone 95
        CALL PR64 ;TODO ⮫쪮  ⥭ ࠭
881 alone 96
        LD A,INV-PRT-2
97
        LD (PRT+1),A
911 alone 98
        ld a,55 ;"scf"
99
        ld (wasdrawimg),a ;    뢮,    뢠,  ࠧ
881 alone 100
 
101
; 饩 3*3  誥
102
INV     LD A,1
103
        DEC A
104
        JR NZ,DIAL
105
        LD (INV+1),A
106
 
107
MSTRT   LD IY,MESHOK ;砫 ࠩ 誠
108
        LD L,(IY)
109
        LD H,A;=0    ;HL=ࠩ  誠
911 alone 110
 
111
        ld a,55 ;"scf"
112
        ld (wasdrawimg),a
113
 
881 alone 114
        CALL HL72    ;HL= ࠩ
883 alone 115
       if EGA
116
        ld de,iconsscraddr
117
       else
881 alone 118
        LD DE,#C099  ;DE=  ࠭
883 alone 119
       endif
881 alone 120
        CALL BLOCK33
121
 
122
        LD L,(IY+1)
123
        LD H,0
883 alone 124
       if EGA
125
        ld de,iconsscraddr+3
126
       else
881 alone 127
        LD DE,#C09C
883 alone 128
       endif
881 alone 129
        CALL HL72
130
        CALL BLOCK33
131
 
132
        LD L,(IY+2)
133
        LD H,0
883 alone 134
       if EGA
135
        ld de,iconsscraddr+(40*24)
136
       else
881 alone 137
        LD DE,#C0F9
883 alone 138
       endif
881 alone 139
        CALL HL72
140
        CALL BLOCK33
141
 
142
        LD L,(IY+3)
143
        LD H,0
883 alone 144
       if EGA
145
        ld de,iconsscraddr+(40*24)+3
146
       else
881 alone 147
        LD DE,#C0FC
883 alone 148
       endif
881 alone 149
        CALL HL72
150
        CALL BLOCK33
151
 
152
        LD L,(IY+4)
153
        LD H,0
883 alone 154
       if EGA
155
        ld de,iconsscraddr+(40*48)
156
       else
881 alone 157
        LD DE,#C859
883 alone 158
       endif
881 alone 159
        CALL HL72
160
        CALL BLOCK33
161
 
162
        LD L,(IY+5)
163
        LD H,0
883 alone 164
       if EGA
165
        ld de,iconsscraddr+(40*48)+3
166
       else
881 alone 167
        LD DE,#C85C
883 alone 168
       endif
881 alone 169
        CALL HL72
170
        CALL BLOCK33
171
 
172
;⠥ 
173
DIAL
174
        LD A,0
175
        DEC A
176
        JR NZ,FLOOP
177
        LD (DIAL+1),A
178
 
911 alone 179
        ld a,55 ;"scf"
180
        ld (wasdrawimg),a
883 alone 181
       if EGA
886 alone 182
        LD HL,0xc000+(38*72*4) ; . 
883 alone 183
        ld de,faceiconsscraddr
184
       else
886 alone 185
        LD HL,SPR33+(38*72) ; . 
881 alone 186
        LD DE,#D021
883 alone 187
       endif
881 alone 188
        CALL BLOCK33
189
 
190
WHO     LD HL,0             ; ᮡᥤ
191
        CALL HL72
883 alone 192
       if EGA
193
        ld de,faceiconsscraddr+(40*24)
194
       else
881 alone 195
        LD DE,#D081
883 alone 196
       endif
881 alone 197
        CALL BLOCK33
198
 
199
; 
200
FLOOP   LD HL,FLASH+1
201
        LD A,(DISTV)
202
        ADD A,A
203
        LD BC,#0538  ;JR C,CT2
204
        JR C,$+4
205
        JR NZ,CTER1
206
        LD (HL),0    ;A=0
207
        LD BC,#0418  ;JR CT2-1
208
CTER1   LD (CTMOD),BC
209
 
210
CTER2   LD A,0
211
        INC A
212
 
213
SPDFL   CP FR           ;᪮  
214
 
215
CTMOD   JR C,CT2        ;JR/JR C
216
        LD A,(HL)
217
        XOR 1
218
        LD (HL),A
219
        XOR A
220
CT2     LD (CTER2+1),A
221
 
222
;   ࠭?
223
BUSY
224
        LD A,0
908 alone 225
       if EGA
911 alone 226
;᫨ - ᮢ  ⥭ ࠭,   ᭮  䨪  ५  ⥭ ࠭    䫠
227
;[  ᫨ ᮢ   ४稫 ࠭? , ..  ⨬  ⢨ﬨ ⮨ halt]
228
wasdrawimg=$
917 alone 229
        or a ;᫨ ᮢ  ⥭ ࠭,  scf
911 alone 230
        jr nc,IM2nowasdrawimg
231
        ld hl,(arroffega_scraddr2)
232
        call setpgsscr40008000_current ;shadow
233
        ld de,(arroffega_bufaddr2);mouse_buf
234
        ld bc,0x1008
235
;b=hgt,c=wid (/2)
236
;de=gfx
237
;hl=scr
913 alone 238
        call getimgega_onescreen
911 alone 239
        call setpgsmain40008000
240
        ld a,55+128 ;"or a"
241
        ld (wasdrawimg),a
242
IM2nowasdrawimg
243
 
244
im_swapscr=$
245
        or a
246
        jr nc,im_swapscrq
247
        call swapre
248
        call setcurscr_change
249
curscrnum_int=$+1
250
        ld e,0
251
        OS_SETSCREEN
252
        ld a,55+128 ;"or a"
253
        ld (im_swapscr),a
254
im_swapscrq
255
 
913 alone 256
im_arroff=$
257
        or a
258
        CALL nc,ARRON      ;ᮢ   ᭮ ࠭
908 alone 259
       else
881 alone 260
        AND A
261
        PUSH AF
262
        CALL NZ,ARROFFS ;࠭   ⥭ ࠭
263
        CALL ARRON      ;ᮢ   ᭮ ࠭
264
        POP AF
265
        CALL NZ,ARRONS  ;ᮢ   ⥭ ࠭
885 alone 266
       endif
881 alone 267
 
268
PRTIME
269
        LD A,0 ;⠩  ࠭  १ . ६
270
        SUB 1
271
        ADC A,0
272
        LD (PRTIME+1),A
273
PRJR    JR TIMER      ;JR/JR NZ #18/#20
274
        LD A,#18
275
        LD (CLT+1),A
276
        LD (PRJR),A
277
 
901 alone 278
TIMER   LD HL,MAPINGp2
881 alone 279
        INC (HL)
280
 
281
CLOCK   LD A,0
282
        INC A
283
        CP 50
284
        JR C,CLK1
285
        LD A,(TIME+2) ;ᥪ
286
        INC A
287
        CP 60
288
        JR C,CLK2
289
        LD A,(TIME+1) ;
290
        INC A
291
        CP 60
292
        JR C,CLK3
293
        LD A,(TIME)   ;
294
        INC A
295
        LD (TIME),A
296
        XOR A
297
CLK3    LD (TIME+1),A
298
        XOR A
299
CLK2    LD (TIME+2),A
300
        XOR A
301
CLK1    LD (CLOCK+1),A
302
 
303
        CALL GOTASK ;믮 
304
 
305
;  ࠩ /
306
SPN
307
        LD HL,1
308
        DEC HL
309
        LD A,H
310
        OR L
311
        JR NZ,$+8
312
        LD (DAY_NGT),A
313
        LD HL,SPD_NGT
314
        LD (SPN+1),HL
315
 
316
MUS
317
        LD A,PG_MUZ
318
        CALL PAGE
921 alone 319
MUSONp1=$+1
320
        LD A,0
881 alone 321
        AND A
322
        CALL Z,PLAY+2
323
 
324
        LD A,PG_MAP
325
        CALL PAGE
326
SAMPLE
327
        LD HL,0
328
        CALL SOUND
329
 
330
;ࠡ⪠ 誨, 
331
        LD HL,(mouse_crd)
332
        LD (OLD_CRD+1),HL
333
 
334
        LD HL,CCURS+1
335
        LD A,(HL)
336
        DEC A
966 alone 337
        JR NZ,MSE
881 alone 338
 
339
CNTCUR  LD A,FRM2
340
        DEC A
966 alone 341
        JR NZ,MSE-3
881 alone 342
        LD (HL),A
343
        LD A,FRM2
344
        LD (CNTCUR+1),A
345
 
966 alone 346
MSE      CALL mouse
881 alone 347
        AND %11110000
348
        LD E,A
349
        PUSH DE
350
 
351
        CALL SCANER
889 alone 352
        LD (KEYSp1),A
881 alone 353
        LD C,A
354
        CALL UDLR
355
        LD A,C
356
        AND %00010000
357
;       AND %00110000
358
        POP DE
359
        OR E
360
        LD E,A
361
        RES 4,E
362
        AND 16
363
 
889 alone 364
        LD HL,MKEYSp1
881 alone 365
OLDK    LD B,0
366
        LD ($-1),A
367
        JR Z,OLDK1    ;᫨  /⦠
368
 
369
;  ন FIRE
370
;------
371
        LD HL,(mouse_crd)
372
        LD (NEW_CRD),HL
373
        LD HL,(OLD_CRD+1)
374
       if FIXMOUSE==0
375
       LD (mouse_crd),HL
376
       endif
377
        LD HL,FMCNT2
378
        DEC (HL)
379
        JR NZ,OLDK4
380
        LD (HL),SCMOD
381
        LD E,2
382
        LD HL,CCURS+1 ;塞 ࠩ  N2/N3
383
        LD A,(HL)
384
       if FIXMOUSE==0
385
       LD (HL),E
386
       endif
387
        CP E
388
        JR NZ,OLDK4
389
       if FIXMOUSE==0
390
       INC (HL)
391
       endif
392
        JR OLDK4
393
;------
394
 
395
OLDK1   CP B
396
        JR Z,OLDK3    ;᫨  뫮 
397
 
398
;⦠ FIRE (饫箪)
399
 
400
        SET 4,E
401
        LD A,SCMOD    ;⠭ 稪
402
        LD (FMCNT2),A
403
 
885 alone 404
        CALL SCRLMAP  ;஫஢  ?
881 alone 405
        JR NC,OLDK3   ;
406
        LD A,(KARM)
407
        LD (CCURS+1),A
408
        LD E,0
409
OLDK3   LD A,(HL)
410
        AND %11010000
411
        JR NZ,$+3     ;  ࠡ⠭
412
                      ;諮 ⨥
413
        LD (HL),E
414
 
415
OLDK4   LD A,#F7   ;"1-5"
416
        IN A,(#FE)
417
        AND 31
889 alone 418
        LD (DIGKp1),A
881 alone 419
;--------
420
 
886 alone 421
RST_PGp1=$+1
422
        LD A,0
881 alone 423
        SETPGC000;CALL PAGE
424
 
425
IM2EX
885 alone 426
       if INT_IM2
881 alone 427
;室   뢠
428
        POP AF,BC,DE,HL
429
        EX AF,AF' ;'
430
        EXX
431
        POP AF,BC,DE,HL,IY,IX
432
IM2_SP  LD SP,0
433
        EI
434
adr_ret JP 0
435
       else
436
        ret
437
       endif
438
 
439
END_IM2
440
 
441
;樠. 誨
442
INIMOUS LD BC,#FBDF
443
        IN A,(C)
444
        LD (ms1+1),A
445
        LD B,#FF
446
        IN A,(C)
447
        LD (ms5+1),A
448
        JR m_keys
449
 
450
M_SP    CP 6
451
        RET C
452
MSPEED  LD B,-4  ;  [-4...+4], 0- ᪮७!
453
        ADD A,B
454
        CP 18
455
        RET C
456
        ADD A,B
457
        RET
458
 
459
;OUT: A-BIT 4-. .
460
;           5-ࠢ. .
461
;           6- 
462
;           7- 
463
;     B-- ப ஫ 
464
mouse
465
        LD A,255
466
        AND A
467
        RET Z
468
 
469
        LD BC,#FBDF
470
ms1     LD DE,MAX_X*256
471
        LD HL,mouse_crd+1  ; lef/right
472
        IN A,(C)
473
        LD (ms1+1),A
474
        SUB E
475
        JR Z,ms4
476
        JP P,ms2
477
        NEG
478
        CALL M_SP     ; 
479
        NEG
480
        ADD A,(HL)
481
        JR C,ms3+1
482
        XOR A
483
        JR ms3+1
484
ms2     CALL M_SP     ; 
485
        ADD A,(HL)
486
        JR C,ms3
487
        CP D
488
        JR C,ms3+1
489
ms3     LD A,D
490
        LD (HL),A
491
ms4     DEC HL
492
        LD B,#FF
493
ms5     LD DE,MAX_Y*256
494
        IN A,(C)
495
        LD (ms5+1),A
496
        SUB E
497
        JR Z,m_keys
498
        JP M,ms6
499
        CALL M_SP     ; 
500
        NEG
501
        ADD A,(HL)
502
        JR C,ms7+1
503
        XOR A
504
        JR ms7+1
505
ms6     NEG
506
        CALL M_SP     ; 
507
        ADD A,(HL)
508
        JR C,ms7
509
        CP D
510
        JR C,ms7+1
511
ms7     LD A,D
512
        LD (HL),A
513
 
514
;஢塞 ,
515
;᫨  ,  - !
516
m_keys
517
        LD B,#FA
518
        IN A,(C)
519
        CPL
520
        RLCA
521
        RLCA
522
        RLCA
523
        RLCA
524
        LD D,A
525
        AND %00110000
526
        LD E,A
527
ROLL    NOP ;/⪫. ࠡ  ᮬ
528
 
529
; 
530
;       BIT 6,D ;. 
531
 
532
        LD A,D
533
        AND 15
534
ROLD    LD B,0
535
        LD (ROLD+1),A
536
        SUB B
537
        JR NZ,ROLB
538
        LD B,A
539
        LD A,E
540
        RET
541
ROLB    JR C,SCR_DW
542
 
543
;ப ⥪   B 祪
544
SCR_UP  SET 6,D
545
        LD B,A
546
        LD A,D
547
        RET
548
 
549
;ப ⥪   B 祪
550
SCR_DW  SET 7,D
551
        NEG
552
        LD B,A
553
        LD A,D
554
        RET
555
 
556
;///ࠢ
557
UDLR
558
        LD B,0
559
        LD ($-1),A
560
        LD C,A
561
        CALL KEYSPD
562
        LD A,C
563
STEP    LD E,1            ; 饭 न
564
        LD D,MAX_X        ;/ࠢ
565
        LD HL,mouse_crd+1
566
        RRA
567
        CALL C,PL
568
        RRA
569
        CALL C,MIN
570
 
571
        LD D,MAX_Y        ;/
572
        DEC HL
573
        RRA
574
        CALL C,PL
575
        RRA
576
        CALL C,MIN
577
        RET
578
 
579
KEYSPD  LD HL,STEP+1
580
        AND A
581
        JR Z,KSP2  ;  
582
        CP B
583
        JR NZ,KSP2 ;  ࠢ
584
 
585
        LD A,(MSPEED+1)
586
        NEG
587
        ADD A,10   ;६   ᪮ 
588
                   ;१  - 権 ந室
589
                   ;㢥祭 蠣 饭
590
        LD B,A
591
 
592
KSP0    LD A,0
593
        INC A
594
        CP B
595
        JR C,KSP1
596
        XOR A
597
        INC (HL)
598
KSP1    LD (KSP0+1),A
599
        RET
600
KSP2    LD (HL),1
601
        RET
602
 
603
PL      EX AF,AF' ;'
604
        LD A,(HL)
605
        ADD A,E
606
        JR C,ENDD-1
607
        CP D
608
        JR C,ENDD
609
        LD A,D
610
ENDD    LD (HL),A
611
        EX AF,AF' ;'
612
        RET
613
 
614
MIN     EX AF,AF' ;'
615
        LD A,(HL)
616
        SUB E
617
        JR NC,ENDD
618
        XOR A
619
        JR ENDD
620
 
621
;-------஢ ࠢ---------
622
;  (0-3) :
623
;0-RGHT,1-LEFT,2-DWN,3-UP
624
;4- - 
625
;5-  -  , 6- - 
626
;7- - Enter
627
; ०  5-  - ⨥ CS  SS
628
 
629
SCANER
630
        LD A,#BF    ;Enter
631
        IN A,(#FE)
632
        CPL
633
        RRCA
634
        AND 128
635
        LD B,A
636
 
637
SCANMOD LD A,0      ;० 0- , 1- 
638
        AND A
639
        JR Z,SGAME
640
 
641
        LD A,#FE    ;CS
642
        IN A,(#FE)
643
        BIT 0,A
644
        JR Z,CURSOR
645
        JR SCANTYP
646
 
647
; ०  ᮢ頥 ﭨ  CS  SS
648
; ஢塞  
649
SGAME   LD A,#FE    ;CS
650
        IN A,(#FE)
651
        LD C,A
652
        LD A,#7F    ;SS
653
        IN A,(#FE)
654
        RRCA
655
        AND C
656
        CPL
657
        RRCA
658
        RRCA
659
        RRCA
660
        AND %00100000
661
        OR B
662
        LD B,A
663
 
664
SCANTYP LD A,0      ;⨯ ࠢ
665
        AND A
666
        JP Z,QAOP
667
 
668
SINCL   LD A,#EF    ;SINCLAIR_RIGHT
669
        IN A,(#FE)
670
        RRCA
671
        RL C
672
        RRCA
673
        RL C
674
        RRCA
675
        RL C
676
        RRCA
677
        RRCA
678
        RL C
679
        RLCA
680
        RLCA
681
        RL C
682
        LD A,C
683
        CPL
684
        OR B
685
        RET
686
 
687
QAOP    LD A,#7F    ;SP
688
        IN A,(#FE)
689
        RRCA
690
        RL C
691
        LD A,#FB    ;Q
692
        IN A,(#FE)
693
        RRCA
694
        RL C
695
        LD A,#FD    ;A
696
        IN A,(#FE)
697
        RRCA
698
        RL C
699
        LD A,#DF    ;O,P
700
        IN A,(#FE)
701
        RRCA
702
        RRCA
703
        RL C
704
        RLCA
705
        RLCA
706
        RL C
707
        LD A,C
708
        CPL
709
        AND 31
710
        OR B
711
        RET
712
 
713
CURSOR  LD A,#EF    ;"6"/"7"
714
        IN A,(#FE)
715
        RLA
716
        RLA
717
        CPL
718
        AND 64+32
719
        OR B
720
        RET
721
 
722
;ᯠ騪
723
LC5
724
       LD DE,7;SKIP "LCMP5" & LENGTH
725
       ADD HL,DE
726
 
727
       LD A,(HL)
728
       INC HL
729
       LD E,A
730
       ADD HL,DE
731
 
732
       LD A,(HL)
733
       LD E,A;pp
734
 
735
       AND 3
736
       RLCA
737
       RLCA
738
       RLCA
739
       OR #C000/256
740
 
741
       EXX
742
       LD D,A;砫
743
       LD E,0
744
       EXX
745
 
746
       LD A,(HL)
747
       INC HL
748
       XOR #C000/256+#18
749
       AND #FC
750
       LD HX,A; /.
751
 
752
DLC1   LD A,(HL)
753
       INC HL
754
       LD LX,#FF
755
DLC2   EXX
756
       JR NZ,DLC10
757
       LD B,1
758
 
759
DLC3   EXA
760
       SLA D
761
       JR NZ,$+6
762
       LD D,(HL)
763
       INC HL
764
       SLI D
765
       DJNZ DLC7
766
       JR C,DLC1
767
       INC B
768
DLC4   LD C,%01010110
769
       LD A,#FE
770
DLC5   SLA D
771
       JR NZ,$+6
772
       LD D,(HL)
773
       INC HL
774
       RL D
775
       RLA
776
       SLA C
777
       JR Z,DLC6
778
       JR C,DLC5
779
       RRCA
780
       JR NC,DLC5
781
       SUB 8
782
DLC6   ADD A,9
783
       DJNZ DLC3
784
 
785
       CP 0-8+1
786
       JR NZ,$+4
787
       LD A,(HL)
788
       INC HL
789
 
790
       ADC A,#FF
791
       LD LX,A
792
       JR C,DLC4
793
;      DI
794
;      LD A,16+8+7  ;.  2- ࠭
795
;      LD (page),A
796
;      LD BC,#7FFD
797
;      OUT (C),A
798
;      EI
799
       RET
800
DLC7   LD A,(HL)
801
       INC HL
802
 
803
       EXX
804
       LD L,A
805
       EXA
806
       LD H,A
807
       ADD HL,DE
808
 
809
       CP #FF-2
810
       JR NC,DLC8
811
       DEC LX
812
DLC8   LD A,H
813
       CP HX
814
       JR NC,DLC13
815
       XOR L
816
       AND #F8
817
       XOR L
818
       LD B,A
819
       XOR L
820
       XOR H
821
       RLCA
822
       RLCA
823
       LD C,A
824
 
825
DLC9   EXA
826
       LD A,(BC)
827
DLC10  EXA
828
       LD A,D
829
       CP HX
830
       JR NC,DLC14
831
       XOR E
832
       AND #F8
833
       XOR E
834
       LD B,A
835
       XOR E
836
       XOR D
837
       RLCA
838
       RLCA
839
       LD C,A
840
 
841
DLC11  EXA
842
       LD (BC),A
843
 
844
       INC DE
845
       JR NC,$+4
846
       DEC HL
847
       DEC HL
848
       INC HL
849
       EXA
850
       INC LX
851
       JR NZ,DLC8
852
       JP DLC2
853
 
854
DLC13  SCF
855
DLC14  PUSH AF
856
       EXX
857
       ADD A,E
858
       EXX
859
       LD B,A
860
       POP AF
861
       LD C,E
862
       JR NC,DLC11
863
       LD C,L
864
       JR DLC9
865
 
866
DEHRUST
867
;HL - FROM, DE - TO
868
        INC HL
869
        INC HL
870
        INC HL ;SKIP "HR2"
871
        LD A,(HL)
872
        INC HL
873
        PUSH DE
874
        LD C,(HL)
875
        INC HL
876
        LD B,(HL)
877
        INC HL
878
        DEC BC
879
 
880
        EX DE,HL
881
        ADD HL,BC
882
        EX DE,HL
883
 
884
        LD C,(HL)
885
        INC HL
886
        LD B,(HL)
887
        ADD HL,BC
888
 
889
        SBC HL,DE
890
        ADD HL,DE
891
        JR C,$+4
892
        LD D,H
893
        LD E,L
894
        PUSH BC
895
        LDDR
896
        POP BC
897
 
898
        EX DE,HL
899
        RLA
900
        JR NC,DPCYES
901
        POP DE
902
        INC HL
903
        LDIR
904
        RET
905
 
906
DPCYES  LD DE,7
907
        ADD HL,DE
908
 
909
        PUSH HL
910
        EXX
911
        POP HL
912
        POP DE
913
 
914
        LD B,6
915
        DEC HL
916
        LD A,(HL)
917
        PUSH AF
918
        INC SP
919
        DJNZ $-4
920
 
921
        EXX
922
        LD DE,#1003
923
        LD C,#80
924
 
925
DPC1    LD A,(HL)
926
        INC HL
927
        EXX
928
        LD (DE),A
929
        INC DE
930
DPC0    EXX
931
DPC0A   CALL SLAC
932
        JR C,DPC1
933
 
934
        LD B,#01
935
DPC4    LD A,%01000000
936
DPC2    CALL SLAC
937
        RLA
938
        JR NC,DPC2
939
 
940
        CP E ;3
941
        JR C,DPC3
942
        ADD A,B
943
        LD B,A
944
        XOR D ;#10
945
        JR NZ,DPC4
946
DPC3    ADD A,B
947
        CP 4
948
        JR Z,DPC5 ;B<>1;B=4
949
        ADC A,#FF
950
DPC8A   CP 2
951
DPC8    EXX
952
        LD C,A
953
        LD H,#FF
954
        EXX
955
        JR C,DPC9 ;B=1
956
 
957
        JR Z,DPC12
958
 
959
        CALL SLAC
960
        JR C,DPC12
961
 
962
        ;B>=4
963
        LD A,%01111111
964
        LD B,E ;3
965
        DJNZ DPC9A1 ;JR...B=2
966
DPC9A2  DJNZ DPC5A2
967
        LD B,A
968
        SBC A,A
969
 
970
DPC9B   CALL SLAC
971
        RLA
972
        DEC A
973
        INC B
974
        JR NZ,DPC9B
975
        CP #FF-30
976
        JR NZ,$+4
977
        LD A,(HL)
978
        INC HL
979
 
980
        EXX
981
        LD H,A
982
        EXX
983
 
984
DPC12   LD A,(HL)
985
        INC HL
986
DPC11   EXX
987
        LD L,A
988
        ADD HL,DE
989
        LDIR
990
        JR DPC0
991
 
992
DPC5A2  ADD A,6
993
        RLA
994
        LD B,A
995
DPC5C   LD A,(HL)
996
        INC HL
997
        EXX
998
        LD (DE),A
999
        INC DE
1000
        EXX
1001
        DJNZ DPC5C
1002
        JR DPC0A
1003
 
1004
DPC5    ;B=4
1005
        CALL SLAC
1006
        LD A,D ;%00010000
1007
        JR NC,DPC5A1
1008
 
1009
        LD A,(HL)
1010
        INC HL
1011
        CP D ;16
1012
        JR NC,DPC8A
1013
        OR A
1014
        JR Z,DPC6
1015
 
1016
        EXX
1017
        LD B,A
1018
        EXX
1019
        LD A,(HL)
1020
        INC HL
1021
        JR DPC8
1022
 
1023
DPC9    ;B=1
1024
        LD A,%00111111
1025
DPC5A1  ;B=4
1026
DPC9A1  ;B=2
1027
DPC10   CALL SLAC
1028
        RLA
1029
        JR NC,DPC10
1030
        DJNZ DPC9A2
1031
        JR DPC11
1032
 
1033
SLAC    SLA C
1034
        RET NZ
1035
        LD C,(HL)
1036
        INC HL
1037
        RL C
1038
        RET
1039
 
1040
DPC6    EXX
1041
        LD B,6
1042
        DEC SP
1043
        POP AF
1044
        LD (DE),A
1045
        INC DE
1046
        DJNZ $-4
1047
        RET
1048
 
1049
;ࠦ  ५   
1050
; 㥬 ᠬ ५
1051
;ଠ ࠩ ५ :
1052
;᭠砫 ᫮ ᪨ (訩, ⥬ 訩 ),
1053
;⮬  ᫮ ࠩ (., 訩 )
1054
;(c) ᭮  Alone Coder
1055
;(c)  ࠡ⪠  
1056
;6.02.2003
1057
ARRON
1058
        LD IX,mouse_buf ;  ஬ (48 )
1059
mouse_crd EQU $+1
1060
        LD DE,#8232; न ५ D-X,E-Y
1061
 
1062
FLASH   LD A,0  ; 
1063
        AND A
1064
        RET NZ
1065
 
1066
ARON    LD A,D
1067
        AND 7
1068
        LD B,A
1069
        INC B
1070
        LD A,-1
1071
        ADD A,A
1072
        DJNZ $-1
1073
        LD (arrow2-1),A
1074
 
883 alone 1075
       if EGA
1076
        ld a,(egaon)
1077
        or a
885 alone 1078
        jp z,ARON_6912
1079
;d=x,e=y
910 alone 1080
       push de ;xy
1081
        ld b,0
1082
       ld a,e ;y
1083
       cp 0xc0-16
1084
       jr c,$+4
1085
       ld a,0xc0-16
1086
        ld l,a ;y
1087
        ld c,a
1088
       ld a,d ;x
916 alone 1089
       ;cp 0xf0
1090
       ;jr c,$+4
1091
       ;ld a,0xf0
910 alone 1092
        srl a
1093
        srl a ;x bit 0
1094
         ld h,b;0
1095
         rl h
1096
         inc h ;0x40/32/2  0x80/32/2
1097
        srl a ;x bit 1
1098
         rl h
1099
        add hl,hl
1100
        add hl,hl
1101
        add hl,bc
1102
        add hl,hl
1103
        add hl,hl
1104
        add hl,hl ;y*40+scrbase
1105
         if scrbase&0xff
1106
         add a,scrbase&0xff
1107
         endif
1108
;a=x/4
1109
        add a,l
1110
        ld l,a
1111
        adc a,h
1112
        sub l
1113
        ld h,a ;hl=scr ;   ९  ⥫ x? maxhl = 199*40 + 127 = 8087
1114
       ld (arroffega_scraddr),hl
911 alone 1115
        call setpgsscr40008000 ;visible
910 alone 1116
        ld de,(arroffega_bufaddr);mouse_buf
1117
        ld bc,0x1008
1118
;b=hgt,c=wid (/2)
1119
;de=gfx
1120
;hl=scr
1121
        call getimgega_onescreen
1122
        call setpgsmain40008000
1123
       pop de ;xy
1124
 
886 alone 1125
        ld a,(curarrowtype)
1126
         cp 45;255
1127
         ret nc;z ; ५
1128
         ;ld a,1
1129
        ld l,a
1130
        ld h,0
1131
        ld c,l
1132
        ld b,h
1133
        add hl,hl
1134
        add hl,hl
1135
        add hl,hl
1136
        add hl,hl ;*0x10
1137
        add hl,bc ;*0x11
1138
        add hl,hl
1139
        add hl,hl ;*0x44
1140
        add hl,bc ;*0x45
1141
        add hl,hl
1142
        add hl,hl ;*0x114
1143
        ld bc,0xc000+4
1144
        add hl,bc
1145
        push hl
1146
        pop iy
1147
        ld a,PG_SPR
1148
        call setpg
917 alone 1149
        call setpgsscr40008000 ;visible
886 alone 1150
        ld c,e ;y
1151
        ld a,d ;x
1152
        srl a
1153
        add a,sprmaxwid-1
1154
        ld e,a ;x
1155
; 4000,8000 㦥 祭 ࠭ (setpgsscr40008000)
1156
;iy=sprite data+2 = spraddr+4
1157
;e=x = -(sprmaxwid-1)..159 (  x+(sprmaxwid-1))
1158
;c=y = -(sprmaxhgt-1)..199 (  )
1159
;(iy-3)=sprhgt
1160
;(iy-4)=sprwid
1161
       ;push ix
1162
;࠭塞 ६ prspr (..   뢠,  ࢠ prspr)
913 alone 1163
       ld a,(prspr_curscrhgt)
1164
       push af
1165
       ld (prspr_curscrhgtplus1),a
886 alone 1166
       ld hl,(prsprNspraddpatch)
1167
       ld a,(prsprNpatch)
1168
       ld h,a
1169
       push hl
1170
       ld a,(prsprcolumnpatch)
1171
       push af
1172
       ld hl,(prsprmaybeqrightsp)
1173
       push hl
1174
       ld hl,(prsprqsp)
1175
       push hl
913 alone 1176
       ld a,192
1177
       ld (prspr_curscrhgt),a
1178
       inc a
1179
       ld (prspr_curscrhgtplus1),a
886 alone 1180
        call prspr
1181
       pop hl
1182
       ld (prsprqsp),hl
1183
       pop hl
1184
       ld (prsprmaybeqrightsp),hl
1185
       pop af
1186
       ld (prsprcolumnpatch),a
1187
       ld (prsprcolumnpatch2),a
1188
       pop hl
1189
       ld a,l
1190
       ld (prsprNspraddpatch),a
1191
       ld a,h
1192
       ld (prsprNpatch),a
913 alone 1193
       pop af
1194
       ld (prspr_curscrhgt),a
1195
       inc a
1196
       ld (prspr_curscrhgtplus1),a
886 alone 1197
       ;pop ix
1198
        jp setpgsmain40008000
885 alone 1199
ARON_6912
883 alone 1200
       endif
1201
 
881 alone 1202
        LD A,E
1203
        RRA
1204
        SCF
1205
        RRA
1206
        SCF      ;*
1207
        RRA
1208
        AND #DF  ;#5F
1209
        LD H,A
1210
        XOR D
1211
        AND 7
1212
        XOR D
1213
        RRCA
1214
        RRCA
1215
        RRCA
1216
        LD L,A
1217
        LD A,E
1218
        XOR H
1219
        AND 7
1220
        XOR H
1221
        LD H,A
1222
 
1223
;HL=  ࠭
1224
        LD (ARRTO+1),HL ;  ⠭.
1225
                        ;ࠦ  ५窮
1226
        EX DE,HL
1227
 
1228
        LD HL,ARROW ; 
1229
 
1230
        LD B,16
1231
arrow1  PUSH BC
1232
        LD C,(HL)
1233
        INC HL
1234
        LD B,(HL)
1235
        INC HL
1236
        LD A,(HL)
1237
        INC HL
1238
        PUSH HL
1239
        LD H,(HL)
1240
        LD L,A
1241
        PUSH DE
1242
        LD A,(DE)
1243
        LD (IX),A
1244
        LD E,A
1245
        SCF
1246
        SBC A,A
1247
        LD D,0
1248
arrow2  RL C
1249
        RL B
1250
        RLA
1251
        ADD HL,HL
1252
        RL D
1253
        JR C,arrow2
1254
        AND E
1255
        XOR D
1256
        POP DE
1257
        LD (DE),A
1258
        INC E
1259
        LD A,E
1260
        AND 31
1261
        LD A,(DE)
1262
        LD (IX+16),A
1263
        JR Z,arrow3
1264
        AND B
1265
        XOR H
1266
        LD (DE),A
1267
        INC E
1268
        LD A,E
1269
        AND 31
1270
        JR Z,arrow3-1
1271
        LD A,(DE)
1272
        LD (IX+32),A
1273
        AND C
1274
        XOR L
1275
        LD (DE),A
1276
        DEC E
1277
arrow3  DEC E
1278
;
1279
;室  ᥫ ப  ( ⮤)
1280
        INC  D
1281
        LD   A,D
1282
        AND  #07
1283
        JR   NZ,arrow4
1284
        LD   A,E
1285
        SUB  #E0
1286
        LD   E,A
1287
        SBC  A,A
1288
        AND  #F8
1289
        ADD  A,D
1290
        LD   D,A
1291
;
1292
arrow4  POP HL
1293
        POP BC
1294
        LD A,D
1295
        ;CP 88  ;᫨ ࠭ #4000
1296
        CP #D8  ;᫨ ࠭ #C000
1297
        RET NC
1298
        INC IX
1299
        INC HL
1300
        DJNZ arrow1
1301
        RET
1302
 
1303
;⠭ 䮭  ஬
1304
;᭮  Alone Coder
1305
ARROFF
1306
        LD IX,mouse_buf
1307
ARRTO   LD HL,0
1308
 
1309
        LD A,(FLASH+1)
1310
        AND A
1311
        RET NZ
1312
 
883 alone 1313
       if EGA
1314
        ld a,(egaon)
1315
        or a
909 alone 1316
        jr z,arroff_6912
910 alone 1317
arroffega_scraddr=$+1
1318
        ld hl,0
1319
       ld a,h
1320
       or a
1321
       ret z
1322
arroffega_bufaddr=$+1
1323
        LD de,mouse_buf
911 alone 1324
       call setpgsscr40008000;_current ;visible
910 alone 1325
        ld bc,0x1008
1326
;b=hgt,c=wid (/2)
1327
;de=gfx
1328
;hl=scr
1329
        jp primgega_onescreen_setpgsmain40008000
909 alone 1330
arroff_6912
883 alone 1331
       endif
1332
 
881 alone 1333
        LD BC,#101F
1334
arroff1 LD A,(IX)
1335
        LD (HL),A
1336
        INC L
1337
        LD A,L
1338
        AND C
1339
        JR Z,arroff2+1
1340
        LD A,(IX+16)
1341
        LD (HL),A
1342
        INC L
1343
        LD A,L
1344
        AND C
1345
        JR Z,arroff2
1346
        LD A,(IX+32)
1347
        LD (HL),A
1348
arroff2 DEC L
1349
        DEC L
1350
        INC IX
1351
        CALL LINE_HL
1352
        LD A,H
1353
        CP #D8   ;#C000+6144/256
1354
        RET Z
1355
        DJNZ arroff1
1356
        RET
1357
 
1358
;⠭ 䮭  ஬  ⥭ ࠭
1359
;᭮  Alone Coder
1360
ARROFFS LD HL,0
1361
 
1362
        LD A,(FLASH+1)
1363
        AND A
1364
        RET NZ
1365
 
883 alone 1366
       if EGA
1367
        ld a,(egaon)
1368
        or a
1369
        ret nz ;TODO rearrow_shadowscr
1370
       endif
1371
 
881 alone 1372
        LD IX,mouse_buf
1373
        LD BC,SCRWD+(#10*256) ;#101F
1374
        LD DE,31
1375
 
1376
;஢ઠ  室   ࠭ ⥭ ࠭
1377
        LD A,H
1378
ARS     CP SCRHG+(SHADSCR/256)
1379
        RET NC
1380
 
1381
;஢ઠ  室  ࠢ ࠭ ⥭ ࠭
1382
        LD A,L
1383
        AND E
1384
        CP C
1385
        RET NC
1386
 
1387
arrOFF1 LD A,(IX)
1388
        LD (HL),A
1389
        INC HL
1390
 
1391
;஢ઠ  室  ࠢ ࠭ ⥭ ࠭
1392
        LD A,L
1393
        AND E
1394
        CP C
1395
        JR NC,arrOFF2+1
1396
        LD A,(IX+16)
1397
        LD (HL),A
1398
        INC HL
1399
 
1400
;஢ઠ  室  ࠢ ࠭ ⥭ ࠭
1401
        LD A,L
1402
        AND E
1403
        CP C
1404
        JR NC,arrOFF2
1405
        LD A,(IX+32)
1406
        LD (HL),A
1407
arrOFF2 DEC HL
1408
        ADD HL,DE
1409
        INC IX
1410
 
1411
;஢ઠ  室   ࠭ ⥭ ࠭
1412
        LD A,H
1413
ARS2    CP SCRHG+(SHADSCR/256)
1414
        RET NC
1415
        DJNZ arrOFF1
1416
        RET
1417
 
1418
;   ⥭ ࠭
1419
;ଠ ⥭ ࠭ 
1420
ARRONS  LD DE,(mouse_crd); न ५ D-X,E-Y
1421
 
1422
        LD A,(FLASH+1)
1423
        AND A
1424
        RET NZ
1425
 
883 alone 1426
       if EGA
1427
        ld a,(egaon)
1428
        or a
1429
        ret nz ;TODO arrow_shadowscr
1430
       endif
1431
 
881 alone 1432
        LD A,D
1433
        LD D,E
1434
        LD E,A
1435
 
1436
        AND 7
1437
 
1438
        DUP 3
1439
        SRL D
1440
        RR E
1441
        EDUP
1442
 
1443
        LD HL,SHADSCR
1444
        ADD HL,DE
1445
        INC A
1446
        LD B,A
1447
        LD A,-1
1448
        ADD A,A
1449
        DJNZ $-1
1450
 
1451
        LD (arrow22-1),A
1452
        LD (ARROFFS+1),HL ;  ᯮ. .  ५
1453
        ;HL=  ⥭ ࠭
1454
 
1455
;஢ઠ  室  ࠢ ࠭ ⥭ ࠭
1456
        LD A,L
1457
        AND 31
1458
        CP SCRWD
1459
        RET NC
1460
 
1461
;஢ઠ  室   ࠭ ⥭ ࠭
1462
        LD A,H
1463
ARO     CP SCRHG+(SHADSCR/256)
1464
        RET NC
1465
 
1466
        EX DE,HL
1467
 
1468
        LD HL,ARROW ; 
1469
        LD IX,mouse_buf  ; .  ஬ (48 )
1470
        LD B,16
1471
arrow12 PUSH BC
1472
        LD C,(HL)
1473
        INC HL
1474
        LD B,(HL)
1475
        INC HL
1476
        LD A,(HL)
1477
        INC HL
1478
        PUSH HL
1479
        LD H,(HL)
1480
        LD L,A
1481
        PUSH DE
1482
        LD A,(DE)
1483
        LD (IX),A
1484
        LD E,A
1485
        SCF
1486
        SBC A,A
1487
        LD D,0
1488
arrow22 RL C
1489
        RL B
1490
        RLA
1491
        ADD HL,HL
1492
        RL D
1493
        JR C,arrow22
1494
        AND E
1495
        XOR D
1496
        POP DE
1497
        LD (DE),A
1498
 
1499
;஢ઠ  室  ࠢ ࠭ ⥭ ࠭
1500
        INC DE
1501
        LD A,E
1502
        AND 31
1503
        CP SCRWD
1504
        JR NC,arrow32+1
1505
        LD A,(DE)
1506
        LD (IX+16),A
1507
        AND B
1508
        XOR H
1509
        LD (DE),A
1510
 
1511
;஢ઠ  室  ࠢ ࠭ ⥭ ࠭
1512
        INC DE
1513
        LD A,E
1514
        AND 31
1515
        CP SCRWD
1516
        JR NC,arrow32
1517
        LD A,(DE)
1518
 
1519
        LD (IX+32),A
1520
        AND C
1521
        XOR L
1522
        LD (DE),A
1523
arrow32 DEC DE
1524
        DEC DE
1525
        LD HL,32
1526
        ADD HL,DE
1527
        EX DE,HL
1528
arrow42 POP HL
1529
        POP BC
1530
 
1531
;஢ઠ  室   ࠭ ⥭ ࠭
1532
        LD A,D
1533
ARO2    CP SCRHG+(SHADSCR/256)
1534
        RET NC
1535
        INC IX
1536
        INC HL
1537
        DJNZ arrow12
1538
        RET
1539
 
1540
; ᪨  ࠩ 2*2 
1541
;16.05.2004, by A.Xor
1542
;25.11.2004 
1543
MASK
1544
;A- ࠩ
1545
;1  ࠢ, 
886 alone 1546
curarrowtype=$+1
881 alone 1547
        LD B,255
886 alone 1548
        LD (curarrowtype),A
881 alone 1549
        CP B
1550
        RET Z
885 alone 1551
       if EGA
1552
        ld a,(egaon)
1553
        or a
886 alone 1554
        ;jr z,MASK6912
1555
        ret nz
1556
;MASK6912
885 alone 1557
       endif
881 alone 1558
        HALT
1559
        ADD A,A
1560
        ADD A,A
1561
MSK     LD H,0
1562
        LD L,A
1563
        ADD HL,HL   ;HL*32
1564
        ADD HL,HL
1565
        ADD HL,HL
1566
        LD DE,ARROWS
1567
        ADD HL,DE
1568
        LD (MSKMIX+1),HL
1569
        LD (MSKMIX2+1),HL
1570
        LD IX,ARROW
1571
 
1572
         ;ld a,PG_VIEW
1573
         ;call PAGE ;祬  뫮???
1574
 
1575
        LD A,16
1576
MSKLP2  EX AF,AF' ;'
1577
        LD D,(HL)
1578
        INC HL
1579
        LD E,(HL)
1580
        INC HL
1581
        EX DE,HL
1582
        LD B,H
1583
        LD C,L
1584
        ADD HL,HL
1585
        LD A,L
1586
        OR C
1587
        LD L,A
1588
        LD A,H
1589
        OR B
1590
        LD H,A
1591
        LD A,C
1592
        SRL B
1593
        RRA
1594
        OR L
1595
        LD (IX),A
1596
        LD A,H
1597
        OR B
1598
        LD (IX+1),A
1599
        EX DE,HL
1600
        INC IX
1601
        INC IX
1602
        INC IX
1603
        INC IX
1604
        EX AF,AF' ;'
1605
        DEC A
1606
        JR NZ,MSKLP2
1607
 
1608
;2  
1609
        LD DE,ARROW+4
1610
        LD HL,ARROW
1611
        LD B,15
1612
MSKLP3  LD A,(DE)
1613
        OR (HL)
1614
        LD (HL),A
1615
        INC HL
1616
        INC DE
1617
        LD A,(DE)
1618
        OR (HL)
1619
        LD (HL),A
1620
        INC HL,HL,HL
1621
        INC DE,DE,DE
1622
        DJNZ MSKLP3
1623
 
1624
;3  
1625
        LD DE,ARROW+57
1626
        LD HL,ARROW+61
1627
        LD B,15
1628
MSKLP4  LD A,(DE)
1629
        OR (HL)
1630
        LD (HL),A
1631
        DEC HL,DE
1632
        LD A,(DE)
1633
        OR (HL)
1634
        LD (HL),A
1635
        DEC HL,HL,HL
1636
        DEC DE,DE,DE
1637
        DJNZ MSKLP4
1638
 
1639
MSKMOD  LD A,0
1640
        AND A
1641
        JR NZ,MSKMIX2-3
1642
 
1643
;4 㥬 ࠩ  
1644
        LD HL,ARROW
1645
MSKMIX  LD DE,ARROWS
1646
        LD B,16
1647
MSKLP5  LD A,(HL)
1648
        CPL
1649
        LD (HL),A
1650
        INC HL
1651
        LD A,(HL)
1652
        CPL
1653
        LD (HL),A
1654
        INC HL
1655
        INC HL
1656
        LD A,(DE)
1657
        INC DE
1658
        LD (HL),A
1659
        LD A,(DE)
1660
        INC DE
1661
        DEC HL
1662
        LD (HL),A
1663
        INC HL
1664
        INC HL
1665
        DJNZ MSKLP5
1666
        RET
1667
 
1668
;5 㥬 ࠩ  
1669
;  ⨢ 饩   (ࠩ ஢)
1670
        LD DE,ARROW
1671
MSKMIX2 LD HL,ARROWS
1672
        LD B,16
1673
MSKLP6  LD A,(DE)
1674
        LD C,A
1675
        CPL
1676
        LD (DE),A
1677
        INC DE
1678
        LD A,(DE)
1679
        CPL
1680
        LD (DE),A
1681
        INC DE
1682
        INC DE
1683
        CPL
1684
        XOR (HL)
1685
        INC HL
1686
        LD (DE),A
1687
        LD A,C
1688
        XOR (HL)
1689
        INC HL
1690
        DEC DE
1691
        LD (DE),A
1692
        INC DE
1693
        INC DE
1694
        DJNZ MSKLP6
1695
        RET
1696
 
1697
;  -⮪
883 alone 1698
;㦭 ᫥, ⮡  堫  !
881 alone 1699
 
1700
VIDEOS  EQU #C000-12288
1701
 
1702
; 
1703
EXCH
888 alone 1704
        LD A,PG_EXCH;PG_MAP
881 alone 1705
        CALL PAGE
1706
        LD HL,VIDEOS
1707
        LD DE,MAP
1708
        LD BC,12288
1709
        LD A,(DE)
1710
        LDI
1711
        DEC HL
1712
        LD (HL),A
1713
        INC HL
1714
        JP PE,$-6
1715
        RET