
PROGRAM LISTING: 84-11/WINDOWS2.ASM
0100 ; WINDOWS
0110 ; BY DAVE CULBERTSON
0120 ; ANTIC MAGAZINE
0130 ; ═еяуатес═
0140 SCRN = $CB ;Beg Adr of window
0150 ASTR = $CD ;Adr of data string
0160 OFFS = $0600 ;Offset into screen
0170 ; (upper left corner of box)
0180 ; ═елемент═сегмент═спец╖с═
0190 ELEM = $CF ;# of elements
0200 ELEW = $D1 ;Element width
0210 ELEO = $0602 ;Element offset
0220 ; (Upper left corner of element)
0230 ;
0240 *= $0600 ; RELOCATABLE
0250 PLA ;Get # OF Prams off stack
0260 ; ═гет═аддресс═оф═дата═стринг═
0270 PLA
0280 STA ASTR+1
0290 PLA
0300 STA ASTR
0310 ; ═гет═оффсет═фром═бег═оф═сцреен═
0320 PLA
0330 STA OFFS+1
0340 PLA
0350 STA OFFS
0360 ; ═гет═ё═оф═елементс═фор═виндов═
0370 PLA
0380 STA ELEM+1
0390 PLA
0400 STA ELEM
0410 ; ═гет═елемент═видтх═
0420 PLA
0430 PLA
0440 STA ELEW
0450 ; ═гет═елемент═оффсет═
0460 PLA
0470 STA ELEO+1
0480 PLA
0490 STA ELEO
0500 ; ═инитиал═сет╜уп═
0510 LDA $58 ;Adr OF S.M. (Lo)
0520 STA SCRN
0530 LDA $59 ;Adr of S.M. (Hi)
0540 STA SCRN+1
0550 ; ═адд═оффсет═то═сцрн═жалуе═
0560 ;Initially this routine sets-up
0570 ;the upper left corner of the
0580 ;window.
0590 B0 CLC
0600 LDA SCRN
0610 ADC OFFS
0620 STA SCRN
0630 LDA SCRN+1
0640 ADC OFFS+1
0650 STA SCRN+1
0660 ; ═свап═сцреен═╕═стринг═
0670 C1 LDY #0 ;Width Counter
0680 C2 LDA (SCRN),Y
0690 TAX
0700 LDA (ASTR),Y
0710 STA (SCRN),Y
0720 TXA
0730 STA (ASTR),Y
0740 INY
0750 CPY ELEW
0760 BNE C2
0770 ; ═цхецк═фор═анотхер═елемент═
0780 LDA #0 ;Check Lo Byte.
0790 DEC ELEM ;Sub 1.
0800 CMP ELEM ;Is it zero?
0810 BNE C3 ;No then C3.
0820 CMP ELEM+1 ;Is Hi byte zero?
0830 BEQ EX ;Yes - exit.
0840 DEC ELEM+1 ;No then sub 1.
0850 ;═индеь═стринг═фор═неьт═елемент═
0860 C3 CLC
0870 TYA ;Add index to
0880 ADC ASTR ;string pointer.
0890 STA ASTR
0900 BCC D0
0910 INC ASTR+1
0920 ;═упдате═сцреен═поинтер═
0930 CLC
0940 D0 LDA SCRN ; Then Add
0950 ADC ELEO
0960 STA SCRN ; ELEO to SCRN
0970 LDA SCRN+1
0980 ADC ELEO+1
0990 STA SCRN+1
1000 CLC ;Go do next Element.
1010 BCC C1
1020 ;═алл═доне═ретурн═то═басиц═
1030 EX RTS
Back to previous page