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 ›