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