Kl”nf‚le programjaink menjeinek vagy ak r grafikus k‚perny“ket is tartalmaz˘ kalandj t‚kok elk‚szĄt‚s‚n‚l gyakran szks‚gnk lehet ablakok haszn lat ra. A sz mĄt stechnik ban "ablak"-nak nevezik a k‚perny“ teljesen ”n ll˘an kezelt, a k‚perny“ t”bbi r‚sz‚t“l elkl”nĄtett terleteit. Az al bbi programban az ablakok kezel‚s‚re mutatunk be egy p‚ld t. A program BASIC al˘l haszn lhat˘. Defini lhatunk benne k‚t tetsz“leges utasĄt st, amelyeknek hat s ra az ablak tartalm t elmenthetjk illetve tetsz“leges helyre visszat”lthetjk. A rutin m–k”d‚s‚hez szks‚ges, hogy BASIC-b“l megadjuk az elmentend“ k‚perny“r‚sz param‚tereit, pl. DIM A%(10,10): WSAVE A%(0,0),5,5: WLOAD A%(0,0),0,0 hat s ra a program elmenti a mem˘ri ba a k‚perny“ 5,5 pozĄci˘j t˘l kezd“d“en a DIM param‚terei  ltal meghat rozott (esetnkben 11x11) terlet– ablakot, majd visszat”lti a k‚perny“ bal fels“ sark ba. (Megjegyzend“, hogy a programunkban az ablakokat karakteresen, nem grafikusan kezeljk!) A list t nem kommenteztk be, ink bb nagy vonalakban magyar zzuk el a m–k”d‚s‚t: Az Łj felhaszn l˘i szavak sz m ra szks‚ges vektorok  tĄr sa (030C-030D: felhaszn l˘i sz˘ tokeniz l sa; 030E-030F: felhaszn l˘i sz˘ detokeniz l sa; 0310-0311: felhaszn l˘i token v‚grehajt sa). A 701F-704E terleten helyezkedik el gyakorlatilag a f“program, ami ‚rtelmezi az ablak t”lt‚s‚re illetve ment‚s‚re defini lt Łj szavakat, illetve v‚grehajtja az Łj sz˘hoz tartoz˘ szubrutint. A 704F-705D terleten van karakteresen leĄrva a k‚t Łj felhaszn l˘i sz˘ (mi a WSAVE-et ‚s a WLOAD-ot haszn ltuk, de ez szabadon  tdefini lhat˘). Az utols˘ karakter shiftelve! A 705E-7132 terleten tal lhat˘ az ablak elment‚s‚t, 7133-71DE pedig az ablak visszat”lt‚s‚t v‚gz“ rutin. Ezek magukban foglalj k azt az ellen“rz‚st is, hogy az ablak nem l˘g-e ki a k‚perny“r“l (ellenkez“ esetben a program hibazenettel le ll). A k‚t szubrutinban az al bbi, rendszer  ltal biztosĄtott rutinokat haszn ltuk fel: t”mbelem megkeres‚se (96A5, a 47-48 cĄmeken visszaadja a keresett t”mb aktu lis elem‚nek kezd“cĄm‚t); vessz“ ellen“rz‚se a szintaktik hoz (9491); 1 byte-os ‚rt‚k beolvas sa az X regiszterbe (9D84); hibazenet megjelenĄt‚se (991C). . 7000 a9 1f lda #$1f . 7002 8d 0c 03 sta $030c . 7005 a9 70 lda #$70 . 7007 8d 0d 03 sta $030d . 700a a9 33 lda #$33 . 700c 8d 0e 03 sta $030e . 700f a9 70 lda #$70 . 7011 8d 0f 03 sta $030f . 7014 a9 3f lda #$3f . 7016 8d 10 03 sta $0310 . 7019 a9 70 lda #$70 . 701b 8d 11 03 sta $0311 . 701e 60 rts . 701f 48 pha . 7020 a9 70 lda #$70 . 7022 a0 4f ldy #$4f . 7024 20 07 8a jsr $8a07 . 7027 68 pla . 7028 90 06 bcc $7030 . 702a a5 0b lda $0b . 702c 48 pha . 702d 4c d6 89 jmp $89d6 . 7030 4c 6c 89 jmp $896c . 7033 aa tax . 7034 84 49 sty $49 . 7036 a0 70 ldy #$70 . 7038 84 23 sty $23 . 703a a0 4f ldy #$4f . 703c 4c 9c 8b jmp $8b9c . 703f 38 sec . 7040 e9 80 sbc #$80 . 7042 0a asl . 7043 a8 tay . 7044 b9 5b 70 lda $705b,y . 7047 48 pha . 7048 b9 5a 70 lda $705a,y . 704b 48 pha . 704c 4c 73 04 jmp $0473 . 704f 57 53 41 56 c5 . 7054 57 4c 4f 41 c4 00 . 705a 5D 70 . 705C 32 71 . 705E 20 a5 96 JSR $96A5 . 7061 a5 47 lda $47 . 7063 48 pha . 7064 a5 48 lda $48 . 7066 48 pha . 7067 20 91 94 jsr $9491 . 706a 20 84 9d jsr $9d84 . 706d 86 d1 stx $d1 . 706f 20 91 94 jsr $9491 . 7072 20 84 9d jsr $9d84 . 7075 86 d2 stx $d2 . 7077 68 pla . 7078 85 48 sta $48 . 707a 68 pla . 707b 85 47 sta $47 . 707d 20 9d 70 jsr $709d . 7080 a5 d1 lda $d1 . 7082 18 clc . 7083 65 d3 adc $d3 . 7085 c9 29 cmp #$29 . 7087 b0 11 bcs $709a . 7089 85 d3 sta $d3 . 708b a5 d2 lda $d2 . 708d 18 clc . 708e 65 d4 adc $d4 . 7090 c9 1a cmp #$1a . 7092 b0 06 bcs $709a . 7094 85 d4 sta $d4 . 7096 20 13 71 jsr $7113 . 7099 60 rts . 709a 4c 1c 99 jmp $991c . 709d a0 00 ldy #$00 . 709f b1 47 lda ($47),y . 70a1 f0 03 beq $70a6 . 70a3 4c 9a 70 jmp $709a . 70a6 c6 48 dec $48 . 70a8 a0 ff ldy #$ff . 70aa b1 47 lda ($47),y . 70ac c9 19 cmp #$19 . 70ae b0 ea bcs $709a . 70b0 85 d4 sta $d4 . 70b2 88 dey . 70b3 b1 47 lda ($47),y . 70b5 f0 03 beq $70ba . 70b7 4c 9a 70 jmp $709a . 70ba 88 dey . 70bb b1 47 lda ($47),y . 70bd c9 28 cmp #$28 . 70bf b0 d9 bcs $709a . 70c1 85 d3 sta $d3 . 70c3 e6 48 inc $48 . 70c5 60 rts . 70c6 a6 d1 ldx $d1 . 70c8 a0 01 ldy #$01 . 70ca bd 00 0c lda $0c00,x . 70cd 91 47 sta ($47),y . 70cf bd 00 08 lda $0800,x . 70d2 c8 iny . 70d3 91 47 sta ($47),y . 70d5 e8 inx . 70d6 c8 iny . 70d7 e4 d3 cpx $d3 . 70d9 d0 ef bne $70ca . 70db 60 rts . 70dc a9 0c lda #$0c . 70de a2 00 ldx #$00 . 70e0 a0 08 ldy #$08 . 70e2 8d cc 70 sta $70cc . 70e5 8e cb 70 stx $70cb . 70e8 8e d0 70 stx $70d0 . 70eb 8c d1 70 sty $70d1 . 70ee 60 rts . 70ef ca dex . 70f0 f0 11 beq $7103 . 70f2 18 clc . 70f3 ad cb 70 lda $70cb . 70f6 69 28 adc #$28 . 70f8 90 03 bcc $70fd . 70fa ee cc 70 inc $70cc . 70fd 8d cb 70 sta $70cb . 7100 4c ef 70 jmp $70ef . 7103 ad cc 70 lda $70cc . 7106 38 sec . 7107 e9 04 sbc #$04 . 7109 8d d1 70 sta $70d1 . 710c ad cb 70 lda $70cb . 710f 8d d0 70 sta $70d0 . 7112 60 rts . 7113 a6 d2 ldx $d2 . 7115 8a txa . 7116 48 pha . 7117 20 ef 70 jsr $70ef . 711a 20 c6 70 jsr $70c6 . 711d 88 dey . 711e 98 tya . 711f 18 clc . 7120 65 47 adc $47 . 7122 90 02 bcc $7126 . 7124 e6 48 inc $48 . 7126 85 47 sta $47 . 7128 20 dc 70 jsr $70dc . 712b 68 pla . 712c aa tax . 712d e8 inx . 712e e4 d4 cpx $d4 . 7130 d0 e3 bne $7115 . 7132 60 rts . 7133 20 a5 96 jsr $96a5 . 7136 a5 47 lda $47 . 7138 48 pha . 7139 a5 48 lda $48 . 713b 48 pha . 713c 20 91 94 jsr $9491 . 713f 20 84 9d jsr $9d84 . 7142 86 d1 stx $d1 . 7144 20 91 94 jsr $9491 . 7147 20 84 9d jsr $9d84 . 714a 86 d2 stx $d2 . 714c 68 pla . 714d 85 48 sta $48 . 714f 68 pla . 7150 85 47 sta $47 . 7152 20 9d 70 jsr $709d . 7155 a5 d1 lda $d1 . 7157 18 clc . 7158 65 d3 adc $d3 . 715a c9 29 cmp #$29 . 715c b0 11 bcs $716f . 715e 85 d3 sta $d3 . 7160 a5 d2 lda $d2 . 7162 18 clc . 7163 65 d4 adc $d4 . 7165 c9 1a cmp #$1a . 7167 b0 06 bcs $716f . 7169 85 d4 sta $d4 . 716b 20 bf 71 jsr $71bf . 716e 60 rts . 716f 4c 1c 99 jmp $991c . 7172 a6 d1 ldx $d1 . 7174 a0 01 ldy #$01 . 7176 b1 47 lda ($47),y . 7178 9d 00 0c sta $0c00,x . 717b c8 iny . 717c b1 47 lda ($47),y . 717e 9d 00 08 sta $0800,x . 7181 e8 inx . 7182 c8 iny . 7183 e4 d3 cpx $d3 . 7185 d0 ef bne $7176 . 7187 60 rts . 7188 a9 0c lda #$0c . 718a a2 00 ldx #$00 . 718c a0 08 ldy #$08 . 718e 8d 7a 71 sta $717a . 7191 8e 79 71 stx $7179 . 7194 8e 7f 71 stx $717f . 7197 8c 80 71 sty $7180 . 719a 60 rts . 719b ca dex . 719c f0 11 beq $71af . 719e 18 clc . 719f ad 79 71 lda $7179 . 71a2 69 28 adc #$28 . 71a4 90 03 bcc $71a9 . 71a6 ee 7a 71 inc $717a . 71a9 8d 79 71 sta $7179 . 71ac 4c 9b 71 jmp $719b . 71af ad 7a 71 lda $717a . 71b2 38 sec . 71b3 e9 04 sbc #$04 . 71b5 8d 80 71 sta $7180 . 71b8 ad 79 71 lda $7179 . 71bb 8d 7f 71 sta $717f . 71be 60 rts . 71bf a6 d2 ldx $d2 . 71c1 8a txa . 71c2 48 pha . 71c3 20 9b 71 jsr $719b . 71c6 20 72 71 jsr $7172 . 71c9 88 dey . 71ca 98 tya . 71cb 18 clc . 71cc 65 47 adc $47 . 71ce 90 02 bcc $71d2 . 71d0 e6 48 inc $48 . 71d2 85 47 sta $47 . 71d4 20 88 71 jsr $7188 . 71d7 68 pla . 71d8 aa tax . 71d9 e8 inx . 71da e4 d4 cpx $d4 . 71dc d0 e3 bne $71c1 . 71de 60 rts