Home » CEEFAX disks » telesoftware14.adl » 01-04-89/T\TTX04
01-04-89/T\TTX04
This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.
Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.
Tape/disk: | Home » CEEFAX disks » telesoftware14.adl |
Filename: | 01-04-89/T\TTX04 |
Read OK: | ✔ |
File size: | 5F89 bytes |
Load address: | 0000 |
Exec address: | FFFFFFFF |
File contents
Interfacing with the Acorn Teletext Adaptor - by - Gordon Horsington ---------------------------------------------------------------------- Module 4. Searching for keywords -------------------------------- The frame grabber used to illustrate Module 3 can be modified to search for keywords in the Teletext data. There are surprisingly few modifications needed to produce a simple keyword search for the serial magazines broadcast on BBC 1, BBC 2 and Channel 4. Neither CEEFAX nor ORACLE broadcast a keyword directory which can be used to identify the pages associated with with a particular word and so the best that can be done is to search for ASCII strings in the Teletext data downloaded from the adaptor. Essentially all that a keyword search needs to do is to load every page, search every packet associated with the current page, and print every page which contains the required ASCII string. The demonstration program KEYWORD uses this serial magazine keyword search technique but it also works with the parallel magazines broadcast on the ITV network, although it does not search parallel magazines very effectively. The reason why this simple idea does not work very well with parallel magazines is because it only loads and searches one page at a time. The ITV network currently broadcast up to four magazines in parallel and so up to three magazines will be ignored when a page is being loaded. The four magazines currently used by the ITV network are numbered 1, 2, 7 and 8. The program KEYWORD ignores magazine 8, which only contains subtitles, and can be made to ignore the ITV magazine 7, which only contains encrypted Air Call pages, but even then magazines 1 and 2 are still broadcast in parallel and so at least two pages need to be searched at the same time if the program is to work efficiently. Ideally the program should be capable of loading and searching up to 8 pages at the same time to cope with the worst possible case when all the available magazines are used in parallel. Modifying the program to cope with 8 buffers is not as difficult as it sounds and this has been left for you to do as an exercise. I have used a maximum keyword length of 8 characters in the demonstration program. I did this because very long text strings could take too long to find and the program could crash. Eight characters seems to be sufficient to identify most ASCII strings. I have stored the keyword in zero page to make the program run as fast as possible. Every byte of the keyword has bit 7 set (line 160) because bit seven of the every data byte is set ready for display after downloading (line 2260). The required word might be in lower case, upper case, or perhaps have just a capital first letter. To ensure the word is recognised whichever form it takes, each byte is converted to a capital before comparison (line 3620). The required keyword should, therefore, be entered in upper case. In the previous module, the program GRABBER loaded only the header packets into the computer's memory until the header of the required page was found. It then loaded packets 1 to 23 and displayed the page when the terminating header was found. As long as the page buffer was clear when the program started, and was cleared after printing the page, GRABBER could simply print out the entire contents of the buffer because it only ever loaded packets 1 to 23 of the required page. The keyword search program associated with this module does not have enough time to clear the buffer after searching every page and so it flags every packet as unused at the beginning of every page search and flags every packet it downloads as used when it is received. This is done using the array markers (line 50). The number &80 is used to mark a packet as unused and the packet number is stored to mark the packet as used. The flag byte grabflag is used again in the program KEYWORD. In this program it can have one of 4 values. &00 means that it is searching for any start-of-page header, ie. not a subtitle and not page xFF. &40 means that it has found a start-of-page header and it is loading that page into the buffer but it has yet not identified the keyword. &80 means that it is still loading the page into the buffer but the keyword has been found. &C0 means that the keyword has been found and an end-of-page header has been identified so that the required page has been loaded into the buffer. When grabflag stores &C0 the page can be printed and the search will continue for another page with the same keyword. The program will continue to search for the same keyword until the Escape key is pressed. If you modify the program to search parallel magazines more effectively you will need the equivalent of one grabflag for each buffer. When a page has been displayed on the screen the page number is taken from the ASCII text in the page header and displayed in the top left hand corner of the frame. This is a short cut method of displaying the page number and if you want to modify the program to include the sub-page number you will have to extract this number from the header data using the information provided in module 2. If you decide to take up the challenge of designing a frame grabber you might like to include some or all of the following features: 1) Page selection by page number and sub-page number. 2) Page selection by keyword. 3) Correct display of subtitles. 4) Detect and display newsflashes. 5) Use the alarm clock on BBC1 page 196. 6) Hold and release page. 7) Switch between reveal and conceal hidden characters. 8) Page dump to printer. 9) Save page in user memory, second processor or on disc, and re-load page when required. If you can create a program with these and any other useful features that improve on the facilities offered by the ATS frame grabber or the Edinburgh Software Products Keyword Frame Grabber (broadcast by BBC Telesoftware) then you might like to consider sending a copy of your program to BBC Telesoftware so that the best program can be transmitted. 10 REM> KEYWORD 20 MODE7 30 DIM mcode &1000 :REM: space for machine code 40 DIM buffer &400 :REM: page grabber buffer 50 DIM markers &20 :REM: packet markers 60 $buffer=STRING$(40," ") :REM: clear the header 70 PROCmcode :REM: assemble machine code 80 INPUT"TV channel (1-4) = "answer$ 90 channel?0=EVAL("&"+LEFT$(answer$,1))+&1B 100 IF channel?0 < &1C THEN channel?0 = &1C 110 IF channel?0 > &1F THEN channel?0 = &1F 120 INPUT"Search keyword (UPPER CASE) = "answer$ 130 answer$=LEFT$(answer$,8) 140 len=LEN(answer$)-1 150 FOR pass=0 TO len 160 searchtext?pass = (ASC(MID$(answer$,pass+1,1)) OR &80) 170 NEXT 180 searchtext?(len+1)=0 190 wordlength?0=len 200 VDU12,23,1,0;0;0;0; 210 CALL mcode 220 VDU30,23,1,1;0;0;0; 230 END 240 DEFPROCmcode 250 packet=&70 :REM: row number of current packet 260 magazine=&71 :REM: magazine number of current page 270 grabflag=&72 :REM: 0=searching, &40=loading, &80=found, &C0=loaded & found 280 usermag=&73 :REM: last magazine number 290 userpage=&74 :REM: last page number, low byte + high byte 300 channel=&76 :REM: TV channel 310 workspace=&77 :REM: 2 byte workspace 320 destination=&79 :REM: another 2 byte workspace 330 wordlength=&7B :REM: length of keyword 340 tempy=&7C :REM: temporary store for Y register 350 searchfor=&7D :REM: temporary store for character in search string 360 searchtext=&80 :REM: store for keyword 370 irq2v=&206 :REM: irq2 vector 380 ttxcontrol=&FC10 :REM: TTX control register, write only 390 ttxstatus=&FC10 :REM: TTX status register, read only 400 rowreg=&FC11 :REM: TTX row register, write only 410 datareg=&FC12 :REM: TTX data register, read & write 420 statclr=&FC13 :REM: TTX clear status register, read & write 430 oswrch=&FFEE 440 osbyte=&FFF4 450 FOR pass=0 TO 2 STEP 2 460 P%=mcode 470 [ OPT pass 480 JSR clearmark \ set up for searching 490 LDX irq2v \ load secondary interrupt vector 500 LDY irq2v+1 510 STX oldirq2v \ save secondary interrupt vector 520 STY oldirq2v+1 530 LDX #interrupt MOD 256 \ install new interrupt routine 540 LDY #interrupt DIV 256 550 SEI \ disable interrupts when altering vectors 560 STX irq2v 570 STY irq2v+1 580 CLI \ re-enable interrupts 590 LDA channel \ load (channel number + #&1C) 600 STA ttxcontrol \ enable TTX 610 .mainloop 620 LDA grabflag \ test to see if page grabbed 630 CMP #&C0 \ &C0 = page grabbed and ready to print 640 BNE continue \ branch if not ready 650 JSR checkdouble \ look for double height lines 660 JSR transfer \ transfer data to screen 670 JSR clearmark \ start searching again 680 .continue 690 LDX #&00 \ screen row 700 LDY #&08 \ screen column 710 JSR vdu31 \ VDU 31,8,0 720 .headloop 730 LDA buffer,Y 740 JSR oswrch \ write header on screen 750 INY 760 CPY #&28 \ decimal 40 770 BCC headloop 780 BIT &FF \ poll escape flag 790 BPL mainloop \ loop if escape not pressed 800 LDA #&7E \ decimal 126 810 JSR osbyte \ acknowledge escape 820 LDA #&00 830 STA ttxcontrol \ disable TTX 840 LDX oldirq2v \ load original vector 850 LDY oldirq2v+1 860 SEI \ disable interrupts when altering vectors 870 STX irq2v \ restore original vector 880 STY irq2v+1 890 CLI \ re-enable interrupts 900 RTS \ return to BASIC 910 .interrupt 920 BIT ttxstatus \ poll TTX hardware 930 BMI ttxinter \ branch if TTX interrupt 940 JMP (oldirq2v) \ not TTX interrupt 950 .ttxinter 960 LDA &FC \ interrupt accumulator save register 970 PHA \ push interrupt accumulator save register 980 TXA 990 PHA \ push X 1000 TYA 1010 PHA \ push Y 1020 LDA grabflag \ is a page waiting to be displayed? 1030 CMP #&C0 \ &C0 = page grabbed 1040 BEQ clearstatus \ clear status and RTI if page grabbed 1050 CLD \ clear decimal flag 1060 .startrow 1070 LDY #&00 \ start with row 0 1080 .readttxt 1090 STY rowreg \ try rows 0 to 15 1100 LDA datareg \ load framing code (#&27) 1110 BEQ emptyrow \ if zero try next row 1120 TYA 1130 PHA \ save row number 1140 JSR readpacket 1150 PLA 1160 TAY \ restore row number 1170 .emptyrow 1180 INY \ increment row number 1190 CPY #&10 \ try rows 0 - 15 1200 BNE readttxt 1210 .clearstatus 1220 LDA #&00 1230 LDY #&0F \ clear 16 rows in adaptor 1240 .clearloop 1250 STY rowreg 1260 STA datareg 1270 DEY 1280 BPL clearloop 1290 STA statclr \ clear status flags before returning 1300 PLA 1310 TAY \ restore Y 1320 PLA 1330 TAX \ restore X 1340 PLA 1350 STA &FC \ restore interrupt accumulator save register 1360 RTI \ return from interrupt 1370 .readpacket 1380 LDY datareg \ read magazine number 1390 LDA hamtable,Y \ de-ham it 1400 BMI cleargrab \ stop loading if error 1410 STA magazine \ save magazine number 1420 LDY datareg \ read packet number 1430 LDA hamtable,Y \ de-ham it 1440 BMI cleargrab \ stop loading if error 1450 STA packet \ save packet number 1460 LDA magazine \ load magazine number 1470 CMP #&08 \ bit 3 of mag. number is bit 0 of packet \ number 1480 ROL packet \ 5 bit packet number 1490 AND #&07 \ use only bits 0-2 1500 STA magazine \ 3 bit magazine number 1510 LDA packet 1520 CMP #&18 \ ignore TSDP, Datacast, etc. 1530 BCS exit \ ie. use Level 1 Teletext only 1540 PHA \ push packet number 1550 ASL A \ packet number * 2 1560 TAY 1570 LDA bufftable,Y \ load buffer address, lsb 1580 STA workspace \ store in zero page 1590 LDA bufftable+1,Y \ load buffer address, msb 1600 STA workspace+1 \ store in zero page 1610 PLA \ pull packet number 1620 CMP #&00 \ is it a header? 1630 BNE notheader 1640 TAX \ init index for hammed data 1650 .readheader 1660 LDY datareg \ read data register 1670 LDA hamtable,Y \ de-ham it 1680 BMI cleargrab \ stop loading if error 1690 STA buffer,X \ store de-hammed data 1700 INX \ increment index 1710 CPX #&08 \ use X = 0-7 1720 BCC readheader \ continue reading hammed data 1730 LDA grabflag \ are we loading or searching? 1740 BEQ checkstart \ branch if searching 1750 LDA magazine \ we must be loading a page 1760 CMP usermag \ is it the magazine we want? 1770 BNE exit \ branch if not the one we want 1780 LDA buffer \ low byte of page number 1790 CMP userpage \ is this the same as the one we are loading? 1800 BNE endfound \ end of page when different 1810 LDA buffer+1 1820 CMP userpage+1 \ is this the same as the one we are loading? 1830 BEQ exit \ not end of page if the same 1840 .endfound 1850 LDA grabflag \ grabflag = either #&40 or #&80 1860 ORA #&40 \ grabflag = #&C0 if keyword found 1870 STA grabflag \ update grabflag 1880 BMI exit \ branch if grabflag = #&C0 1890 .cleargrab 1900 JSR clearmark \ start searching again 1910 .exit 1920 RTS 1930 .checkstart 1940 LDA buffer+5 \ check for subtitle 1950 AND #&08 \ check bit 3 1960 BNE display \ don't load subtitle 1970 LDA buffer \ low nybble of current page 1980 CMP userpage \ are we loading it? 1990 BNE loadit \ if not then load it 2000 LDA buffer+1 \ high nybble of current page 2010 CMP userpage+1 \ are we loading it? 2020 BEQ display \ if loading display header, if not load page 2030 .loadit 2040 LDA #&40 \ page loading flag 2050 STA grabflag \ load this page 2060 LDA magazine \ current magazine number 2070 STA usermag \ load this magazine 2080 LDA buffer \ current page, low nybble 2090 STA userpage \ load this page 2100 LDA buffer+1 \ current page, high nybble 2110 STA userpage+1 \ load this page 2120 .display 2130 \ LSR buffer+6 \ check for suppress header 2140 \ BCS exit \ don't bother with suppressed headers 2150 LDY #&08 \ header data starts at byte 8 2160 BNE readmore \ go to read the header 2170 .notheader 2180 LDA grabflag \ is a page loading? 2190 BEQ return \ return if page not loading 2200 LDA magazine \ is the magazine number the one we want? 2210 CMP usermag \ compare with the one we are loading 2220 BNE return \ return if different magazine 2230 LDY #&00 \ read bytes 0 - 39 2240 .readmore 2250 LDA datareg \ read data register 2260 ORA #&80 \ set bit 7 for display 2270 STA (workspace),Y \ store in buffer 2280 INY \ increment index 2290 CPY #&28 \ decimal 40 2300 BNE readmore \ more data in this packet 2310 LDA packet \ load current packet number 2320 BEQ return \ return if header 2330 TAX \ A is greater than 0 and less than 24 2340 STA markers,X \ mark this as a valid packet 2350 BIT grabflag \ have we found the keyword yet? 2360 BMI return \ return if word found 2370 JSR wordsearch 2380 .return 2390 RTS 2400 .checkdouble 2410 LDX #&01 \ screen row numbers 1-23 2420 .nextcolumn 2430 LDA markers,X 2440 BMI carryset 2450 LDY #&00 \ screen column numbers 0-40 2460 JSR setup \ set up workspace for indirect addressing 2470 .singleloop 2480 LDA (workspace),Y 2490 JSR conceal \ check for concealed display 2500 CMP #&8D \ TTX double height character 2510 BEQ doubleheight 2520 INY 2530 CPY #&28 \ decimal 40 2540 BCC singleloop 2550 .carryset 2560 INX 2570 CPX #&17 \ decimal 23 2580 BCC nextcolumn 2590 RTS 2600 .doubleheight 2610 LDY #&00 2620 TXA 2630 PHA \ store row number 2640 INX 2650 TXA 2660 STA markers,X 2670 ASL A \ (row number + 1) * 2 2680 TAX 2690 LDA bufftable,X 2700 STA destination 2710 INX 2720 LDA bufftable,X 2730 STA destination+1 2740 PLA 2750 TAX \ restore row number 2760 .doubleloop 2770 LDA (workspace),Y 2780 JSR conceal \ check for concealed display 2790 STA (destination),Y 2800 INY 2810 CPY #&28 \ decimal 40 2820 BCC doubleloop 2830 INX 2840 CPX #&17 \ decimal 23 2850 BCC carryset 2860 RTS 2870 .conceal 2880 CMP #&98 \ TTX conceal display character 2890 BNE goback 2900 LDA #ASC(" ") \ substitute with a space 2910 STA (workspace),Y 2920 .goback 2930 RTS 2940 .setup 2950 TXA 2960 PHA \ store row number 2970 ASL A \ (row number) * 2 2980 TAX 2990 LDA bufftable,X 3000 STA workspace 3010 INX 3020 LDA bufftable,X 3030 STA workspace+1 3040 PLA 3050 TAX \ restore row number 3060 RTS 3070 .transfer 3080 LDA #&00 3090 TAX 3100 LDY #&02 3110 JSR vdu31 \ VDU 31,2,0 3120 LDA #ASC("P") 3130 JSR oswrch \ start printing page number 3140 LDX #&0F \ decimal 15 3150 .numberloop 3160 LDA buffer,X \ cheat by getting page number from header 3170 JSR oswrch 3180 INX 3190 CPX #&12 3200 BCC numberloop \ print 3 page bytes from header 3210 LDX #&01 \ screen rows 1-23 3220 .nextline 3230 LDY #&00 \ columns 0-39 3240 JSR vdu31 \ VDU 31,0,1-23 3250 LDA markers,X \ look for valid packet 3260 BPL markfound \ display valid packets only 3270 LDA #blanks MOD 256 \ else display 40 spaces 3280 STA workspace 3290 LDA #blanks DIV 256 3300 STA workspace+1 3310 JMP writescreen 3320 .markfound 3330 JSR setup \ set up workspace for indirect addressing 3340 .writescreen 3350 LDA (workspace),Y \ load data from buffer 3360 JSR oswrch \ write to screen 3370 INY 3380 CPY #&28 \ decimal 40 3390 BCC writescreen 3400 INX 3410 CPX #&18 \ decimal 24 3420 BCC nextline \ last packet number = 23 3430 RTS 3440 .vdu31 3450 LDA #&1F \ decimal 31 3460 JSR oswrch 3470 TYA 3480 JSR oswrch 3490 TXA 3500 JMP oswrch \ and return 3510 .wordsearch 3520 LDX #&00 \ index for search string 3530 LDY #&00 \ index for packet 3540 STY tempy \ temporary store for Y 3550 .wordloop 3560 LDA searchtext,X 3570 BEQ found 3580 PHA \ save character from keyword 3590 LDA (workspace),Y 3600 CMP #&E1 \ lower case 'a' 3610 BCC uppercase \ branch if upper case 3620 AND #&DF \ force lower to upper case 3630 .uppercase 3640 STA searchfor \ store character from TTX 3650 PLA \ restore character from keyword 3660 CMP searchfor 3670 BNE notfound \ branch if keyword does not match 3680 INX \ if matched look at next character 3690 INY 3700 CPY #&29 \ decimal 41 3710 BCC wordloop 3720 .notfound 3730 LDX #&00 \ reset index on keyword 3740 INC tempy \ increment index on TTX 3750 LDY tempy 3760 CPY #&29 \ decimal 41 3770 BCC wordloop \ branch if more data to test 3780 RTS 3790 .found 3800 LDA #&80 \ flag keyword found 3810 STA grabflag \ keyword found 3820 RTS 3830 .clearmark 3840 LDA #&80 3850 LDX #&17 \ decimal 23 3860 .loopmark 3870 STA markers,X 3880 DEX 3890 BNE loopmark 3900 STX grabflag \ grabflag = searching 3910 LDA #&0F \ end of page marker 3920 STA userpage 3930 STA userpage+1 3940 RTS 3950 .oldirq2v 3960 EQUW &00 3970 .hamtable 3980 EQUD &0101FF01 3990 EQUD &FF0100FF 4000 EQUD &FF0102FF 4010 EQUD &07FFFF0A 4020 EQUD &FF0100FF 4030 EQUD &00FF0000 4040 EQUD &0BFFFF06 4050 EQUD &FF0300FF 4060 EQUD &FF010CFF 4070 EQUD &07FFFF04 4080 EQUD &07FFFF06 4090 EQUD &070707FF 4100 EQUD &05FFFF06 4110 EQUD &FF0D00FF 4120 EQUD &FF060606 4130 EQUD &07FFFF06 4140 EQUD &FF0102FF 4150 EQUD &09FFFF04 4160 EQUD &02FF0202 4170 EQUD &FF0302FF 4180 EQUD &05FFFF08 4190 EQUD &FF0300FF 4200 EQUD &FF0302FF 4210 EQUD &0303FF03 4220 EQUD &05FFFF04 4230 EQUD &FF040404 4240 EQUD &FF0F02FF 4250 EQUD &07FFFF04 4260 EQUD &050505FF 4270 EQUD &05FFFF04 4280 EQUD &05FFFF06 4290 EQUD &FF030EFF 4300 EQUD &FF010CFF 4310 EQUD &09FFFF0A 4320 EQUD &0BFFFF0A 4330 EQUD &FF0A0A0A 4340 EQUD &0BFFFF08 4350 EQUD &FF0D00FF 4360 EQUD &0B0B0BFF 4370 EQUD &0BFFFF0A 4380 EQUD &0CFF0C0C 4390 EQUD &FF0D0CFF 4400 EQUD &FF0F0CFF 4410 EQUD &07FFFF0A 4420 EQUD &FF0D0CFF 4430 EQUD &0D0DFF0D 4440 EQUD &0BFFFF06 4450 EQUD &FF0D0EFF 4460 EQUD &09FFFF08 4470 EQUD &090909FF 4480 EQUD &FF0F02FF 4490 EQUD &09FFFF0A 4500 EQUD &FF080808 4510 EQUD &09FFFF08 4520 EQUD &0BFFFF08 4530 EQUD &FF030EFF 4540 EQUD &FF0F0CFF 4550 EQUD &09FFFF04 4560 EQUD &0F0FFF0F 4570 EQUD &FF0F0EFF 4580 EQUD &05FFFF08 4590 EQUD &FF0D0EFF 4600 EQUD &FF0F0EFF 4610 EQUD &0EFF0E0E 4620 .bufftable 4630 EQUW buffer 4640 EQUW buffer+40 4650 EQUW buffer+(2*40) 4660 EQUW buffer+(3*40) 4670 EQUW buffer+(4*40) 4680 EQUW buffer+(5*40) 4690 EQUW buffer+(6*40) 4700 EQUW buffer+(7*40) 4710 EQUW buffer+(8*40) 4720 EQUW buffer+(9*40) 4730 EQUW buffer+(10*40) 4740 EQUW buffer+(11*40) 4750 EQUW buffer+(12*40) 4760 EQUW buffer+(13*40) 4770 EQUW buffer+(14*40) 4780 EQUW buffer+(15*40) 4790 EQUW buffer+(16*40) 4800 EQUW buffer+(17*40) 4810 EQUW buffer+(18*40) 4820 EQUW buffer+(19*40) 4830 EQUW buffer+(20*40) 4840 EQUW buffer+(21*40) 4850 EQUW buffer+(22*40) 4860 EQUW buffer+(23*40) 4870 EQUW buffer+(24*40) 4880 .blanks 4890 EQUS STRING$(40," ") 4900 ] 4910 NEXT 4920 ENDPROC
00000000 49 6e 74 65 72 66 61 63 69 6e 67 20 77 69 74 68 |Interfacing with| 00000010 20 74 68 65 20 41 63 6f 72 6e 20 54 65 6c 65 74 | the Acorn Telet| 00000020 65 78 74 20 41 64 61 70 74 6f 72 20 20 2d 20 62 |ext Adaptor - b| 00000030 79 20 2d 20 20 47 6f 72 64 6f 6e 20 48 6f 72 73 |y - Gordon Hors| 00000040 69 6e 67 74 6f 6e 0d 2d 2d 2d 2d 2d 2d 2d 2d 2d |ington.---------| 00000050 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |----------------| * 00000080 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0d 4d |-------------..M| 00000090 6f 64 75 6c 65 20 34 2e 20 53 65 61 72 63 68 69 |odule 4. Searchi| 000000a0 6e 67 20 66 6f 72 20 6b 65 79 77 6f 72 64 73 0d |ng for keywords.| 000000b0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |----------------| * 000000d0 0d 0d 54 68 65 20 66 72 61 6d 65 20 67 72 61 62 |..The frame grab| 000000e0 62 65 72 20 75 73 65 64 20 74 6f 20 69 6c 6c 75 |ber used to illu| 000000f0 73 74 72 61 74 65 20 4d 6f 64 75 6c 65 20 33 20 |strate Module 3 | 00000100 63 61 6e 20 62 65 20 6d 6f 64 69 66 69 65 64 20 |can be modified | 00000110 74 6f 20 73 65 61 72 63 68 0d 66 6f 72 20 6b 65 |to search.for ke| 00000120 79 77 6f 72 64 73 20 69 6e 20 74 68 65 20 54 65 |ywords in the Te| 00000130 6c 65 74 65 78 74 20 64 61 74 61 2e 20 54 68 65 |letext data. The| 00000140 72 65 20 61 72 65 20 73 75 72 70 72 69 73 69 6e |re are surprisin| 00000150 67 6c 79 20 66 65 77 0d 6d 6f 64 69 66 69 63 61 |gly few.modifica| 00000160 74 69 6f 6e 73 20 6e 65 65 64 65 64 20 74 6f 20 |tions needed to | 00000170 70 72 6f 64 75 63 65 20 61 20 73 69 6d 70 6c 65 |produce a simple| 00000180 20 6b 65 79 77 6f 72 64 20 73 65 61 72 63 68 20 | keyword search | 00000190 66 6f 72 20 74 68 65 20 73 65 72 69 61 6c 0d 6d |for the serial.m| 000001a0 61 67 61 7a 69 6e 65 73 20 62 72 6f 61 64 63 61 |agazines broadca| 000001b0 73 74 20 6f 6e 20 42 42 43 20 31 2c 20 42 42 43 |st on BBC 1, BBC| 000001c0 20 32 20 61 6e 64 20 43 68 61 6e 6e 65 6c 20 34 | 2 and Channel 4| 000001d0 2e 0d 0d 4e 65 69 74 68 65 72 20 43 45 45 46 41 |...Neither CEEFA| 000001e0 58 20 6e 6f 72 20 4f 52 41 43 4c 45 20 62 72 6f |X nor ORACLE bro| 000001f0 61 64 63 61 73 74 20 61 20 6b 65 79 77 6f 72 64 |adcast a keyword| 00000200 20 64 69 72 65 63 74 6f 72 79 20 77 68 69 63 68 | directory which| 00000210 20 63 61 6e 20 62 65 20 75 73 65 64 0d 74 6f 20 | can be used.to | 00000220 69 64 65 6e 74 69 66 79 20 74 68 65 20 70 61 67 |identify the pag| 00000230 65 73 20 61 73 73 6f 63 69 61 74 65 64 20 77 69 |es associated wi| 00000240 74 68 20 77 69 74 68 20 61 20 70 61 72 74 69 63 |th with a partic| 00000250 75 6c 61 72 20 77 6f 72 64 20 61 6e 64 20 73 6f |ular word and so| 00000260 20 74 68 65 0d 62 65 73 74 20 74 68 61 74 20 63 | the.best that c| 00000270 61 6e 20 62 65 20 64 6f 6e 65 20 69 73 20 74 6f |an be done is to| 00000280 20 73 65 61 72 63 68 20 66 6f 72 20 41 53 43 49 | search for ASCI| 00000290 49 20 73 74 72 69 6e 67 73 20 69 6e 20 74 68 65 |I strings in the| 000002a0 20 54 65 6c 65 74 65 78 74 20 64 61 74 61 0d 64 | Teletext data.d| 000002b0 6f 77 6e 6c 6f 61 64 65 64 20 66 72 6f 6d 20 74 |ownloaded from t| 000002c0 68 65 20 61 64 61 70 74 6f 72 2e 0d 0d 45 73 73 |he adaptor...Ess| 000002d0 65 6e 74 69 61 6c 6c 79 20 61 6c 6c 20 74 68 61 |entially all tha| 000002e0 74 20 61 20 6b 65 79 77 6f 72 64 20 73 65 61 72 |t a keyword sear| 000002f0 63 68 20 6e 65 65 64 73 20 74 6f 20 64 6f 20 69 |ch needs to do i| 00000300 73 20 74 6f 20 6c 6f 61 64 20 65 76 65 72 79 20 |s to load every | 00000310 70 61 67 65 2c 0d 73 65 61 72 63 68 20 65 76 65 |page,.search eve| 00000320 72 79 20 70 61 63 6b 65 74 20 61 73 73 6f 63 69 |ry packet associ| 00000330 61 74 65 64 20 77 69 74 68 20 74 68 65 20 63 75 |ated with the cu| 00000340 72 72 65 6e 74 20 70 61 67 65 2c 20 61 6e 64 20 |rrent page, and | 00000350 70 72 69 6e 74 20 65 76 65 72 79 20 70 61 67 65 |print every page| 00000360 0d 77 68 69 63 68 20 63 6f 6e 74 61 69 6e 73 20 |.which contains | 00000370 74 68 65 20 72 65 71 75 69 72 65 64 20 41 53 43 |the required ASC| 00000380 49 49 20 73 74 72 69 6e 67 2e 20 54 68 65 20 64 |II string. The d| 00000390 65 6d 6f 6e 73 74 72 61 74 69 6f 6e 20 70 72 6f |emonstration pro| 000003a0 67 72 61 6d 0d 4b 45 59 57 4f 52 44 20 75 73 65 |gram.KEYWORD use| 000003b0 73 20 74 68 69 73 20 73 65 72 69 61 6c 20 6d 61 |s this serial ma| 000003c0 67 61 7a 69 6e 65 20 6b 65 79 77 6f 72 64 20 73 |gazine keyword s| 000003d0 65 61 72 63 68 20 74 65 63 68 6e 69 71 75 65 20 |earch technique | 000003e0 62 75 74 20 69 74 20 61 6c 73 6f 0d 77 6f 72 6b |but it also.work| 000003f0 73 20 77 69 74 68 20 74 68 65 20 70 61 72 61 6c |s with the paral| 00000400 6c 65 6c 20 6d 61 67 61 7a 69 6e 65 73 20 62 72 |lel magazines br| 00000410 6f 61 64 63 61 73 74 20 6f 6e 20 74 68 65 20 49 |oadcast on the I| 00000420 54 56 20 6e 65 74 77 6f 72 6b 2c 20 61 6c 74 68 |TV network, alth| 00000430 6f 75 67 68 0d 69 74 20 64 6f 65 73 20 6e 6f 74 |ough.it does not| 00000440 20 73 65 61 72 63 68 20 70 61 72 61 6c 6c 65 6c | search parallel| 00000450 20 6d 61 67 61 7a 69 6e 65 73 20 76 65 72 79 20 | magazines very | 00000460 65 66 66 65 63 74 69 76 65 6c 79 2e 0d 0d 54 68 |effectively...Th| 00000470 65 20 72 65 61 73 6f 6e 20 77 68 79 20 74 68 69 |e reason why thi| 00000480 73 20 73 69 6d 70 6c 65 20 69 64 65 61 20 64 6f |s simple idea do| 00000490 65 73 20 6e 6f 74 20 77 6f 72 6b 20 76 65 72 79 |es not work very| 000004a0 20 77 65 6c 6c 20 77 69 74 68 20 70 61 72 61 6c | well with paral| 000004b0 6c 65 6c 0d 6d 61 67 61 7a 69 6e 65 73 20 69 73 |lel.magazines is| 000004c0 20 62 65 63 61 75 73 65 20 69 74 20 6f 6e 6c 79 | because it only| 000004d0 20 6c 6f 61 64 73 20 61 6e 64 20 73 65 61 72 63 | loads and searc| 000004e0 68 65 73 20 6f 6e 65 20 70 61 67 65 20 61 74 20 |hes one page at | 000004f0 61 20 74 69 6d 65 2e 20 54 68 65 0d 49 54 56 20 |a time. The.ITV | 00000500 6e 65 74 77 6f 72 6b 20 63 75 72 72 65 6e 74 6c |network currentl| 00000510 79 20 62 72 6f 61 64 63 61 73 74 20 75 70 20 74 |y broadcast up t| 00000520 6f 20 66 6f 75 72 20 6d 61 67 61 7a 69 6e 65 73 |o four magazines| 00000530 20 69 6e 20 70 61 72 61 6c 6c 65 6c 20 61 6e 64 | in parallel and| 00000540 20 73 6f 20 75 70 0d 74 6f 20 74 68 72 65 65 20 | so up.to three | 00000550 6d 61 67 61 7a 69 6e 65 73 20 77 69 6c 6c 20 62 |magazines will b| 00000560 65 20 69 67 6e 6f 72 65 64 20 77 68 65 6e 20 61 |e ignored when a| 00000570 20 70 61 67 65 20 69 73 20 62 65 69 6e 67 20 6c | page is being l| 00000580 6f 61 64 65 64 2e 20 54 68 65 20 66 6f 75 72 0d |oaded. The four.| 00000590 6d 61 67 61 7a 69 6e 65 73 20 63 75 72 72 65 6e |magazines curren| 000005a0 74 6c 79 20 75 73 65 64 20 62 79 20 74 68 65 20 |tly used by the | 000005b0 49 54 56 20 6e 65 74 77 6f 72 6b 20 61 72 65 20 |ITV network are | 000005c0 6e 75 6d 62 65 72 65 64 20 31 2c 20 32 2c 20 37 |numbered 1, 2, 7| 000005d0 20 61 6e 64 20 38 2e 0d 54 68 65 20 70 72 6f 67 | and 8..The prog| 000005e0 72 61 6d 20 4b 45 59 57 4f 52 44 20 69 67 6e 6f |ram KEYWORD igno| 000005f0 72 65 73 20 6d 61 67 61 7a 69 6e 65 20 38 2c 20 |res magazine 8, | 00000600 77 68 69 63 68 20 6f 6e 6c 79 20 63 6f 6e 74 61 |which only conta| 00000610 69 6e 73 20 73 75 62 74 69 74 6c 65 73 2c 20 61 |ins subtitles, a| 00000620 6e 64 0d 63 61 6e 20 62 65 20 6d 61 64 65 20 74 |nd.can be made t| 00000630 6f 20 69 67 6e 6f 72 65 20 74 68 65 20 49 54 56 |o ignore the ITV| 00000640 20 6d 61 67 61 7a 69 6e 65 20 37 2c 20 77 68 69 | magazine 7, whi| 00000650 63 68 20 6f 6e 6c 79 20 63 6f 6e 74 61 69 6e 73 |ch only contains| 00000660 20 65 6e 63 72 79 70 74 65 64 0d 41 69 72 20 43 | encrypted.Air C| 00000670 61 6c 6c 20 70 61 67 65 73 2c 20 62 75 74 20 65 |all pages, but e| 00000680 76 65 6e 20 74 68 65 6e 20 6d 61 67 61 7a 69 6e |ven then magazin| 00000690 65 73 20 31 20 61 6e 64 20 32 20 61 72 65 20 73 |es 1 and 2 are s| 000006a0 74 69 6c 6c 20 62 72 6f 61 64 63 61 73 74 20 69 |till broadcast i| 000006b0 6e 0d 70 61 72 61 6c 6c 65 6c 20 61 6e 64 20 73 |n.parallel and s| 000006c0 6f 20 61 74 20 6c 65 61 73 74 20 74 77 6f 20 70 |o at least two p| 000006d0 61 67 65 73 20 6e 65 65 64 20 74 6f 20 62 65 20 |ages need to be | 000006e0 73 65 61 72 63 68 65 64 20 61 74 20 74 68 65 20 |searched at the | 000006f0 73 61 6d 65 20 74 69 6d 65 20 69 66 0d 74 68 65 |same time if.the| 00000700 20 70 72 6f 67 72 61 6d 20 69 73 20 74 6f 20 77 | program is to w| 00000710 6f 72 6b 20 65 66 66 69 63 69 65 6e 74 6c 79 2e |ork efficiently.| 00000720 20 49 64 65 61 6c 6c 79 20 74 68 65 20 70 72 6f | Ideally the pro| 00000730 67 72 61 6d 20 73 68 6f 75 6c 64 20 62 65 20 63 |gram should be c| 00000740 61 70 61 62 6c 65 0d 6f 66 20 6c 6f 61 64 69 6e |apable.of loadin| 00000750 67 20 61 6e 64 20 73 65 61 72 63 68 69 6e 67 20 |g and searching | 00000760 75 70 20 74 6f 20 38 20 70 61 67 65 73 20 61 74 |up to 8 pages at| 00000770 20 74 68 65 20 73 61 6d 65 20 74 69 6d 65 20 74 | the same time t| 00000780 6f 20 63 6f 70 65 20 77 69 74 68 20 74 68 65 0d |o cope with the.| 00000790 77 6f 72 73 74 20 70 6f 73 73 69 62 6c 65 20 63 |worst possible c| 000007a0 61 73 65 20 77 68 65 6e 20 61 6c 6c 20 74 68 65 |ase when all the| 000007b0 20 61 76 61 69 6c 61 62 6c 65 20 6d 61 67 61 7a | available magaz| 000007c0 69 6e 65 73 20 61 72 65 20 75 73 65 64 20 69 6e |ines are used in| 000007d0 20 70 61 72 61 6c 6c 65 6c 2e 0d 4d 6f 64 69 66 | parallel..Modif| 000007e0 79 69 6e 67 20 74 68 65 20 70 72 6f 67 72 61 6d |ying the program| 000007f0 20 74 6f 20 63 6f 70 65 20 77 69 74 68 20 38 20 | to cope with 8 | 00000800 62 75 66 66 65 72 73 20 69 73 20 6e 6f 74 20 61 |buffers is not a| 00000810 73 20 64 69 66 66 69 63 75 6c 74 20 61 73 20 69 |s difficult as i| 00000820 74 0d 73 6f 75 6e 64 73 20 61 6e 64 20 74 68 69 |t.sounds and thi| 00000830 73 20 68 61 73 20 62 65 65 6e 20 6c 65 66 74 20 |s has been left | 00000840 66 6f 72 20 79 6f 75 20 74 6f 20 64 6f 20 61 73 |for you to do as| 00000850 20 61 6e 20 65 78 65 72 63 69 73 65 2e 0d 0d 49 | an exercise...I| 00000860 20 68 61 76 65 20 75 73 65 64 20 61 20 6d 61 78 | have used a max| 00000870 69 6d 75 6d 20 6b 65 79 77 6f 72 64 20 6c 65 6e |imum keyword len| 00000880 67 74 68 20 6f 66 20 38 20 63 68 61 72 61 63 74 |gth of 8 charact| 00000890 65 72 73 20 69 6e 20 74 68 65 20 64 65 6d 6f 6e |ers in the demon| 000008a0 73 74 72 61 74 69 6f 6e 0d 70 72 6f 67 72 61 6d |stration.program| 000008b0 2e 20 49 20 64 69 64 20 74 68 69 73 20 62 65 63 |. I did this bec| 000008c0 61 75 73 65 20 76 65 72 79 20 6c 6f 6e 67 20 74 |ause very long t| 000008d0 65 78 74 20 73 74 72 69 6e 67 73 20 63 6f 75 6c |ext strings coul| 000008e0 64 20 74 61 6b 65 20 74 6f 6f 20 6c 6f 6e 67 20 |d take too long | 000008f0 74 6f 0d 66 69 6e 64 20 61 6e 64 20 74 68 65 20 |to.find and the | 00000900 70 72 6f 67 72 61 6d 20 63 6f 75 6c 64 20 63 72 |program could cr| 00000910 61 73 68 2e 20 45 69 67 68 74 20 63 68 61 72 61 |ash. Eight chara| 00000920 63 74 65 72 73 20 73 65 65 6d 73 20 74 6f 20 62 |cters seems to b| 00000930 65 20 73 75 66 66 69 63 69 65 6e 74 0d 74 6f 20 |e sufficient.to | 00000940 69 64 65 6e 74 69 66 79 20 6d 6f 73 74 20 41 53 |identify most AS| 00000950 43 49 49 20 73 74 72 69 6e 67 73 2e 20 49 20 68 |CII strings. I h| 00000960 61 76 65 20 73 74 6f 72 65 64 20 74 68 65 20 6b |ave stored the k| 00000970 65 79 77 6f 72 64 20 69 6e 20 7a 65 72 6f 20 70 |eyword in zero p| 00000980 61 67 65 20 74 6f 0d 6d 61 6b 65 20 74 68 65 20 |age to.make the | 00000990 70 72 6f 67 72 61 6d 20 72 75 6e 20 61 73 20 66 |program run as f| 000009a0 61 73 74 20 61 73 20 70 6f 73 73 69 62 6c 65 2e |ast as possible.| 000009b0 20 45 76 65 72 79 20 62 79 74 65 20 6f 66 20 74 | Every byte of t| 000009c0 68 65 20 6b 65 79 77 6f 72 64 20 68 61 73 0d 62 |he keyword has.b| 000009d0 69 74 20 37 20 73 65 74 20 28 6c 69 6e 65 20 31 |it 7 set (line 1| 000009e0 36 30 29 20 62 65 63 61 75 73 65 20 62 69 74 20 |60) because bit | 000009f0 73 65 76 65 6e 20 6f 66 20 74 68 65 20 65 76 65 |seven of the eve| 00000a00 72 79 20 64 61 74 61 20 62 79 74 65 20 69 73 20 |ry data byte is | 00000a10 73 65 74 20 72 65 61 64 79 0d 66 6f 72 20 64 69 |set ready.for di| 00000a20 73 70 6c 61 79 20 61 66 74 65 72 20 64 6f 77 6e |splay after down| 00000a30 6c 6f 61 64 69 6e 67 20 28 6c 69 6e 65 20 32 32 |loading (line 22| 00000a40 36 30 29 2e 20 54 68 65 20 72 65 71 75 69 72 65 |60). The require| 00000a50 64 20 77 6f 72 64 20 6d 69 67 68 74 20 62 65 20 |d word might be | 00000a60 69 6e 0d 6c 6f 77 65 72 20 63 61 73 65 2c 20 75 |in.lower case, u| 00000a70 70 70 65 72 20 63 61 73 65 2c 20 6f 72 20 70 65 |pper case, or pe| 00000a80 72 68 61 70 73 20 68 61 76 65 20 6a 75 73 74 20 |rhaps have just | 00000a90 61 20 63 61 70 69 74 61 6c 20 66 69 72 73 74 20 |a capital first | 00000aa0 6c 65 74 74 65 72 2e 20 54 6f 0d 65 6e 73 75 72 |letter. To.ensur| 00000ab0 65 20 74 68 65 20 77 6f 72 64 20 69 73 20 72 65 |e the word is re| 00000ac0 63 6f 67 6e 69 73 65 64 20 77 68 69 63 68 65 76 |cognised whichev| 00000ad0 65 72 20 66 6f 72 6d 20 69 74 20 74 61 6b 65 73 |er form it takes| 00000ae0 2c 20 65 61 63 68 20 62 79 74 65 20 69 73 0d 63 |, each byte is.c| 00000af0 6f 6e 76 65 72 74 65 64 20 74 6f 20 61 20 63 61 |onverted to a ca| 00000b00 70 69 74 61 6c 20 62 65 66 6f 72 65 20 63 6f 6d |pital before com| 00000b10 70 61 72 69 73 6f 6e 20 28 6c 69 6e 65 20 33 36 |parison (line 36| 00000b20 32 30 29 2e 20 54 68 65 20 72 65 71 75 69 72 65 |20). The require| 00000b30 64 20 6b 65 79 77 6f 72 64 0d 73 68 6f 75 6c 64 |d keyword.should| 00000b40 2c 20 74 68 65 72 65 66 6f 72 65 2c 20 62 65 20 |, therefore, be | 00000b50 65 6e 74 65 72 65 64 20 69 6e 20 75 70 70 65 72 |entered in upper| 00000b60 20 63 61 73 65 2e 0d 0d 49 6e 20 74 68 65 20 70 | case...In the p| 00000b70 72 65 76 69 6f 75 73 20 6d 6f 64 75 6c 65 2c 20 |revious module, | 00000b80 74 68 65 20 70 72 6f 67 72 61 6d 20 47 52 41 42 |the program GRAB| 00000b90 42 45 52 20 6c 6f 61 64 65 64 20 6f 6e 6c 79 20 |BER loaded only | 00000ba0 74 68 65 20 68 65 61 64 65 72 20 70 61 63 6b 65 |the header packe| 00000bb0 74 73 0d 69 6e 74 6f 20 74 68 65 20 63 6f 6d 70 |ts.into the comp| 00000bc0 75 74 65 72 27 73 20 6d 65 6d 6f 72 79 20 75 6e |uter's memory un| 00000bd0 74 69 6c 20 74 68 65 20 68 65 61 64 65 72 20 6f |til the header o| 00000be0 66 20 74 68 65 20 72 65 71 75 69 72 65 64 20 70 |f the required p| 00000bf0 61 67 65 20 77 61 73 0d 66 6f 75 6e 64 2e 20 49 |age was.found. I| 00000c00 74 20 74 68 65 6e 20 6c 6f 61 64 65 64 20 70 61 |t then loaded pa| 00000c10 63 6b 65 74 73 20 31 20 74 6f 20 32 33 20 61 6e |ckets 1 to 23 an| 00000c20 64 20 64 69 73 70 6c 61 79 65 64 20 74 68 65 20 |d displayed the | 00000c30 70 61 67 65 20 77 68 65 6e 20 74 68 65 0d 74 65 |page when the.te| 00000c40 72 6d 69 6e 61 74 69 6e 67 20 68 65 61 64 65 72 |rminating header| 00000c50 20 77 61 73 20 66 6f 75 6e 64 2e 20 41 73 20 6c | was found. As l| 00000c60 6f 6e 67 20 61 73 20 74 68 65 20 70 61 67 65 20 |ong as the page | 00000c70 62 75 66 66 65 72 20 77 61 73 20 63 6c 65 61 72 |buffer was clear| 00000c80 20 77 68 65 6e 0d 74 68 65 20 70 72 6f 67 72 61 | when.the progra| 00000c90 6d 20 73 74 61 72 74 65 64 2c 20 61 6e 64 20 77 |m started, and w| 00000ca0 61 73 20 63 6c 65 61 72 65 64 20 61 66 74 65 72 |as cleared after| 00000cb0 20 70 72 69 6e 74 69 6e 67 20 74 68 65 20 70 61 | printing the pa| 00000cc0 67 65 2c 20 47 52 41 42 42 45 52 0d 63 6f 75 6c |ge, GRABBER.coul| 00000cd0 64 20 73 69 6d 70 6c 79 20 70 72 69 6e 74 20 6f |d simply print o| 00000ce0 75 74 20 74 68 65 20 65 6e 74 69 72 65 20 63 6f |ut the entire co| 00000cf0 6e 74 65 6e 74 73 20 6f 66 20 74 68 65 20 62 75 |ntents of the bu| 00000d00 66 66 65 72 20 62 65 63 61 75 73 65 20 69 74 20 |ffer because it | 00000d10 6f 6e 6c 79 0d 65 76 65 72 20 6c 6f 61 64 65 64 |only.ever loaded| 00000d20 20 70 61 63 6b 65 74 73 20 31 20 74 6f 20 32 33 | packets 1 to 23| 00000d30 20 6f 66 20 74 68 65 20 72 65 71 75 69 72 65 64 | of the required| 00000d40 20 70 61 67 65 2e 20 54 68 65 20 6b 65 79 77 6f | page. The keywo| 00000d50 72 64 20 73 65 61 72 63 68 0d 70 72 6f 67 72 61 |rd search.progra| 00000d60 6d 20 61 73 73 6f 63 69 61 74 65 64 20 77 69 74 |m associated wit| 00000d70 68 20 74 68 69 73 20 6d 6f 64 75 6c 65 20 64 6f |h this module do| 00000d80 65 73 20 6e 6f 74 20 68 61 76 65 20 65 6e 6f 75 |es not have enou| 00000d90 67 68 20 74 69 6d 65 20 74 6f 20 63 6c 65 61 72 |gh time to clear| 00000da0 20 74 68 65 0d 62 75 66 66 65 72 20 61 66 74 65 | the.buffer afte| 00000db0 72 20 73 65 61 72 63 68 69 6e 67 20 65 76 65 72 |r searching ever| 00000dc0 79 20 70 61 67 65 20 61 6e 64 20 73 6f 20 69 74 |y page and so it| 00000dd0 20 66 6c 61 67 73 20 65 76 65 72 79 20 70 61 63 | flags every pac| 00000de0 6b 65 74 20 61 73 20 75 6e 75 73 65 64 0d 61 74 |ket as unused.at| 00000df0 20 74 68 65 20 62 65 67 69 6e 6e 69 6e 67 20 6f | the beginning o| 00000e00 66 20 65 76 65 72 79 20 70 61 67 65 20 73 65 61 |f every page sea| 00000e10 72 63 68 20 61 6e 64 20 66 6c 61 67 73 20 65 76 |rch and flags ev| 00000e20 65 72 79 20 70 61 63 6b 65 74 20 69 74 20 64 6f |ery packet it do| 00000e30 77 6e 6c 6f 61 64 73 0d 61 73 20 75 73 65 64 20 |wnloads.as used | 00000e40 77 68 65 6e 20 69 74 20 69 73 20 72 65 63 65 69 |when it is recei| 00000e50 76 65 64 2e 20 54 68 69 73 20 69 73 20 64 6f 6e |ved. This is don| 00000e60 65 20 75 73 69 6e 67 20 74 68 65 20 61 72 72 61 |e using the arra| 00000e70 79 20 6d 61 72 6b 65 72 73 20 28 6c 69 6e 65 0d |y markers (line.| 00000e80 35 30 29 2e 20 54 68 65 20 6e 75 6d 62 65 72 20 |50). The number | 00000e90 26 38 30 20 69 73 20 75 73 65 64 20 74 6f 20 6d |&80 is used to m| 00000ea0 61 72 6b 20 61 20 70 61 63 6b 65 74 20 61 73 20 |ark a packet as | 00000eb0 75 6e 75 73 65 64 20 61 6e 64 20 74 68 65 20 70 |unused and the p| 00000ec0 61 63 6b 65 74 0d 6e 75 6d 62 65 72 20 69 73 20 |acket.number is | 00000ed0 73 74 6f 72 65 64 20 74 6f 20 6d 61 72 6b 20 74 |stored to mark t| 00000ee0 68 65 20 70 61 63 6b 65 74 20 61 73 20 75 73 65 |he packet as use| 00000ef0 64 2e 0d 0d 54 68 65 20 66 6c 61 67 20 62 79 74 |d...The flag byt| 00000f00 65 20 67 72 61 62 66 6c 61 67 20 69 73 20 75 73 |e grabflag is us| 00000f10 65 64 20 61 67 61 69 6e 20 69 6e 20 74 68 65 20 |ed again in the | 00000f20 70 72 6f 67 72 61 6d 20 4b 45 59 57 4f 52 44 2e |program KEYWORD.| 00000f30 20 49 6e 20 74 68 69 73 0d 70 72 6f 67 72 61 6d | In this.program| 00000f40 20 69 74 20 63 61 6e 20 68 61 76 65 20 6f 6e 65 | it can have one| 00000f50 20 6f 66 20 34 20 76 61 6c 75 65 73 2e 20 26 30 | of 4 values. &0| 00000f60 30 20 6d 65 61 6e 73 20 74 68 61 74 20 69 74 20 |0 means that it | 00000f70 69 73 20 73 65 61 72 63 68 69 6e 67 20 66 6f 72 |is searching for| 00000f80 0d 61 6e 79 20 73 74 61 72 74 2d 6f 66 2d 70 61 |.any start-of-pa| 00000f90 67 65 20 68 65 61 64 65 72 2c 20 69 65 2e 20 6e |ge header, ie. n| 00000fa0 6f 74 20 61 20 73 75 62 74 69 74 6c 65 20 61 6e |ot a subtitle an| 00000fb0 64 20 6e 6f 74 20 70 61 67 65 20 78 46 46 2e 20 |d not page xFF. | 00000fc0 26 34 30 20 6d 65 61 6e 73 0d 74 68 61 74 20 69 |&40 means.that i| 00000fd0 74 20 68 61 73 20 66 6f 75 6e 64 20 61 20 73 74 |t has found a st| 00000fe0 61 72 74 2d 6f 66 2d 70 61 67 65 20 68 65 61 64 |art-of-page head| 00000ff0 65 72 20 61 6e 64 20 69 74 20 69 73 20 6c 6f 61 |er and it is loa| 00001000 64 69 6e 67 20 74 68 61 74 20 70 61 67 65 20 69 |ding that page i| 00001010 6e 74 6f 0d 74 68 65 20 62 75 66 66 65 72 20 62 |nto.the buffer b| 00001020 75 74 20 69 74 20 68 61 73 20 79 65 74 20 6e 6f |ut it has yet no| 00001030 74 20 69 64 65 6e 74 69 66 69 65 64 20 74 68 65 |t identified the| 00001040 20 6b 65 79 77 6f 72 64 2e 20 26 38 30 20 6d 65 | keyword. &80 me| 00001050 61 6e 73 20 74 68 61 74 20 69 74 20 69 73 0d 73 |ans that it is.s| 00001060 74 69 6c 6c 20 6c 6f 61 64 69 6e 67 20 74 68 65 |till loading the| 00001070 20 70 61 67 65 20 69 6e 74 6f 20 74 68 65 20 62 | page into the b| 00001080 75 66 66 65 72 20 62 75 74 20 74 68 65 20 6b 65 |uffer but the ke| 00001090 79 77 6f 72 64 20 68 61 73 20 62 65 65 6e 20 66 |yword has been f| 000010a0 6f 75 6e 64 2e 20 26 43 30 0d 6d 65 61 6e 73 20 |ound. &C0.means | 000010b0 74 68 61 74 20 74 68 65 20 6b 65 79 77 6f 72 64 |that the keyword| 000010c0 20 68 61 73 20 62 65 65 6e 20 66 6f 75 6e 64 20 | has been found | 000010d0 61 6e 64 20 61 6e 20 65 6e 64 2d 6f 66 2d 70 61 |and an end-of-pa| 000010e0 67 65 20 68 65 61 64 65 72 20 68 61 73 20 62 65 |ge header has be| 000010f0 65 6e 0d 69 64 65 6e 74 69 66 69 65 64 20 73 6f |en.identified so| 00001100 20 74 68 61 74 20 74 68 65 20 72 65 71 75 69 72 | that the requir| 00001110 65 64 20 70 61 67 65 20 68 61 73 20 62 65 65 6e |ed page has been| 00001120 20 6c 6f 61 64 65 64 20 69 6e 74 6f 20 74 68 65 | loaded into the| 00001130 20 62 75 66 66 65 72 2e 20 57 68 65 6e 0d 67 72 | buffer. When.gr| 00001140 61 62 66 6c 61 67 20 73 74 6f 72 65 73 20 26 43 |abflag stores &C| 00001150 30 20 74 68 65 20 70 61 67 65 20 63 61 6e 20 62 |0 the page can b| 00001160 65 20 70 72 69 6e 74 65 64 20 61 6e 64 20 74 68 |e printed and th| 00001170 65 20 73 65 61 72 63 68 20 77 69 6c 6c 20 63 6f |e search will co| 00001180 6e 74 69 6e 75 65 0d 66 6f 72 20 61 6e 6f 74 68 |ntinue.for anoth| 00001190 65 72 20 70 61 67 65 20 77 69 74 68 20 74 68 65 |er page with the| 000011a0 20 73 61 6d 65 20 6b 65 79 77 6f 72 64 2e 20 54 | same keyword. T| 000011b0 68 65 20 70 72 6f 67 72 61 6d 20 77 69 6c 6c 20 |he program will | 000011c0 63 6f 6e 74 69 6e 75 65 20 74 6f 0d 73 65 61 72 |continue to.sear| 000011d0 63 68 20 66 6f 72 20 74 68 65 20 73 61 6d 65 20 |ch for the same | 000011e0 6b 65 79 77 6f 72 64 20 75 6e 74 69 6c 20 74 68 |keyword until th| 000011f0 65 20 45 73 63 61 70 65 20 6b 65 79 20 69 73 20 |e Escape key is | 00001200 70 72 65 73 73 65 64 2e 20 49 66 20 79 6f 75 0d |pressed. If you.| 00001210 6d 6f 64 69 66 79 20 74 68 65 20 70 72 6f 67 72 |modify the progr| 00001220 61 6d 20 74 6f 20 73 65 61 72 63 68 20 70 61 72 |am to search par| 00001230 61 6c 6c 65 6c 20 6d 61 67 61 7a 69 6e 65 73 20 |allel magazines | 00001240 6d 6f 72 65 20 65 66 66 65 63 74 69 76 65 6c 79 |more effectively| 00001250 20 79 6f 75 20 77 69 6c 6c 0d 6e 65 65 64 20 74 | you will.need t| 00001260 68 65 20 65 71 75 69 76 61 6c 65 6e 74 20 6f 66 |he equivalent of| 00001270 20 6f 6e 65 20 67 72 61 62 66 6c 61 67 20 66 6f | one grabflag fo| 00001280 72 20 65 61 63 68 20 62 75 66 66 65 72 2e 0d 0d |r each buffer...| 00001290 57 68 65 6e 20 61 20 70 61 67 65 20 68 61 73 20 |When a page has | 000012a0 62 65 65 6e 20 64 69 73 70 6c 61 79 65 64 20 6f |been displayed o| 000012b0 6e 20 74 68 65 20 73 63 72 65 65 6e 20 74 68 65 |n the screen the| 000012c0 20 70 61 67 65 20 6e 75 6d 62 65 72 20 69 73 20 | page number is | 000012d0 74 61 6b 65 6e 20 66 72 6f 6d 0d 74 68 65 20 41 |taken from.the A| 000012e0 53 43 49 49 20 74 65 78 74 20 69 6e 20 74 68 65 |SCII text in the| 000012f0 20 70 61 67 65 20 68 65 61 64 65 72 20 61 6e 64 | page header and| 00001300 20 64 69 73 70 6c 61 79 65 64 20 69 6e 20 74 68 | displayed in th| 00001310 65 20 74 6f 70 20 6c 65 66 74 20 68 61 6e 64 0d |e top left hand.| 00001320 63 6f 72 6e 65 72 20 6f 66 20 74 68 65 20 66 72 |corner of the fr| 00001330 61 6d 65 2e 20 54 68 69 73 20 69 73 20 61 20 73 |ame. This is a s| 00001340 68 6f 72 74 20 63 75 74 20 6d 65 74 68 6f 64 20 |hort cut method | 00001350 6f 66 20 64 69 73 70 6c 61 79 69 6e 67 20 74 68 |of displaying th| 00001360 65 20 70 61 67 65 0d 6e 75 6d 62 65 72 20 61 6e |e page.number an| 00001370 64 20 69 66 20 79 6f 75 20 77 61 6e 74 20 74 6f |d if you want to| 00001380 20 6d 6f 64 69 66 79 20 74 68 65 20 70 72 6f 67 | modify the prog| 00001390 72 61 6d 20 74 6f 20 69 6e 63 6c 75 64 65 20 74 |ram to include t| 000013a0 68 65 20 73 75 62 2d 70 61 67 65 0d 6e 75 6d 62 |he sub-page.numb| 000013b0 65 72 20 79 6f 75 20 77 69 6c 6c 20 68 61 76 65 |er you will have| 000013c0 20 74 6f 20 65 78 74 72 61 63 74 20 74 68 69 73 | to extract this| 000013d0 20 6e 75 6d 62 65 72 20 66 72 6f 6d 20 74 68 65 | number from the| 000013e0 20 68 65 61 64 65 72 20 64 61 74 61 20 75 73 69 | header data usi| 000013f0 6e 67 20 74 68 65 0d 69 6e 66 6f 72 6d 61 74 69 |ng the.informati| 00001400 6f 6e 20 70 72 6f 76 69 64 65 64 20 69 6e 20 6d |on provided in m| 00001410 6f 64 75 6c 65 20 32 2e 0d 0d 49 66 20 79 6f 75 |odule 2...If you| 00001420 20 64 65 63 69 64 65 20 74 6f 20 74 61 6b 65 20 | decide to take | 00001430 75 70 20 74 68 65 20 63 68 61 6c 6c 65 6e 67 65 |up the challenge| 00001440 20 6f 66 20 64 65 73 69 67 6e 69 6e 67 20 61 20 | of designing a | 00001450 66 72 61 6d 65 20 67 72 61 62 62 65 72 20 79 6f |frame grabber yo| 00001460 75 0d 6d 69 67 68 74 20 6c 69 6b 65 20 74 6f 20 |u.might like to | 00001470 69 6e 63 6c 75 64 65 20 73 6f 6d 65 20 6f 72 20 |include some or | 00001480 61 6c 6c 20 6f 66 20 74 68 65 20 66 6f 6c 6c 6f |all of the follo| 00001490 77 69 6e 67 20 66 65 61 74 75 72 65 73 3a 0d 0d |wing features:..| 000014a0 0d 31 29 20 50 61 67 65 20 73 65 6c 65 63 74 69 |.1) Page selecti| 000014b0 6f 6e 20 62 79 20 70 61 67 65 20 6e 75 6d 62 65 |on by page numbe| 000014c0 72 20 61 6e 64 20 73 75 62 2d 70 61 67 65 20 6e |r and sub-page n| 000014d0 75 6d 62 65 72 2e 0d 0d 32 29 20 50 61 67 65 20 |umber...2) Page | 000014e0 73 65 6c 65 63 74 69 6f 6e 20 62 79 20 6b 65 79 |selection by key| 000014f0 77 6f 72 64 2e 0d 0d 33 29 20 43 6f 72 72 65 63 |word...3) Correc| 00001500 74 20 64 69 73 70 6c 61 79 20 6f 66 20 73 75 62 |t display of sub| 00001510 74 69 74 6c 65 73 2e 0d 0d 34 29 20 44 65 74 65 |titles...4) Dete| 00001520 63 74 20 61 6e 64 20 64 69 73 70 6c 61 79 20 6e |ct and display n| 00001530 65 77 73 66 6c 61 73 68 65 73 2e 0d 0d 35 29 20 |ewsflashes...5) | 00001540 55 73 65 20 74 68 65 20 61 6c 61 72 6d 20 63 6c |Use the alarm cl| 00001550 6f 63 6b 20 6f 6e 20 42 42 43 31 20 70 61 67 65 |ock on BBC1 page| 00001560 20 31 39 36 2e 0d 0d 36 29 20 48 6f 6c 64 20 61 | 196...6) Hold a| 00001570 6e 64 20 72 65 6c 65 61 73 65 20 70 61 67 65 2e |nd release page.| 00001580 0d 0d 37 29 20 53 77 69 74 63 68 20 62 65 74 77 |..7) Switch betw| 00001590 65 65 6e 20 72 65 76 65 61 6c 20 61 6e 64 20 63 |een reveal and c| 000015a0 6f 6e 63 65 61 6c 20 68 69 64 64 65 6e 20 63 68 |onceal hidden ch| 000015b0 61 72 61 63 74 65 72 73 2e 0d 0d 38 29 20 50 61 |aracters...8) Pa| 000015c0 67 65 20 64 75 6d 70 20 74 6f 20 70 72 69 6e 74 |ge dump to print| 000015d0 65 72 2e 0d 0d 39 29 20 53 61 76 65 20 70 61 67 |er...9) Save pag| 000015e0 65 20 69 6e 20 75 73 65 72 20 6d 65 6d 6f 72 79 |e in user memory| 000015f0 2c 20 73 65 63 6f 6e 64 20 70 72 6f 63 65 73 73 |, second process| 00001600 6f 72 20 6f 72 20 6f 6e 20 64 69 73 63 2c 20 61 |or or on disc, a| 00001610 6e 64 20 72 65 2d 6c 6f 61 64 20 70 61 67 65 0d |nd re-load page.| 00001620 20 20 20 77 68 65 6e 20 72 65 71 75 69 72 65 64 | when required| 00001630 2e 0d 0d 0d 49 66 20 79 6f 75 20 63 61 6e 20 63 |....If you can c| 00001640 72 65 61 74 65 20 61 20 70 72 6f 67 72 61 6d 20 |reate a program | 00001650 77 69 74 68 20 74 68 65 73 65 20 61 6e 64 20 61 |with these and a| 00001660 6e 79 20 6f 74 68 65 72 20 75 73 65 66 75 6c 20 |ny other useful | 00001670 66 65 61 74 75 72 65 73 20 74 68 61 74 0d 69 6d |features that.im| 00001680 70 72 6f 76 65 20 6f 6e 20 74 68 65 20 66 61 63 |prove on the fac| 00001690 69 6c 69 74 69 65 73 20 6f 66 66 65 72 65 64 20 |ilities offered | 000016a0 62 79 20 74 68 65 20 41 54 53 20 66 72 61 6d 65 |by the ATS frame| 000016b0 20 67 72 61 62 62 65 72 20 6f 72 20 74 68 65 0d | grabber or the.| 000016c0 45 64 69 6e 62 75 72 67 68 20 53 6f 66 74 77 61 |Edinburgh Softwa| 000016d0 72 65 20 50 72 6f 64 75 63 74 73 20 4b 65 79 77 |re Products Keyw| 000016e0 6f 72 64 20 46 72 61 6d 65 20 47 72 61 62 62 65 |ord Frame Grabbe| 000016f0 72 20 28 62 72 6f 61 64 63 61 73 74 20 62 79 20 |r (broadcast by | 00001700 42 42 43 0d 54 65 6c 65 73 6f 66 74 77 61 72 65 |BBC.Telesoftware| 00001710 29 20 74 68 65 6e 20 79 6f 75 20 6d 69 67 68 74 |) then you might| 00001720 20 6c 69 6b 65 20 74 6f 20 63 6f 6e 73 69 64 65 | like to conside| 00001730 72 20 73 65 6e 64 69 6e 67 20 61 20 63 6f 70 79 |r sending a copy| 00001740 20 6f 66 20 79 6f 75 72 0d 70 72 6f 67 72 61 6d | of your.program| 00001750 20 74 6f 20 42 42 43 20 54 65 6c 65 73 6f 66 74 | to BBC Telesoft| 00001760 77 61 72 65 20 73 6f 20 74 68 61 74 20 74 68 65 |ware so that the| 00001770 20 62 65 73 74 20 70 72 6f 67 72 61 6d 20 63 61 | best program ca| 00001780 6e 20 62 65 20 74 72 61 6e 73 6d 69 74 74 65 64 |n be transmitted| 00001790 2e 0d 0d 0d 20 20 20 31 30 20 52 45 4d 3e 20 4b |.... 10 REM> K| 000017a0 45 59 57 4f 52 44 0d 20 20 20 32 30 20 4d 4f 44 |EYWORD. 20 MOD| 000017b0 45 37 0d 20 20 20 33 30 20 44 49 4d 20 6d 63 6f |E7. 30 DIM mco| 000017c0 64 65 20 26 31 30 30 30 20 3a 52 45 4d 3a 20 73 |de &1000 :REM: s| 000017d0 70 61 63 65 20 66 6f 72 20 6d 61 63 68 69 6e 65 |pace for machine| 000017e0 20 63 6f 64 65 0d 20 20 20 34 30 20 44 49 4d 20 | code. 40 DIM | 000017f0 62 75 66 66 65 72 20 26 34 30 30 20 3a 52 45 4d |buffer &400 :REM| 00001800 3a 20 70 61 67 65 20 67 72 61 62 62 65 72 20 62 |: page grabber b| 00001810 75 66 66 65 72 0d 20 20 20 35 30 20 44 49 4d 20 |uffer. 50 DIM | 00001820 6d 61 72 6b 65 72 73 20 26 32 30 20 3a 52 45 4d |markers &20 :REM| 00001830 3a 20 70 61 63 6b 65 74 20 6d 61 72 6b 65 72 73 |: packet markers| 00001840 0d 20 20 20 36 30 20 24 62 75 66 66 65 72 3d 53 |. 60 $buffer=S| 00001850 54 52 49 4e 47 24 28 34 30 2c 22 20 22 29 20 3a |TRING$(40," ") :| 00001860 52 45 4d 3a 20 63 6c 65 61 72 20 74 68 65 20 68 |REM: clear the h| 00001870 65 61 64 65 72 0d 20 20 20 37 30 20 50 52 4f 43 |eader. 70 PROC| 00001880 6d 63 6f 64 65 20 3a 52 45 4d 3a 20 61 73 73 65 |mcode :REM: asse| 00001890 6d 62 6c 65 20 6d 61 63 68 69 6e 65 20 63 6f 64 |mble machine cod| 000018a0 65 0d 20 20 20 38 30 20 49 4e 50 55 54 22 54 56 |e. 80 INPUT"TV| 000018b0 20 63 68 61 6e 6e 65 6c 20 28 31 2d 34 29 20 3d | channel (1-4) =| 000018c0 20 22 61 6e 73 77 65 72 24 0d 20 20 20 39 30 20 | "answer$. 90 | 000018d0 63 68 61 6e 6e 65 6c 3f 30 3d 45 56 41 4c 28 22 |channel?0=EVAL("| 000018e0 26 22 2b 4c 45 46 54 24 28 61 6e 73 77 65 72 24 |&"+LEFT$(answer$| 000018f0 2c 31 29 29 2b 26 31 42 0d 20 20 31 30 30 20 49 |,1))+&1B. 100 I| 00001900 46 20 63 68 61 6e 6e 65 6c 3f 30 20 3c 20 26 31 |F channel?0 < &1| 00001910 43 20 54 48 45 4e 20 63 68 61 6e 6e 65 6c 3f 30 |C THEN channel?0| 00001920 20 3d 20 26 31 43 0d 20 20 31 31 30 20 49 46 20 | = &1C. 110 IF | 00001930 63 68 61 6e 6e 65 6c 3f 30 20 3e 20 26 31 46 20 |channel?0 > &1F | 00001940 54 48 45 4e 20 63 68 61 6e 6e 65 6c 3f 30 20 3d |THEN channel?0 =| 00001950 20 26 31 46 0d 20 20 31 32 30 20 49 4e 50 55 54 | &1F. 120 INPUT| 00001960 22 53 65 61 72 63 68 20 6b 65 79 77 6f 72 64 20 |"Search keyword | 00001970 28 55 50 50 45 52 20 43 41 53 45 29 20 3d 20 22 |(UPPER CASE) = "| 00001980 61 6e 73 77 65 72 24 0d 20 20 31 33 30 20 61 6e |answer$. 130 an| 00001990 73 77 65 72 24 3d 4c 45 46 54 24 28 61 6e 73 77 |swer$=LEFT$(answ| 000019a0 65 72 24 2c 38 29 0d 20 20 31 34 30 20 6c 65 6e |er$,8). 140 len| 000019b0 3d 4c 45 4e 28 61 6e 73 77 65 72 24 29 2d 31 0d |=LEN(answer$)-1.| 000019c0 20 20 31 35 30 20 46 4f 52 20 70 61 73 73 3d 30 | 150 FOR pass=0| 000019d0 20 54 4f 20 6c 65 6e 0d 20 20 31 36 30 20 73 65 | TO len. 160 se| 000019e0 61 72 63 68 74 65 78 74 3f 70 61 73 73 20 3d 20 |archtext?pass = | 000019f0 28 41 53 43 28 4d 49 44 24 28 61 6e 73 77 65 72 |(ASC(MID$(answer| 00001a00 24 2c 70 61 73 73 2b 31 2c 31 29 29 20 4f 52 20 |$,pass+1,1)) OR | 00001a10 26 38 30 29 0d 20 20 31 37 30 20 4e 45 58 54 0d |&80). 170 NEXT.| 00001a20 20 20 31 38 30 20 73 65 61 72 63 68 74 65 78 74 | 180 searchtext| 00001a30 3f 28 6c 65 6e 2b 31 29 3d 30 0d 20 20 31 39 30 |?(len+1)=0. 190| 00001a40 20 77 6f 72 64 6c 65 6e 67 74 68 3f 30 3d 6c 65 | wordlength?0=le| 00001a50 6e 0d 20 20 32 30 30 20 56 44 55 31 32 2c 32 33 |n. 200 VDU12,23| 00001a60 2c 31 2c 30 3b 30 3b 30 3b 30 3b 0d 20 20 32 31 |,1,0;0;0;0;. 21| 00001a70 30 20 43 41 4c 4c 20 6d 63 6f 64 65 0d 20 20 32 |0 CALL mcode. 2| 00001a80 32 30 20 56 44 55 33 30 2c 32 33 2c 31 2c 31 3b |20 VDU30,23,1,1;| 00001a90 30 3b 30 3b 30 3b 0d 20 20 32 33 30 20 45 4e 44 |0;0;0;. 230 END| 00001aa0 0d 20 20 32 34 30 20 44 45 46 50 52 4f 43 6d 63 |. 240 DEFPROCmc| 00001ab0 6f 64 65 0d 20 20 32 35 30 20 70 61 63 6b 65 74 |ode. 250 packet| 00001ac0 3d 26 37 30 20 3a 52 45 4d 3a 20 72 6f 77 20 6e |=&70 :REM: row n| 00001ad0 75 6d 62 65 72 20 6f 66 20 63 75 72 72 65 6e 74 |umber of current| 00001ae0 20 70 61 63 6b 65 74 0d 20 20 32 36 30 20 6d 61 | packet. 260 ma| 00001af0 67 61 7a 69 6e 65 3d 26 37 31 20 3a 52 45 4d 3a |gazine=&71 :REM:| 00001b00 20 6d 61 67 61 7a 69 6e 65 20 6e 75 6d 62 65 72 | magazine number| 00001b10 20 6f 66 20 63 75 72 72 65 6e 74 20 70 61 67 65 | of current page| 00001b20 0d 20 20 32 37 30 20 67 72 61 62 66 6c 61 67 3d |. 270 grabflag=| 00001b30 26 37 32 20 3a 52 45 4d 3a 20 30 3d 73 65 61 72 |&72 :REM: 0=sear| 00001b40 63 68 69 6e 67 2c 20 26 34 30 3d 6c 6f 61 64 69 |ching, &40=loadi| 00001b50 6e 67 2c 20 26 38 30 3d 66 6f 75 6e 64 2c 0d 20 |ng, &80=found,. | 00001b60 20 20 20 20 20 26 43 30 3d 6c 6f 61 64 65 64 20 | &C0=loaded | 00001b70 26 20 66 6f 75 6e 64 0d 20 20 32 38 30 20 75 73 |& found. 280 us| 00001b80 65 72 6d 61 67 3d 26 37 33 20 3a 52 45 4d 3a 20 |ermag=&73 :REM: | 00001b90 6c 61 73 74 20 6d 61 67 61 7a 69 6e 65 20 6e 75 |last magazine nu| 00001ba0 6d 62 65 72 0d 20 20 32 39 30 20 75 73 65 72 70 |mber. 290 userp| 00001bb0 61 67 65 3d 26 37 34 20 3a 52 45 4d 3a 20 6c 61 |age=&74 :REM: la| 00001bc0 73 74 20 70 61 67 65 20 6e 75 6d 62 65 72 2c 20 |st page number, | 00001bd0 6c 6f 77 20 62 79 74 65 20 2b 20 68 69 67 68 20 |low byte + high | 00001be0 62 79 74 65 0d 20 20 33 30 30 20 63 68 61 6e 6e |byte. 300 chann| 00001bf0 65 6c 3d 26 37 36 20 3a 52 45 4d 3a 20 54 56 20 |el=&76 :REM: TV | 00001c00 63 68 61 6e 6e 65 6c 0d 20 20 33 31 30 20 77 6f |channel. 310 wo| 00001c10 72 6b 73 70 61 63 65 3d 26 37 37 20 3a 52 45 4d |rkspace=&77 :REM| 00001c20 3a 20 32 20 62 79 74 65 20 77 6f 72 6b 73 70 61 |: 2 byte workspa| 00001c30 63 65 0d 20 20 33 32 30 20 64 65 73 74 69 6e 61 |ce. 320 destina| 00001c40 74 69 6f 6e 3d 26 37 39 20 3a 52 45 4d 3a 20 61 |tion=&79 :REM: a| 00001c50 6e 6f 74 68 65 72 20 32 20 62 79 74 65 20 77 6f |nother 2 byte wo| 00001c60 72 6b 73 70 61 63 65 0d 20 20 33 33 30 20 77 6f |rkspace. 330 wo| 00001c70 72 64 6c 65 6e 67 74 68 3d 26 37 42 20 3a 52 45 |rdlength=&7B :RE| 00001c80 4d 3a 20 6c 65 6e 67 74 68 20 6f 66 20 6b 65 79 |M: length of key| 00001c90 77 6f 72 64 0d 20 20 33 34 30 20 74 65 6d 70 79 |word. 340 tempy| 00001ca0 3d 26 37 43 20 3a 52 45 4d 3a 20 74 65 6d 70 6f |=&7C :REM: tempo| 00001cb0 72 61 72 79 20 73 74 6f 72 65 20 66 6f 72 20 59 |rary store for Y| 00001cc0 20 72 65 67 69 73 74 65 72 0d 20 20 33 35 30 20 | register. 350 | 00001cd0 73 65 61 72 63 68 66 6f 72 3d 26 37 44 20 3a 52 |searchfor=&7D :R| 00001ce0 45 4d 3a 20 74 65 6d 70 6f 72 61 72 79 20 73 74 |EM: temporary st| 00001cf0 6f 72 65 20 66 6f 72 20 63 68 61 72 61 63 74 65 |ore for characte| 00001d00 72 20 69 6e 20 73 65 61 72 63 68 20 73 74 72 69 |r in search stri| 00001d10 6e 67 0d 20 20 33 36 30 20 73 65 61 72 63 68 74 |ng. 360 searcht| 00001d20 65 78 74 3d 26 38 30 20 3a 52 45 4d 3a 20 73 74 |ext=&80 :REM: st| 00001d30 6f 72 65 20 66 6f 72 20 6b 65 79 77 6f 72 64 0d |ore for keyword.| 00001d40 20 20 33 37 30 20 69 72 71 32 76 3d 26 32 30 36 | 370 irq2v=&206| 00001d50 20 3a 52 45 4d 3a 20 69 72 71 32 20 76 65 63 74 | :REM: irq2 vect| 00001d60 6f 72 0d 20 20 33 38 30 20 74 74 78 63 6f 6e 74 |or. 380 ttxcont| 00001d70 72 6f 6c 3d 26 46 43 31 30 20 3a 52 45 4d 3a 20 |rol=&FC10 :REM: | 00001d80 54 54 58 20 63 6f 6e 74 72 6f 6c 20 72 65 67 69 |TTX control regi| 00001d90 73 74 65 72 2c 20 77 72 69 74 65 20 6f 6e 6c 79 |ster, write only| 00001da0 0d 20 20 33 39 30 20 74 74 78 73 74 61 74 75 73 |. 390 ttxstatus| 00001db0 3d 26 46 43 31 30 20 3a 52 45 4d 3a 20 54 54 58 |=&FC10 :REM: TTX| 00001dc0 20 73 74 61 74 75 73 20 72 65 67 69 73 74 65 72 | status register| 00001dd0 2c 20 72 65 61 64 20 6f 6e 6c 79 0d 20 20 34 30 |, read only. 40| 00001de0 30 20 72 6f 77 72 65 67 3d 26 46 43 31 31 20 3a |0 rowreg=&FC11 :| 00001df0 52 45 4d 3a 20 54 54 58 20 72 6f 77 20 72 65 67 |REM: TTX row reg| 00001e00 69 73 74 65 72 2c 20 77 72 69 74 65 20 6f 6e 6c |ister, write onl| 00001e10 79 0d 20 20 34 31 30 20 64 61 74 61 72 65 67 3d |y. 410 datareg=| 00001e20 26 46 43 31 32 20 3a 52 45 4d 3a 20 54 54 58 20 |&FC12 :REM: TTX | 00001e30 64 61 74 61 20 72 65 67 69 73 74 65 72 2c 20 72 |data register, r| 00001e40 65 61 64 20 26 20 77 72 69 74 65 0d 20 20 34 32 |ead & write. 42| 00001e50 30 20 73 74 61 74 63 6c 72 3d 26 46 43 31 33 20 |0 statclr=&FC13 | 00001e60 3a 52 45 4d 3a 20 54 54 58 20 63 6c 65 61 72 20 |:REM: TTX clear | 00001e70 73 74 61 74 75 73 20 72 65 67 69 73 74 65 72 2c |status register,| 00001e80 20 72 65 61 64 20 26 20 77 72 69 74 65 0d 20 20 | read & write. | 00001e90 34 33 30 20 6f 73 77 72 63 68 3d 26 46 46 45 45 |430 oswrch=&FFEE| 00001ea0 0d 20 20 34 34 30 20 6f 73 62 79 74 65 3d 26 46 |. 440 osbyte=&F| 00001eb0 46 46 34 0d 20 20 34 35 30 20 46 4f 52 20 70 61 |FF4. 450 FOR pa| 00001ec0 73 73 3d 30 20 54 4f 20 32 20 53 54 45 50 20 32 |ss=0 TO 2 STEP 2| 00001ed0 0d 20 20 34 36 30 20 50 25 3d 6d 63 6f 64 65 0d |. 460 P%=mcode.| 00001ee0 20 20 34 37 30 20 5b 20 20 20 20 20 20 20 4f 50 | 470 [ OP| 00001ef0 54 20 70 61 73 73 0d 20 20 34 38 30 20 20 20 20 |T pass. 480 | 00001f00 20 20 20 20 20 4a 53 52 20 63 6c 65 61 72 6d 61 | JSR clearma| 00001f10 72 6b 20 5c 20 73 65 74 20 75 70 20 66 6f 72 20 |rk \ set up for | 00001f20 73 65 61 72 63 68 69 6e 67 0d 20 20 34 39 30 20 |searching. 490 | 00001f30 20 20 20 20 20 20 20 20 4c 44 58 20 69 72 71 32 | LDX irq2| 00001f40 76 20 20 20 20 20 5c 20 6c 6f 61 64 20 73 65 63 |v \ load sec| 00001f50 6f 6e 64 61 72 79 20 69 6e 74 65 72 72 75 70 74 |ondary interrupt| 00001f60 20 76 65 63 74 6f 72 0d 20 20 35 30 30 20 20 20 | vector. 500 | 00001f70 20 20 20 20 20 20 4c 44 59 20 69 72 71 32 76 2b | LDY irq2v+| 00001f80 31 0d 20 20 35 31 30 20 20 20 20 20 20 20 20 20 |1. 510 | 00001f90 53 54 58 20 6f 6c 64 69 72 71 32 76 20 20 5c 20 |STX oldirq2v \ | 00001fa0 73 61 76 65 20 73 65 63 6f 6e 64 61 72 79 20 69 |save secondary i| 00001fb0 6e 74 65 72 72 75 70 74 20 76 65 63 74 6f 72 0d |nterrupt vector.| 00001fc0 20 20 35 32 30 20 20 20 20 20 20 20 20 20 53 54 | 520 ST| 00001fd0 59 20 6f 6c 64 69 72 71 32 76 2b 31 0d 20 20 35 |Y oldirq2v+1. 5| 00001fe0 33 30 20 20 20 20 20 20 20 20 20 4c 44 58 20 23 |30 LDX #| 00001ff0 69 6e 74 65 72 72 75 70 74 20 4d 4f 44 20 32 35 |interrupt MOD 25| 00002000 36 20 5c 20 69 6e 73 74 61 6c 6c 20 6e 65 77 20 |6 \ install new | 00002010 69 6e 74 65 72 72 75 70 74 20 72 6f 75 74 69 6e |interrupt routin| 00002020 65 0d 20 20 35 34 30 20 20 20 20 20 20 20 20 20 |e. 540 | 00002030 4c 44 59 20 23 69 6e 74 65 72 72 75 70 74 20 44 |LDY #interrupt D| 00002040 49 56 20 32 35 36 0d 20 20 35 35 30 20 20 20 20 |IV 256. 550 | 00002050 20 20 20 20 20 53 45 49 20 20 20 20 20 20 20 20 | SEI | 00002060 20 20 20 5c 20 64 69 73 61 62 6c 65 20 69 6e 74 | \ disable int| 00002070 65 72 72 75 70 74 73 20 77 68 65 6e 20 61 6c 74 |errupts when alt| 00002080 65 72 69 6e 67 20 76 65 63 74 6f 72 73 0d 20 20 |ering vectors. | 00002090 35 36 30 20 20 20 20 20 20 20 20 20 53 54 58 20 |560 STX | 000020a0 69 72 71 32 76 0d 20 20 35 37 30 20 20 20 20 20 |irq2v. 570 | 000020b0 20 20 20 20 53 54 59 20 69 72 71 32 76 2b 31 0d | STY irq2v+1.| 000020c0 20 20 35 38 30 20 20 20 20 20 20 20 20 20 43 4c | 580 CL| 000020d0 49 20 20 20 20 20 20 20 20 20 20 20 5c 20 72 65 |I \ re| 000020e0 2d 65 6e 61 62 6c 65 20 69 6e 74 65 72 72 75 70 |-enable interrup| 000020f0 74 73 0d 20 20 35 39 30 20 20 20 20 20 20 20 20 |ts. 590 | 00002100 20 4c 44 41 20 63 68 61 6e 6e 65 6c 20 20 20 5c | LDA channel \| 00002110 20 6c 6f 61 64 20 28 63 68 61 6e 6e 65 6c 20 6e | load (channel n| 00002120 75 6d 62 65 72 20 2b 20 23 26 31 43 29 0d 20 20 |umber + #&1C). | 00002130 36 30 30 20 20 20 20 20 20 20 20 20 53 54 41 20 |600 STA | 00002140 74 74 78 63 6f 6e 74 72 6f 6c 20 5c 20 65 6e 61 |ttxcontrol \ ena| 00002150 62 6c 65 20 54 54 58 0d 20 20 36 31 30 20 2e 6d |ble TTX. 610 .m| 00002160 61 69 6e 6c 6f 6f 70 0d 20 20 36 32 30 20 20 20 |ainloop. 620 | 00002170 20 20 20 20 20 20 4c 44 41 20 67 72 61 62 66 6c | LDA grabfl| 00002180 61 67 20 20 5c 20 74 65 73 74 20 74 6f 20 73 65 |ag \ test to se| 00002190 65 20 69 66 20 70 61 67 65 20 67 72 61 62 62 65 |e if page grabbe| 000021a0 64 0d 20 20 36 33 30 20 20 20 20 20 20 20 20 20 |d. 630 | 000021b0 43 4d 50 20 23 26 43 30 20 20 20 20 20 20 5c 20 |CMP #&C0 \ | 000021c0 26 43 30 20 3d 20 70 61 67 65 20 67 72 61 62 62 |&C0 = page grabb| 000021d0 65 64 20 61 6e 64 20 72 65 61 64 79 20 74 6f 20 |ed and ready to | 000021e0 70 72 69 6e 74 0d 20 20 36 34 30 20 20 20 20 20 |print. 640 | 000021f0 20 20 20 20 42 4e 45 20 63 6f 6e 74 69 6e 75 65 | BNE continue| 00002200 20 20 5c 20 62 72 61 6e 63 68 20 69 66 20 6e 6f | \ branch if no| 00002210 74 20 72 65 61 64 79 0d 20 20 36 35 30 20 20 20 |t ready. 650 | 00002220 20 20 20 20 20 20 4a 53 52 20 63 68 65 63 6b 64 | JSR checkd| 00002230 6f 75 62 6c 65 20 5c 20 6c 6f 6f 6b 20 66 6f 72 |ouble \ look for| 00002240 20 64 6f 75 62 6c 65 20 68 65 69 67 68 74 20 6c | double height l| 00002250 69 6e 65 73 0d 20 20 36 36 30 20 20 20 20 20 20 |ines. 660 | 00002260 20 20 20 4a 53 52 20 74 72 61 6e 73 66 65 72 20 | JSR transfer | 00002270 20 5c 20 74 72 61 6e 73 66 65 72 20 64 61 74 61 | \ transfer data| 00002280 20 74 6f 20 73 63 72 65 65 6e 0d 20 20 36 37 30 | to screen. 670| 00002290 20 20 20 20 20 20 20 20 20 4a 53 52 20 63 6c 65 | JSR cle| 000022a0 61 72 6d 61 72 6b 20 5c 20 73 74 61 72 74 20 73 |armark \ start s| 000022b0 65 61 72 63 68 69 6e 67 20 61 67 61 69 6e 0d 20 |earching again. | 000022c0 20 36 38 30 20 2e 63 6f 6e 74 69 6e 75 65 0d 20 | 680 .continue. | 000022d0 20 36 39 30 20 20 20 20 20 20 20 20 20 4c 44 58 | 690 LDX| 000022e0 20 23 26 30 30 20 20 20 20 20 20 5c 20 73 63 72 | #&00 \ scr| 000022f0 65 65 6e 20 72 6f 77 0d 20 20 37 30 30 20 20 20 |een row. 700 | 00002300 20 20 20 20 20 20 4c 44 59 20 23 26 30 38 20 20 | LDY #&08 | 00002310 20 20 20 20 5c 20 73 63 72 65 65 6e 20 63 6f 6c | \ screen col| 00002320 75 6d 6e 0d 20 20 37 31 30 20 20 20 20 20 20 20 |umn. 710 | 00002330 20 20 4a 53 52 20 76 64 75 33 31 20 20 20 20 20 | JSR vdu31 | 00002340 5c 20 56 44 55 20 33 31 2c 38 2c 30 0d 20 20 37 |\ VDU 31,8,0. 7| 00002350 32 30 20 2e 68 65 61 64 6c 6f 6f 70 0d 20 20 37 |20 .headloop. 7| 00002360 33 30 20 20 20 20 20 20 20 20 20 4c 44 41 20 62 |30 LDA b| 00002370 75 66 66 65 72 2c 59 0d 20 20 37 34 30 20 20 20 |uffer,Y. 740 | 00002380 20 20 20 20 20 20 4a 53 52 20 6f 73 77 72 63 68 | JSR oswrch| 00002390 20 20 20 20 5c 20 77 72 69 74 65 20 68 65 61 64 | \ write head| 000023a0 65 72 20 6f 6e 20 73 63 72 65 65 6e 0d 20 20 37 |er on screen. 7| 000023b0 35 30 20 20 20 20 20 20 20 20 20 49 4e 59 0d 20 |50 INY. | 000023c0 20 37 36 30 20 20 20 20 20 20 20 20 20 43 50 59 | 760 CPY| 000023d0 20 23 26 32 38 20 20 20 20 20 20 5c 20 64 65 63 | #&28 \ dec| 000023e0 69 6d 61 6c 20 34 30 0d 20 20 37 37 30 20 20 20 |imal 40. 770 | 000023f0 20 20 20 20 20 20 42 43 43 20 68 65 61 64 6c 6f | BCC headlo| 00002400 6f 70 0d 20 20 37 38 30 20 20 20 20 20 20 20 20 |op. 780 | 00002410 20 42 49 54 20 26 46 46 20 20 20 20 20 20 20 5c | BIT &FF \| 00002420 20 70 6f 6c 6c 20 65 73 63 61 70 65 20 66 6c 61 | poll escape fla| 00002430 67 0d 20 20 37 39 30 20 20 20 20 20 20 20 20 20 |g. 790 | 00002440 42 50 4c 20 6d 61 69 6e 6c 6f 6f 70 20 20 5c 20 |BPL mainloop \ | 00002450 6c 6f 6f 70 20 69 66 20 65 73 63 61 70 65 20 6e |loop if escape n| 00002460 6f 74 20 70 72 65 73 73 65 64 0d 20 20 38 30 30 |ot pressed. 800| 00002470 20 20 20 20 20 20 20 20 20 4c 44 41 20 23 26 37 | LDA #&7| 00002480 45 20 20 20 20 20 20 5c 20 64 65 63 69 6d 61 6c |E \ decimal| 00002490 20 31 32 36 0d 20 20 38 31 30 20 20 20 20 20 20 | 126. 810 | 000024a0 20 20 20 4a 53 52 20 6f 73 62 79 74 65 20 20 20 | JSR osbyte | 000024b0 20 5c 20 61 63 6b 6e 6f 77 6c 65 64 67 65 20 65 | \ acknowledge e| 000024c0 73 63 61 70 65 0d 20 20 38 32 30 20 20 20 20 20 |scape. 820 | 000024d0 20 20 20 20 4c 44 41 20 23 26 30 30 0d 20 20 38 | LDA #&00. 8| 000024e0 33 30 20 20 20 20 20 20 20 20 20 53 54 41 20 74 |30 STA t| 000024f0 74 78 63 6f 6e 74 72 6f 6c 20 5c 20 64 69 73 61 |txcontrol \ disa| 00002500 62 6c 65 20 54 54 58 0d 20 20 38 34 30 20 20 20 |ble TTX. 840 | 00002510 20 20 20 20 20 20 4c 44 58 20 6f 6c 64 69 72 71 | LDX oldirq| 00002520 32 76 20 20 5c 20 6c 6f 61 64 20 6f 72 69 67 69 |2v \ load origi| 00002530 6e 61 6c 20 76 65 63 74 6f 72 0d 20 20 38 35 30 |nal vector. 850| 00002540 20 20 20 20 20 20 20 20 20 4c 44 59 20 6f 6c 64 | LDY old| 00002550 69 72 71 32 76 2b 31 0d 20 20 38 36 30 20 20 20 |irq2v+1. 860 | 00002560 20 20 20 20 20 20 53 45 49 20 20 20 20 20 20 20 | SEI | 00002570 20 20 20 20 5c 20 64 69 73 61 62 6c 65 20 69 6e | \ disable in| 00002580 74 65 72 72 75 70 74 73 20 77 68 65 6e 20 61 6c |terrupts when al| 00002590 74 65 72 69 6e 67 20 76 65 63 74 6f 72 73 0d 20 |tering vectors. | 000025a0 20 38 37 30 20 20 20 20 20 20 20 20 20 53 54 58 | 870 STX| 000025b0 20 69 72 71 32 76 20 20 20 20 20 5c 20 72 65 73 | irq2v \ res| 000025c0 74 6f 72 65 20 6f 72 69 67 69 6e 61 6c 20 76 65 |tore original ve| 000025d0 63 74 6f 72 0d 20 20 38 38 30 20 20 20 20 20 20 |ctor. 880 | 000025e0 20 20 20 53 54 59 20 69 72 71 32 76 2b 31 0d 20 | STY irq2v+1. | 000025f0 20 38 39 30 20 20 20 20 20 20 20 20 20 43 4c 49 | 890 CLI| 00002600 20 20 20 20 20 20 20 20 20 20 20 5c 20 72 65 2d | \ re-| 00002610 65 6e 61 62 6c 65 20 69 6e 74 65 72 72 75 70 74 |enable interrupt| 00002620 73 0d 20 20 39 30 30 20 20 20 20 20 20 20 20 20 |s. 900 | 00002630 52 54 53 20 20 20 20 20 20 20 20 20 20 20 5c 20 |RTS \ | 00002640 72 65 74 75 72 6e 20 74 6f 20 42 41 53 49 43 0d |return to BASIC.| 00002650 20 20 39 31 30 20 2e 69 6e 74 65 72 72 75 70 74 | 910 .interrupt| 00002660 0d 20 20 39 32 30 20 20 20 20 20 20 20 20 20 42 |. 920 B| 00002670 49 54 20 74 74 78 73 74 61 74 75 73 20 5c 20 70 |IT ttxstatus \ p| 00002680 6f 6c 6c 20 54 54 58 20 68 61 72 64 77 61 72 65 |oll TTX hardware| 00002690 0d 20 20 39 33 30 20 20 20 20 20 20 20 20 20 42 |. 930 B| 000026a0 4d 49 20 74 74 78 69 6e 74 65 72 20 20 5c 20 62 |MI ttxinter \ b| 000026b0 72 61 6e 63 68 20 69 66 20 54 54 58 20 69 6e 74 |ranch if TTX int| 000026c0 65 72 72 75 70 74 0d 20 20 39 34 30 20 20 20 20 |errupt. 940 | 000026d0 20 20 20 20 20 4a 4d 50 20 28 6f 6c 64 69 72 71 | JMP (oldirq| 000026e0 32 76 29 20 5c 20 6e 6f 74 20 54 54 58 20 69 6e |2v) \ not TTX in| 000026f0 74 65 72 72 75 70 74 0d 20 20 39 35 30 20 2e 74 |terrupt. 950 .t| 00002700 74 78 69 6e 74 65 72 0d 20 20 39 36 30 20 20 20 |txinter. 960 | 00002710 20 20 20 20 20 20 4c 44 41 20 26 46 43 20 20 20 | LDA &FC | 00002720 20 20 20 20 5c 20 69 6e 74 65 72 72 75 70 74 20 | \ interrupt | 00002730 61 63 63 75 6d 75 6c 61 74 6f 72 20 73 61 76 65 |accumulator save| 00002740 20 72 65 67 69 73 74 65 72 0d 20 20 39 37 30 20 | register. 970 | 00002750 20 20 20 20 20 20 20 20 50 48 41 20 20 20 20 20 | PHA | 00002760 20 20 20 20 20 20 5c 20 70 75 73 68 20 69 6e 74 | \ push int| 00002770 65 72 72 75 70 74 20 61 63 63 75 6d 75 6c 61 74 |errupt accumulat| 00002780 6f 72 20 73 61 76 65 20 72 65 67 69 73 74 65 72 |or save register| 00002790 0d 20 20 39 38 30 20 20 20 20 20 20 20 20 20 54 |. 980 T| 000027a0 58 41 0d 20 20 39 39 30 20 20 20 20 20 20 20 20 |XA. 990 | 000027b0 20 50 48 41 20 20 20 20 20 20 20 20 20 20 20 5c | PHA \| 000027c0 20 70 75 73 68 20 58 0d 20 31 30 30 30 20 20 20 | push X. 1000 | 000027d0 20 20 20 20 20 20 54 59 41 0d 20 31 30 31 30 20 | TYA. 1010 | 000027e0 20 20 20 20 20 20 20 20 50 48 41 20 20 20 20 20 | PHA | 000027f0 20 20 20 20 20 20 5c 20 70 75 73 68 20 59 0d 20 | \ push Y. | 00002800 31 30 32 30 20 20 20 20 20 20 20 20 20 4c 44 41 |1020 LDA| 00002810 20 67 72 61 62 66 6c 61 67 20 20 5c 20 69 73 20 | grabflag \ is | 00002820 61 20 70 61 67 65 20 77 61 69 74 69 6e 67 20 74 |a page waiting t| 00002830 6f 20 62 65 20 64 69 73 70 6c 61 79 65 64 3f 0d |o be displayed?.| 00002840 20 31 30 33 30 20 20 20 20 20 20 20 20 20 43 4d | 1030 CM| 00002850 50 20 23 26 43 30 20 20 20 20 20 20 5c 20 26 43 |P #&C0 \ &C| 00002860 30 20 3d 20 70 61 67 65 20 67 72 61 62 62 65 64 |0 = page grabbed| 00002870 0d 20 31 30 34 30 20 20 20 20 20 20 20 20 20 42 |. 1040 B| 00002880 45 51 20 63 6c 65 61 72 73 74 61 74 75 73 20 5c |EQ clearstatus \| 00002890 20 63 6c 65 61 72 20 73 74 61 74 75 73 20 61 6e | clear status an| 000028a0 64 20 52 54 49 20 69 66 20 70 61 67 65 20 67 72 |d RTI if page gr| 000028b0 61 62 62 65 64 0d 20 31 30 35 30 20 20 20 20 20 |abbed. 1050 | 000028c0 20 20 20 20 43 4c 44 20 20 20 20 20 20 20 20 20 | CLD | 000028d0 20 20 5c 20 63 6c 65 61 72 20 64 65 63 69 6d 61 | \ clear decima| 000028e0 6c 20 66 6c 61 67 0d 20 31 30 36 30 20 2e 73 74 |l flag. 1060 .st| 000028f0 61 72 74 72 6f 77 0d 20 31 30 37 30 20 20 20 20 |artrow. 1070 | 00002900 20 20 20 20 20 4c 44 59 20 23 26 30 30 20 20 20 | LDY #&00 | 00002910 20 20 20 5c 20 73 74 61 72 74 20 77 69 74 68 20 | \ start with | 00002920 72 6f 77 20 30 0d 20 31 30 38 30 20 2e 72 65 61 |row 0. 1080 .rea| 00002930 64 74 74 78 74 0d 20 31 30 39 30 20 20 20 20 20 |dttxt. 1090 | 00002940 20 20 20 20 53 54 59 20 72 6f 77 72 65 67 20 20 | STY rowreg | 00002950 20 20 5c 20 74 72 79 20 72 6f 77 73 20 30 20 74 | \ try rows 0 t| 00002960 6f 20 31 35 0d 20 31 31 30 30 20 20 20 20 20 20 |o 15. 1100 | 00002970 20 20 20 4c 44 41 20 64 61 74 61 72 65 67 20 20 | LDA datareg | 00002980 20 5c 20 6c 6f 61 64 20 66 72 61 6d 69 6e 67 20 | \ load framing | 00002990 63 6f 64 65 20 28 23 26 32 37 29 0d 20 31 31 31 |code (#&27). 111| 000029a0 30 20 20 20 20 20 20 20 20 20 42 45 51 20 65 6d |0 BEQ em| 000029b0 70 74 79 72 6f 77 20 20 5c 20 69 66 20 7a 65 72 |ptyrow \ if zer| 000029c0 6f 20 74 72 79 20 6e 65 78 74 20 72 6f 77 0d 20 |o try next row. | 000029d0 31 31 32 30 20 20 20 20 20 20 20 20 20 54 59 41 |1120 TYA| 000029e0 0d 20 31 31 33 30 20 20 20 20 20 20 20 20 20 50 |. 1130 P| 000029f0 48 41 20 20 20 20 20 20 20 20 20 20 20 5c 20 73 |HA \ s| 00002a00 61 76 65 20 72 6f 77 20 6e 75 6d 62 65 72 0d 20 |ave row number. | 00002a10 31 31 34 30 20 20 20 20 20 20 20 20 20 4a 53 52 |1140 JSR| 00002a20 20 72 65 61 64 70 61 63 6b 65 74 0d 20 31 31 35 | readpacket. 115| 00002a30 30 20 20 20 20 20 20 20 20 20 50 4c 41 0d 20 31 |0 PLA. 1| 00002a40 31 36 30 20 20 20 20 20 20 20 20 20 54 41 59 20 |160 TAY | 00002a50 20 20 20 20 20 20 20 20 20 20 5c 20 72 65 73 74 | \ rest| 00002a60 6f 72 65 20 72 6f 77 20 6e 75 6d 62 65 72 0d 20 |ore row number. | 00002a70 31 31 37 30 20 2e 65 6d 70 74 79 72 6f 77 0d 20 |1170 .emptyrow. | 00002a80 31 31 38 30 20 20 20 20 20 20 20 20 20 49 4e 59 |1180 INY| 00002a90 20 20 20 20 20 20 20 20 20 20 20 5c 20 69 6e 63 | \ inc| 00002aa0 72 65 6d 65 6e 74 20 72 6f 77 20 6e 75 6d 62 65 |rement row numbe| 00002ab0 72 0d 20 31 31 39 30 20 20 20 20 20 20 20 20 20 |r. 1190 | 00002ac0 43 50 59 20 23 26 31 30 20 20 20 20 20 20 5c 20 |CPY #&10 \ | 00002ad0 74 72 79 20 72 6f 77 73 20 30 20 2d 20 31 35 0d |try rows 0 - 15.| 00002ae0 20 31 32 30 30 20 20 20 20 20 20 20 20 20 42 4e | 1200 BN| 00002af0 45 20 72 65 61 64 74 74 78 74 0d 20 31 32 31 30 |E readttxt. 1210| 00002b00 20 2e 63 6c 65 61 72 73 74 61 74 75 73 0d 20 31 | .clearstatus. 1| 00002b10 32 32 30 20 20 20 20 20 20 20 20 20 4c 44 41 20 |220 LDA | 00002b20 23 26 30 30 0d 20 31 32 33 30 20 20 20 20 20 20 |#&00. 1230 | 00002b30 20 20 20 4c 44 59 20 23 26 30 46 20 20 20 20 20 | LDY #&0F | 00002b40 20 5c 20 63 6c 65 61 72 20 31 36 20 72 6f 77 73 | \ clear 16 rows| 00002b50 20 69 6e 20 61 64 61 70 74 6f 72 0d 20 31 32 34 | in adaptor. 124| 00002b60 30 20 2e 63 6c 65 61 72 6c 6f 6f 70 0d 20 31 32 |0 .clearloop. 12| 00002b70 35 30 20 20 20 20 20 20 20 20 20 53 54 59 20 72 |50 STY r| 00002b80 6f 77 72 65 67 0d 20 31 32 36 30 20 20 20 20 20 |owreg. 1260 | 00002b90 20 20 20 20 53 54 41 20 64 61 74 61 72 65 67 0d | STA datareg.| 00002ba0 20 31 32 37 30 20 20 20 20 20 20 20 20 20 44 45 | 1270 DE| 00002bb0 59 0d 20 31 32 38 30 20 20 20 20 20 20 20 20 20 |Y. 1280 | 00002bc0 42 50 4c 20 63 6c 65 61 72 6c 6f 6f 70 0d 20 31 |BPL clearloop. 1| 00002bd0 32 39 30 20 20 20 20 20 20 20 20 20 53 54 41 20 |290 STA | 00002be0 73 74 61 74 63 6c 72 20 20 20 5c 20 63 6c 65 61 |statclr \ clea| 00002bf0 72 20 73 74 61 74 75 73 20 66 6c 61 67 73 20 62 |r status flags b| 00002c00 65 66 6f 72 65 20 72 65 74 75 72 6e 69 6e 67 0d |efore returning.| 00002c10 20 31 33 30 30 20 20 20 20 20 20 20 20 20 50 4c | 1300 PL| 00002c20 41 0d 20 31 33 31 30 20 20 20 20 20 20 20 20 20 |A. 1310 | 00002c30 54 41 59 20 20 20 20 20 20 20 20 20 20 20 5c 20 |TAY \ | 00002c40 72 65 73 74 6f 72 65 20 59 0d 20 31 33 32 30 20 |restore Y. 1320 | 00002c50 20 20 20 20 20 20 20 20 50 4c 41 0d 20 31 33 33 | PLA. 133| 00002c60 30 20 20 20 20 20 20 20 20 20 54 41 58 20 20 20 |0 TAX | 00002c70 20 20 20 20 20 20 20 20 5c 20 72 65 73 74 6f 72 | \ restor| 00002c80 65 20 58 0d 20 31 33 34 30 20 20 20 20 20 20 20 |e X. 1340 | 00002c90 20 20 50 4c 41 0d 20 31 33 35 30 20 20 20 20 20 | PLA. 1350 | 00002ca0 20 20 20 20 53 54 41 20 26 46 43 20 20 20 20 20 | STA &FC | 00002cb0 20 20 5c 20 72 65 73 74 6f 72 65 20 69 6e 74 65 | \ restore inte| 00002cc0 72 72 75 70 74 20 61 63 63 75 6d 75 6c 61 74 6f |rrupt accumulato| 00002cd0 72 20 73 61 76 65 20 72 65 67 69 73 74 65 72 0d |r save register.| 00002ce0 20 31 33 36 30 20 20 20 20 20 20 20 20 20 52 54 | 1360 RT| 00002cf0 49 20 20 20 20 20 20 20 20 20 20 20 5c 20 72 65 |I \ re| 00002d00 74 75 72 6e 20 66 72 6f 6d 20 69 6e 74 65 72 72 |turn from interr| 00002d10 75 70 74 0d 20 31 33 37 30 20 2e 72 65 61 64 70 |upt. 1370 .readp| 00002d20 61 63 6b 65 74 0d 20 31 33 38 30 20 20 20 20 20 |acket. 1380 | 00002d30 20 20 20 20 4c 44 59 20 64 61 74 61 72 65 67 20 | LDY datareg | 00002d40 20 20 5c 20 72 65 61 64 20 6d 61 67 61 7a 69 6e | \ read magazin| 00002d50 65 20 6e 75 6d 62 65 72 0d 20 31 33 39 30 20 20 |e number. 1390 | 00002d60 20 20 20 20 20 20 20 4c 44 41 20 68 61 6d 74 61 | LDA hamta| 00002d70 62 6c 65 2c 59 20 5c 20 64 65 2d 68 61 6d 20 69 |ble,Y \ de-ham i| 00002d80 74 0d 20 31 34 30 30 20 20 20 20 20 20 20 20 20 |t. 1400 | 00002d90 42 4d 49 20 63 6c 65 61 72 67 72 61 62 20 5c 20 |BMI cleargrab \ | 00002da0 73 74 6f 70 20 6c 6f 61 64 69 6e 67 20 69 66 20 |stop loading if | 00002db0 65 72 72 6f 72 0d 20 31 34 31 30 20 20 20 20 20 |error. 1410 | 00002dc0 20 20 20 20 53 54 41 20 6d 61 67 61 7a 69 6e 65 | STA magazine| 00002dd0 20 20 5c 20 73 61 76 65 20 6d 61 67 61 7a 69 6e | \ save magazin| 00002de0 65 20 6e 75 6d 62 65 72 0d 20 31 34 32 30 20 20 |e number. 1420 | 00002df0 20 20 20 20 20 20 20 4c 44 59 20 64 61 74 61 72 | LDY datar| 00002e00 65 67 20 20 20 5c 20 72 65 61 64 20 70 61 63 6b |eg \ read pack| 00002e10 65 74 20 6e 75 6d 62 65 72 0d 20 31 34 33 30 20 |et number. 1430 | 00002e20 20 20 20 20 20 20 20 20 4c 44 41 20 68 61 6d 74 | LDA hamt| 00002e30 61 62 6c 65 2c 59 20 5c 20 64 65 2d 68 61 6d 20 |able,Y \ de-ham | 00002e40 69 74 0d 20 31 34 34 30 20 20 20 20 20 20 20 20 |it. 1440 | 00002e50 20 42 4d 49 20 63 6c 65 61 72 67 72 61 62 20 5c | BMI cleargrab \| 00002e60 20 73 74 6f 70 20 6c 6f 61 64 69 6e 67 20 69 66 | stop loading if| 00002e70 20 65 72 72 6f 72 0d 20 31 34 35 30 20 20 20 20 | error. 1450 | 00002e80 20 20 20 20 20 53 54 41 20 70 61 63 6b 65 74 20 | STA packet | 00002e90 20 20 20 5c 20 73 61 76 65 20 70 61 63 6b 65 74 | \ save packet| 00002ea0 20 6e 75 6d 62 65 72 0d 20 31 34 36 30 20 20 20 | number. 1460 | 00002eb0 20 20 20 20 20 20 4c 44 41 20 6d 61 67 61 7a 69 | LDA magazi| 00002ec0 6e 65 20 20 5c 20 6c 6f 61 64 20 6d 61 67 61 7a |ne \ load magaz| 00002ed0 69 6e 65 20 6e 75 6d 62 65 72 0d 20 31 34 37 30 |ine number. 1470| 00002ee0 20 20 20 20 20 20 20 20 20 43 4d 50 20 23 26 30 | CMP #&0| 00002ef0 38 20 20 20 20 20 20 5c 20 62 69 74 20 33 20 6f |8 \ bit 3 o| 00002f00 66 20 6d 61 67 2e 20 6e 75 6d 62 65 72 20 69 73 |f mag. number is| 00002f10 20 62 69 74 20 30 20 6f 66 20 70 61 63 6b 65 74 | bit 0 of packet| 00002f20 0d 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |. | 00002f30 20 20 20 20 20 20 20 20 20 20 20 20 20 5c 20 6e | \ n| 00002f40 75 6d 62 65 72 0d 20 31 34 38 30 20 20 20 20 20 |umber. 1480 | 00002f50 20 20 20 20 52 4f 4c 20 70 61 63 6b 65 74 20 20 | ROL packet | 00002f60 20 20 5c 20 35 20 62 69 74 20 70 61 63 6b 65 74 | \ 5 bit packet| 00002f70 20 6e 75 6d 62 65 72 0d 20 31 34 39 30 20 20 20 | number. 1490 | 00002f80 20 20 20 20 20 20 41 4e 44 20 23 26 30 37 20 20 | AND #&07 | 00002f90 20 20 20 20 5c 20 75 73 65 20 6f 6e 6c 79 20 62 | \ use only b| 00002fa0 69 74 73 20 30 2d 32 0d 20 31 35 30 30 20 20 20 |its 0-2. 1500 | 00002fb0 20 20 20 20 20 20 53 54 41 20 6d 61 67 61 7a 69 | STA magazi| 00002fc0 6e 65 20 20 5c 20 33 20 62 69 74 20 6d 61 67 61 |ne \ 3 bit maga| 00002fd0 7a 69 6e 65 20 6e 75 6d 62 65 72 0d 20 31 35 31 |zine number. 151| 00002fe0 30 20 20 20 20 20 20 20 20 20 4c 44 41 20 70 61 |0 LDA pa| 00002ff0 63 6b 65 74 0d 20 31 35 32 30 20 20 20 20 20 20 |cket. 1520 | 00003000 20 20 20 43 4d 50 20 23 26 31 38 20 20 20 20 20 | CMP #&18 | 00003010 20 5c 20 69 67 6e 6f 72 65 20 54 53 44 50 2c 20 | \ ignore TSDP, | 00003020 44 61 74 61 63 61 73 74 2c 20 65 74 63 2e 0d 20 |Datacast, etc.. | 00003030 31 35 33 30 20 20 20 20 20 20 20 20 20 42 43 53 |1530 BCS| 00003040 20 65 78 69 74 20 20 20 20 20 20 5c 20 69 65 2e | exit \ ie.| 00003050 20 75 73 65 20 4c 65 76 65 6c 20 31 20 54 65 6c | use Level 1 Tel| 00003060 65 74 65 78 74 20 6f 6e 6c 79 0d 20 31 35 34 30 |etext only. 1540| 00003070 20 20 20 20 20 20 20 20 20 50 48 41 20 20 20 20 | PHA | 00003080 20 20 20 20 20 20 20 5c 20 70 75 73 68 20 70 61 | \ push pa| 00003090 63 6b 65 74 20 6e 75 6d 62 65 72 0d 20 31 35 35 |cket number. 155| 000030a0 30 20 20 20 20 20 20 20 20 20 41 53 4c 20 41 20 |0 ASL A | 000030b0 20 20 20 20 20 20 20 20 5c 20 70 61 63 6b 65 74 | \ packet| 000030c0 20 6e 75 6d 62 65 72 20 2a 20 32 0d 20 31 35 36 | number * 2. 156| 000030d0 30 20 20 20 20 20 20 20 20 20 54 41 59 0d 20 31 |0 TAY. 1| 000030e0 35 37 30 20 20 20 20 20 20 20 20 20 4c 44 41 20 |570 LDA | 000030f0 62 75 66 66 74 61 62 6c 65 2c 59 20 5c 20 6c 6f |bufftable,Y \ lo| 00003100 61 64 20 62 75 66 66 65 72 20 61 64 64 72 65 73 |ad buffer addres| 00003110 73 2c 20 6c 73 62 0d 20 31 35 38 30 20 20 20 20 |s, lsb. 1580 | 00003120 20 20 20 20 20 53 54 41 20 77 6f 72 6b 73 70 61 | STA workspa| 00003130 63 65 20 5c 20 73 74 6f 72 65 20 69 6e 20 7a 65 |ce \ store in ze| 00003140 72 6f 20 70 61 67 65 0d 20 31 35 39 30 20 20 20 |ro page. 1590 | 00003150 20 20 20 20 20 20 4c 44 41 20 62 75 66 66 74 61 | LDA buffta| 00003160 62 6c 65 2b 31 2c 59 20 5c 20 6c 6f 61 64 20 62 |ble+1,Y \ load b| 00003170 75 66 66 65 72 20 61 64 64 72 65 73 73 2c 20 6d |uffer address, m| 00003180 73 62 0d 20 31 36 30 30 20 20 20 20 20 20 20 20 |sb. 1600 | 00003190 20 53 54 41 20 77 6f 72 6b 73 70 61 63 65 2b 31 | STA workspace+1| 000031a0 20 5c 20 73 74 6f 72 65 20 69 6e 20 7a 65 72 6f | \ store in zero| 000031b0 20 70 61 67 65 0d 20 31 36 31 30 20 20 20 20 20 | page. 1610 | 000031c0 20 20 20 20 50 4c 41 20 20 20 20 20 20 20 20 20 | PLA | 000031d0 20 20 5c 20 70 75 6c 6c 20 70 61 63 6b 65 74 20 | \ pull packet | 000031e0 6e 75 6d 62 65 72 0d 20 31 36 32 30 20 20 20 20 |number. 1620 | 000031f0 20 20 20 20 20 43 4d 50 20 23 26 30 30 20 20 20 | CMP #&00 | 00003200 20 20 20 5c 20 69 73 20 69 74 20 61 20 68 65 61 | \ is it a hea| 00003210 64 65 72 3f 0d 20 31 36 33 30 20 20 20 20 20 20 |der?. 1630 | 00003220 20 20 20 42 4e 45 20 6e 6f 74 68 65 61 64 65 72 | BNE notheader| 00003230 0d 20 31 36 34 30 20 20 20 20 20 20 20 20 20 54 |. 1640 T| 00003240 41 58 20 20 20 20 20 20 20 20 20 20 20 5c 20 69 |AX \ i| 00003250 6e 69 74 20 69 6e 64 65 78 20 66 6f 72 20 68 61 |nit index for ha| 00003260 6d 6d 65 64 20 64 61 74 61 0d 20 31 36 35 30 20 |mmed data. 1650 | 00003270 2e 72 65 61 64 68 65 61 64 65 72 0d 20 31 36 36 |.readheader. 166| 00003280 30 20 20 20 20 20 20 20 20 20 4c 44 59 20 64 61 |0 LDY da| 00003290 74 61 72 65 67 20 20 20 5c 20 72 65 61 64 20 64 |tareg \ read d| 000032a0 61 74 61 20 72 65 67 69 73 74 65 72 0d 20 31 36 |ata register. 16| 000032b0 37 30 20 20 20 20 20 20 20 20 20 4c 44 41 20 68 |70 LDA h| 000032c0 61 6d 74 61 62 6c 65 2c 59 20 5c 20 64 65 2d 68 |amtable,Y \ de-h| 000032d0 61 6d 20 69 74 0d 20 31 36 38 30 20 20 20 20 20 |am it. 1680 | 000032e0 20 20 20 20 42 4d 49 20 63 6c 65 61 72 67 72 61 | BMI cleargra| 000032f0 62 20 5c 20 73 74 6f 70 20 6c 6f 61 64 69 6e 67 |b \ stop loading| 00003300 20 69 66 20 65 72 72 6f 72 0d 20 31 36 39 30 20 | if error. 1690 | 00003310 20 20 20 20 20 20 20 20 53 54 41 20 62 75 66 66 | STA buff| 00003320 65 72 2c 58 20 20 5c 20 73 74 6f 72 65 20 64 65 |er,X \ store de| 00003330 2d 68 61 6d 6d 65 64 20 64 61 74 61 0d 20 31 37 |-hammed data. 17| 00003340 30 30 20 20 20 20 20 20 20 20 20 49 4e 58 20 20 |00 INX | 00003350 20 20 20 20 20 20 20 20 20 5c 20 69 6e 63 72 65 | \ incre| 00003360 6d 65 6e 74 20 69 6e 64 65 78 0d 20 31 37 31 30 |ment index. 1710| 00003370 20 20 20 20 20 20 20 20 20 43 50 58 20 23 26 30 | CPX #&0| 00003380 38 20 20 20 20 20 20 5c 20 75 73 65 20 58 20 3d |8 \ use X =| 00003390 20 30 2d 37 0d 20 31 37 32 30 20 20 20 20 20 20 | 0-7. 1720 | 000033a0 20 20 20 42 43 43 20 72 65 61 64 68 65 61 64 65 | BCC readheade| 000033b0 72 20 5c 20 63 6f 6e 74 69 6e 75 65 20 72 65 61 |r \ continue rea| 000033c0 64 69 6e 67 20 68 61 6d 6d 65 64 20 64 61 74 61 |ding hammed data| 000033d0 0d 20 31 37 33 30 20 20 20 20 20 20 20 20 20 4c |. 1730 L| 000033e0 44 41 20 67 72 61 62 66 6c 61 67 20 20 5c 20 61 |DA grabflag \ a| 000033f0 72 65 20 77 65 20 6c 6f 61 64 69 6e 67 20 6f 72 |re we loading or| 00003400 20 73 65 61 72 63 68 69 6e 67 3f 0d 20 31 37 34 | searching?. 174| 00003410 30 20 20 20 20 20 20 20 20 20 42 45 51 20 63 68 |0 BEQ ch| 00003420 65 63 6b 73 74 61 72 74 20 5c 20 62 72 61 6e 63 |eckstart \ branc| 00003430 68 20 69 66 20 73 65 61 72 63 68 69 6e 67 0d 20 |h if searching. | 00003440 31 37 35 30 20 20 20 20 20 20 20 20 20 4c 44 41 |1750 LDA| 00003450 20 6d 61 67 61 7a 69 6e 65 20 20 5c 20 77 65 20 | magazine \ we | 00003460 6d 75 73 74 20 62 65 20 6c 6f 61 64 69 6e 67 20 |must be loading | 00003470 61 20 70 61 67 65 0d 20 31 37 36 30 20 20 20 20 |a page. 1760 | 00003480 20 20 20 20 20 43 4d 50 20 75 73 65 72 6d 61 67 | CMP usermag| 00003490 20 20 20 5c 20 69 73 20 69 74 20 74 68 65 20 6d | \ is it the m| 000034a0 61 67 61 7a 69 6e 65 20 77 65 20 77 61 6e 74 3f |agazine we want?| 000034b0 0d 20 31 37 37 30 20 20 20 20 20 20 20 20 20 42 |. 1770 B| 000034c0 4e 45 20 65 78 69 74 20 20 20 20 20 20 5c 20 62 |NE exit \ b| 000034d0 72 61 6e 63 68 20 69 66 20 6e 6f 74 20 74 68 65 |ranch if not the| 000034e0 20 6f 6e 65 20 77 65 20 77 61 6e 74 0d 20 31 37 | one we want. 17| 000034f0 38 30 20 20 20 20 20 20 20 20 20 4c 44 41 20 62 |80 LDA b| 00003500 75 66 66 65 72 20 20 20 20 5c 20 6c 6f 77 20 62 |uffer \ low b| 00003510 79 74 65 20 6f 66 20 70 61 67 65 20 6e 75 6d 62 |yte of page numb| 00003520 65 72 0d 20 31 37 39 30 20 20 20 20 20 20 20 20 |er. 1790 | 00003530 20 43 4d 50 20 75 73 65 72 70 61 67 65 20 20 5c | CMP userpage \| 00003540 20 69 73 20 74 68 69 73 20 74 68 65 20 73 61 6d | is this the sam| 00003550 65 20 61 73 20 74 68 65 20 6f 6e 65 20 77 65 20 |e as the one we | 00003560 61 72 65 20 6c 6f 61 64 69 6e 67 3f 0d 20 31 38 |are loading?. 18| 00003570 30 30 20 20 20 20 20 20 20 20 20 42 4e 45 20 65 |00 BNE e| 00003580 6e 64 66 6f 75 6e 64 20 20 5c 20 65 6e 64 20 6f |ndfound \ end o| 00003590 66 20 70 61 67 65 20 77 68 65 6e 20 64 69 66 66 |f page when diff| 000035a0 65 72 65 6e 74 0d 20 31 38 31 30 20 20 20 20 20 |erent. 1810 | 000035b0 20 20 20 20 4c 44 41 20 62 75 66 66 65 72 2b 31 | LDA buffer+1| 000035c0 0d 20 31 38 32 30 20 20 20 20 20 20 20 20 20 43 |. 1820 C| 000035d0 4d 50 20 75 73 65 72 70 61 67 65 2b 31 20 5c 20 |MP userpage+1 \ | 000035e0 69 73 20 74 68 69 73 20 74 68 65 20 73 61 6d 65 |is this the same| 000035f0 20 61 73 20 74 68 65 20 6f 6e 65 20 77 65 20 61 | as the one we a| 00003600 72 65 20 6c 6f 61 64 69 6e 67 3f 0d 20 31 38 33 |re loading?. 183| 00003610 30 20 20 20 20 20 20 20 20 20 42 45 51 20 65 78 |0 BEQ ex| 00003620 69 74 20 20 20 20 20 20 5c 20 6e 6f 74 20 65 6e |it \ not en| 00003630 64 20 6f 66 20 70 61 67 65 20 69 66 20 74 68 65 |d of page if the| 00003640 20 73 61 6d 65 0d 20 31 38 34 30 20 2e 65 6e 64 | same. 1840 .end| 00003650 66 6f 75 6e 64 0d 20 31 38 35 30 20 20 20 20 20 |found. 1850 | 00003660 20 20 20 20 4c 44 41 20 67 72 61 62 66 6c 61 67 | LDA grabflag| 00003670 20 20 5c 20 67 72 61 62 66 6c 61 67 20 3d 20 65 | \ grabflag = e| 00003680 69 74 68 65 72 20 23 26 34 30 20 6f 72 20 23 26 |ither #&40 or #&| 00003690 38 30 0d 20 31 38 36 30 20 20 20 20 20 20 20 20 |80. 1860 | 000036a0 20 4f 52 41 20 23 26 34 30 20 20 20 20 20 20 5c | ORA #&40 \| 000036b0 20 67 72 61 62 66 6c 61 67 20 3d 20 23 26 43 30 | grabflag = #&C0| 000036c0 20 69 66 20 6b 65 79 77 6f 72 64 20 66 6f 75 6e | if keyword foun| 000036d0 64 0d 20 31 38 37 30 20 20 20 20 20 20 20 20 20 |d. 1870 | 000036e0 53 54 41 20 67 72 61 62 66 6c 61 67 20 20 5c 20 |STA grabflag \ | 000036f0 75 70 64 61 74 65 20 67 72 61 62 66 6c 61 67 0d |update grabflag.| 00003700 20 31 38 38 30 20 20 20 20 20 20 20 20 20 42 4d | 1880 BM| 00003710 49 20 65 78 69 74 20 20 20 20 20 20 5c 20 62 72 |I exit \ br| 00003720 61 6e 63 68 20 69 66 20 67 72 61 62 66 6c 61 67 |anch if grabflag| 00003730 20 3d 20 23 26 43 30 0d 20 31 38 39 30 20 2e 63 | = #&C0. 1890 .c| 00003740 6c 65 61 72 67 72 61 62 0d 20 31 39 30 30 20 20 |leargrab. 1900 | 00003750 20 20 20 20 20 20 20 4a 53 52 20 63 6c 65 61 72 | JSR clear| 00003760 6d 61 72 6b 20 5c 20 73 74 61 72 74 20 73 65 61 |mark \ start sea| 00003770 72 63 68 69 6e 67 20 61 67 61 69 6e 0d 20 31 39 |rching again. 19| 00003780 31 30 20 2e 65 78 69 74 0d 20 31 39 32 30 20 20 |10 .exit. 1920 | 00003790 20 20 20 20 20 20 20 52 54 53 0d 20 31 39 33 30 | RTS. 1930| 000037a0 20 2e 63 68 65 63 6b 73 74 61 72 74 0d 20 31 39 | .checkstart. 19| 000037b0 34 30 20 20 20 20 20 20 20 20 20 4c 44 41 20 62 |40 LDA b| 000037c0 75 66 66 65 72 2b 35 20 20 5c 20 63 68 65 63 6b |uffer+5 \ check| 000037d0 20 66 6f 72 20 73 75 62 74 69 74 6c 65 0d 20 31 | for subtitle. 1| 000037e0 39 35 30 20 20 20 20 20 20 20 20 20 41 4e 44 20 |950 AND | 000037f0 23 26 30 38 20 20 20 20 20 20 5c 20 63 68 65 63 |#&08 \ chec| 00003800 6b 20 62 69 74 20 33 0d 20 31 39 36 30 20 20 20 |k bit 3. 1960 | 00003810 20 20 20 20 20 20 42 4e 45 20 64 69 73 70 6c 61 | BNE displa| 00003820 79 20 20 20 5c 20 64 6f 6e 27 74 20 6c 6f 61 64 |y \ don't load| 00003830 20 73 75 62 74 69 74 6c 65 0d 20 31 39 37 30 20 | subtitle. 1970 | 00003840 20 20 20 20 20 20 20 20 4c 44 41 20 62 75 66 66 | LDA buff| 00003850 65 72 20 20 20 20 5c 20 6c 6f 77 20 6e 79 62 62 |er \ low nybb| 00003860 6c 65 20 6f 66 20 63 75 72 72 65 6e 74 20 70 61 |le of current pa| 00003870 67 65 0d 20 31 39 38 30 20 20 20 20 20 20 20 20 |ge. 1980 | 00003880 20 43 4d 50 20 75 73 65 72 70 61 67 65 20 20 5c | CMP userpage \| 00003890 20 61 72 65 20 77 65 20 6c 6f 61 64 69 6e 67 20 | are we loading | 000038a0 69 74 3f 0d 20 31 39 39 30 20 20 20 20 20 20 20 |it?. 1990 | 000038b0 20 20 42 4e 45 20 6c 6f 61 64 69 74 20 20 20 20 | BNE loadit | 000038c0 5c 20 69 66 20 6e 6f 74 20 74 68 65 6e 20 6c 6f |\ if not then lo| 000038d0 61 64 20 69 74 0d 20 32 30 30 30 20 20 20 20 20 |ad it. 2000 | 000038e0 20 20 20 20 4c 44 41 20 62 75 66 66 65 72 2b 31 | LDA buffer+1| 000038f0 20 20 5c 20 68 69 67 68 20 6e 79 62 62 6c 65 20 | \ high nybble | 00003900 6f 66 20 63 75 72 72 65 6e 74 20 70 61 67 65 0d |of current page.| 00003910 20 32 30 31 30 20 20 20 20 20 20 20 20 20 43 4d | 2010 CM| 00003920 50 20 75 73 65 72 70 61 67 65 2b 31 20 5c 20 61 |P userpage+1 \ a| 00003930 72 65 20 77 65 20 6c 6f 61 64 69 6e 67 20 69 74 |re we loading it| 00003940 3f 0d 20 32 30 32 30 20 20 20 20 20 20 20 20 20 |?. 2020 | 00003950 42 45 51 20 64 69 73 70 6c 61 79 20 20 20 5c 20 |BEQ display \ | 00003960 69 66 20 6c 6f 61 64 69 6e 67 20 64 69 73 70 6c |if loading displ| 00003970 61 79 20 68 65 61 64 65 72 2c 20 69 66 20 6e 6f |ay header, if no| 00003980 74 20 6c 6f 61 64 20 70 61 67 65 0d 20 32 30 33 |t load page. 203| 00003990 30 20 2e 6c 6f 61 64 69 74 0d 20 32 30 34 30 20 |0 .loadit. 2040 | 000039a0 20 20 20 20 20 20 20 20 4c 44 41 20 23 26 34 30 | LDA #&40| 000039b0 20 20 20 20 20 20 5c 20 70 61 67 65 20 6c 6f 61 | \ page loa| 000039c0 64 69 6e 67 20 66 6c 61 67 0d 20 32 30 35 30 20 |ding flag. 2050 | 000039d0 20 20 20 20 20 20 20 20 53 54 41 20 67 72 61 62 | STA grab| 000039e0 66 6c 61 67 20 20 5c 20 6c 6f 61 64 20 74 68 69 |flag \ load thi| 000039f0 73 20 70 61 67 65 0d 20 32 30 36 30 20 20 20 20 |s page. 2060 | 00003a00 20 20 20 20 20 4c 44 41 20 6d 61 67 61 7a 69 6e | LDA magazin| 00003a10 65 20 20 5c 20 63 75 72 72 65 6e 74 20 6d 61 67 |e \ current mag| 00003a20 61 7a 69 6e 65 20 6e 75 6d 62 65 72 0d 20 32 30 |azine number. 20| 00003a30 37 30 20 20 20 20 20 20 20 20 20 53 54 41 20 75 |70 STA u| 00003a40 73 65 72 6d 61 67 20 20 20 5c 20 6c 6f 61 64 20 |sermag \ load | 00003a50 74 68 69 73 20 6d 61 67 61 7a 69 6e 65 0d 20 32 |this magazine. 2| 00003a60 30 38 30 20 20 20 20 20 20 20 20 20 4c 44 41 20 |080 LDA | 00003a70 62 75 66 66 65 72 20 20 20 20 5c 20 63 75 72 72 |buffer \ curr| 00003a80 65 6e 74 20 70 61 67 65 2c 20 6c 6f 77 20 6e 79 |ent page, low ny| 00003a90 62 62 6c 65 0d 20 32 30 39 30 20 20 20 20 20 20 |bble. 2090 | 00003aa0 20 20 20 53 54 41 20 75 73 65 72 70 61 67 65 20 | STA userpage | 00003ab0 20 5c 20 6c 6f 61 64 20 74 68 69 73 20 70 61 67 | \ load this pag| 00003ac0 65 0d 20 32 31 30 30 20 20 20 20 20 20 20 20 20 |e. 2100 | 00003ad0 4c 44 41 20 62 75 66 66 65 72 2b 31 20 20 5c 20 |LDA buffer+1 \ | 00003ae0 63 75 72 72 65 6e 74 20 70 61 67 65 2c 20 68 69 |current page, hi| 00003af0 67 68 20 6e 79 62 62 6c 65 0d 20 32 31 31 30 20 |gh nybble. 2110 | 00003b00 20 20 20 20 20 20 20 20 53 54 41 20 75 73 65 72 | STA user| 00003b10 70 61 67 65 2b 31 20 5c 20 6c 6f 61 64 20 74 68 |page+1 \ load th| 00003b20 69 73 20 70 61 67 65 0d 20 32 31 32 30 20 2e 64 |is page. 2120 .d| 00003b30 69 73 70 6c 61 79 0d 20 32 31 33 30 20 5c 20 20 |isplay. 2130 \ | 00003b40 20 20 20 20 20 4c 53 52 20 62 75 66 66 65 72 2b | LSR buffer+| 00003b50 36 20 20 5c 20 63 68 65 63 6b 20 66 6f 72 20 73 |6 \ check for s| 00003b60 75 70 70 72 65 73 73 20 68 65 61 64 65 72 0d 20 |uppress header. | 00003b70 32 31 34 30 20 5c 20 20 20 20 20 20 20 42 43 53 |2140 \ BCS| 00003b80 20 65 78 69 74 20 20 20 20 20 20 5c 20 64 6f 6e | exit \ don| 00003b90 27 74 20 62 6f 74 68 65 72 20 77 69 74 68 20 73 |'t bother with s| 00003ba0 75 70 70 72 65 73 73 65 64 20 68 65 61 64 65 72 |uppressed header| 00003bb0 73 0d 20 32 31 35 30 20 20 20 20 20 20 20 20 20 |s. 2150 | 00003bc0 4c 44 59 20 23 26 30 38 20 20 20 20 20 20 5c 20 |LDY #&08 \ | 00003bd0 68 65 61 64 65 72 20 64 61 74 61 20 73 74 61 72 |header data star| 00003be0 74 73 20 61 74 20 62 79 74 65 20 38 0d 20 32 31 |ts at byte 8. 21| 00003bf0 36 30 20 20 20 20 20 20 20 20 20 42 4e 45 20 72 |60 BNE r| 00003c00 65 61 64 6d 6f 72 65 20 20 5c 20 67 6f 20 74 6f |eadmore \ go to| 00003c10 20 72 65 61 64 20 74 68 65 20 68 65 61 64 65 72 | read the header| 00003c20 0d 20 32 31 37 30 20 2e 6e 6f 74 68 65 61 64 65 |. 2170 .notheade| 00003c30 72 0d 20 32 31 38 30 20 20 20 20 20 20 20 20 20 |r. 2180 | 00003c40 4c 44 41 20 67 72 61 62 66 6c 61 67 20 20 5c 20 |LDA grabflag \ | 00003c50 69 73 20 61 20 70 61 67 65 20 6c 6f 61 64 69 6e |is a page loadin| 00003c60 67 3f 0d 20 32 31 39 30 20 20 20 20 20 20 20 20 |g?. 2190 | 00003c70 20 42 45 51 20 72 65 74 75 72 6e 20 20 20 20 5c | BEQ return \| 00003c80 20 72 65 74 75 72 6e 20 69 66 20 70 61 67 65 20 | return if page | 00003c90 6e 6f 74 20 6c 6f 61 64 69 6e 67 0d 20 32 32 30 |not loading. 220| 00003ca0 30 20 20 20 20 20 20 20 20 20 4c 44 41 20 6d 61 |0 LDA ma| 00003cb0 67 61 7a 69 6e 65 20 20 5c 20 69 73 20 74 68 65 |gazine \ is the| 00003cc0 20 6d 61 67 61 7a 69 6e 65 20 6e 75 6d 62 65 72 | magazine number| 00003cd0 20 74 68 65 20 6f 6e 65 20 77 65 20 77 61 6e 74 | the one we want| 00003ce0 3f 0d 20 32 32 31 30 20 20 20 20 20 20 20 20 20 |?. 2210 | 00003cf0 43 4d 50 20 75 73 65 72 6d 61 67 20 20 20 5c 20 |CMP usermag \ | 00003d00 63 6f 6d 70 61 72 65 20 77 69 74 68 20 74 68 65 |compare with the| 00003d10 20 6f 6e 65 20 77 65 20 61 72 65 20 6c 6f 61 64 | one we are load| 00003d20 69 6e 67 0d 20 32 32 32 30 20 20 20 20 20 20 20 |ing. 2220 | 00003d30 20 20 42 4e 45 20 72 65 74 75 72 6e 20 20 20 20 | BNE return | 00003d40 5c 20 72 65 74 75 72 6e 20 69 66 20 64 69 66 66 |\ return if diff| 00003d50 65 72 65 6e 74 20 6d 61 67 61 7a 69 6e 65 0d 20 |erent magazine. | 00003d60 32 32 33 30 20 20 20 20 20 20 20 20 20 4c 44 59 |2230 LDY| 00003d70 20 23 26 30 30 20 20 20 20 20 20 5c 20 72 65 61 | #&00 \ rea| 00003d80 64 20 62 79 74 65 73 20 30 20 2d 20 33 39 0d 20 |d bytes 0 - 39. | 00003d90 32 32 34 30 20 2e 72 65 61 64 6d 6f 72 65 0d 20 |2240 .readmore. | 00003da0 32 32 35 30 20 20 20 20 20 20 20 20 20 4c 44 41 |2250 LDA| 00003db0 20 64 61 74 61 72 65 67 20 20 20 5c 20 72 65 61 | datareg \ rea| 00003dc0 64 20 64 61 74 61 20 72 65 67 69 73 74 65 72 0d |d data register.| 00003dd0 20 32 32 36 30 20 20 20 20 20 20 20 20 20 4f 52 | 2260 OR| 00003de0 41 20 23 26 38 30 20 20 20 20 20 20 5c 20 73 65 |A #&80 \ se| 00003df0 74 20 62 69 74 20 37 20 66 6f 72 20 64 69 73 70 |t bit 7 for disp| 00003e00 6c 61 79 0d 20 32 32 37 30 20 20 20 20 20 20 20 |lay. 2270 | 00003e10 20 20 53 54 41 20 28 77 6f 72 6b 73 70 61 63 65 | STA (workspace| 00003e20 29 2c 59 20 5c 20 73 74 6f 72 65 20 69 6e 20 62 |),Y \ store in b| 00003e30 75 66 66 65 72 0d 20 32 32 38 30 20 20 20 20 20 |uffer. 2280 | 00003e40 20 20 20 20 49 4e 59 20 20 20 20 20 20 20 20 20 | INY | 00003e50 20 20 5c 20 69 6e 63 72 65 6d 65 6e 74 20 69 6e | \ increment in| 00003e60 64 65 78 0d 20 32 32 39 30 20 20 20 20 20 20 20 |dex. 2290 | 00003e70 20 20 43 50 59 20 23 26 32 38 20 20 20 20 20 20 | CPY #&28 | 00003e80 5c 20 64 65 63 69 6d 61 6c 20 34 30 0d 20 32 33 |\ decimal 40. 23| 00003e90 30 30 20 20 20 20 20 20 20 20 20 42 4e 45 20 72 |00 BNE r| 00003ea0 65 61 64 6d 6f 72 65 20 20 5c 20 6d 6f 72 65 20 |eadmore \ more | 00003eb0 64 61 74 61 20 69 6e 20 74 68 69 73 20 70 61 63 |data in this pac| 00003ec0 6b 65 74 0d 20 32 33 31 30 20 20 20 20 20 20 20 |ket. 2310 | 00003ed0 20 20 4c 44 41 20 70 61 63 6b 65 74 20 20 20 20 | LDA packet | 00003ee0 5c 20 6c 6f 61 64 20 63 75 72 72 65 6e 74 20 70 |\ load current p| 00003ef0 61 63 6b 65 74 20 6e 75 6d 62 65 72 0d 20 32 33 |acket number. 23| 00003f00 32 30 20 20 20 20 20 20 20 20 20 42 45 51 20 72 |20 BEQ r| 00003f10 65 74 75 72 6e 20 20 20 20 5c 20 72 65 74 75 72 |eturn \ retur| 00003f20 6e 20 69 66 20 68 65 61 64 65 72 0d 20 32 33 33 |n if header. 233| 00003f30 30 20 20 20 20 20 20 20 20 20 54 41 58 20 20 20 |0 TAX | 00003f40 20 20 20 20 20 20 20 20 5c 20 41 20 69 73 20 67 | \ A is g| 00003f50 72 65 61 74 65 72 20 74 68 61 6e 20 30 20 61 6e |reater than 0 an| 00003f60 64 20 6c 65 73 73 20 74 68 61 6e 20 32 34 0d 20 |d less than 24. | 00003f70 32 33 34 30 20 20 20 20 20 20 20 20 20 53 54 41 |2340 STA| 00003f80 20 6d 61 72 6b 65 72 73 2c 58 20 5c 20 6d 61 72 | markers,X \ mar| 00003f90 6b 20 74 68 69 73 20 61 73 20 61 20 76 61 6c 69 |k this as a vali| 00003fa0 64 20 70 61 63 6b 65 74 0d 20 32 33 35 30 20 20 |d packet. 2350 | 00003fb0 20 20 20 20 20 20 20 42 49 54 20 67 72 61 62 66 | BIT grabf| 00003fc0 6c 61 67 20 20 5c 20 68 61 76 65 20 77 65 20 66 |lag \ have we f| 00003fd0 6f 75 6e 64 20 74 68 65 20 6b 65 79 77 6f 72 64 |ound the keyword| 00003fe0 20 79 65 74 3f 0d 20 32 33 36 30 20 20 20 20 20 | yet?. 2360 | 00003ff0 20 20 20 20 42 4d 49 20 72 65 74 75 72 6e 20 20 | BMI return | 00004000 20 20 5c 20 72 65 74 75 72 6e 20 69 66 20 77 6f | \ return if wo| 00004010 72 64 20 66 6f 75 6e 64 0d 20 32 33 37 30 20 20 |rd found. 2370 | 00004020 20 20 20 20 20 20 20 4a 53 52 20 77 6f 72 64 73 | JSR words| 00004030 65 61 72 63 68 0d 20 32 33 38 30 20 2e 72 65 74 |earch. 2380 .ret| 00004040 75 72 6e 0d 20 32 33 39 30 20 20 20 20 20 20 20 |urn. 2390 | 00004050 20 20 52 54 53 0d 20 32 34 30 30 20 2e 63 68 65 | RTS. 2400 .che| 00004060 63 6b 64 6f 75 62 6c 65 0d 20 32 34 31 30 20 20 |ckdouble. 2410 | 00004070 20 20 20 20 20 20 20 4c 44 58 20 23 26 30 31 20 | LDX #&01 | 00004080 20 20 20 20 20 5c 20 73 63 72 65 65 6e 20 72 6f | \ screen ro| 00004090 77 20 6e 75 6d 62 65 72 73 20 31 2d 32 33 0d 20 |w numbers 1-23. | 000040a0 32 34 32 30 20 2e 6e 65 78 74 63 6f 6c 75 6d 6e |2420 .nextcolumn| 000040b0 0d 20 32 34 33 30 20 20 20 20 20 20 20 20 20 4c |. 2430 L| 000040c0 44 41 20 6d 61 72 6b 65 72 73 2c 58 0d 20 32 34 |DA markers,X. 24| 000040d0 34 30 20 20 20 20 20 20 20 20 20 42 4d 49 20 63 |40 BMI c| 000040e0 61 72 72 79 73 65 74 0d 20 32 34 35 30 20 20 20 |arryset. 2450 | 000040f0 20 20 20 20 20 20 4c 44 59 20 23 26 30 30 20 20 | LDY #&00 | 00004100 20 20 20 20 5c 20 73 63 72 65 65 6e 20 63 6f 6c | \ screen col| 00004110 75 6d 6e 20 6e 75 6d 62 65 72 73 20 30 2d 34 30 |umn numbers 0-40| 00004120 0d 20 32 34 36 30 20 20 20 20 20 20 20 20 20 4a |. 2460 J| 00004130 53 52 20 73 65 74 75 70 20 20 20 20 20 5c 20 73 |SR setup \ s| 00004140 65 74 20 75 70 20 77 6f 72 6b 73 70 61 63 65 20 |et up workspace | 00004150 66 6f 72 20 69 6e 64 69 72 65 63 74 20 61 64 64 |for indirect add| 00004160 72 65 73 73 69 6e 67 0d 20 32 34 37 30 20 2e 73 |ressing. 2470 .s| 00004170 69 6e 67 6c 65 6c 6f 6f 70 0d 20 32 34 38 30 20 |ingleloop. 2480 | 00004180 20 20 20 20 20 20 20 20 4c 44 41 20 28 77 6f 72 | LDA (wor| 00004190 6b 73 70 61 63 65 29 2c 59 0d 20 32 34 39 30 20 |kspace),Y. 2490 | 000041a0 20 20 20 20 20 20 20 20 4a 53 52 20 63 6f 6e 63 | JSR conc| 000041b0 65 61 6c 20 20 20 5c 20 63 68 65 63 6b 20 66 6f |eal \ check fo| 000041c0 72 20 63 6f 6e 63 65 61 6c 65 64 20 64 69 73 70 |r concealed disp| 000041d0 6c 61 79 0d 20 32 35 30 30 20 20 20 20 20 20 20 |lay. 2500 | 000041e0 20 20 43 4d 50 20 23 26 38 44 20 20 20 20 20 20 | CMP #&8D | 000041f0 5c 20 54 54 58 20 64 6f 75 62 6c 65 20 68 65 69 |\ TTX double hei| 00004200 67 68 74 20 63 68 61 72 61 63 74 65 72 0d 20 32 |ght character. 2| 00004210 35 31 30 20 20 20 20 20 20 20 20 20 42 45 51 20 |510 BEQ | 00004220 64 6f 75 62 6c 65 68 65 69 67 68 74 0d 20 32 35 |doubleheight. 25| 00004230 32 30 20 20 20 20 20 20 20 20 20 49 4e 59 0d 20 |20 INY. | 00004240 32 35 33 30 20 20 20 20 20 20 20 20 20 43 50 59 |2530 CPY| 00004250 20 23 26 32 38 20 20 20 20 20 20 5c 20 64 65 63 | #&28 \ dec| 00004260 69 6d 61 6c 20 34 30 0d 20 32 35 34 30 20 20 20 |imal 40. 2540 | 00004270 20 20 20 20 20 20 42 43 43 20 73 69 6e 67 6c 65 | BCC single| 00004280 6c 6f 6f 70 0d 20 32 35 35 30 20 2e 63 61 72 72 |loop. 2550 .carr| 00004290 79 73 65 74 0d 20 32 35 36 30 20 20 20 20 20 20 |yset. 2560 | 000042a0 20 20 20 49 4e 58 0d 20 32 35 37 30 20 20 20 20 | INX. 2570 | 000042b0 20 20 20 20 20 43 50 58 20 23 26 31 37 20 20 20 | CPX #&17 | 000042c0 20 20 20 5c 20 64 65 63 69 6d 61 6c 20 32 33 0d | \ decimal 23.| 000042d0 20 32 35 38 30 20 20 20 20 20 20 20 20 20 42 43 | 2580 BC| 000042e0 43 20 6e 65 78 74 63 6f 6c 75 6d 6e 0d 20 32 35 |C nextcolumn. 25| 000042f0 39 30 20 20 20 20 20 20 20 20 20 52 54 53 0d 20 |90 RTS. | 00004300 32 36 30 30 20 2e 64 6f 75 62 6c 65 68 65 69 67 |2600 .doubleheig| 00004310 68 74 0d 20 32 36 31 30 20 20 20 20 20 20 20 20 |ht. 2610 | 00004320 20 4c 44 59 20 23 26 30 30 0d 20 32 36 32 30 20 | LDY #&00. 2620 | 00004330 20 20 20 20 20 20 20 20 54 58 41 0d 20 32 36 33 | TXA. 263| 00004340 30 20 20 20 20 20 20 20 20 20 50 48 41 20 20 20 |0 PHA | 00004350 20 20 20 20 20 20 20 20 5c 20 73 74 6f 72 65 20 | \ store | 00004360 72 6f 77 20 6e 75 6d 62 65 72 0d 20 32 36 34 30 |row number. 2640| 00004370 20 20 20 20 20 20 20 20 20 49 4e 58 0d 20 32 36 | INX. 26| 00004380 35 30 20 20 20 20 20 20 20 20 20 54 58 41 0d 20 |50 TXA. | 00004390 32 36 36 30 20 20 20 20 20 20 20 20 20 53 54 41 |2660 STA| 000043a0 20 6d 61 72 6b 65 72 73 2c 58 0d 20 32 36 37 30 | markers,X. 2670| 000043b0 20 20 20 20 20 20 20 20 20 41 53 4c 20 41 20 20 | ASL A | 000043c0 20 20 20 20 20 20 20 5c 20 28 72 6f 77 20 6e 75 | \ (row nu| 000043d0 6d 62 65 72 20 2b 20 31 29 20 2a 20 32 0d 20 32 |mber + 1) * 2. 2| 000043e0 36 38 30 20 20 20 20 20 20 20 20 20 54 41 58 0d |680 TAX.| 000043f0 20 32 36 39 30 20 20 20 20 20 20 20 20 20 4c 44 | 2690 LD| 00004400 41 20 62 75 66 66 74 61 62 6c 65 2c 58 0d 20 32 |A bufftable,X. 2| 00004410 37 30 30 20 20 20 20 20 20 20 20 20 53 54 41 20 |700 STA | 00004420 64 65 73 74 69 6e 61 74 69 6f 6e 0d 20 32 37 31 |destination. 271| 00004430 30 20 20 20 20 20 20 20 20 20 49 4e 58 0d 20 32 |0 INX. 2| 00004440 37 32 30 20 20 20 20 20 20 20 20 20 4c 44 41 20 |720 LDA | 00004450 62 75 66 66 74 61 62 6c 65 2c 58 0d 20 32 37 33 |bufftable,X. 273| 00004460 30 20 20 20 20 20 20 20 20 20 53 54 41 20 64 65 |0 STA de| 00004470 73 74 69 6e 61 74 69 6f 6e 2b 31 0d 20 32 37 34 |stination+1. 274| 00004480 30 20 20 20 20 20 20 20 20 20 50 4c 41 0d 20 32 |0 PLA. 2| 00004490 37 35 30 20 20 20 20 20 20 20 20 20 54 41 58 20 |750 TAX | 000044a0 20 20 20 20 20 20 20 20 20 20 5c 20 72 65 73 74 | \ rest| 000044b0 6f 72 65 20 72 6f 77 20 6e 75 6d 62 65 72 0d 20 |ore row number. | 000044c0 32 37 36 30 20 2e 64 6f 75 62 6c 65 6c 6f 6f 70 |2760 .doubleloop| 000044d0 0d 20 32 37 37 30 20 20 20 20 20 20 20 20 20 4c |. 2770 L| 000044e0 44 41 20 28 77 6f 72 6b 73 70 61 63 65 29 2c 59 |DA (workspace),Y| 000044f0 0d 20 32 37 38 30 20 20 20 20 20 20 20 20 20 4a |. 2780 J| 00004500 53 52 20 63 6f 6e 63 65 61 6c 20 20 20 5c 20 63 |SR conceal \ c| 00004510 68 65 63 6b 20 66 6f 72 20 63 6f 6e 63 65 61 6c |heck for conceal| 00004520 65 64 20 64 69 73 70 6c 61 79 0d 20 32 37 39 30 |ed display. 2790| 00004530 20 20 20 20 20 20 20 20 20 53 54 41 20 28 64 65 | STA (de| 00004540 73 74 69 6e 61 74 69 6f 6e 29 2c 59 0d 20 32 38 |stination),Y. 28| 00004550 30 30 20 20 20 20 20 20 20 20 20 49 4e 59 0d 20 |00 INY. | 00004560 32 38 31 30 20 20 20 20 20 20 20 20 20 43 50 59 |2810 CPY| 00004570 20 23 26 32 38 20 20 20 20 20 20 5c 20 64 65 63 | #&28 \ dec| 00004580 69 6d 61 6c 20 34 30 0d 20 32 38 32 30 20 20 20 |imal 40. 2820 | 00004590 20 20 20 20 20 20 42 43 43 20 64 6f 75 62 6c 65 | BCC double| 000045a0 6c 6f 6f 70 0d 20 32 38 33 30 20 20 20 20 20 20 |loop. 2830 | 000045b0 20 20 20 49 4e 58 0d 20 32 38 34 30 20 20 20 20 | INX. 2840 | 000045c0 20 20 20 20 20 43 50 58 20 23 26 31 37 20 20 20 | CPX #&17 | 000045d0 20 20 20 5c 20 64 65 63 69 6d 61 6c 20 32 33 0d | \ decimal 23.| 000045e0 20 32 38 35 30 20 20 20 20 20 20 20 20 20 42 43 | 2850 BC| 000045f0 43 20 63 61 72 72 79 73 65 74 0d 20 32 38 36 30 |C carryset. 2860| 00004600 20 20 20 20 20 20 20 20 20 52 54 53 0d 20 32 38 | RTS. 28| 00004610 37 30 20 2e 63 6f 6e 63 65 61 6c 0d 20 32 38 38 |70 .conceal. 288| 00004620 30 20 20 20 20 20 20 20 20 20 43 4d 50 20 23 26 |0 CMP #&| 00004630 39 38 20 20 20 20 20 20 5c 20 54 54 58 20 63 6f |98 \ TTX co| 00004640 6e 63 65 61 6c 20 64 69 73 70 6c 61 79 20 63 68 |nceal display ch| 00004650 61 72 61 63 74 65 72 0d 20 32 38 39 30 20 20 20 |aracter. 2890 | 00004660 20 20 20 20 20 20 42 4e 45 20 67 6f 62 61 63 6b | BNE goback| 00004670 0d 20 32 39 30 30 20 20 20 20 20 20 20 20 20 4c |. 2900 L| 00004680 44 41 20 23 41 53 43 28 22 20 22 29 20 5c 20 73 |DA #ASC(" ") \ s| 00004690 75 62 73 74 69 74 75 74 65 20 77 69 74 68 20 61 |ubstitute with a| 000046a0 20 73 70 61 63 65 0d 20 32 39 31 30 20 20 20 20 | space. 2910 | 000046b0 20 20 20 20 20 53 54 41 20 28 77 6f 72 6b 73 70 | STA (worksp| 000046c0 61 63 65 29 2c 59 0d 20 32 39 32 30 20 2e 67 6f |ace),Y. 2920 .go| 000046d0 62 61 63 6b 0d 20 32 39 33 30 20 20 20 20 20 20 |back. 2930 | 000046e0 20 20 20 52 54 53 0d 20 32 39 34 30 20 2e 73 65 | RTS. 2940 .se| 000046f0 74 75 70 0d 20 32 39 35 30 20 20 20 20 20 20 20 |tup. 2950 | 00004700 20 20 54 58 41 0d 20 32 39 36 30 20 20 20 20 20 | TXA. 2960 | 00004710 20 20 20 20 50 48 41 20 20 20 20 20 20 20 20 20 | PHA | 00004720 20 20 5c 20 73 74 6f 72 65 20 72 6f 77 20 6e 75 | \ store row nu| 00004730 6d 62 65 72 0d 20 32 39 37 30 20 20 20 20 20 20 |mber. 2970 | 00004740 20 20 20 41 53 4c 20 41 20 20 20 20 20 20 20 20 | ASL A | 00004750 20 5c 20 28 72 6f 77 20 6e 75 6d 62 65 72 29 20 | \ (row number) | 00004760 2a 20 32 0d 20 32 39 38 30 20 20 20 20 20 20 20 |* 2. 2980 | 00004770 20 20 54 41 58 0d 20 32 39 39 30 20 20 20 20 20 | TAX. 2990 | 00004780 20 20 20 20 4c 44 41 20 62 75 66 66 74 61 62 6c | LDA bufftabl| 00004790 65 2c 58 0d 20 33 30 30 30 20 20 20 20 20 20 20 |e,X. 3000 | 000047a0 20 20 53 54 41 20 77 6f 72 6b 73 70 61 63 65 0d | STA workspace.| 000047b0 20 33 30 31 30 20 20 20 20 20 20 20 20 20 49 4e | 3010 IN| 000047c0 58 0d 20 33 30 32 30 20 20 20 20 20 20 20 20 20 |X. 3020 | 000047d0 4c 44 41 20 62 75 66 66 74 61 62 6c 65 2c 58 0d |LDA bufftable,X.| 000047e0 20 33 30 33 30 20 20 20 20 20 20 20 20 20 53 54 | 3030 ST| 000047f0 41 20 77 6f 72 6b 73 70 61 63 65 2b 31 0d 20 33 |A workspace+1. 3| 00004800 30 34 30 20 20 20 20 20 20 20 20 20 50 4c 41 0d |040 PLA.| 00004810 20 33 30 35 30 20 20 20 20 20 20 20 20 20 54 41 | 3050 TA| 00004820 58 20 20 20 20 20 20 20 20 20 20 20 5c 20 72 65 |X \ re| 00004830 73 74 6f 72 65 20 72 6f 77 20 6e 75 6d 62 65 72 |store row number| 00004840 0d 20 33 30 36 30 20 20 20 20 20 20 20 20 20 52 |. 3060 R| 00004850 54 53 0d 20 33 30 37 30 20 2e 74 72 61 6e 73 66 |TS. 3070 .transf| 00004860 65 72 0d 20 33 30 38 30 20 20 20 20 20 20 20 20 |er. 3080 | 00004870 20 4c 44 41 20 23 26 30 30 0d 20 33 30 39 30 20 | LDA #&00. 3090 | 00004880 20 20 20 20 20 20 20 20 54 41 58 0d 20 33 31 30 | TAX. 310| 00004890 30 20 20 20 20 20 20 20 20 20 4c 44 59 20 23 26 |0 LDY #&| 000048a0 30 32 0d 20 33 31 31 30 20 20 20 20 20 20 20 20 |02. 3110 | 000048b0 20 4a 53 52 20 76 64 75 33 31 20 20 20 20 20 5c | JSR vdu31 \| 000048c0 20 56 44 55 20 33 31 2c 32 2c 30 0d 20 33 31 32 | VDU 31,2,0. 312| 000048d0 30 20 20 20 20 20 20 20 20 20 4c 44 41 20 23 41 |0 LDA #A| 000048e0 53 43 28 22 50 22 29 0d 20 33 31 33 30 20 20 20 |SC("P"). 3130 | 000048f0 20 20 20 20 20 20 4a 53 52 20 6f 73 77 72 63 68 | JSR oswrch| 00004900 20 20 20 20 5c 20 73 74 61 72 74 20 70 72 69 6e | \ start prin| 00004910 74 69 6e 67 20 70 61 67 65 20 6e 75 6d 62 65 72 |ting page number| 00004920 0d 20 33 31 34 30 20 20 20 20 20 20 20 20 20 4c |. 3140 L| 00004930 44 58 20 23 26 30 46 20 20 20 20 20 20 5c 20 64 |DX #&0F \ d| 00004940 65 63 69 6d 61 6c 20 31 35 0d 20 33 31 35 30 20 |ecimal 15. 3150 | 00004950 2e 6e 75 6d 62 65 72 6c 6f 6f 70 0d 20 33 31 36 |.numberloop. 316| 00004960 30 20 20 20 20 20 20 20 20 20 4c 44 41 20 62 75 |0 LDA bu| 00004970 66 66 65 72 2c 58 20 20 5c 20 63 68 65 61 74 20 |ffer,X \ cheat | 00004980 62 79 20 67 65 74 74 69 6e 67 20 70 61 67 65 20 |by getting page | 00004990 6e 75 6d 62 65 72 20 66 72 6f 6d 20 68 65 61 64 |number from head| 000049a0 65 72 0d 20 33 31 37 30 20 20 20 20 20 20 20 20 |er. 3170 | 000049b0 20 4a 53 52 20 6f 73 77 72 63 68 0d 20 33 31 38 | JSR oswrch. 318| 000049c0 30 20 20 20 20 20 20 20 20 20 49 4e 58 0d 20 33 |0 INX. 3| 000049d0 31 39 30 20 20 20 20 20 20 20 20 20 43 50 58 20 |190 CPX | 000049e0 23 26 31 32 0d 20 33 32 30 30 20 20 20 20 20 20 |#&12. 3200 | 000049f0 20 20 20 42 43 43 20 6e 75 6d 62 65 72 6c 6f 6f | BCC numberloo| 00004a00 70 20 5c 20 70 72 69 6e 74 20 33 20 70 61 67 65 |p \ print 3 page| 00004a10 20 62 79 74 65 73 20 66 72 6f 6d 20 68 65 61 64 | bytes from head| 00004a20 65 72 0d 20 33 32 31 30 20 20 20 20 20 20 20 20 |er. 3210 | 00004a30 20 4c 44 58 20 23 26 30 31 20 20 20 20 20 20 5c | LDX #&01 \| 00004a40 20 73 63 72 65 65 6e 20 72 6f 77 73 20 31 2d 32 | screen rows 1-2| 00004a50 33 0d 20 33 32 32 30 20 2e 6e 65 78 74 6c 69 6e |3. 3220 .nextlin| 00004a60 65 0d 20 33 32 33 30 20 20 20 20 20 20 20 20 20 |e. 3230 | 00004a70 4c 44 59 20 23 26 30 30 20 20 20 20 20 20 5c 20 |LDY #&00 \ | 00004a80 63 6f 6c 75 6d 6e 73 20 30 2d 33 39 0d 20 33 32 |columns 0-39. 32| 00004a90 34 30 20 20 20 20 20 20 20 20 20 4a 53 52 20 76 |40 JSR v| 00004aa0 64 75 33 31 20 20 20 20 20 5c 20 56 44 55 20 33 |du31 \ VDU 3| 00004ab0 31 2c 30 2c 31 2d 32 33 0d 20 33 32 35 30 20 20 |1,0,1-23. 3250 | 00004ac0 20 20 20 20 20 20 20 4c 44 41 20 6d 61 72 6b 65 | LDA marke| 00004ad0 72 73 2c 58 20 5c 20 6c 6f 6f 6b 20 66 6f 72 20 |rs,X \ look for | 00004ae0 76 61 6c 69 64 20 70 61 63 6b 65 74 0d 20 33 32 |valid packet. 32| 00004af0 36 30 20 20 20 20 20 20 20 20 20 42 50 4c 20 6d |60 BPL m| 00004b00 61 72 6b 66 6f 75 6e 64 20 5c 20 64 69 73 70 6c |arkfound \ displ| 00004b10 61 79 20 76 61 6c 69 64 20 70 61 63 6b 65 74 73 |ay valid packets| 00004b20 20 6f 6e 6c 79 0d 20 33 32 37 30 20 20 20 20 20 | only. 3270 | 00004b30 20 20 20 20 4c 44 41 20 23 62 6c 61 6e 6b 73 20 | LDA #blanks | 00004b40 4d 4f 44 20 32 35 36 20 5c 20 65 6c 73 65 20 64 |MOD 256 \ else d| 00004b50 69 73 70 6c 61 79 20 34 30 20 73 70 61 63 65 73 |isplay 40 spaces| 00004b60 0d 20 33 32 38 30 20 20 20 20 20 20 20 20 20 53 |. 3280 S| 00004b70 54 41 20 77 6f 72 6b 73 70 61 63 65 0d 20 33 32 |TA workspace. 32| 00004b80 39 30 20 20 20 20 20 20 20 20 20 4c 44 41 20 23 |90 LDA #| 00004b90 62 6c 61 6e 6b 73 20 44 49 56 20 32 35 36 0d 20 |blanks DIV 256. | 00004ba0 33 33 30 30 20 20 20 20 20 20 20 20 20 53 54 41 |3300 STA| 00004bb0 20 77 6f 72 6b 73 70 61 63 65 2b 31 0d 20 33 33 | workspace+1. 33| 00004bc0 31 30 20 20 20 20 20 20 20 20 20 4a 4d 50 20 77 |10 JMP w| 00004bd0 72 69 74 65 73 63 72 65 65 6e 0d 20 33 33 32 30 |ritescreen. 3320| 00004be0 20 2e 6d 61 72 6b 66 6f 75 6e 64 0d 20 33 33 33 | .markfound. 333| 00004bf0 30 20 20 20 20 20 20 20 20 20 4a 53 52 20 73 65 |0 JSR se| 00004c00 74 75 70 20 20 20 20 20 5c 20 73 65 74 20 75 70 |tup \ set up| 00004c10 20 77 6f 72 6b 73 70 61 63 65 20 66 6f 72 20 69 | workspace for i| 00004c20 6e 64 69 72 65 63 74 20 61 64 64 72 65 73 73 69 |ndirect addressi| 00004c30 6e 67 0d 20 33 33 34 30 20 2e 77 72 69 74 65 73 |ng. 3340 .writes| 00004c40 63 72 65 65 6e 0d 20 33 33 35 30 20 20 20 20 20 |creen. 3350 | 00004c50 20 20 20 20 4c 44 41 20 28 77 6f 72 6b 73 70 61 | LDA (workspa| 00004c60 63 65 29 2c 59 20 5c 20 6c 6f 61 64 20 64 61 74 |ce),Y \ load dat| 00004c70 61 20 66 72 6f 6d 20 62 75 66 66 65 72 0d 20 33 |a from buffer. 3| 00004c80 33 36 30 20 20 20 20 20 20 20 20 20 4a 53 52 20 |360 JSR | 00004c90 6f 73 77 72 63 68 20 20 20 20 5c 20 77 72 69 74 |oswrch \ writ| 00004ca0 65 20 74 6f 20 73 63 72 65 65 6e 0d 20 33 33 37 |e to screen. 337| 00004cb0 30 20 20 20 20 20 20 20 20 20 49 4e 59 0d 20 33 |0 INY. 3| 00004cc0 33 38 30 20 20 20 20 20 20 20 20 20 43 50 59 20 |380 CPY | 00004cd0 23 26 32 38 20 20 20 20 20 20 5c 20 64 65 63 69 |#&28 \ deci| 00004ce0 6d 61 6c 20 34 30 0d 20 33 33 39 30 20 20 20 20 |mal 40. 3390 | 00004cf0 20 20 20 20 20 42 43 43 20 77 72 69 74 65 73 63 | BCC writesc| 00004d00 72 65 65 6e 0d 20 33 34 30 30 20 20 20 20 20 20 |reen. 3400 | 00004d10 20 20 20 49 4e 58 0d 20 33 34 31 30 20 20 20 20 | INX. 3410 | 00004d20 20 20 20 20 20 43 50 58 20 23 26 31 38 20 20 20 | CPX #&18 | 00004d30 20 20 20 5c 20 64 65 63 69 6d 61 6c 20 32 34 0d | \ decimal 24.| 00004d40 20 33 34 32 30 20 20 20 20 20 20 20 20 20 42 43 | 3420 BC| 00004d50 43 20 6e 65 78 74 6c 69 6e 65 20 20 5c 20 6c 61 |C nextline \ la| 00004d60 73 74 20 70 61 63 6b 65 74 20 6e 75 6d 62 65 72 |st packet number| 00004d70 20 3d 20 32 33 0d 20 33 34 33 30 20 20 20 20 20 | = 23. 3430 | 00004d80 20 20 20 20 52 54 53 0d 20 33 34 34 30 20 2e 76 | RTS. 3440 .v| 00004d90 64 75 33 31 0d 20 33 34 35 30 20 20 20 20 20 20 |du31. 3450 | 00004da0 20 20 20 4c 44 41 20 23 26 31 46 20 20 20 20 20 | LDA #&1F | 00004db0 20 5c 20 64 65 63 69 6d 61 6c 20 33 31 0d 20 33 | \ decimal 31. 3| 00004dc0 34 36 30 20 20 20 20 20 20 20 20 20 4a 53 52 20 |460 JSR | 00004dd0 6f 73 77 72 63 68 0d 20 33 34 37 30 20 20 20 20 |oswrch. 3470 | 00004de0 20 20 20 20 20 54 59 41 0d 20 33 34 38 30 20 20 | TYA. 3480 | 00004df0 20 20 20 20 20 20 20 4a 53 52 20 6f 73 77 72 63 | JSR oswrc| 00004e00 68 0d 20 33 34 39 30 20 20 20 20 20 20 20 20 20 |h. 3490 | 00004e10 54 58 41 0d 20 33 35 30 30 20 20 20 20 20 20 20 |TXA. 3500 | 00004e20 20 20 4a 4d 50 20 6f 73 77 72 63 68 20 20 20 20 | JMP oswrch | 00004e30 5c 20 61 6e 64 20 72 65 74 75 72 6e 0d 20 33 35 |\ and return. 35| 00004e40 31 30 20 2e 77 6f 72 64 73 65 61 72 63 68 0d 20 |10 .wordsearch. | 00004e50 33 35 32 30 20 20 20 20 20 20 20 20 20 4c 44 58 |3520 LDX| 00004e60 20 23 26 30 30 20 20 20 20 20 20 5c 20 69 6e 64 | #&00 \ ind| 00004e70 65 78 20 66 6f 72 20 73 65 61 72 63 68 20 73 74 |ex for search st| 00004e80 72 69 6e 67 0d 20 33 35 33 30 20 20 20 20 20 20 |ring. 3530 | 00004e90 20 20 20 4c 44 59 20 23 26 30 30 20 20 20 20 20 | LDY #&00 | 00004ea0 20 5c 20 69 6e 64 65 78 20 66 6f 72 20 70 61 63 | \ index for pac| 00004eb0 6b 65 74 0d 20 33 35 34 30 20 20 20 20 20 20 20 |ket. 3540 | 00004ec0 20 20 53 54 59 20 74 65 6d 70 79 20 20 20 20 20 | STY tempy | 00004ed0 5c 20 74 65 6d 70 6f 72 61 72 79 20 73 74 6f 72 |\ temporary stor| 00004ee0 65 20 66 6f 72 20 59 0d 20 33 35 35 30 20 2e 77 |e for Y. 3550 .w| 00004ef0 6f 72 64 6c 6f 6f 70 0d 20 33 35 36 30 20 20 20 |ordloop. 3560 | 00004f00 20 20 20 20 20 20 4c 44 41 20 73 65 61 72 63 68 | LDA search| 00004f10 74 65 78 74 2c 58 0d 20 33 35 37 30 20 20 20 20 |text,X. 3570 | 00004f20 20 20 20 20 20 42 45 51 20 66 6f 75 6e 64 0d 20 | BEQ found. | 00004f30 33 35 38 30 20 20 20 20 20 20 20 20 20 50 48 41 |3580 PHA| 00004f40 20 20 20 20 20 20 20 20 20 20 20 5c 20 73 61 76 | \ sav| 00004f50 65 20 63 68 61 72 61 63 74 65 72 20 66 72 6f 6d |e character from| 00004f60 20 6b 65 79 77 6f 72 64 0d 20 33 35 39 30 20 20 | keyword. 3590 | 00004f70 20 20 20 20 20 20 20 4c 44 41 20 28 77 6f 72 6b | LDA (work| 00004f80 73 70 61 63 65 29 2c 59 0d 20 33 36 30 30 20 20 |space),Y. 3600 | 00004f90 20 20 20 20 20 20 20 43 4d 50 20 23 26 45 31 20 | CMP #&E1 | 00004fa0 20 20 20 20 20 5c 20 6c 6f 77 65 72 20 63 61 73 | \ lower cas| 00004fb0 65 20 27 61 27 0d 20 33 36 31 30 20 20 20 20 20 |e 'a'. 3610 | 00004fc0 20 20 20 20 42 43 43 20 75 70 70 65 72 63 61 73 | BCC uppercas| 00004fd0 65 20 5c 20 62 72 61 6e 63 68 20 69 66 20 75 70 |e \ branch if up| 00004fe0 70 65 72 20 63 61 73 65 0d 20 33 36 32 30 20 20 |per case. 3620 | 00004ff0 20 20 20 20 20 20 20 41 4e 44 20 23 26 44 46 20 | AND #&DF | 00005000 20 20 20 20 20 5c 20 66 6f 72 63 65 20 6c 6f 77 | \ force low| 00005010 65 72 20 74 6f 20 75 70 70 65 72 20 63 61 73 65 |er to upper case| 00005020 0d 20 33 36 33 30 20 2e 75 70 70 65 72 63 61 73 |. 3630 .uppercas| 00005030 65 0d 20 33 36 34 30 20 20 20 20 20 20 20 20 20 |e. 3640 | 00005040 53 54 41 20 73 65 61 72 63 68 66 6f 72 20 5c 20 |STA searchfor \ | 00005050 73 74 6f 72 65 20 63 68 61 72 61 63 74 65 72 20 |store character | 00005060 66 72 6f 6d 20 54 54 58 0d 20 33 36 35 30 20 20 |from TTX. 3650 | 00005070 20 20 20 20 20 20 20 50 4c 41 20 20 20 20 20 20 | PLA | 00005080 20 20 20 20 20 5c 20 72 65 73 74 6f 72 65 20 63 | \ restore c| 00005090 68 61 72 61 63 74 65 72 20 66 72 6f 6d 20 6b 65 |haracter from ke| 000050a0 79 77 6f 72 64 0d 20 33 36 36 30 20 20 20 20 20 |yword. 3660 | 000050b0 20 20 20 20 43 4d 50 20 73 65 61 72 63 68 66 6f | CMP searchfo| 000050c0 72 0d 20 33 36 37 30 20 20 20 20 20 20 20 20 20 |r. 3670 | 000050d0 42 4e 45 20 6e 6f 74 66 6f 75 6e 64 20 20 5c 20 |BNE notfound \ | 000050e0 62 72 61 6e 63 68 20 69 66 20 6b 65 79 77 6f 72 |branch if keywor| 000050f0 64 20 64 6f 65 73 20 6e 6f 74 20 6d 61 74 63 68 |d does not match| 00005100 0d 20 33 36 38 30 20 20 20 20 20 20 20 20 20 49 |. 3680 I| 00005110 4e 58 20 20 20 20 20 20 20 20 20 20 20 5c 20 69 |NX \ i| 00005120 66 20 6d 61 74 63 68 65 64 20 6c 6f 6f 6b 20 61 |f matched look a| 00005130 74 20 6e 65 78 74 20 63 68 61 72 61 63 74 65 72 |t next character| 00005140 0d 20 33 36 39 30 20 20 20 20 20 20 20 20 20 49 |. 3690 I| 00005150 4e 59 0d 20 33 37 30 30 20 20 20 20 20 20 20 20 |NY. 3700 | 00005160 20 43 50 59 20 23 26 32 39 20 20 20 20 20 20 5c | CPY #&29 \| 00005170 20 64 65 63 69 6d 61 6c 20 34 31 0d 20 33 37 31 | decimal 41. 371| 00005180 30 20 20 20 20 20 20 20 20 20 42 43 43 20 77 6f |0 BCC wo| 00005190 72 64 6c 6f 6f 70 0d 20 33 37 32 30 20 2e 6e 6f |rdloop. 3720 .no| 000051a0 74 66 6f 75 6e 64 0d 20 33 37 33 30 20 20 20 20 |tfound. 3730 | 000051b0 20 20 20 20 20 4c 44 58 20 23 26 30 30 20 20 20 | LDX #&00 | 000051c0 20 20 20 5c 20 72 65 73 65 74 20 69 6e 64 65 78 | \ reset index| 000051d0 20 6f 6e 20 6b 65 79 77 6f 72 64 0d 20 33 37 34 | on keyword. 374| 000051e0 30 20 20 20 20 20 20 20 20 20 49 4e 43 20 74 65 |0 INC te| 000051f0 6d 70 79 20 20 20 20 20 5c 20 69 6e 63 72 65 6d |mpy \ increm| 00005200 65 6e 74 20 69 6e 64 65 78 20 6f 6e 20 54 54 58 |ent index on TTX| 00005210 0d 20 33 37 35 30 20 20 20 20 20 20 20 20 20 4c |. 3750 L| 00005220 44 59 20 74 65 6d 70 79 0d 20 33 37 36 30 20 20 |DY tempy. 3760 | 00005230 20 20 20 20 20 20 20 43 50 59 20 23 26 32 39 20 | CPY #&29 | 00005240 20 20 20 20 20 5c 20 64 65 63 69 6d 61 6c 20 34 | \ decimal 4| 00005250 31 0d 20 33 37 37 30 20 20 20 20 20 20 20 20 20 |1. 3770 | 00005260 42 43 43 20 77 6f 72 64 6c 6f 6f 70 20 20 5c 20 |BCC wordloop \ | 00005270 62 72 61 6e 63 68 20 69 66 20 6d 6f 72 65 20 64 |branch if more d| 00005280 61 74 61 20 74 6f 20 74 65 73 74 0d 20 33 37 38 |ata to test. 378| 00005290 30 20 20 20 20 20 20 20 20 20 52 54 53 0d 20 33 |0 RTS. 3| 000052a0 37 39 30 20 2e 66 6f 75 6e 64 0d 20 33 38 30 30 |790 .found. 3800| 000052b0 20 20 20 20 20 20 20 20 20 4c 44 41 20 23 26 38 | LDA #&8| 000052c0 30 20 20 20 20 20 20 5c 20 66 6c 61 67 20 6b 65 |0 \ flag ke| 000052d0 79 77 6f 72 64 20 66 6f 75 6e 64 0d 20 33 38 31 |yword found. 381| 000052e0 30 20 20 20 20 20 20 20 20 20 53 54 41 20 67 72 |0 STA gr| 000052f0 61 62 66 6c 61 67 20 20 5c 20 6b 65 79 77 6f 72 |abflag \ keywor| 00005300 64 20 66 6f 75 6e 64 0d 20 33 38 32 30 20 20 20 |d found. 3820 | 00005310 20 20 20 20 20 20 52 54 53 0d 20 33 38 33 30 20 | RTS. 3830 | 00005320 2e 63 6c 65 61 72 6d 61 72 6b 0d 20 33 38 34 30 |.clearmark. 3840| 00005330 20 20 20 20 20 20 20 20 20 4c 44 41 20 23 26 38 | LDA #&8| 00005340 30 0d 20 33 38 35 30 20 20 20 20 20 20 20 20 20 |0. 3850 | 00005350 4c 44 58 20 23 26 31 37 20 20 20 20 20 20 5c 20 |LDX #&17 \ | 00005360 64 65 63 69 6d 61 6c 20 32 33 0d 20 33 38 36 30 |decimal 23. 3860| 00005370 20 2e 6c 6f 6f 70 6d 61 72 6b 0d 20 33 38 37 30 | .loopmark. 3870| 00005380 20 20 20 20 20 20 20 20 20 53 54 41 20 6d 61 72 | STA mar| 00005390 6b 65 72 73 2c 58 0d 20 33 38 38 30 20 20 20 20 |kers,X. 3880 | 000053a0 20 20 20 20 20 44 45 58 0d 20 33 38 39 30 20 20 | DEX. 3890 | 000053b0 20 20 20 20 20 20 20 42 4e 45 20 6c 6f 6f 70 6d | BNE loopm| 000053c0 61 72 6b 0d 20 33 39 30 30 20 20 20 20 20 20 20 |ark. 3900 | 000053d0 20 20 53 54 58 20 67 72 61 62 66 6c 61 67 20 20 | STX grabflag | 000053e0 5c 20 67 72 61 62 66 6c 61 67 20 3d 20 73 65 61 |\ grabflag = sea| 000053f0 72 63 68 69 6e 67 0d 20 33 39 31 30 20 20 20 20 |rching. 3910 | 00005400 20 20 20 20 20 4c 44 41 20 23 26 30 46 20 20 20 | LDA #&0F | 00005410 20 20 20 5c 20 65 6e 64 20 6f 66 20 70 61 67 65 | \ end of page| 00005420 20 6d 61 72 6b 65 72 0d 20 33 39 32 30 20 20 20 | marker. 3920 | 00005430 20 20 20 20 20 20 53 54 41 20 75 73 65 72 70 61 | STA userpa| 00005440 67 65 0d 20 33 39 33 30 20 20 20 20 20 20 20 20 |ge. 3930 | 00005450 20 53 54 41 20 75 73 65 72 70 61 67 65 2b 31 0d | STA userpage+1.| 00005460 20 33 39 34 30 20 20 20 20 20 20 20 20 20 52 54 | 3940 RT| 00005470 53 0d 20 33 39 35 30 20 2e 6f 6c 64 69 72 71 32 |S. 3950 .oldirq2| 00005480 76 0d 20 33 39 36 30 20 20 20 20 20 20 20 20 20 |v. 3960 | 00005490 45 51 55 57 20 26 30 30 0d 20 33 39 37 30 20 2e |EQUW &00. 3970 .| 000054a0 68 61 6d 74 61 62 6c 65 0d 20 33 39 38 30 20 20 |hamtable. 3980 | 000054b0 20 20 20 20 20 20 20 45 51 55 44 20 26 30 31 30 | EQUD &010| 000054c0 31 46 46 30 31 0d 20 33 39 39 30 20 20 20 20 20 |1FF01. 3990 | 000054d0 20 20 20 20 45 51 55 44 20 26 46 46 30 31 30 30 | EQUD &FF0100| 000054e0 46 46 0d 20 34 30 30 30 20 20 20 20 20 20 20 20 |FF. 4000 | 000054f0 20 45 51 55 44 20 26 46 46 30 31 30 32 46 46 0d | EQUD &FF0102FF.| 00005500 20 34 30 31 30 20 20 20 20 20 20 20 20 20 45 51 | 4010 EQ| 00005510 55 44 20 26 30 37 46 46 46 46 30 41 0d 20 34 30 |UD &07FFFF0A. 40| 00005520 32 30 20 20 20 20 20 20 20 20 20 45 51 55 44 20 |20 EQUD | 00005530 26 46 46 30 31 30 30 46 46 0d 20 34 30 33 30 20 |&FF0100FF. 4030 | 00005540 20 20 20 20 20 20 20 20 45 51 55 44 20 26 30 30 | EQUD &00| 00005550 46 46 30 30 30 30 0d 20 34 30 34 30 20 20 20 20 |FF0000. 4040 | 00005560 20 20 20 20 20 45 51 55 44 20 26 30 42 46 46 46 | EQUD &0BFFF| 00005570 46 30 36 0d 20 34 30 35 30 20 20 20 20 20 20 20 |F06. 4050 | 00005580 20 20 45 51 55 44 20 26 46 46 30 33 30 30 46 46 | EQUD &FF0300FF| 00005590 0d 20 34 30 36 30 20 20 20 20 20 20 20 20 20 45 |. 4060 E| 000055a0 51 55 44 20 26 46 46 30 31 30 43 46 46 0d 20 34 |QUD &FF010CFF. 4| 000055b0 30 37 30 20 20 20 20 20 20 20 20 20 45 51 55 44 |070 EQUD| 000055c0 20 26 30 37 46 46 46 46 30 34 0d 20 34 30 38 30 | &07FFFF04. 4080| 000055d0 20 20 20 20 20 20 20 20 20 45 51 55 44 20 26 30 | EQUD &0| 000055e0 37 46 46 46 46 30 36 0d 20 34 30 39 30 20 20 20 |7FFFF06. 4090 | 000055f0 20 20 20 20 20 20 45 51 55 44 20 26 30 37 30 37 | EQUD &0707| 00005600 30 37 46 46 0d 20 34 31 30 30 20 20 20 20 20 20 |07FF. 4100 | 00005610 20 20 20 45 51 55 44 20 26 30 35 46 46 46 46 30 | EQUD &05FFFF0| 00005620 36 0d 20 34 31 31 30 20 20 20 20 20 20 20 20 20 |6. 4110 | 00005630 45 51 55 44 20 26 46 46 30 44 30 30 46 46 0d 20 |EQUD &FF0D00FF. | 00005640 34 31 32 30 20 20 20 20 20 20 20 20 20 45 51 55 |4120 EQU| 00005650 44 20 26 46 46 30 36 30 36 30 36 0d 20 34 31 33 |D &FF060606. 413| 00005660 30 20 20 20 20 20 20 20 20 20 45 51 55 44 20 26 |0 EQUD &| 00005670 30 37 46 46 46 46 30 36 0d 20 34 31 34 30 20 20 |07FFFF06. 4140 | 00005680 20 20 20 20 20 20 20 45 51 55 44 20 26 46 46 30 | EQUD &FF0| 00005690 31 30 32 46 46 0d 20 34 31 35 30 20 20 20 20 20 |102FF. 4150 | 000056a0 20 20 20 20 45 51 55 44 20 26 30 39 46 46 46 46 | EQUD &09FFFF| 000056b0 30 34 0d 20 34 31 36 30 20 20 20 20 20 20 20 20 |04. 4160 | 000056c0 20 45 51 55 44 20 26 30 32 46 46 30 32 30 32 0d | EQUD &02FF0202.| 000056d0 20 34 31 37 30 20 20 20 20 20 20 20 20 20 45 51 | 4170 EQ| 000056e0 55 44 20 26 46 46 30 33 30 32 46 46 0d 20 34 31 |UD &FF0302FF. 41| 000056f0 38 30 20 20 20 20 20 20 20 20 20 45 51 55 44 20 |80 EQUD | 00005700 26 30 35 46 46 46 46 30 38 0d 20 34 31 39 30 20 |&05FFFF08. 4190 | 00005710 20 20 20 20 20 20 20 20 45 51 55 44 20 26 46 46 | EQUD &FF| 00005720 30 33 30 30 46 46 0d 20 34 32 30 30 20 20 20 20 |0300FF. 4200 | 00005730 20 20 20 20 20 45 51 55 44 20 26 46 46 30 33 30 | EQUD &FF030| 00005740 32 46 46 0d 20 34 32 31 30 20 20 20 20 20 20 20 |2FF. 4210 | 00005750 20 20 45 51 55 44 20 26 30 33 30 33 46 46 30 33 | EQUD &0303FF03| 00005760 0d 20 34 32 32 30 20 20 20 20 20 20 20 20 20 45 |. 4220 E| 00005770 51 55 44 20 26 30 35 46 46 46 46 30 34 0d 20 34 |QUD &05FFFF04. 4| 00005780 32 33 30 20 20 20 20 20 20 20 20 20 45 51 55 44 |230 EQUD| 00005790 20 26 46 46 30 34 30 34 30 34 0d 20 34 32 34 30 | &FF040404. 4240| 000057a0 20 20 20 20 20 20 20 20 20 45 51 55 44 20 26 46 | EQUD &F| 000057b0 46 30 46 30 32 46 46 0d 20 34 32 35 30 20 20 20 |F0F02FF. 4250 | 000057c0 20 20 20 20 20 20 45 51 55 44 20 26 30 37 46 46 | EQUD &07FF| 000057d0 46 46 30 34 0d 20 34 32 36 30 20 20 20 20 20 20 |FF04. 4260 | 000057e0 20 20 20 45 51 55 44 20 26 30 35 30 35 30 35 46 | EQUD &050505F| 000057f0 46 0d 20 34 32 37 30 20 20 20 20 20 20 20 20 20 |F. 4270 | 00005800 45 51 55 44 20 26 30 35 46 46 46 46 30 34 0d 20 |EQUD &05FFFF04. | 00005810 34 32 38 30 20 20 20 20 20 20 20 20 20 45 51 55 |4280 EQU| 00005820 44 20 26 30 35 46 46 46 46 30 36 0d 20 34 32 39 |D &05FFFF06. 429| 00005830 30 20 20 20 20 20 20 20 20 20 45 51 55 44 20 26 |0 EQUD &| 00005840 46 46 30 33 30 45 46 46 0d 20 34 33 30 30 20 20 |FF030EFF. 4300 | 00005850 20 20 20 20 20 20 20 45 51 55 44 20 26 46 46 30 | EQUD &FF0| 00005860 31 30 43 46 46 0d 20 34 33 31 30 20 20 20 20 20 |10CFF. 4310 | 00005870 20 20 20 20 45 51 55 44 20 26 30 39 46 46 46 46 | EQUD &09FFFF| 00005880 30 41 0d 20 34 33 32 30 20 20 20 20 20 20 20 20 |0A. 4320 | 00005890 20 45 51 55 44 20 26 30 42 46 46 46 46 30 41 0d | EQUD &0BFFFF0A.| 000058a0 20 34 33 33 30 20 20 20 20 20 20 20 20 20 45 51 | 4330 EQ| 000058b0 55 44 20 26 46 46 30 41 30 41 30 41 0d 20 34 33 |UD &FF0A0A0A. 43| 000058c0 34 30 20 20 20 20 20 20 20 20 20 45 51 55 44 20 |40 EQUD | 000058d0 26 30 42 46 46 46 46 30 38 0d 20 34 33 35 30 20 |&0BFFFF08. 4350 | 000058e0 20 20 20 20 20 20 20 20 45 51 55 44 20 26 46 46 | EQUD &FF| 000058f0 30 44 30 30 46 46 0d 20 34 33 36 30 20 20 20 20 |0D00FF. 4360 | 00005900 20 20 20 20 20 45 51 55 44 20 26 30 42 30 42 30 | EQUD &0B0B0| 00005910 42 46 46 0d 20 34 33 37 30 20 20 20 20 20 20 20 |BFF. 4370 | 00005920 20 20 45 51 55 44 20 26 30 42 46 46 46 46 30 41 | EQUD &0BFFFF0A| 00005930 0d 20 34 33 38 30 20 20 20 20 20 20 20 20 20 45 |. 4380 E| 00005940 51 55 44 20 26 30 43 46 46 30 43 30 43 0d 20 34 |QUD &0CFF0C0C. 4| 00005950 33 39 30 20 20 20 20 20 20 20 20 20 45 51 55 44 |390 EQUD| 00005960 20 26 46 46 30 44 30 43 46 46 0d 20 34 34 30 30 | &FF0D0CFF. 4400| 00005970 20 20 20 20 20 20 20 20 20 45 51 55 44 20 26 46 | EQUD &F| 00005980 46 30 46 30 43 46 46 0d 20 34 34 31 30 20 20 20 |F0F0CFF. 4410 | 00005990 20 20 20 20 20 20 45 51 55 44 20 26 30 37 46 46 | EQUD &07FF| 000059a0 46 46 30 41 0d 20 34 34 32 30 20 20 20 20 20 20 |FF0A. 4420 | 000059b0 20 20 20 45 51 55 44 20 26 46 46 30 44 30 43 46 | EQUD &FF0D0CF| 000059c0 46 0d 20 34 34 33 30 20 20 20 20 20 20 20 20 20 |F. 4430 | 000059d0 45 51 55 44 20 26 30 44 30 44 46 46 30 44 0d 20 |EQUD &0D0DFF0D. | 000059e0 34 34 34 30 20 20 20 20 20 20 20 20 20 45 51 55 |4440 EQU| 000059f0 44 20 26 30 42 46 46 46 46 30 36 0d 20 34 34 35 |D &0BFFFF06. 445| 00005a00 30 20 20 20 20 20 20 20 20 20 45 51 55 44 20 26 |0 EQUD &| 00005a10 46 46 30 44 30 45 46 46 0d 20 34 34 36 30 20 20 |FF0D0EFF. 4460 | 00005a20 20 20 20 20 20 20 20 45 51 55 44 20 26 30 39 46 | EQUD &09F| 00005a30 46 46 46 30 38 0d 20 34 34 37 30 20 20 20 20 20 |FFF08. 4470 | 00005a40 20 20 20 20 45 51 55 44 20 26 30 39 30 39 30 39 | EQUD &090909| 00005a50 46 46 0d 20 34 34 38 30 20 20 20 20 20 20 20 20 |FF. 4480 | 00005a60 20 45 51 55 44 20 26 46 46 30 46 30 32 46 46 0d | EQUD &FF0F02FF.| 00005a70 20 34 34 39 30 20 20 20 20 20 20 20 20 20 45 51 | 4490 EQ| 00005a80 55 44 20 26 30 39 46 46 46 46 30 41 0d 20 34 35 |UD &09FFFF0A. 45| 00005a90 30 30 20 20 20 20 20 20 20 20 20 45 51 55 44 20 |00 EQUD | 00005aa0 26 46 46 30 38 30 38 30 38 0d 20 34 35 31 30 20 |&FF080808. 4510 | 00005ab0 20 20 20 20 20 20 20 20 45 51 55 44 20 26 30 39 | EQUD &09| 00005ac0 46 46 46 46 30 38 0d 20 34 35 32 30 20 20 20 20 |FFFF08. 4520 | 00005ad0 20 20 20 20 20 45 51 55 44 20 26 30 42 46 46 46 | EQUD &0BFFF| 00005ae0 46 30 38 0d 20 34 35 33 30 20 20 20 20 20 20 20 |F08. 4530 | 00005af0 20 20 45 51 55 44 20 26 46 46 30 33 30 45 46 46 | EQUD &FF030EFF| 00005b00 0d 20 34 35 34 30 20 20 20 20 20 20 20 20 20 45 |. 4540 E| 00005b10 51 55 44 20 26 46 46 30 46 30 43 46 46 0d 20 34 |QUD &FF0F0CFF. 4| 00005b20 35 35 30 20 20 20 20 20 20 20 20 20 45 51 55 44 |550 EQUD| 00005b30 20 26 30 39 46 46 46 46 30 34 0d 20 34 35 36 30 | &09FFFF04. 4560| 00005b40 20 20 20 20 20 20 20 20 20 45 51 55 44 20 26 30 | EQUD &0| 00005b50 46 30 46 46 46 30 46 0d 20 34 35 37 30 20 20 20 |F0FFF0F. 4570 | 00005b60 20 20 20 20 20 20 45 51 55 44 20 26 46 46 30 46 | EQUD &FF0F| 00005b70 30 45 46 46 0d 20 34 35 38 30 20 20 20 20 20 20 |0EFF. 4580 | 00005b80 20 20 20 45 51 55 44 20 26 30 35 46 46 46 46 30 | EQUD &05FFFF0| 00005b90 38 0d 20 34 35 39 30 20 20 20 20 20 20 20 20 20 |8. 4590 | 00005ba0 45 51 55 44 20 26 46 46 30 44 30 45 46 46 0d 20 |EQUD &FF0D0EFF. | 00005bb0 34 36 30 30 20 20 20 20 20 20 20 20 20 45 51 55 |4600 EQU| 00005bc0 44 20 26 46 46 30 46 30 45 46 46 0d 20 34 36 31 |D &FF0F0EFF. 461| 00005bd0 30 20 20 20 20 20 20 20 20 20 45 51 55 44 20 26 |0 EQUD &| 00005be0 30 45 46 46 30 45 30 45 0d 20 34 36 32 30 20 2e |0EFF0E0E. 4620 .| 00005bf0 62 75 66 66 74 61 62 6c 65 0d 20 34 36 33 30 20 |bufftable. 4630 | 00005c00 20 20 20 20 20 20 20 20 45 51 55 57 20 62 75 66 | EQUW buf| 00005c10 66 65 72 0d 20 34 36 34 30 20 20 20 20 20 20 20 |fer. 4640 | 00005c20 20 20 45 51 55 57 20 62 75 66 66 65 72 2b 34 30 | EQUW buffer+40| 00005c30 0d 20 34 36 35 30 20 20 20 20 20 20 20 20 20 45 |. 4650 E| 00005c40 51 55 57 20 62 75 66 66 65 72 2b 28 32 2a 34 30 |QUW buffer+(2*40| 00005c50 29 0d 20 34 36 36 30 20 20 20 20 20 20 20 20 20 |). 4660 | 00005c60 45 51 55 57 20 62 75 66 66 65 72 2b 28 33 2a 34 |EQUW buffer+(3*4| 00005c70 30 29 0d 20 34 36 37 30 20 20 20 20 20 20 20 20 |0). 4670 | 00005c80 20 45 51 55 57 20 62 75 66 66 65 72 2b 28 34 2a | EQUW buffer+(4*| 00005c90 34 30 29 0d 20 34 36 38 30 20 20 20 20 20 20 20 |40). 4680 | 00005ca0 20 20 45 51 55 57 20 62 75 66 66 65 72 2b 28 35 | EQUW buffer+(5| 00005cb0 2a 34 30 29 0d 20 34 36 39 30 20 20 20 20 20 20 |*40). 4690 | 00005cc0 20 20 20 45 51 55 57 20 62 75 66 66 65 72 2b 28 | EQUW buffer+(| 00005cd0 36 2a 34 30 29 0d 20 34 37 30 30 20 20 20 20 20 |6*40). 4700 | 00005ce0 20 20 20 20 45 51 55 57 20 62 75 66 66 65 72 2b | EQUW buffer+| 00005cf0 28 37 2a 34 30 29 0d 20 34 37 31 30 20 20 20 20 |(7*40). 4710 | 00005d00 20 20 20 20 20 45 51 55 57 20 62 75 66 66 65 72 | EQUW buffer| 00005d10 2b 28 38 2a 34 30 29 0d 20 34 37 32 30 20 20 20 |+(8*40). 4720 | 00005d20 20 20 20 20 20 20 45 51 55 57 20 62 75 66 66 65 | EQUW buffe| 00005d30 72 2b 28 39 2a 34 30 29 0d 20 34 37 33 30 20 20 |r+(9*40). 4730 | 00005d40 20 20 20 20 20 20 20 45 51 55 57 20 62 75 66 66 | EQUW buff| 00005d50 65 72 2b 28 31 30 2a 34 30 29 0d 20 34 37 34 30 |er+(10*40). 4740| 00005d60 20 20 20 20 20 20 20 20 20 45 51 55 57 20 62 75 | EQUW bu| 00005d70 66 66 65 72 2b 28 31 31 2a 34 30 29 0d 20 34 37 |ffer+(11*40). 47| 00005d80 35 30 20 20 20 20 20 20 20 20 20 45 51 55 57 20 |50 EQUW | 00005d90 62 75 66 66 65 72 2b 28 31 32 2a 34 30 29 0d 20 |buffer+(12*40). | 00005da0 34 37 36 30 20 20 20 20 20 20 20 20 20 45 51 55 |4760 EQU| 00005db0 57 20 62 75 66 66 65 72 2b 28 31 33 2a 34 30 29 |W buffer+(13*40)| 00005dc0 0d 20 34 37 37 30 20 20 20 20 20 20 20 20 20 45 |. 4770 E| 00005dd0 51 55 57 20 62 75 66 66 65 72 2b 28 31 34 2a 34 |QUW buffer+(14*4| 00005de0 30 29 0d 20 34 37 38 30 20 20 20 20 20 20 20 20 |0). 4780 | 00005df0 20 45 51 55 57 20 62 75 66 66 65 72 2b 28 31 35 | EQUW buffer+(15| 00005e00 2a 34 30 29 0d 20 34 37 39 30 20 20 20 20 20 20 |*40). 4790 | 00005e10 20 20 20 45 51 55 57 20 62 75 66 66 65 72 2b 28 | EQUW buffer+(| 00005e20 31 36 2a 34 30 29 0d 20 34 38 30 30 20 20 20 20 |16*40). 4800 | 00005e30 20 20 20 20 20 45 51 55 57 20 62 75 66 66 65 72 | EQUW buffer| 00005e40 2b 28 31 37 2a 34 30 29 0d 20 34 38 31 30 20 20 |+(17*40). 4810 | 00005e50 20 20 20 20 20 20 20 45 51 55 57 20 62 75 66 66 | EQUW buff| 00005e60 65 72 2b 28 31 38 2a 34 30 29 0d 20 34 38 32 30 |er+(18*40). 4820| 00005e70 20 20 20 20 20 20 20 20 20 45 51 55 57 20 62 75 | EQUW bu| 00005e80 66 66 65 72 2b 28 31 39 2a 34 30 29 0d 20 34 38 |ffer+(19*40). 48| 00005e90 33 30 20 20 20 20 20 20 20 20 20 45 51 55 57 20 |30 EQUW | 00005ea0 62 75 66 66 65 72 2b 28 32 30 2a 34 30 29 0d 20 |buffer+(20*40). | 00005eb0 34 38 34 30 20 20 20 20 20 20 20 20 20 45 51 55 |4840 EQU| 00005ec0 57 20 62 75 66 66 65 72 2b 28 32 31 2a 34 30 29 |W buffer+(21*40)| 00005ed0 0d 20 34 38 35 30 20 20 20 20 20 20 20 20 20 45 |. 4850 E| 00005ee0 51 55 57 20 62 75 66 66 65 72 2b 28 32 32 2a 34 |QUW buffer+(22*4| 00005ef0 30 29 0d 20 34 38 36 30 20 20 20 20 20 20 20 20 |0). 4860 | 00005f00 20 45 51 55 57 20 62 75 66 66 65 72 2b 28 32 33 | EQUW buffer+(23| 00005f10 2a 34 30 29 0d 20 34 38 37 30 20 20 20 20 20 20 |*40). 4870 | 00005f20 20 20 20 45 51 55 57 20 62 75 66 66 65 72 2b 28 | EQUW buffer+(| 00005f30 32 34 2a 34 30 29 0d 20 34 38 38 30 20 2e 62 6c |24*40). 4880 .bl| 00005f40 61 6e 6b 73 0d 20 34 38 39 30 20 20 20 20 20 20 |anks. 4890 | 00005f50 20 20 20 45 51 55 53 20 53 54 52 49 4e 47 24 28 | EQUS STRING$(| 00005f60 34 30 2c 22 20 22 29 0d 20 34 39 30 30 20 5d 0d |40," "). 4900 ].| 00005f70 20 34 39 31 30 20 4e 45 58 54 0d 20 34 39 32 30 | 4910 NEXT. 4920| 00005f80 20 45 4e 44 50 52 4f 43 0d | ENDPROC.| 00005f89