Home » CEEFAX disks » telesoftware7.adl » 27-05-88/AUTO

27-05-88/AUTO

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 » telesoftware7.adl
Filename: 27-05-88/AUTO
Read OK:
File size: 2A7C bytes
Load address: FFFF1A00
Exec address: FFFF802B
File contents
   10REM PORTFOLIO - AUTO-ENTRY
   20REM (C) Jon Leighton Aug 1987
   30:
   40MODE7
   50ON ERROR GOTO 70
   60GOTO 140
   70*TTXOFF
   80REPORT:PRINTERL,ERR:END
   90ON ERROROFF
  100IF ERR=197 PRINT''"Drive ";FNdrive;" does not exist"
  110IF ERR=199 PRINT''"Disc unformatted or not in drive"
  120PROCkey
  130RUN
  140HIMEM=&5F00
  150PROCassemble
  160VDU23;8202;0;0;0;
  170*FX229,1
  180minrecord%=251
  190firstptr%=158
  200currentdate%=160
  210maxminptr%=171
  220DIM s$(23)
  230DIM SHARE$(19),F%(19),price%(19)
  240DIM SUB%(6),year%(3)
  250p$="Portfolio"
  260PROCfindyear
  270PROCstatus
  280FOR V%=1TO4
  290IF V%=4 V%=0
  300IF year%(V%)=0 THEN 390
  310IF V%=0 ndata%=1 ELSE ndata%=20
  320FOR I%=1TO6:SUB%(I%)=FALSE:NEXT
  330FOR I%=0TO19:price%(I%)=0:NEXT
  340discptr%=165
  350CLS
  360PROCcheck_and_open_file
  370IF FILE%=0 GOTO 390
  380PROCedit
  390CLOSE#0
  400IF V%=0 V%=4
  410NEXT
  420PROCchain("MAIN")
  430END
  440:
  450DEFPROCfindyear
  460PROCsystem
  470X%=OPENIN("YEAR")
  480IF X%=0 CLS:PRINTTAB(0,10)"File 'YEAR' does not exist."''"Go to MAIN panel."''"To return to MAIN":PROCkey:PROCchain("MAIN")
  490FOR I%=0TO3
  500INPUT#X%,year%(I%)
  510NEXT
  520CLOSE#0
  530ENDPROC
  540:
  550DEFPROCchain(A$)
  560PROCsystem
  570CHAIN A$
  580ENDPROC
  590:
  600DEF PROCedit
  610IF V%>0 AND V%<4 PROCauto1:E%=19
  620IF V%=0 PROCauto0:E%=0
  630PTR#FILE%=discptr%
  640FOR ptr=0TOE%
  650BPUT#FILE%,price%(ptr) DIV 100
  660BPUT#FILE%,price%(ptr) MOD 100
  670NEXT
  680REM PUT CURRENT DATE AND DISC POINTER TO DISC
  690PTR#FILE%=currentdate%
  700BPUT#FILE%,D
  710BPUT#FILE%,M
  720BPUT#FILE%,(Y DIV 256)
  730BPUT#FILE%,(Y MOD 256)
  740BPUT#FILE%,DAY
  750BPUT#FILE%,(discptr% DIV 256)
  760BPUT#FILE%,(discptr% MOD 256)
  770REM UPDATE MAX, MIN VALUES ON FILE
  780PTR#FILE%=maxminptr%
  790FOR I%=0TOE%
  800IF price%(I%)=0 GOTO 850
  810min%=BGET#FILE%*256+BGET#FILE%
  820IF min%>price%(I%) PROCupdatemaxmin
  830max%=BGET#FILE%*256+BGET#FILE%
  840IF max%<price%(I%) PROCupdatemaxmin
  850NEXT
  860ENDPROC
  870:
  880DEFPROCupdatemaxmin
  890PTR#FILE%=PTR#FILE%-2
  900BPUT#FILE%,price%(I%) DIV 256
  910BPUT#FILE%,price%(I%) MOD 256
  920ENDPROC
  930:
  940DEFPROCchange_date(C%)
  950discptr%=discptr%+(C%*ndata%*2)
  960IF discptr%<minrecord% discptr%=minrecord%:VDU7:PROCfinish
  970IF discptr%>(EXT#FILE%)-ndata%*2 discptr%=discptr%-(C%*ndata%*2):D=1:M=1:Y=year%(V%)+1:PROCnotfound:PROCcheck_and_open_file:ENDPROC
  980PROCadjustdate
  990ENDPROC
 1000:
 1010DEFPROCadjustdate
 1020REPEAT
 1030D=D+C%
 1040REPEAT
 1050IF FNvalidate(D,M,Y)=0 D=D+C%
 1060IF D>31 D=1:M=M+1:IF M>12 M=1:Y=Y+1
 1070IF D<1 D=31:M=M-1:IF M<1 M=12:Y=Y-1
 1080UNTIL FNvalidate(D,M,Y)<>0
 1090DAY=DAY+C%
 1100IF DAY<1 DAY=7
 1110IF DAY>7 DAY=1
 1120UNTIL DAY<6
 1130ENDPROC
 1140:
 1150DEFFNvalidate(D,M,Y):=D*M*(M<13)*(D<31+((M+(M>7))AND 1)+(M=2)*(2+((Y AND 3)=0)))
 1160:
 1170DEFPROCcheck_and_open_file
 1180REPEAT
 1190FILE%=OPENIN(STR$(year%(V%)*10+V%))
 1200*FX21,0
 1210CLOSE#0
 1220IF FILE%=0 Y=year%(V%):PROCnotfound
 1230UNTIL FILE%<>0
 1240FILE%=OPENUP(STR$(year%(V%)*10+V%))
 1250PTR#FILE%=0
 1260FOR I%=2TOndata%+1
 1270s$(I%)=""
 1280FOR J%=1TO7
 1290B%=BGET#FILE%
 1300IF B%<32 OR B%>126 B%=32
 1310s$(I%)=s$(I%)+CHR$(B%)
 1320NEXT
 1330NEXT
 1340REM GET CURRENT DATE AND DISC POINTER
 1350PTR#FILE%=currentdate%
 1360D=BGET#FILE%
 1370M=BGET#FILE%
 1380Y=(BGET#FILE%)*256+BGET#FILE%
 1390DAY=BGET#FILE%
 1400discptr%=(BGET#FILE%)*256+BGET#FILE%
 1410S%=TRUE
 1420ENDPROC
 1430:
 1440DEFPROCauto1
 1450TEXT$=""
 1460Z%=0
 1470*TTXON
 1480*BBC1
 1490*HON
 1500REPEAT
 1510REPEAT
 1520*PAGE 130
 1530*DATA 6000
 1540UNTIL FNcrc<2
 1550PRINTTAB(0,9)CHR$131;'CHR$131;'CHR$131;
 1560IF NOT FNclose PRINTTAB(4,10)"Waiting until close of business.":PROCborder
 1570UNTIL FNclose
 1580CLS
 1590REPEAT
 1600UNTIL FNdate_ok
 1610PROCloadnames
 1620FOR I%=0TOndata%-1
 1630F%(I%)=FALSE
 1640PRINTTAB(0,I%+2)CHR$131;SHARE$(I%)
 1650NEXT
 1660PRINTTAB(18,10)CHR$131;"Entering data for:-"
 1670PRINTTAB(20,13)CHR$131;D;"/";M;"/";Y
 1680REPEAT
 1690REPEAT
 1700REPEAT
 1710*PAGE 130
 1720*DATA 6000
 1730UNTIL FNcrc<2
 1740UNTIL FNclose
 1750PA%=FNsubpage
 1760PRINTTAB(25,1)CHR$130;"Sub-page ";PA%
 1770CALL&5F00
 1780FOR R%=5TO19
 1790PROCgettext(&6000,R%)
 1800PROCsearch
 1810NEXT
 1820SUB%(PA%)=TRUE
 1830UNTILZ%=20 OR SUB%(1)+SUB%(2)+SUB%(3)+SUB%(4)+SUB%(5)+SUB%(6)=(-6)
 1840PRINTTAB(0,21)
 1850*TTXOFF
 1860ENDPROC
 1870:
 1880DEFPROCborder
 1890FOR J%=0TO1
 1900IF J%=0 T1$="_" ELSE T1$=" "
 1910IF J%=0 T2$="I" ELSE T2$=" "
 1920FOR I%=2 TO 37
 1930PROCdelay
 1940PRINTTAB(I%,11)T1$;
 1950NEXT
 1960PRINTTAB(37,10)T2$;
 1970FOR I%=37 TO 2 STEP -1
 1980PROCdelay
 1990PRINTTAB(I%,9)T1$;
 2000NEXT
 2010PRINTTAB(2,10)T2$;
 2020NEXT
 2030ENDPROC
 2040:
 2050DEFPROCauto0
 2060TEXT$=""
 2070*TTXON
 2080*BBC1
 2090*HON
 2100*PAGE 125
 2110REPEAT
 2120UNTIL FNdate_ok
 2130PRINTTAB(5,12)CHR$131;"FT-SE 100"
 2140REPEAT
 2150*PAGE 125
 2160*DATA 6000
 2170sub_page%=FNsubpage
 2180PRINTTAB(25,1)CHR$130;"Sub-page ";sub_page%
 2190UNTIL FNcrc<2 AND sub_page%=2
 2200CALL&5F00
 2210L%=21
 2220PROCgettext(&6000,L%)
 2230PROCsearch1
 2240*TTXOFF
 2250ENDPROC
 2260:
 2270DEFPROCgettext(address%,row%)
 2280TEXT$="":I%=0
 2290REPEAT
 2300pointer%=address%+1+I%*42
 2310I%=I%+1
 2320UNTIL ?pointer%=row% OR I%=24
 2330IF I%<24 pointer%?41=13:TEXT$=$(pointer%+2)
 2340ENDPROC
 2350:
 2360DEFPROCsearch
 2370IF SUB%(PA%) THEN ENDPROC
 2380FOR J%=1 TO 21 STEP 20
 2390FOR I%=0TO19
 2400IF SHARE$(I%)="       " GOTO 2420
 2410IF SHARE$(I%)=MID$(TEXT$,J%,7) PROCfound
 2420NEXT
 2430NEXT
 2440ENDPROC
 2450:
 2460DEFPROCsearch1
 2470price%(0)=VAL(MID$(TEXT$,26,5))
 2480PRINTTAB(16,12)price%(0)
 2490Z%=Z%+1
 2500ENDPROC
 2510:
 2520DEFPROCfound
 2530IF F%(I%)=FALSE Z%=Z%+1:F%(I%)=TRUE:ELSE ENDPROC
 2540PRINTTAB(0,1)CHR$129;"Found ";Z%;" shares"
 2550S%=J%+6
 2560REPEAT
 2570S%=S%+1
 2580UNTIL ASC(MID$(TEXT$,S%,1))>47 AND ASC(MID$(TEXT$,S%,1))<58
 2590E%=S%
 2600REPEAT
 2610E%=E%+1
 2620UNTIL MID$(TEXT$,E%,1)=" "
 2630E%=E%-1
 2640price%(I%)=VAL(MID$(TEXT$,S%,E%-S%+1))
 2650PRINTTAB(10,I%+2)CHR$131;price%(I%)
 2660ENDPROC
 2670:
 2680DEFFNclose
 2690REM Look for the text string "Close" starting at location &60C5
 2700TEXT$=""
 2710FOR I%=&60C5 TO &60C9
 2720TEXT$=TEXT$+CHR$(?I% AND 127)
 2730NEXT
 2740IF TEXT$="Close" OR TEXT$="close" =TRUE ELSE =FALSE
 2750:
 2760DEFFNdate_ok
 2770REM"�DATE WITH ATS
 2780TIME=0:REPEATUNTILTIME>120
 2790block%=&7000
 2800A%=&7A:X%=block%MOD256:Y%=block%DIV256:?block%=15:CALL&FFF1
 2810BB1$=RIGHT$(STR$~(block%?8),1)
 2820BB2$=STR$~(block%?9):IF LEN(BB2$)=1 BB2$="0"+BB2$
 2830BB3$=STR$~(block%?10):IF LEN(BB3$)=1 BB3$="0"+BB3$
 2840JD=VAL(BB1$+BB2$+BB3$)
 2850y%=(100*(JD-15078.2))DIV36525
 2860m%=INT((JD-14956.1-INT(365.25*y%))/30.6001)
 2870d%=JD-14956-INT(365.25*y%)-INT(30.6*m%):K=INT(0.7+(1/(17-m%)))
 2880m%=m%-1-12*K
 2890y%=y%+1900
 3070dd%=y%*10000+m%*100+d%
 3080REM
 3090REM Get hour from CEEFAX
 3100REM
 3110block%=&6000
 3120?block%=21
 3130X%=block% MOD 256
 3140Y%=block% DIV 256
 3150A%=&7A
 3160REPEAT
 3170CALL&FFF1
 3180UNTIL block%?10=0
 3190hr%=VAL(CHR$(?&6001)+CHR$(?&6002))
 3200IF hr%<10 dd%=dd%-1
 3210REPEAT
 3220D%=Y*10000+M*100+D
 3230IF D%<dd% PROCchange_date(1)
 3240UNTIL D%>=dd%
 3250REPEAT
 3260D%=Y*10000+M*100+D
 3270IF D%>dd% PROCchange_date(-1)
 3280UNTIL D%<=dd%
 3290=TRUE
 3300:
 3310DEFPROCstatus
 3320REPEAT
 3330block%=&6000
 3340?block%=17
 3350block%?1=&FE
 3360X%=block% MOD 256
 3370Y%=block% DIV 256
 3380A%=&7A
 3390CALL&FFF1
 3400IF block%?1=1 PRINTTAB(0,10)CHR$129;"Teletext Adaptor on, but no signal."''CHR$129;"Check tuning or aerial."
 3410IF block%?1=2 PRINTTAB(0,10)CHR$129;"Teletext Adaptor connected,"'CHR$129;"but switched off."'CHR$129;"Switch on, press BREAK and start again."
 3420IF block%?1=&FF PRINTTAB(0,10)CHR$129;"No Teletext Adaptor connected."
 3430IF block%?1=&FE PRINTTAB(7,10)CHR$131;"NO ATS ROM INSTALLED"''TAB(5)CHR$131;"INSTALL AND START AGAIN"
 3440UNTILblock%?1=0
 3450ENDPROC
 3460:
 3470DEFFNcrc
 3480?&6000=23
 3490?&6001=0
 3500?&6002=&60
 3510X%=0
 3520Y%=&60
 3530A%=&7A
 3540CALL&FFF1
 3550PRINTTAB(20,5)SPC(12)
 3560IF ?&6003=&FF PRINTTAB(20,5)CHR$129;"CRC ERROR."
 3570IF ?&6003=0 PRINTTAB(20,5)CHR$129;"WARNING:-NO CRC"
 3580=?&6003
 3590:
 3600DEFPROCdelay
 3610TIME=0
 3620REPEATUNTILTIME>10
 3630ENDPROC
 3640:
 3650DEFPROCloadnames
 3660PTR#FILE%=0
 3670FOR I%=0TOndata%-1
 3680SHARE$(I%)=""
 3690FOR J%=0TO6
 3700H%=BGET#FILE%
 3710SHARE$(I%)=SHARE$(I%)+CHR$(H%)
 3720NEXT
 3730NEXT
 3740ENDPROC
 3750:
 3760DEFFNsubpage
 3770=?&6004
 3780:
 3790DEFPROCfinish
 3800*TTXOFF
 3810CLS
 3820PRINTTAB(0,10)CHR$131;"Portfolio ";V%;" starts on ";D;"/";M;"/";Y'CHR$131;"and the CEEFAX date is ";d%;"/";m%;"/";y%''CHR$131;"FATAL ERROR"'CHR$131;"Program terminating":VDU21:END
 3830:
 3840DEFPROCkey
 3850PRINT'"PRESS A KEY"
 3860*FX21,0
 3870K%=GET
 3880ENDPROC
 3890:
 3900DEFFNdrive
 3910b%=&6000
 3920X%=b% MOD 256
 3930Y%=b% DIV 256
 3940A%=6
 3950FOR I%=0TO11
 3960b%?I%=0
 3970NEXT
 3980b%?2=&60
 3990b%?1=1
 4000b%?12=1
 4010CALL&FFD1
 4020=?&6002-48
 4030:
 4040DEFPROCnotfound
 4050*TTXOFF
 4060CLS
 4070year%(V%)=Y
 4080CLOSE#0
 4090f$=""
 4100IF V%=0 f$="Index data" ELSE f$=p$+" "+STR$(V%)
 4110f$=f$+" for "+STR$(year%(V%))
 4120IF year%(V%)=0 AND V%=0 f$="Index data"
 4130IF year%(V%)=0 AND V%<>0 f$="Portfolio data"
 4140REPEAT
 4150PRINTTAB(0,5)f$;" not on this disc:-"
 4160REPEAT
 4170PRINTTAB(2,8)"A) (A)bandon"''TAB(2)"C) (C)atalogue disc"''TAB(2)"D) (D)rive change (currently Drive ";FNdrive;")"''TAB(2)"G) (G)o on"''TAB(2)"S) (S)tart a new file"''TAB(2)"Choose A,C,D,G or S"
 4180REPEAT
 4190*FX21,0
 4200KEY%=GET AND &DF
 4210UNTIL KEY%=65 OR KEY%=67 OR KEY%=68 OR KEY%=71 OR KEY%=83
 4220IF KEY%=67 THEN *.
 4230IF KEY%=68 PRINT'TAB(10)"Enter drive no.";:REPEAT:KEY%=GET-48:UNTILKEY%>-1 AND KEY%<4:PRINT;" ";KEY%:$&C10="DR."+STR$(KEY%):X%=&10:Y%=&C:CALL&FFF7:PRINT''TAB(10)"Drive ";KEY%;" selected"
 4240IF KEY%=65 OR KEY%=71 OR KEY%=83 GOTO 4260
 4250PROCkey
 4260CLS
 4270UNTILKEY%=65 OR KEY%=71 OR KEY%=83
 4280CLOSE#0
 4290B%=OPENIN(STR$(year%(V%)*10+V%))
 4300CLOSE#0
 4310UNTILB%<>0 OR KEY%=65 OR KEY%=83
 4320ON ERROR OFF
 4330IF KEY%=65 PROCchain("MAIN")
 4340IF KEY%=83 PROCopen:ENDPROC
 4350ENDPROC
 4360:
 4370DEFPROCopen
 4380IF V%=0 f$="Index" ELSE f$=p$+" "+STR$(V%)
 4390PRINTTAB(0,3)f$;" for ";year%(V%)
 4400PRINTTAB(0,5)"A new file will be opened if there is"'"enough space."''"Do you wish to start a new file? (Y/N)"
 4410REPEAT
 4420*FX21,0
 4430A%=GET AND &DF
 4440UNTIL A%=78 OR A%=89
 4450IF A%=78 ENDPROC
 4460REPEAT
 4470REPEAT
 4480PRINT'"Enter date from which ";f$'"is to start in the form DD/MM"'"where DD is the day of the month"'"and MM is the month of the year";:INPUTa$:a$=a$+"/"+STR$(year%(V%))
 4490IF MID$(a$,3,1)<>"/" PROCerrordate:GOTO 4480
 4500FOR I%=1TO10
 4510IF I%=3 OR I%=6 GOTO 4530
 4520IF MID$(a$,I%,1)<"0" OR MID$(a$,I%,1)>"9" PROCerrordate:I%=20
 4530NEXT
 4540UNTIL I%<19
 4550D=VAL(MID$(a$,1,2))
 4560M=VAL(MID$(a$,4,2))
 4570Y=VAL(MID$(a$,7,4))
 4580IF FNvalidate(D,M,Y)=0 PROCerrordate
 4590UNTIL FNvalidate(D,M,Y)<>0
 4600INPUT'"And enter day of week (Monday=1) "DAY
 4610IF DAY>5 PRINT'"Weekends are not allowed !"'"The next Monday will be used and"'"the date will be adjusted.":C%=1:PROCadjustdate
 4620CLS
 4630PRINTTAB(2,5)"INITIALISING - Please wait"
 4640B%=OPENIN(STR$(year%(V%)-1)+STR$(V%))
 4650IF B%=0 GOTO 4750
 4660REM Take a copy of sharenames for new file
 4670FORI%=1TOndata%
 4680s$(I%)=""
 4690FORJ%=1TO7
 4700s$(I%)=s$(I%)+CHR$(BGET#B%)
 4710NEXT
 4720NEXT
 4730CLOSE#0
 4740REM Send data to disc as outlined at start of prog.
 4750PROCespace
 4760PROCopen2
 4770PROCpushyear
 4780ON ERROR OFF
 4790ENDPROC
 4800:
 4810DEFPROCopen2
 4820$&C01="SAVE "+STR$(year%(V%))+STR$(V%)+" 2000 +"+STR$~D%
 4830CALL&FFF7
 4840A%=OPENOUT(STR$(year%(V%))+STR$(V%))
 4850FORI%=1TOndata%
 4860FORJ%=1TO7
 4870BPUT#A%,ASC(MID$(s$(I%),J%,1))
 4880NEXT
 4890NEXT
 4900PTR#A%=firstptr%
 4910BPUT#A%,minrecord% DIV 256
 4920BPUT#A%,minrecord% MOD 256
 4930BPUT#A%,D
 4940BPUT#A%,M
 4950BPUT#A%,(Y DIV 256)
 4960BPUT#A%,(Y MOD 256)
 4970BPUT#A%,DAY
 4980BPUT#A%,minrecord% DIV 256
 4990BPUT#A%,minrecord% MOD 256
 5000BPUT#A%,D
 5010BPUT#A%,M
 5020BPUT#A%,(Y DIV 256)
 5030BPUT#A%,(Y MOD 256)
 5040FOR I%=1TOndata%
 5050BPUT#A%,&FF
 5060BPUT#A%,&FF
 5070BPUT#A%,0
 5080BPUT#A%,0
 5090NEXT
 5100PTR#A%=minrecord%
 5110C%=1
 5120G%=VPOS+1
 5130OLDY=Y
 5140C%=1
 5150REPEAT
 5160PROCadjustdate
 5170IF Y<>OLDY GOTO 5220
 5180FOR I%=1TOndata%*2
 5190BPUT#A%,0
 5200NEXT
 5210PRINTTAB(5,G%)D;"/";M;"/";Y;" "
 5220UNTIL Y<>OLDY
 5230FOR I%=1TOndata%*2
 5240BPUT#A%,0
 5250NEXT
 5260CLOSE#0
 5270PROCthold(1)
 5280REM Set current disc pointer to point at current data point ie first
 5290discptr%=minrecord%
 5300CLOSE#0
 5310CLS
 5320ON ERROR OFF
 5330ENDPROC
 5340:
 5350DEFPROCthold(B%)
 5360IF B%=0:tempday=DAY:tempd=D:tempm=M:tempy=Y
 5370IF B%=1 DAY=tempday:D=tempd:M=tempm:Y=tempy
 5380ENDPROC
 5390:
 5400DEFPROCespace
 5410PROCthold(0)
 5420C%=1
 5430D%=0
 5440OLDY=Y
 5450REPEAT
 5460PROCadjustdate
 5470D%=D%+1
 5480UNTILY<>OLDY
 5490PROCthold(1)
 5500D%=(D%-1)*ndata%*2
 5510X%=1
 5520Y%=&C
 5530ON ERROR OFF
 5540ENDPROC
 5550:
 5560DEFPROCerrordate
 5570CLS
 5580PRINTTAB(5,10)"Error in date."''"Press a KEY to re-enter"
 5590I%=GET
 5600CLS
 5610ENDPROC
 5620:
 5630DEFPROCpushyear
 5640PROCsystem
 5650X%=OPENOUT("YEAR")
 5660FOR I%=0TO3
 5670PRINT#X%,year%(I%)
 5680NEXT
 5690ENDPROC
 5700:
 5710DEFPROCsystem
 5720REPEAT
 5730*FX21,0
 5740A%=OPENIN("MAIN")
 5750CLOSE#0
 5760IF A%=0 CLS:PRINTTAB(0,10)"Insert System Disc in drive 0"''"and press any key to continue":REPEATUNTILGET
 5770UNTIL A%<>0
 5780ENDPROC
 5790:
 5800DEFPROCassemble
 5810VDU21
 5820FOR N%=0TO2 STEP2
 5830P%=&5F00
 5840[
 5850OPT N%
 5860.start
 5870    lda #0:sta &80:lda #&60:sta &81
 5880.loop
 5890    ldy #2
 5900.loop1
 5910    lda (&80),Y:and #&7F:sta (&80),Y
 5920.ok1
 5930    cmp #32:bcs ok2:lda #32:sta (&80),Y
 5940.ok2
 5950    iny:cpy #42:bcc loop1:clc:lda #42:adc &80:sta &80:lda #0:adc &81:sta &81:cmp #&65:bcc loop:lda &80:cmp #&00:bcc loop:rts
 5960]
 5970NEXT
 5980VDU6
 5990ENDPROC

� PORTFOLIO - AUTO-ENTRY
� (C) Jon Leighton Aug 1987
:
(�7
2� � � �DF@
<
� �tL@
F*TTXOFF
P�:�,�:�
Z� ��
d0� �=197 �''"Drive ";�drive;" does not exist"
n1� �=199 �''"Disc unformatted or not in drive"
x�key
��
��=&5F00
�
�assemble
��23;8202;0;0;0;
�*FX229,1
�minrecord%=251
�firstptr%=158
�currentdate%=160
�maxminptr%=171
�� s$(23)
�"� SHARE$(19),F%(19),price%(19)
�� SUB%(6),year%(3)
�p$="Portfolio"

�findyear
�status
� V%=1�4
"� V%=4 V%=0
,� year%(V%)=0 � �tFA
6� V%=0 ndata%=1 � ndata%=20
@� I%=1�6:SUB%(I%)=�:�
J� I%=0�19:price%(I%)=0:�
Tdiscptr%=165
^�
h�check_and_open_file
r� FILE%=0 � �tFA
|	�edit
��#0
�� V%=0 V%=4
��
��chain("MAIN")
��
�:
���findyear
��system
�X%=�("YEAR")
�o� X%=0 �:�0,10)"File 'YEAR' does not exist."''"Go to MAIN panel."''"To return to MAIN":�key:�chain("MAIN")
�� I%=0�3
��#X%,year%(I%)
��
�#0
�
:
&��chain(A$)
0�system
:� A$
D�
N:
X� �edit
b� V%>0 � V%<4 �auto1:E%=19
l� V%=0 �auto0:E%=0
v�#FILE%=discptr%
�� ptr=0�E%
��#FILE%,price%(ptr) � 100
��#FILE%,price%(ptr) � 100
��
�/� PUT CURRENT DATE AND DISC POINTER TO DISC
��#FILE%=currentdate%
�
�#FILE%,D
�
�#FILE%,M
��#FILE%,(Y � 256)
��#FILE%,(Y � 256)
��#FILE%,DAY
��#FILE%,(discptr% � 256)
��#FILE%,(discptr% � 256)
$� UPDATE MAX, MIN VALUES ON FILE
�#FILE%=maxminptr%

� I%=0�E%
 � price%(I%)=0 � �DRC
*min%=�#FILE%*256+�#FILE%
4#� min%>price%(I%) �updatemaxmin
>max%=�#FILE%*256+�#FILE%
H#� max%<price%(I%) �updatemaxmin
R�
\�
f:
p��updatemaxmin
z�#FILE%=�#FILE%-2
��#FILE%,price%(I%) � 256
��#FILE%,price%(I%) � 256
��
�:
���change_date(C%)
�#discptr%=discptr%+(C%*ndata%*2)
�8� discptr%<minrecord% discptr%=minrecord%:�7:�finish
�x� discptr%>(�#FILE%)-ndata%*2 discptr%=discptr%-(C%*ndata%*2):D=1:M=1:Y=year%(V%)+1:�notfound:�check_and_open_file:�
��adjustdate
��
�:
���adjustdate
��

D=D+C%
�
� �validate(D,M,Y)=0 D=D+C%
$%� D>31 D=1:M=M+1:� M>12 M=1:Y=Y+1
.%� D<1 D=31:M=M-1:� M<1 M=12:Y=Y-1
8� �validate(D,M,Y)<>0
BDAY=DAY+C%
L� DAY<1 DAY=7
V� DAY>7 DAY=1
`� DAY<6
j�
t:
~Mݤvalidate(D,M,Y):=D*M*(M<13)*(D<31+((M+(M>7))� 1)+(M=2)*(2+((Y � 3)=0)))
�:
���check_and_open_file
��
�FILE%=�(�(year%(V%)*10+V%))
�*FX21,0
��#0
�#� FILE%=0 Y=year%(V%):�notfound
�� FILE%<>0
�FILE%=�(�(year%(V%)*10+V%))
�
�#FILE%=0
�� I%=2�ndata%+1
�
s$(I%)=""
� J%=1�7

B%=�#FILE%
� B%<32 � B%>126 B%=32
s$(I%)=s$(I%)+�(B%)
(�
2�
<'� GET CURRENT DATE AND DISC POINTER
F�#FILE%=currentdate%
P
D=�#FILE%
Z
M=�#FILE%
dY=(�#FILE%)*256+�#FILE%
nDAY=�#FILE%
x"discptr%=(�#FILE%)*256+�#FILE%
�S%=�
��
�:
���auto1
�TEXT$=""
�Z%=0
�
*TTXON
�	*BBC1
�*HON
��
��
�
*PAGE 130
�*DATA 6000
� �crc<2
�0,9)�131;'�131;'�131;
@� � �close �4,10)"Waiting until close of business.":�border
"� �close
,�
6�
@� �date_ok
J�loadnames
T� I%=0�ndata%-1
^F%(I%)=�
h�0,I%+2)�131;SHARE$(I%)
r�
|&�18,10)�131;"Entering data for:-"
��20,13)�131;D;"/";M;"/";Y
��
��
��
�
*PAGE 130
�*DATA 6000
�� �crc<2
�� �close
�PA%=�subpage
��25,1)�130;"Sub-page ";PA%
�
�&5F00
�
� R%=5�19
��gettext(&6000,R%)
�search
�
SUB%(PA%)=�
&A�Z%=20 � SUB%(1)+SUB%(2)+SUB%(3)+SUB%(4)+SUB%(5)+SUB%(6)=(-6)
0�0,21)
:*TTXOFF
D�
N:
X��border
b� J%=0�1
l� J%=0 T1$="_" � T1$=" "
v� J%=0 T2$="I" � T2$=" "
�� I%=2 � 37
�
�delay
��I%,11)T1$;
��
��37,10)T2$;
�� I%=37 � 2 � -1
�
�delay
��I%,9)T1$;
��
��2,10)T2$;
��
��
�:
��auto0
TEXT$=""

*TTXON
 	*BBC1
**HON
4
*PAGE 125
>�
H� �date_ok
R�5,12)�131;"FT-SE 100"
\�
f
*PAGE 125
p*DATA 6000
zsub_page%=�subpage
�%�25,1)�130;"Sub-page ";sub_page%
�� �crc<2 � sub_page%=2
�
�&5F00
�	L%=21
��gettext(&6000,L%)
��search1
�*TTXOFF
��
�:
���gettext(address%,row%)
�TEXT$="":I%=0
��
�pointer%=address%+1+I%*42
	I%=I%+1
	� ?pointer%=row% � I%=24
	.� I%<24 pointer%?41=13:TEXT$=$(pointer%+2)
	$�
	.:
	8��search
	B� SUB%(PA%) � �
	L� J%=1 � 21 � 20
	V
� I%=0�19
	`!� SHARE$(I%)="       " � �DtI
	j$� SHARE$(I%)=�TEXT$,J%,7) �found
	t�
	~�
	��
	�:
	�
��search1
	�price%(0)=�(�TEXT$,26,5))
	��16,12)price%(0)
	�Z%=Z%+1
	��
	�:
	���found
	�#� F%(I%)=� Z%=Z%+1:F%(I%)=�:� �
	�$�0,1)�129;"Found ";Z%;" shares"
	�S%=J%+6
�

S%=S%+1
-� �(�TEXT$,S%,1))>47 � �(�TEXT$,S%,1))<58
	E%=S%
(�
2E%=E%+1
<� �TEXT$,E%,1)=" "
FE%=E%-1
P$price%(I%)=�(�TEXT$,S%,E%-S%+1))
Z�10,I%+2)�131;price%(I%)
d�
n:
xݤclose
�A� Look for the text string "Close" starting at location &60C5
�TEXT$=""
�� I%=&60C5 � &60C9
�TEXT$=TEXT$+�(?I% � 127)
��
�+� TEXT$="Close" � TEXT$="close" =� � =�
�:
�
ݤdate_ok
��"�DATE WITH ATS
��=0:���>120
�block%=&7000
�8A%=&7A:X%=block%�256:Y%=block%�256:?block%=15:�&FFF1
�BB1$=��~(block%?8),1)
/BB2$=�~(block%?9):� �(BB2$)=1 BB2$="0"+BB2$
0BB3$=�~(block%?10):� �(BB3$)=1 BB3$="0"+BB3$
JD=�(BB1$+BB2$+BB3$)
"y%=(100*(JD-15078.2))�36525
,+m%=�((JD-14956.1-�(365.25*y%))/30.6001)
6<d%=JD-14956-�(365.25*y%)-�(30.6*m%):K=�(0.7+(1/(17-m%)))
@m%=m%-1-12*K
Jy%=y%+1900
�dd%=y%*10000+m%*100+d%
�
� Get hour from CEEFAX
�
&block%=&6000
0?block%=21
:X%=block% � 256
DY%=block% � 256
N
A%=&7A
X�
b
�&FFF1
l� block%?10=0
vhr%=�(�(?&6001)+�(?&6002))
�� hr%<10 dd%=dd%-1
��
�D%=Y*10000+M*100+D
�� D%<dd% �change_date(1)
�
� D%>=dd%
��
�D%=Y*10000+M*100+D
�� D%>dd% �change_date(-1)
�
� D%<=dd%
�=�
�:
���status
��

block%=&6000

?block%=17

block%?1=&FE

 X%=block% � 256

*Y%=block% � 256

4
A%=&7A

>
�&FFF1

Hb� block%?1=1 �0,10)�129;"Teletext Adaptor on, but no signal."''�129;"Check tuning or aerial."

R�� block%?1=2 �0,10)�129;"Teletext Adaptor connected,"'�129;"but switched off."'�129;"Switch on, press BREAK and start again."

\?� block%?1=&FF �0,10)�129;"No Teletext Adaptor connected."

fX� block%?1=&FE �7,10)�131;"NO ATS ROM INSTALLED"''�5)�131;"INSTALL AND START AGAIN"

p�block%?1=0

z�

�:

�	ݤcrc

�
?&6000=23

�?&6001=0

�?&6002=&60

�X%=0

�
Y%=&60

�
A%=&7A

�
�&FFF1

��20,5)�(12)

�)� ?&6003=&FF �20,5)�129;"CRC ERROR."

�,� ?&6003=0 �20,5)�129;"WARNING:-NO CRC"

�=?&6003
:
��delay
�=0
$
���>10
.�
8:
B��loadnames
L
�#FILE%=0
V� I%=0�ndata%-1
`SHARE$(I%)=""
j� J%=0�6
tH%=�#FILE%
~SHARE$(I%)=SHARE$(I%)+�(H%)
��
��
��
�:
�
ݤsubpage
�=?&6004
�:
���finish
�*TTXOFF
��
��0,10)�131;"Portfolio ";V%;" starts on ";D;"/";M;"/";Y'�131;"and the CEEFAX date is ";d%;"/";m%;"/";y%''�131;"FATAL ERROR"'�131;"Program terminating":�21:�
�:
	��key

�'"PRESS A KEY"
*FX21,0
K%=�
(�
2:
<ݤdrive
Fb%=&6000
PX%=b% � 256
ZY%=b% � 256
dA%=6
n
� I%=0�11
xb%?I%=0
��
�b%?2=&60
�
b%?1=1
�b%?12=1
�
�&FFD1
�=?&6002-48
�:
���notfound
�*TTXOFF
��
�year%(V%)=Y
��#0
�	f$=""
,� V%=0 f$="Index data" � f$=p$+" "+�(V%)
f$=f$+" for "+�(year%(V%))
(� year%(V%)=0 � V%=0 f$="Index data"
"-� year%(V%)=0 � V%<>0 f$="Portfolio data"
,�
6"�0,5)f$;" not on this disc:-"
@�
J��2,8)"A) (A)bandon"''�2)"C) (C)atalogue disc"''�2)"D) (D)rive change (currently Drive ";�drive;")"''�2)"G) (G)o on"''�2)"S) (S)tart a new file"''�2)"Choose A,C,D,G or S"
T�
^*FX21,0
hKEY%=� � &DF
r5� KEY%=65 � KEY%=67 � KEY%=68 � KEY%=71 � KEY%=83
|� KEY%=67 � *.
��� KEY%=68 �'�10)"Enter drive no.";:�:KEY%=�-48:�KEY%>-1 � KEY%<4:�;" ";KEY%:$&C10="DR."+�(KEY%):X%=&10:Y%=&C:�&FFF7:�''�10)"Drive ";KEY%;" selected"
�(� KEY%=65 � KEY%=71 � KEY%=83 � �tdP
��key
��
� �KEY%=65 � KEY%=71 � KEY%=83
��#0
�B%=�(�(year%(V%)*10+V%))
��#0
��B%<>0 � KEY%=65 � KEY%=83
�	� � �
�� KEY%=65 �chain("MAIN")
�� KEY%=83 �open:�
��
:

��open
'� V%=0 f$="Index" � f$=p$+" "+�(V%)
&�0,3)f$;" for ";year%(V%)
0k�0,5)"A new file will be opened if there is"'"enough space."''"Do you wish to start a new file? (Y/N)"
:�
D*FX21,0
NA%=� � &DF
X� A%=78 � A%=89
b
� A%=78 �
l�
v�
���'"Enter date from which ";f$'"is to start in the form DD/MM"'"where DD is the day of the month"'"and MM is the month of the year";:�a$:a$=a$+"/"+�(year%(V%))
�%� �a$,3,1)<>"/" �errordate:� �t@Q
�
� I%=1�10
�� I%=3 � I%=6 � �trQ
�4� �a$,I%,1)<"0" � �a$,I%,1)>"9" �errordate:I%=20
��
�� I%<19
�D=�(�a$,1,2))
�M=�(�a$,4,2))
�Y=�(�a$,7,4))
�#� �validate(D,M,Y)=0 �errordate
�� �validate(D,M,Y)<>0
�,�'"And enter day of week (Monday=1) "DAY
{� DAY>5 �'"Weekends are not allowed !"'"The next Monday will be used and"'"the date will be adjusted.":C%=1:�adjustdate
�
&�2,5)"INITIALISING - Please wait"
 B%=�(�(year%(V%)-1)+�(V%))
*� B%=0 � �tNR
4,� Take a copy of sharenames for new file
>�I%=1�ndata%
H
s$(I%)=""
R�J%=1�7
\s$(I%)=s$(I%)+�(�#B%)
f�
p�
z�#0
�5� Send data to disc as outlined at start of prog.
��espace
�
�open2
�
�pushyear
�	� � �
��
�:
���open2
�3$&C01="SAVE "+�(year%(V%))+�(V%)+" 2000 +"+�~D%
�
�&FFF7
�A%=�(�(year%(V%))+�(V%))
��I%=1�ndata%
��J%=1�7
�#A%,�(�s$(I%),J%,1))
�
�
$�#A%=firstptr%
.�#A%,minrecord% � 256
8�#A%,minrecord% � 256
B
�#A%,D
L
�#A%,M
V�#A%,(Y � 256)
`�#A%,(Y � 256)
j�#A%,DAY
t�#A%,minrecord% � 256
~�#A%,minrecord% � 256
�
�#A%,D
�
�#A%,M
��#A%,(Y � 256)
��#A%,(Y � 256)
�� I%=1�ndata%
��#A%,&FF
��#A%,&FF
�
�#A%,0
�
�#A%,0
��
��#A%=minrecord%
�C%=1

G%=�+1


OLDY=Y
C%=1
�
(�adjustdate
2� Y<>OLDY � �DdT
<� I%=1�ndata%*2
F
�#A%,0
P�
Z�5,G%)D;"/";M;"/";Y;" "
d
� Y<>OLDY
n� I%=1�ndata%*2
x
�#A%,0
��
��#0
�
�thold(1)
�F� Set current disc pointer to point at current data point ie first
�discptr%=minrecord%
��#0
��
�	� � �
��
�:
���thold(B%)
�.� B%=0:tempday=DAY:tempd=D:tempm=M:tempy=Y
�.� B%=1 DAY=tempday:D=tempd:M=tempm:Y=tempy
�
:
��espace
"
�thold(0)
,C%=1
6D%=0
@
OLDY=Y
J�
T�adjustdate
^D%=D%+1
h�Y<>OLDY
r
�thold(1)
|D%=(D%-1)*ndata%*2
�X%=1
�	Y%=&C
�	� � �
��
�:
���errordate
��
�6�5,10)"Error in date."''"Press a KEY to re-enter"
�I%=�
��
��
�:
���pushyear
�system
X%=�("YEAR")
� I%=0�3
&�#X%,year%(I%)
0�
:�
D:
N��system
X�
b*FX21,0
lA%=�("MAIN")
v�#0
�X� A%=0 �:�0,10)"Insert System Disc in drive 0"''"and press any key to continue":���
�� A%<>0
��
�:
���assemble
��21
�� N%=0�2 �2
�P%=&5F00
�[
�
OPT N%
�
.start
�'    lda #0:sta &80:lda #&60:sta &81
�	.loop
    ldy #2

.loop1
(    lda (&80),Y:and #&7F:sta (&80),Y
 .ok1
*+    cmp #32:bcs ok2:lda #32:sta (&80),Y
4.ok2
>�    iny:cpy #42:bcc loop1:clc:lda #42:adc &80:sta &80:lda #0:adc &81:sta &81:cmp #&65:bcc loop:lda &80:cmp #&00:bcc loop:rts
H]
R�
\�6
f�
�
00000000  0d 00 0a 1c f4 20 50 4f  52 54 46 4f 4c 49 4f 20  |..... PORTFOLIO |
00000010  2d 20 41 55 54 4f 2d 45  4e 54 52 59 0d 00 14 1f  |- AUTO-ENTRY....|
00000020  f4 20 28 43 29 20 4a 6f  6e 20 4c 65 69 67 68 74  |. (C) Jon Leight|
00000030  6f 6e 20 41 75 67 20 31  39 38 37 0d 00 1e 05 3a  |on Aug 1987....:|
00000040  0d 00 28 06 eb 37 0d 00  32 0e ee 20 85 20 e5 20  |..(..7..2.. . . |
00000050  8d 44 46 40 0d 00 3c 0a  e5 20 8d 74 4c 40 0d 00  |.DF@..<.. .tL@..|
00000060  46 0b 2a 54 54 58 4f 46  46 0d 00 50 0c f6 3a f1  |F.*TTXOFF..P..:.|
00000070  9e 2c 9f 3a e0 0d 00 5a  08 ee 20 85 87 0d 00 64  |.,.:...Z.. ....d|
00000080  30 e7 20 9f 3d 31 39 37  20 f1 27 27 22 44 72 69  |0. .=197 .''"Dri|
00000090  76 65 20 22 3b a4 64 72  69 76 65 3b 22 20 64 6f  |ve ";.drive;" do|
000000a0  65 73 20 6e 6f 74 20 65  78 69 73 74 22 0d 00 6e  |es not exist"..n|
000000b0  31 e7 20 9f 3d 31 39 39  20 f1 27 27 22 44 69 73  |1. .=199 .''"Dis|
000000c0  63 20 75 6e 66 6f 72 6d  61 74 74 65 64 20 6f 72  |c unformatted or|
000000d0  20 6e 6f 74 20 69 6e 20  64 72 69 76 65 22 0d 00  | not in drive"..|
000000e0  78 08 f2 6b 65 79 0d 00  82 05 f9 0d 00 8c 0b d3  |x..key..........|
000000f0  3d 26 35 46 30 30 0d 00  96 0d f2 61 73 73 65 6d  |=&5F00.....assem|
00000100  62 6c 65 0d 00 a0 13 ef  32 33 3b 38 32 30 32 3b  |ble.....23;8202;|
00000110  30 3b 30 3b 30 3b 0d 00  aa 0c 2a 46 58 32 32 39  |0;0;0;....*FX229|
00000120  2c 31 0d 00 b4 12 6d 69  6e 72 65 63 6f 72 64 25  |,1....minrecord%|
00000130  3d 32 35 31 0d 00 be 11  66 69 72 73 74 70 74 72  |=251....firstptr|
00000140  25 3d 31 35 38 0d 00 c8  14 63 75 72 72 65 6e 74  |%=158....current|
00000150  64 61 74 65 25 3d 31 36  30 0d 00 d2 12 6d 61 78  |date%=160....max|
00000160  6d 69 6e 70 74 72 25 3d  31 37 31 0d 00 dc 0c de  |minptr%=171.....|
00000170  20 73 24 28 32 33 29 0d  00 e6 22 de 20 53 48 41  | s$(23)...". SHA|
00000180  52 45 24 28 31 39 29 2c  46 25 28 31 39 29 2c 70  |RE$(19),F%(19),p|
00000190  72 69 63 65 25 28 31 39  29 0d 00 f0 16 de 20 53  |rice%(19)..... S|
000001a0  55 42 25 28 36 29 2c 79  65 61 72 25 28 33 29 0d  |UB%(6),year%(3).|
000001b0  00 fa 12 70 24 3d 22 50  6f 72 74 66 6f 6c 69 6f  |...p$="Portfolio|
000001c0  22 0d 01 04 0d f2 66 69  6e 64 79 65 61 72 0d 01  |".....findyear..|
000001d0  0e 0b f2 73 74 61 74 75  73 0d 01 18 0c e3 20 56  |...status..... V|
000001e0  25 3d 31 b8 34 0d 01 22  0f e7 20 56 25 3d 34 20  |%=1.4..".. V%=4 |
000001f0  56 25 3d 30 0d 01 2c 18  e7 20 79 65 61 72 25 28  |V%=0..,.. year%(|
00000200  56 25 29 3d 30 20 8c 20  8d 74 46 41 0d 01 36 1f  |V%)=0 . .tFA..6.|
00000210  e7 20 56 25 3d 30 20 6e  64 61 74 61 25 3d 31 20  |. V%=0 ndata%=1 |
00000220  8b 20 6e 64 61 74 61 25  3d 32 30 0d 01 40 19 e3  |. ndata%=20..@..|
00000230  20 49 25 3d 31 b8 36 3a  53 55 42 25 28 49 25 29  | I%=1.6:SUB%(I%)|
00000240  3d a3 3a ed 0d 01 4a 1c  e3 20 49 25 3d 30 b8 31  |=.:...J.. I%=0.1|
00000250  39 3a 70 72 69 63 65 25  28 49 25 29 3d 30 3a ed  |9:price%(I%)=0:.|
00000260  0d 01 54 10 64 69 73 63  70 74 72 25 3d 31 36 35  |..T.discptr%=165|
00000270  0d 01 5e 05 db 0d 01 68  18 f2 63 68 65 63 6b 5f  |..^....h..check_|
00000280  61 6e 64 5f 6f 70 65 6e  5f 66 69 6c 65 0d 01 72  |and_open_file..r|
00000290  14 e7 20 46 49 4c 45 25  3d 30 20 e5 20 8d 74 46  |.. FILE%=0 . .tF|
000002a0  41 0d 01 7c 09 f2 65 64  69 74 0d 01 86 07 d9 23  |A..|..edit.....#|
000002b0  30 0d 01 90 0f e7 20 56  25 3d 30 20 56 25 3d 34  |0..... V%=0 V%=4|
000002c0  0d 01 9a 05 ed 0d 01 a4  12 f2 63 68 61 69 6e 28  |..........chain(|
000002d0  22 4d 41 49 4e 22 29 0d  01 ae 05 e0 0d 01 b8 05  |"MAIN").........|
000002e0  3a 0d 01 c2 0e dd f2 66  69 6e 64 79 65 61 72 0d  |:......findyear.|
000002f0  01 cc 0b f2 73 79 73 74  65 6d 0d 01 d6 10 58 25  |....system....X%|
00000300  3d 8e 28 22 59 45 41 52  22 29 0d 01 e0 6f e7 20  |=.("YEAR")...o. |
00000310  58 25 3d 30 20 db 3a f1  8a 30 2c 31 30 29 22 46  |X%=0 .:..0,10)"F|
00000320  69 6c 65 20 27 59 45 41  52 27 20 64 6f 65 73 20  |ile 'YEAR' does |
00000330  6e 6f 74 20 65 78 69 73  74 2e 22 27 27 22 47 6f  |not exist."''"Go|
00000340  20 74 6f 20 4d 41 49 4e  20 70 61 6e 65 6c 2e 22  | to MAIN panel."|
00000350  27 27 22 54 6f 20 72 65  74 75 72 6e 20 74 6f 20  |''"To return to |
00000360  4d 41 49 4e 22 3a f2 6b  65 79 3a f2 63 68 61 69  |MAIN":.key:.chai|
00000370  6e 28 22 4d 41 49 4e 22  29 0d 01 ea 0c e3 20 49  |n("MAIN")..... I|
00000380  25 3d 30 b8 33 0d 01 f4  12 e8 23 58 25 2c 79 65  |%=0.3.....#X%,ye|
00000390  61 72 25 28 49 25 29 0d  01 fe 05 ed 0d 02 08 07  |ar%(I%).........|
000003a0  d9 23 30 0d 02 12 05 e1  0d 02 1c 05 3a 0d 02 26  |.#0.........:..&|
000003b0  0f dd f2 63 68 61 69 6e  28 41 24 29 0d 02 30 0b  |...chain(A$)..0.|
000003c0  f2 73 79 73 74 65 6d 0d  02 3a 08 d7 20 41 24 0d  |.system..:.. A$.|
000003d0  02 44 05 e1 0d 02 4e 05  3a 0d 02 58 0b dd 20 f2  |.D....N.:..X.. .|
000003e0  65 64 69 74 0d 02 62 1e  e7 20 56 25 3e 30 20 80  |edit..b.. V%>0 .|
000003f0  20 56 25 3c 34 20 f2 61  75 74 6f 31 3a 45 25 3d  | V%<4 .auto1:E%=|
00000400  31 39 0d 02 6c 16 e7 20  56 25 3d 30 20 f2 61 75  |19..l.. V%=0 .au|
00000410  74 6f 30 3a 45 25 3d 30  0d 02 76 14 cf 23 46 49  |to0:E%=0..v..#FI|
00000420  4c 45 25 3d 64 69 73 63  70 74 72 25 0d 02 80 0e  |LE%=discptr%....|
00000430  e3 20 70 74 72 3d 30 b8  45 25 0d 02 8a 1d d5 23  |. ptr=0.E%.....#|
00000440  46 49 4c 45 25 2c 70 72  69 63 65 25 28 70 74 72  |FILE%,price%(ptr|
00000450  29 20 81 20 31 30 30 0d  02 94 1d d5 23 46 49 4c  |) . 100.....#FIL|
00000460  45 25 2c 70 72 69 63 65  25 28 70 74 72 29 20 83  |E%,price%(ptr) .|
00000470  20 31 30 30 0d 02 9e 05  ed 0d 02 a8 2f f4 20 50  | 100......../. P|
00000480  55 54 20 43 55 52 52 45  4e 54 20 44 41 54 45 20  |UT CURRENT DATE |
00000490  41 4e 44 20 44 49 53 43  20 50 4f 49 4e 54 45 52  |AND DISC POINTER|
000004a0  20 54 4f 20 44 49 53 43  0d 02 b2 18 cf 23 46 49  | TO DISC.....#FI|
000004b0  4c 45 25 3d 63 75 72 72  65 6e 74 64 61 74 65 25  |LE%=currentdate%|
000004c0  0d 02 bc 0d d5 23 46 49  4c 45 25 2c 44 0d 02 c6  |.....#FILE%,D...|
000004d0  0d d5 23 46 49 4c 45 25  2c 4d 0d 02 d0 15 d5 23  |..#FILE%,M.....#|
000004e0  46 49 4c 45 25 2c 28 59  20 81 20 32 35 36 29 0d  |FILE%,(Y . 256).|
000004f0  02 da 15 d5 23 46 49 4c  45 25 2c 28 59 20 83 20  |....#FILE%,(Y . |
00000500  32 35 36 29 0d 02 e4 0f  d5 23 46 49 4c 45 25 2c  |256).....#FILE%,|
00000510  44 41 59 0d 02 ee 1c d5  23 46 49 4c 45 25 2c 28  |DAY.....#FILE%,(|
00000520  64 69 73 63 70 74 72 25  20 81 20 32 35 36 29 0d  |discptr% . 256).|
00000530  02 f8 1c d5 23 46 49 4c  45 25 2c 28 64 69 73 63  |....#FILE%,(disc|
00000540  70 74 72 25 20 83 20 32  35 36 29 0d 03 02 24 f4  |ptr% . 256)...$.|
00000550  20 55 50 44 41 54 45 20  4d 41 58 2c 20 4d 49 4e  | UPDATE MAX, MIN|
00000560  20 56 41 4c 55 45 53 20  4f 4e 20 46 49 4c 45 0d  | VALUES ON FILE.|
00000570  03 0c 16 cf 23 46 49 4c  45 25 3d 6d 61 78 6d 69  |....#FILE%=maxmi|
00000580  6e 70 74 72 25 0d 03 16  0d e3 20 49 25 3d 30 b8  |nptr%..... I%=0.|
00000590  45 25 0d 03 20 19 e7 20  70 72 69 63 65 25 28 49  |E%.. .. price%(I|
000005a0  25 29 3d 30 20 e5 20 8d  44 52 43 0d 03 2a 1c 6d  |%)=0 . .DRC..*.m|
000005b0  69 6e 25 3d 9a 23 46 49  4c 45 25 2a 32 35 36 2b  |in%=.#FILE%*256+|
000005c0  9a 23 46 49 4c 45 25 0d  03 34 23 e7 20 6d 69 6e  |.#FILE%..4#. min|
000005d0  25 3e 70 72 69 63 65 25  28 49 25 29 20 f2 75 70  |%>price%(I%) .up|
000005e0  64 61 74 65 6d 61 78 6d  69 6e 0d 03 3e 1c 6d 61  |datemaxmin..>.ma|
000005f0  78 25 3d 9a 23 46 49 4c  45 25 2a 32 35 36 2b 9a  |x%=.#FILE%*256+.|
00000600  23 46 49 4c 45 25 0d 03  48 23 e7 20 6d 61 78 25  |#FILE%..H#. max%|
00000610  3c 70 72 69 63 65 25 28  49 25 29 20 f2 75 70 64  |<price%(I%) .upd|
00000620  61 74 65 6d 61 78 6d 69  6e 0d 03 52 05 ed 0d 03  |atemaxmin..R....|
00000630  5c 05 e1 0d 03 66 05 3a  0d 03 70 12 dd f2 75 70  |\....f.:..p...up|
00000640  64 61 74 65 6d 61 78 6d  69 6e 0d 03 7a 15 cf 23  |datemaxmin..z..#|
00000650  46 49 4c 45 25 3d 8f 23  46 49 4c 45 25 2d 32 0d  |FILE%=.#FILE%-2.|
00000660  03 84 1c d5 23 46 49 4c  45 25 2c 70 72 69 63 65  |....#FILE%,price|
00000670  25 28 49 25 29 20 81 20  32 35 36 0d 03 8e 1c d5  |%(I%) . 256.....|
00000680  23 46 49 4c 45 25 2c 70  72 69 63 65 25 28 49 25  |#FILE%,price%(I%|
00000690  29 20 83 20 32 35 36 0d  03 98 05 e1 0d 03 a2 05  |) . 256.........|
000006a0  3a 0d 03 ac 15 dd f2 63  68 61 6e 67 65 5f 64 61  |:......change_da|
000006b0  74 65 28 43 25 29 0d 03  b6 23 64 69 73 63 70 74  |te(C%)...#discpt|
000006c0  72 25 3d 64 69 73 63 70  74 72 25 2b 28 43 25 2a  |r%=discptr%+(C%*|
000006d0  6e 64 61 74 61 25 2a 32  29 0d 03 c0 38 e7 20 64  |ndata%*2)...8. d|
000006e0  69 73 63 70 74 72 25 3c  6d 69 6e 72 65 63 6f 72  |iscptr%<minrecor|
000006f0  64 25 20 64 69 73 63 70  74 72 25 3d 6d 69 6e 72  |d% discptr%=minr|
00000700  65 63 6f 72 64 25 3a ef  37 3a f2 66 69 6e 69 73  |ecord%:.7:.finis|
00000710  68 0d 03 ca 78 e7 20 64  69 73 63 70 74 72 25 3e  |h...x. discptr%>|
00000720  28 a2 23 46 49 4c 45 25  29 2d 6e 64 61 74 61 25  |(.#FILE%)-ndata%|
00000730  2a 32 20 64 69 73 63 70  74 72 25 3d 64 69 73 63  |*2 discptr%=disc|
00000740  70 74 72 25 2d 28 43 25  2a 6e 64 61 74 61 25 2a  |ptr%-(C%*ndata%*|
00000750  32 29 3a 44 3d 31 3a 4d  3d 31 3a 59 3d 79 65 61  |2):D=1:M=1:Y=yea|
00000760  72 25 28 56 25 29 2b 31  3a f2 6e 6f 74 66 6f 75  |r%(V%)+1:.notfou|
00000770  6e 64 3a f2 63 68 65 63  6b 5f 61 6e 64 5f 6f 70  |nd:.check_and_op|
00000780  65 6e 5f 66 69 6c 65 3a  e1 0d 03 d4 0f f2 61 64  |en_file:......ad|
00000790  6a 75 73 74 64 61 74 65  0d 03 de 05 e1 0d 03 e8  |justdate........|
000007a0  05 3a 0d 03 f2 10 dd f2  61 64 6a 75 73 74 64 61  |.:......adjustda|
000007b0  74 65 0d 03 fc 05 f5 0d  04 06 0a 44 3d 44 2b 43  |te.........D=D+C|
000007c0  25 0d 04 10 05 f5 0d 04  1a 1f e7 20 a4 76 61 6c  |%.......... .val|
000007d0  69 64 61 74 65 28 44 2c  4d 2c 59 29 3d 30 20 44  |idate(D,M,Y)=0 D|
000007e0  3d 44 2b 43 25 0d 04 24  25 e7 20 44 3e 33 31 20  |=D+C%..$%. D>31 |
000007f0  44 3d 31 3a 4d 3d 4d 2b  31 3a e7 20 4d 3e 31 32  |D=1:M=M+1:. M>12|
00000800  20 4d 3d 31 3a 59 3d 59  2b 31 0d 04 2e 25 e7 20  | M=1:Y=Y+1...%. |
00000810  44 3c 31 20 44 3d 33 31  3a 4d 3d 4d 2d 31 3a e7  |D<1 D=31:M=M-1:.|
00000820  20 4d 3c 31 20 4d 3d 31  32 3a 59 3d 59 2d 31 0d  | M<1 M=12:Y=Y-1.|
00000830  04 38 19 fd 20 a4 76 61  6c 69 64 61 74 65 28 44  |.8.. .validate(D|
00000840  2c 4d 2c 59 29 3c 3e 30  0d 04 42 0e 44 41 59 3d  |,M,Y)<>0..B.DAY=|
00000850  44 41 59 2b 43 25 0d 04  4c 11 e7 20 44 41 59 3c  |DAY+C%..L.. DAY<|
00000860  31 20 44 41 59 3d 37 0d  04 56 11 e7 20 44 41 59  |1 DAY=7..V.. DAY|
00000870  3e 37 20 44 41 59 3d 31  0d 04 60 0b fd 20 44 41  |>7 DAY=1..`.. DA|
00000880  59 3c 36 0d 04 6a 05 e1  0d 04 74 05 3a 0d 04 7e  |Y<6..j....t.:..~|
00000890  4d dd a4 76 61 6c 69 64  61 74 65 28 44 2c 4d 2c  |M..validate(D,M,|
000008a0  59 29 3a 3d 44 2a 4d 2a  28 4d 3c 31 33 29 2a 28  |Y):=D*M*(M<13)*(|
000008b0  44 3c 33 31 2b 28 28 4d  2b 28 4d 3e 37 29 29 80  |D<31+((M+(M>7)).|
000008c0  20 31 29 2b 28 4d 3d 32  29 2a 28 32 2b 28 28 59  | 1)+(M=2)*(2+((Y|
000008d0  20 80 20 33 29 3d 30 29  29 29 0d 04 88 05 3a 0d  | . 3)=0)))....:.|
000008e0  04 92 19 dd f2 63 68 65  63 6b 5f 61 6e 64 5f 6f  |.....check_and_o|
000008f0  70 65 6e 5f 66 69 6c 65  0d 04 9c 05 f5 0d 04 a6  |pen_file........|
00000900  1f 46 49 4c 45 25 3d 8e  28 c3 28 79 65 61 72 25  |.FILE%=.(.(year%|
00000910  28 56 25 29 2a 31 30 2b  56 25 29 29 0d 04 b0 0b  |(V%)*10+V%))....|
00000920  2a 46 58 32 31 2c 30 0d  04 ba 07 d9 23 30 0d 04  |*FX21,0.....#0..|
00000930  c4 23 e7 20 46 49 4c 45  25 3d 30 20 59 3d 79 65  |.#. FILE%=0 Y=ye|
00000940  61 72 25 28 56 25 29 3a  f2 6e 6f 74 66 6f 75 6e  |ar%(V%):.notfoun|
00000950  64 0d 04 ce 0e fd 20 46  49 4c 45 25 3c 3e 30 0d  |d..... FILE%<>0.|
00000960  04 d8 1f 46 49 4c 45 25  3d ad 28 c3 28 79 65 61  |...FILE%=.(.(yea|
00000970  72 25 28 56 25 29 2a 31  30 2b 56 25 29 29 0d 04  |r%(V%)*10+V%))..|
00000980  e2 0d cf 23 46 49 4c 45  25 3d 30 0d 04 ec 13 e3  |...#FILE%=0.....|
00000990  20 49 25 3d 32 b8 6e 64  61 74 61 25 2b 31 0d 04  | I%=2.ndata%+1..|
000009a0  f6 0d 73 24 28 49 25 29  3d 22 22 0d 05 00 0c e3  |..s$(I%)="".....|
000009b0  20 4a 25 3d 31 b8 37 0d  05 0a 0e 42 25 3d 9a 23  | J%=1.7....B%=.#|
000009c0  46 49 4c 45 25 0d 05 14  1a e7 20 42 25 3c 33 32  |FILE%..... B%<32|
000009d0  20 84 20 42 25 3e 31 32  36 20 42 25 3d 33 32 0d  | . B%>126 B%=32.|
000009e0  05 1e 17 73 24 28 49 25  29 3d 73 24 28 49 25 29  |...s$(I%)=s$(I%)|
000009f0  2b bd 28 42 25 29 0d 05  28 05 ed 0d 05 32 05 ed  |+.(B%)..(....2..|
00000a00  0d 05 3c 27 f4 20 47 45  54 20 43 55 52 52 45 4e  |..<'. GET CURREN|
00000a10  54 20 44 41 54 45 20 41  4e 44 20 44 49 53 43 20  |T DATE AND DISC |
00000a20  50 4f 49 4e 54 45 52 0d  05 46 18 cf 23 46 49 4c  |POINTER..F..#FIL|
00000a30  45 25 3d 63 75 72 72 65  6e 74 64 61 74 65 25 0d  |E%=currentdate%.|
00000a40  05 50 0d 44 3d 9a 23 46  49 4c 45 25 0d 05 5a 0d  |.P.D=.#FILE%..Z.|
00000a50  4d 3d 9a 23 46 49 4c 45  25 0d 05 64 1b 59 3d 28  |M=.#FILE%..d.Y=(|
00000a60  9a 23 46 49 4c 45 25 29  2a 32 35 36 2b 9a 23 46  |.#FILE%)*256+.#F|
00000a70  49 4c 45 25 0d 05 6e 0f  44 41 59 3d 9a 23 46 49  |ILE%..n.DAY=.#FI|
00000a80  4c 45 25 0d 05 78 22 64  69 73 63 70 74 72 25 3d  |LE%..x"discptr%=|
00000a90  28 9a 23 46 49 4c 45 25  29 2a 32 35 36 2b 9a 23  |(.#FILE%)*256+.#|
00000aa0  46 49 4c 45 25 0d 05 82  08 53 25 3d b9 0d 05 8c  |FILE%....S%=....|
00000ab0  05 e1 0d 05 96 05 3a 0d  05 a0 0b dd f2 61 75 74  |......:......aut|
00000ac0  6f 31 0d 05 aa 0c 54 45  58 54 24 3d 22 22 0d 05  |o1....TEXT$=""..|
00000ad0  b4 08 5a 25 3d 30 0d 05  be 0a 2a 54 54 58 4f 4e  |..Z%=0....*TTXON|
00000ae0  0d 05 c8 09 2a 42 42 43  31 0d 05 d2 08 2a 48 4f  |....*BBC1....*HO|
00000af0  4e 0d 05 dc 05 f5 0d 05  e6 05 f5 0d 05 f0 0d 2a  |N..............*|
00000b00  50 41 47 45 20 31 33 30  0d 05 fa 0e 2a 44 41 54  |PAGE 130....*DAT|
00000b10  41 20 36 30 30 30 0d 06  04 0c fd 20 a4 63 72 63  |A 6000..... .crc|
00000b20  3c 32 0d 06 0e 1b f1 8a  30 2c 39 29 bd 31 33 31  |<2......0,9).131|
00000b30  3b 27 bd 31 33 31 3b 27  bd 31 33 31 3b 0d 06 18  |;'.131;'.131;...|
00000b40  40 e7 20 ac 20 a4 63 6c  6f 73 65 20 f1 8a 34 2c  |@. . .close ..4,|
00000b50  31 30 29 22 57 61 69 74  69 6e 67 20 75 6e 74 69  |10)"Waiting unti|
00000b60  6c 20 63 6c 6f 73 65 20  6f 66 20 62 75 73 69 6e  |l close of busin|
00000b70  65 73 73 2e 22 3a f2 62  6f 72 64 65 72 0d 06 22  |ess.":.border.."|
00000b80  0c fd 20 a4 63 6c 6f 73  65 0d 06 2c 05 db 0d 06  |.. .close..,....|
00000b90  36 05 f5 0d 06 40 0e fd  20 a4 64 61 74 65 5f 6f  |6....@.. .date_o|
00000ba0  6b 0d 06 4a 0e f2 6c 6f  61 64 6e 61 6d 65 73 0d  |k..J..loadnames.|
00000bb0  06 54 13 e3 20 49 25 3d  30 b8 6e 64 61 74 61 25  |.T.. I%=0.ndata%|
00000bc0  2d 31 0d 06 5e 0c 46 25  28 49 25 29 3d a3 0d 06  |-1..^.F%(I%)=...|
00000bd0  68 1c f1 8a 30 2c 49 25  2b 32 29 bd 31 33 31 3b  |h...0,I%+2).131;|
00000be0  53 48 41 52 45 24 28 49  25 29 0d 06 72 05 ed 0d  |SHARE$(I%)..r...|
00000bf0  06 7c 26 f1 8a 31 38 2c  31 30 29 bd 31 33 31 3b  |.|&..18,10).131;|
00000c00  22 45 6e 74 65 72 69 6e  67 20 64 61 74 61 20 66  |"Entering data f|
00000c10  6f 72 3a 2d 22 0d 06 86  1e f1 8a 32 30 2c 31 33  |or:-"......20,13|
00000c20  29 bd 31 33 31 3b 44 3b  22 2f 22 3b 4d 3b 22 2f  |).131;D;"/";M;"/|
00000c30  22 3b 59 0d 06 90 05 f5  0d 06 9a 05 f5 0d 06 a4  |";Y.............|
00000c40  05 f5 0d 06 ae 0d 2a 50  41 47 45 20 31 33 30 0d  |......*PAGE 130.|
00000c50  06 b8 0e 2a 44 41 54 41  20 36 30 30 30 0d 06 c2  |...*DATA 6000...|
00000c60  0c fd 20 a4 63 72 63 3c  32 0d 06 cc 0c fd 20 a4  |.. .crc<2..... .|
00000c70  63 6c 6f 73 65 0d 06 d6  10 50 41 25 3d a4 73 75  |close....PA%=.su|
00000c80  62 70 61 67 65 0d 06 e0  1f f1 8a 32 35 2c 31 29  |bpage......25,1)|
00000c90  bd 31 33 30 3b 22 53 75  62 2d 70 61 67 65 20 22  |.130;"Sub-page "|
00000ca0  3b 50 41 25 0d 06 ea 0a  d6 26 35 46 30 30 0d 06  |;PA%.....&5F00..|
00000cb0  f4 0d e3 20 52 25 3d 35  b8 31 39 0d 06 fe 16 f2  |... R%=5.19.....|
00000cc0  67 65 74 74 65 78 74 28  26 36 30 30 30 2c 52 25  |gettext(&6000,R%|
00000cd0  29 0d 07 08 0b f2 73 65  61 72 63 68 0d 07 12 05  |).....search....|
00000ce0  ed 0d 07 1c 0f 53 55 42  25 28 50 41 25 29 3d b9  |.....SUB%(PA%)=.|
00000cf0  0d 07 26 41 fd 5a 25 3d  32 30 20 84 20 53 55 42  |..&A.Z%=20 . SUB|
00000d00  25 28 31 29 2b 53 55 42  25 28 32 29 2b 53 55 42  |%(1)+SUB%(2)+SUB|
00000d10  25 28 33 29 2b 53 55 42  25 28 34 29 2b 53 55 42  |%(3)+SUB%(4)+SUB|
00000d20  25 28 35 29 2b 53 55 42  25 28 36 29 3d 28 2d 36  |%(5)+SUB%(6)=(-6|
00000d30  29 0d 07 30 0b f1 8a 30  2c 32 31 29 0d 07 3a 0b  |)..0...0,21)..:.|
00000d40  2a 54 54 58 4f 46 46 0d  07 44 05 e1 0d 07 4e 05  |*TTXOFF..D....N.|
00000d50  3a 0d 07 58 0c dd f2 62  6f 72 64 65 72 0d 07 62  |:..X...border..b|
00000d60  0c e3 20 4a 25 3d 30 b8  31 0d 07 6c 1c e7 20 4a  |.. J%=0.1..l.. J|
00000d70  25 3d 30 20 54 31 24 3d  22 5f 22 20 8b 20 54 31  |%=0 T1$="_" . T1|
00000d80  24 3d 22 20 22 0d 07 76  1c e7 20 4a 25 3d 30 20  |$=" "..v.. J%=0 |
00000d90  54 32 24 3d 22 49 22 20  8b 20 54 32 24 3d 22 20  |T2$="I" . T2$=" |
00000da0  22 0d 07 80 0f e3 20 49  25 3d 32 20 b8 20 33 37  |"..... I%=2 . 37|
00000db0  0d 07 8a 0a f2 64 65 6c  61 79 0d 07 94 10 f1 8a  |.....delay......|
00000dc0  49 25 2c 31 31 29 54 31  24 3b 0d 07 9e 05 ed 0d  |I%,11)T1$;......|
00000dd0  07 a8 10 f1 8a 33 37 2c  31 30 29 54 32 24 3b 0d  |.....37,10)T2$;.|
00000de0  07 b2 14 e3 20 49 25 3d  33 37 20 b8 20 32 20 88  |.... I%=37 . 2 .|
00000df0  20 2d 31 0d 07 bc 0a f2  64 65 6c 61 79 0d 07 c6  | -1.....delay...|
00000e00  0f f1 8a 49 25 2c 39 29  54 31 24 3b 0d 07 d0 05  |...I%,9)T1$;....|
00000e10  ed 0d 07 da 0f f1 8a 32  2c 31 30 29 54 32 24 3b  |.......2,10)T2$;|
00000e20  0d 07 e4 05 ed 0d 07 ee  05 e1 0d 07 f8 05 3a 0d  |..............:.|
00000e30  08 02 0b dd f2 61 75 74  6f 30 0d 08 0c 0c 54 45  |.....auto0....TE|
00000e40  58 54 24 3d 22 22 0d 08  16 0a 2a 54 54 58 4f 4e  |XT$=""....*TTXON|
00000e50  0d 08 20 09 2a 42 42 43  31 0d 08 2a 08 2a 48 4f  |.. .*BBC1..*.*HO|
00000e60  4e 0d 08 34 0d 2a 50 41  47 45 20 31 32 35 0d 08  |N..4.*PAGE 125..|
00000e70  3e 05 f5 0d 08 48 0e fd  20 a4 64 61 74 65 5f 6f  |>....H.. .date_o|
00000e80  6b 0d 08 52 1b f1 8a 35  2c 31 32 29 bd 31 33 31  |k..R...5,12).131|
00000e90  3b 22 46 54 2d 53 45 20  31 30 30 22 0d 08 5c 05  |;"FT-SE 100"..\.|
00000ea0  f5 0d 08 66 0d 2a 50 41  47 45 20 31 32 35 0d 08  |...f.*PAGE 125..|
00000eb0  70 0e 2a 44 41 54 41 20  36 30 30 30 0d 08 7a 16  |p.*DATA 6000..z.|
00000ec0  73 75 62 5f 70 61 67 65  25 3d a4 73 75 62 70 61  |sub_page%=.subpa|
00000ed0  67 65 0d 08 84 25 f1 8a  32 35 2c 31 29 bd 31 33  |ge...%..25,1).13|
00000ee0  30 3b 22 53 75 62 2d 70  61 67 65 20 22 3b 73 75  |0;"Sub-page ";su|
00000ef0  62 5f 70 61 67 65 25 0d  08 8e 1a fd 20 a4 63 72  |b_page%..... .cr|
00000f00  63 3c 32 20 80 20 73 75  62 5f 70 61 67 65 25 3d  |c<2 . sub_page%=|
00000f10  32 0d 08 98 0a d6 26 35  46 30 30 0d 08 a2 09 4c  |2.....&5F00....L|
00000f20  25 3d 32 31 0d 08 ac 16  f2 67 65 74 74 65 78 74  |%=21.....gettext|
00000f30  28 26 36 30 30 30 2c 4c  25 29 0d 08 b6 0c f2 73  |(&6000,L%).....s|
00000f40  65 61 72 63 68 31 0d 08  c0 0b 2a 54 54 58 4f 46  |earch1....*TTXOF|
00000f50  46 0d 08 ca 05 e1 0d 08  d4 05 3a 0d 08 de 1c dd  |F.........:.....|
00000f60  f2 67 65 74 74 65 78 74  28 61 64 64 72 65 73 73  |.gettext(address|
00000f70  25 2c 72 6f 77 25 29 0d  08 e8 11 54 45 58 54 24  |%,row%)....TEXT$|
00000f80  3d 22 22 3a 49 25 3d 30  0d 08 f2 05 f5 0d 08 fc  |="":I%=0........|
00000f90  1d 70 6f 69 6e 74 65 72  25 3d 61 64 64 72 65 73  |.pointer%=addres|
00000fa0  73 25 2b 31 2b 49 25 2a  34 32 0d 09 06 0b 49 25  |s%+1+I%*42....I%|
00000fb0  3d 49 25 2b 31 0d 09 10  1c fd 20 3f 70 6f 69 6e  |=I%+1..... ?poin|
00000fc0  74 65 72 25 3d 72 6f 77  25 20 84 20 49 25 3d 32  |ter%=row% . I%=2|
00000fd0  34 0d 09 1a 2e e7 20 49  25 3c 32 34 20 70 6f 69  |4..... I%<24 poi|
00000fe0  6e 74 65 72 25 3f 34 31  3d 31 33 3a 54 45 58 54  |nter%?41=13:TEXT|
00000ff0  24 3d 24 28 70 6f 69 6e  74 65 72 25 2b 32 29 0d  |$=$(pointer%+2).|
00001000  09 24 05 e1 0d 09 2e 05  3a 0d 09 38 0c dd f2 73  |.$......:..8...s|
00001010  65 61 72 63 68 0d 09 42  13 e7 20 53 55 42 25 28  |earch..B.. SUB%(|
00001020  50 41 25 29 20 8c 20 e1  0d 09 4c 14 e3 20 4a 25  |PA%) . ...L.. J%|
00001030  3d 31 20 b8 20 32 31 20  88 20 32 30 0d 09 56 0d  |=1 . 21 . 20..V.|
00001040  e3 20 49 25 3d 30 b8 31  39 0d 09 60 21 e7 20 53  |. I%=0.19..`!. S|
00001050  48 41 52 45 24 28 49 25  29 3d 22 20 20 20 20 20  |HARE$(I%)="     |
00001060  20 20 22 20 e5 20 8d 44  74 49 0d 09 6a 24 e7 20  |  " . .DtI..j$. |
00001070  53 48 41 52 45 24 28 49  25 29 3d c1 54 45 58 54  |SHARE$(I%)=.TEXT|
00001080  24 2c 4a 25 2c 37 29 20  f2 66 6f 75 6e 64 0d 09  |$,J%,7) .found..|
00001090  74 05 ed 0d 09 7e 05 ed  0d 09 88 05 e1 0d 09 92  |t....~..........|
000010a0  05 3a 0d 09 9c 0d dd f2  73 65 61 72 63 68 31 0d  |.:......search1.|
000010b0  09 a6 1d 70 72 69 63 65  25 28 30 29 3d bb 28 c1  |...price%(0)=.(.|
000010c0  54 45 58 54 24 2c 32 36  2c 35 29 29 0d 09 b0 15  |TEXT$,26,5))....|
000010d0  f1 8a 31 36 2c 31 32 29  70 72 69 63 65 25 28 30  |..16,12)price%(0|
000010e0  29 0d 09 ba 0b 5a 25 3d  5a 25 2b 31 0d 09 c4 05  |)....Z%=Z%+1....|
000010f0  e1 0d 09 ce 05 3a 0d 09  d8 0b dd f2 66 6f 75 6e  |.....:......foun|
00001100  64 0d 09 e2 23 e7 20 46  25 28 49 25 29 3d a3 20  |d...#. F%(I%)=. |
00001110  5a 25 3d 5a 25 2b 31 3a  46 25 28 49 25 29 3d b9  |Z%=Z%+1:F%(I%)=.|
00001120  3a 8b 20 e1 0d 09 ec 24  f1 8a 30 2c 31 29 bd 31  |:. ....$..0,1).1|
00001130  32 39 3b 22 46 6f 75 6e  64 20 22 3b 5a 25 3b 22  |29;"Found ";Z%;"|
00001140  20 73 68 61 72 65 73 22  0d 09 f6 0b 53 25 3d 4a  | shares"....S%=J|
00001150  25 2b 36 0d 0a 00 05 f5  0d 0a 0a 0b 53 25 3d 53  |%+6.........S%=S|
00001160  25 2b 31 0d 0a 14 2d fd  20 97 28 c1 54 45 58 54  |%+1...-. .(.TEXT|
00001170  24 2c 53 25 2c 31 29 29  3e 34 37 20 80 20 97 28  |$,S%,1))>47 . .(|
00001180  c1 54 45 58 54 24 2c 53  25 2c 31 29 29 3c 35 38  |.TEXT$,S%,1))<58|
00001190  0d 0a 1e 09 45 25 3d 53  25 0d 0a 28 05 f5 0d 0a  |....E%=S%..(....|
000011a0  32 0b 45 25 3d 45 25 2b  31 0d 0a 3c 16 fd 20 c1  |2.E%=E%+1..<.. .|
000011b0  54 45 58 54 24 2c 45 25  2c 31 29 3d 22 20 22 0d  |TEXT$,E%,1)=" ".|
000011c0  0a 46 0b 45 25 3d 45 25  2d 31 0d 0a 50 24 70 72  |.F.E%=E%-1..P$pr|
000011d0  69 63 65 25 28 49 25 29  3d bb 28 c1 54 45 58 54  |ice%(I%)=.(.TEXT|
000011e0  24 2c 53 25 2c 45 25 2d  53 25 2b 31 29 29 0d 0a  |$,S%,E%-S%+1))..|
000011f0  5a 1d f1 8a 31 30 2c 49  25 2b 32 29 bd 31 33 31  |Z...10,I%+2).131|
00001200  3b 70 72 69 63 65 25 28  49 25 29 0d 0a 64 05 e1  |;price%(I%)..d..|
00001210  0d 0a 6e 05 3a 0d 0a 78  0b dd a4 63 6c 6f 73 65  |..n.:..x...close|
00001220  0d 0a 82 41 f4 20 4c 6f  6f 6b 20 66 6f 72 20 74  |...A. Look for t|
00001230  68 65 20 74 65 78 74 20  73 74 72 69 6e 67 20 22  |he text string "|
00001240  43 6c 6f 73 65 22 20 73  74 61 72 74 69 6e 67 20  |Close" starting |
00001250  61 74 20 6c 6f 63 61 74  69 6f 6e 20 26 36 30 43  |at location &60C|
00001260  35 0d 0a 8c 0c 54 45 58  54 24 3d 22 22 0d 0a 96  |5....TEXT$=""...|
00001270  16 e3 20 49 25 3d 26 36  30 43 35 20 b8 20 26 36  |.. I%=&60C5 . &6|
00001280  30 43 39 0d 0a a0 1c 54  45 58 54 24 3d 54 45 58  |0C9....TEXT$=TEX|
00001290  54 24 2b bd 28 3f 49 25  20 80 20 31 32 37 29 0d  |T$+.(?I% . 127).|
000012a0  0a aa 05 ed 0d 0a b4 2b  e7 20 54 45 58 54 24 3d  |.......+. TEXT$=|
000012b0  22 43 6c 6f 73 65 22 20  84 20 54 45 58 54 24 3d  |"Close" . TEXT$=|
000012c0  22 63 6c 6f 73 65 22 20  3d b9 20 8b 20 3d a3 0d  |"close" =. . =..|
000012d0  0a be 05 3a 0d 0a c8 0d  dd a4 64 61 74 65 5f 6f  |...:......date_o|
000012e0  6b 0d 0a d2 14 f4 22 81  44 41 54 45 20 57 49 54  |k.....".DATE WIT|
000012f0  48 20 41 54 53 0d 0a dc  0f d1 3d 30 3a f5 fd 91  |H ATS.....=0:...|
00001300  3e 31 32 30 0d 0a e6 10  62 6c 6f 63 6b 25 3d 26  |>120....block%=&|
00001310  37 30 30 30 0d 0a f0 38  41 25 3d 26 37 41 3a 58  |7000...8A%=&7A:X|
00001320  25 3d 62 6c 6f 63 6b 25  83 32 35 36 3a 59 25 3d  |%=block%.256:Y%=|
00001330  62 6c 6f 63 6b 25 81 32  35 36 3a 3f 62 6c 6f 63  |block%.256:?bloc|
00001340  6b 25 3d 31 35 3a d6 26  46 46 46 31 0d 0a fa 19  |k%=15:.&FFF1....|
00001350  42 42 31 24 3d c2 c3 7e  28 62 6c 6f 63 6b 25 3f  |BB1$=..~(block%?|
00001360  38 29 2c 31 29 0d 0b 04  2f 42 42 32 24 3d c3 7e  |8),1).../BB2$=.~|
00001370  28 62 6c 6f 63 6b 25 3f  39 29 3a e7 20 a9 28 42  |(block%?9):. .(B|
00001380  42 32 24 29 3d 31 20 42  42 32 24 3d 22 30 22 2b  |B2$)=1 BB2$="0"+|
00001390  42 42 32 24 0d 0b 0e 30  42 42 33 24 3d c3 7e 28  |BB2$...0BB3$=.~(|
000013a0  62 6c 6f 63 6b 25 3f 31  30 29 3a e7 20 a9 28 42  |block%?10):. .(B|
000013b0  42 33 24 29 3d 31 20 42  42 33 24 3d 22 30 22 2b  |B3$)=1 BB3$="0"+|
000013c0  42 42 33 24 0d 0b 18 18  4a 44 3d bb 28 42 42 31  |BB3$....JD=.(BB1|
000013d0  24 2b 42 42 32 24 2b 42  42 33 24 29 0d 0b 22 1f  |$+BB2$+BB3$)..".|
000013e0  79 25 3d 28 31 30 30 2a  28 4a 44 2d 31 35 30 37  |y%=(100*(JD-1507|
000013f0  38 2e 32 29 29 81 33 36  35 32 35 0d 0b 2c 2b 6d  |8.2)).36525..,+m|
00001400  25 3d a8 28 28 4a 44 2d  31 34 39 35 36 2e 31 2d  |%=.((JD-14956.1-|
00001410  a8 28 33 36 35 2e 32 35  2a 79 25 29 29 2f 33 30  |.(365.25*y%))/30|
00001420  2e 36 30 30 31 29 0d 0b  36 3c 64 25 3d 4a 44 2d  |.6001)..6<d%=JD-|
00001430  31 34 39 35 36 2d a8 28  33 36 35 2e 32 35 2a 79  |14956-.(365.25*y|
00001440  25 29 2d a8 28 33 30 2e  36 2a 6d 25 29 3a 4b 3d  |%)-.(30.6*m%):K=|
00001450  a8 28 30 2e 37 2b 28 31  2f 28 31 37 2d 6d 25 29  |.(0.7+(1/(17-m%)|
00001460  29 29 0d 0b 40 10 6d 25  3d 6d 25 2d 31 2d 31 32  |))..@.m%=m%-1-12|
00001470  2a 4b 0d 0b 4a 0e 79 25  3d 79 25 2b 31 39 30 30  |*K..J.y%=y%+1900|
00001480  0d 0b fe 1a 64 64 25 3d  79 25 2a 31 30 30 30 30  |....dd%=y%*10000|
00001490  2b 6d 25 2a 31 30 30 2b  64 25 0d 0c 08 05 f4 0d  |+m%*100+d%......|
000014a0  0c 12 1a f4 20 47 65 74  20 68 6f 75 72 20 66 72  |.... Get hour fr|
000014b0  6f 6d 20 43 45 45 46 41  58 0d 0c 1c 05 f4 0d 0c  |om CEEFAX.......|
000014c0  26 10 62 6c 6f 63 6b 25  3d 26 36 30 30 30 0d 0c  |&.block%=&6000..|
000014d0  30 0e 3f 62 6c 6f 63 6b  25 3d 32 31 0d 0c 3a 13  |0.?block%=21..:.|
000014e0  58 25 3d 62 6c 6f 63 6b  25 20 83 20 32 35 36 0d  |X%=block% . 256.|
000014f0  0c 44 13 59 25 3d 62 6c  6f 63 6b 25 20 81 20 32  |.D.Y%=block% . 2|
00001500  35 36 0d 0c 4e 0a 41 25  3d 26 37 41 0d 0c 58 05  |56..N.A%=&7A..X.|
00001510  f5 0d 0c 62 0a d6 26 46  46 46 31 0d 0c 6c 11 fd  |...b..&FFF1..l..|
00001520  20 62 6c 6f 63 6b 25 3f  31 30 3d 30 0d 0c 76 1e  | block%?10=0..v.|
00001530  68 72 25 3d bb 28 bd 28  3f 26 36 30 30 31 29 2b  |hr%=.(.(?&6001)+|
00001540  bd 28 3f 26 36 30 30 32  29 29 0d 0c 80 16 e7 20  |.(?&6002))..... |
00001550  68 72 25 3c 31 30 20 64  64 25 3d 64 64 25 2d 31  |hr%<10 dd%=dd%-1|
00001560  0d 0c 8a 05 f5 0d 0c 94  16 44 25 3d 59 2a 31 30  |.........D%=Y*10|
00001570  30 30 30 2b 4d 2a 31 30  30 2b 44 0d 0c 9e 1c e7  |000+M*100+D.....|
00001580  20 44 25 3c 64 64 25 20  f2 63 68 61 6e 67 65 5f  | D%<dd% .change_|
00001590  64 61 74 65 28 31 29 0d  0c a8 0d fd 20 44 25 3e  |date(1)..... D%>|
000015a0  3d 64 64 25 0d 0c b2 05  f5 0d 0c bc 16 44 25 3d  |=dd%.........D%=|
000015b0  59 2a 31 30 30 30 30 2b  4d 2a 31 30 30 2b 44 0d  |Y*10000+M*100+D.|
000015c0  0c c6 1d e7 20 44 25 3e  64 64 25 20 f2 63 68 61  |.... D%>dd% .cha|
000015d0  6e 67 65 5f 64 61 74 65  28 2d 31 29 0d 0c d0 0d  |nge_date(-1)....|
000015e0  fd 20 44 25 3c 3d 64 64  25 0d 0c da 06 3d b9 0d  |. D%<=dd%....=..|
000015f0  0c e4 05 3a 0d 0c ee 0c  dd f2 73 74 61 74 75 73  |...:......status|
00001600  0d 0c f8 05 f5 0d 0d 02  10 62 6c 6f 63 6b 25 3d  |.........block%=|
00001610  26 36 30 30 30 0d 0d 0c  0e 3f 62 6c 6f 63 6b 25  |&6000....?block%|
00001620  3d 31 37 0d 0d 16 10 62  6c 6f 63 6b 25 3f 31 3d  |=17....block%?1=|
00001630  26 46 45 0d 0d 20 13 58  25 3d 62 6c 6f 63 6b 25  |&FE.. .X%=block%|
00001640  20 83 20 32 35 36 0d 0d  2a 13 59 25 3d 62 6c 6f  | . 256..*.Y%=blo|
00001650  63 6b 25 20 81 20 32 35  36 0d 0d 34 0a 41 25 3d  |ck% . 256..4.A%=|
00001660  26 37 41 0d 0d 3e 0a d6  26 46 46 46 31 0d 0d 48  |&7A..>..&FFF1..H|
00001670  62 e7 20 62 6c 6f 63 6b  25 3f 31 3d 31 20 f1 8a  |b. block%?1=1 ..|
00001680  30 2c 31 30 29 bd 31 32  39 3b 22 54 65 6c 65 74  |0,10).129;"Telet|
00001690  65 78 74 20 41 64 61 70  74 6f 72 20 6f 6e 2c 20  |ext Adaptor on, |
000016a0  62 75 74 20 6e 6f 20 73  69 67 6e 61 6c 2e 22 27  |but no signal."'|
000016b0  27 bd 31 32 39 3b 22 43  68 65 63 6b 20 74 75 6e  |'.129;"Check tun|
000016c0  69 6e 67 20 6f 72 20 61  65 72 69 61 6c 2e 22 0d  |ing or aerial.".|
000016d0  0d 52 82 e7 20 62 6c 6f  63 6b 25 3f 31 3d 32 20  |.R.. block%?1=2 |
000016e0  f1 8a 30 2c 31 30 29 bd  31 32 39 3b 22 54 65 6c  |..0,10).129;"Tel|
000016f0  65 74 65 78 74 20 41 64  61 70 74 6f 72 20 63 6f  |etext Adaptor co|
00001700  6e 6e 65 63 74 65 64 2c  22 27 bd 31 32 39 3b 22  |nnected,"'.129;"|
00001710  62 75 74 20 73 77 69 74  63 68 65 64 20 6f 66 66  |but switched off|
00001720  2e 22 27 bd 31 32 39 3b  22 53 77 69 74 63 68 20  |."'.129;"Switch |
00001730  6f 6e 2c 20 70 72 65 73  73 20 42 52 45 41 4b 20  |on, press BREAK |
00001740  61 6e 64 20 73 74 61 72  74 20 61 67 61 69 6e 2e  |and start again.|
00001750  22 0d 0d 5c 3f e7 20 62  6c 6f 63 6b 25 3f 31 3d  |"..\?. block%?1=|
00001760  26 46 46 20 f1 8a 30 2c  31 30 29 bd 31 32 39 3b  |&FF ..0,10).129;|
00001770  22 4e 6f 20 54 65 6c 65  74 65 78 74 20 41 64 61  |"No Teletext Ada|
00001780  70 74 6f 72 20 63 6f 6e  6e 65 63 74 65 64 2e 22  |ptor connected."|
00001790  0d 0d 66 58 e7 20 62 6c  6f 63 6b 25 3f 31 3d 26  |..fX. block%?1=&|
000017a0  46 45 20 f1 8a 37 2c 31  30 29 bd 31 33 31 3b 22  |FE ..7,10).131;"|
000017b0  4e 4f 20 41 54 53 20 52  4f 4d 20 49 4e 53 54 41  |NO ATS ROM INSTA|
000017c0  4c 4c 45 44 22 27 27 8a  35 29 bd 31 33 31 3b 22  |LLED"''.5).131;"|
000017d0  49 4e 53 54 41 4c 4c 20  41 4e 44 20 53 54 41 52  |INSTALL AND STAR|
000017e0  54 20 41 47 41 49 4e 22  0d 0d 70 0f fd 62 6c 6f  |T AGAIN"..p..blo|
000017f0  63 6b 25 3f 31 3d 30 0d  0d 7a 05 e1 0d 0d 84 05  |ck%?1=0..z......|
00001800  3a 0d 0d 8e 09 dd a4 63  72 63 0d 0d 98 0d 3f 26  |:......crc....?&|
00001810  36 30 30 30 3d 32 33 0d  0d a2 0c 3f 26 36 30 30  |6000=23....?&600|
00001820  31 3d 30 0d 0d ac 0e 3f  26 36 30 30 32 3d 26 36  |1=0....?&6002=&6|
00001830  30 0d 0d b6 08 58 25 3d  30 0d 0d c0 0a 59 25 3d  |0....X%=0....Y%=|
00001840  26 36 30 0d 0d ca 0a 41  25 3d 26 37 41 0d 0d d4  |&60....A%=&7A...|
00001850  0a d6 26 46 46 46 31 0d  0d de 10 f1 8a 32 30 2c  |..&FFF1......20,|
00001860  35 29 89 28 31 32 29 0d  0d e8 29 e7 20 3f 26 36  |5).(12)...). ?&6|
00001870  30 30 33 3d 26 46 46 20  f1 8a 32 30 2c 35 29 bd  |003=&FF ..20,5).|
00001880  31 32 39 3b 22 43 52 43  20 45 52 52 4f 52 2e 22  |129;"CRC ERROR."|
00001890  0d 0d f2 2c e7 20 3f 26  36 30 30 33 3d 30 20 f1  |...,. ?&6003=0 .|
000018a0  8a 32 30 2c 35 29 bd 31  32 39 3b 22 57 41 52 4e  |.20,5).129;"WARN|
000018b0  49 4e 47 3a 2d 4e 4f 20  43 52 43 22 0d 0d fc 0b  |ING:-NO CRC"....|
000018c0  3d 3f 26 36 30 30 33 0d  0e 06 05 3a 0d 0e 10 0b  |=?&6003....:....|
000018d0  dd f2 64 65 6c 61 79 0d  0e 1a 07 d1 3d 30 0d 0e  |..delay.....=0..|
000018e0  24 0a f5 fd 91 3e 31 30  0d 0e 2e 05 e1 0d 0e 38  |$....>10.......8|
000018f0  05 3a 0d 0e 42 0f dd f2  6c 6f 61 64 6e 61 6d 65  |.:..B...loadname|
00001900  73 0d 0e 4c 0d cf 23 46  49 4c 45 25 3d 30 0d 0e  |s..L..#FILE%=0..|
00001910  56 13 e3 20 49 25 3d 30  b8 6e 64 61 74 61 25 2d  |V.. I%=0.ndata%-|
00001920  31 0d 0e 60 11 53 48 41  52 45 24 28 49 25 29 3d  |1..`.SHARE$(I%)=|
00001930  22 22 0d 0e 6a 0c e3 20  4a 25 3d 30 b8 36 0d 0e  |""..j.. J%=0.6..|
00001940  74 0e 48 25 3d 9a 23 46  49 4c 45 25 0d 0e 7e 1f  |t.H%=.#FILE%..~.|
00001950  53 48 41 52 45 24 28 49  25 29 3d 53 48 41 52 45  |SHARE$(I%)=SHARE|
00001960  24 28 49 25 29 2b bd 28  48 25 29 0d 0e 88 05 ed  |$(I%)+.(H%).....|
00001970  0d 0e 92 05 ed 0d 0e 9c  05 e1 0d 0e a6 05 3a 0d  |..............:.|
00001980  0e b0 0d dd a4 73 75 62  70 61 67 65 0d 0e ba 0b  |.....subpage....|
00001990  3d 3f 26 36 30 30 34 0d  0e c4 05 3a 0d 0e ce 0c  |=?&6004....:....|
000019a0  dd f2 66 69 6e 69 73 68  0d 0e d8 0b 2a 54 54 58  |..finish....*TTX|
000019b0  4f 46 46 0d 0e e2 05 db  0d 0e ec a0 f1 8a 30 2c  |OFF...........0,|
000019c0  31 30 29 bd 31 33 31 3b  22 50 6f 72 74 66 6f 6c  |10).131;"Portfol|
000019d0  69 6f 20 22 3b 56 25 3b  22 20 73 74 61 72 74 73  |io ";V%;" starts|
000019e0  20 6f 6e 20 22 3b 44 3b  22 2f 22 3b 4d 3b 22 2f  | on ";D;"/";M;"/|
000019f0  22 3b 59 27 bd 31 33 31  3b 22 61 6e 64 20 74 68  |";Y'.131;"and th|
00001a00  65 20 43 45 45 46 41 58  20 64 61 74 65 20 69 73  |e CEEFAX date is|
00001a10  20 22 3b 64 25 3b 22 2f  22 3b 6d 25 3b 22 2f 22  | ";d%;"/";m%;"/"|
00001a20  3b 79 25 27 27 bd 31 33  31 3b 22 46 41 54 41 4c  |;y%''.131;"FATAL|
00001a30  20 45 52 52 4f 52 22 27  bd 31 33 31 3b 22 50 72  | ERROR"'.131;"Pr|
00001a40  6f 67 72 61 6d 20 74 65  72 6d 69 6e 61 74 69 6e  |ogram terminatin|
00001a50  67 22 3a ef 32 31 3a e0  0d 0e f6 05 3a 0d 0f 00  |g":.21:.....:...|
00001a60  09 dd f2 6b 65 79 0d 0f  0a 13 f1 27 22 50 52 45  |...key.....'"PRE|
00001a70  53 53 20 41 20 4b 45 59  22 0d 0f 14 0b 2a 46 58  |SS A KEY"....*FX|
00001a80  32 31 2c 30 0d 0f 1e 08  4b 25 3d a5 0d 0f 28 05  |21,0....K%=...(.|
00001a90  e1 0d 0f 32 05 3a 0d 0f  3c 0b dd a4 64 72 69 76  |...2.:..<...driv|
00001aa0  65 0d 0f 46 0c 62 25 3d  26 36 30 30 30 0d 0f 50  |e..F.b%=&6000..P|
00001ab0  0f 58 25 3d 62 25 20 83  20 32 35 36 0d 0f 5a 0f  |.X%=b% . 256..Z.|
00001ac0  59 25 3d 62 25 20 81 20  32 35 36 0d 0f 64 08 41  |Y%=b% . 256..d.A|
00001ad0  25 3d 36 0d 0f 6e 0d e3  20 49 25 3d 30 b8 31 31  |%=6..n.. I%=0.11|
00001ae0  0d 0f 78 0b 62 25 3f 49  25 3d 30 0d 0f 82 05 ed  |..x.b%?I%=0.....|
00001af0  0d 0f 8c 0c 62 25 3f 32  3d 26 36 30 0d 0f 96 0a  |....b%?2=&60....|
00001b00  62 25 3f 31 3d 31 0d 0f  a0 0b 62 25 3f 31 32 3d  |b%?1=1....b%?12=|
00001b10  31 0d 0f aa 0a d6 26 46  46 44 31 0d 0f b4 0e 3d  |1.....&FFD1....=|
00001b20  3f 26 36 30 30 32 2d 34  38 0d 0f be 05 3a 0d 0f  |?&6002-48....:..|
00001b30  c8 0e dd f2 6e 6f 74 66  6f 75 6e 64 0d 0f d2 0b  |....notfound....|
00001b40  2a 54 54 58 4f 46 46 0d  0f dc 05 db 0d 0f e6 0f  |*TTXOFF.........|
00001b50  79 65 61 72 25 28 56 25  29 3d 59 0d 0f f0 07 d9  |year%(V%)=Y.....|
00001b60  23 30 0d 0f fa 09 66 24  3d 22 22 0d 10 04 2c e7  |#0....f$=""...,.|
00001b70  20 56 25 3d 30 20 66 24  3d 22 49 6e 64 65 78 20  | V%=0 f$="Index |
00001b80  64 61 74 61 22 20 8b 20  66 24 3d 70 24 2b 22 20  |data" . f$=p$+" |
00001b90  22 2b c3 28 56 25 29 0d  10 0e 1e 66 24 3d 66 24  |"+.(V%)....f$=f$|
00001ba0  2b 22 20 66 6f 72 20 22  2b c3 28 79 65 61 72 25  |+" for "+.(year%|
00001bb0  28 56 25 29 29 0d 10 18  28 e7 20 79 65 61 72 25  |(V%))...(. year%|
00001bc0  28 56 25 29 3d 30 20 80  20 56 25 3d 30 20 66 24  |(V%)=0 . V%=0 f$|
00001bd0  3d 22 49 6e 64 65 78 20  64 61 74 61 22 0d 10 22  |="Index data".."|
00001be0  2d e7 20 79 65 61 72 25  28 56 25 29 3d 30 20 80  |-. year%(V%)=0 .|
00001bf0  20 56 25 3c 3e 30 20 66  24 3d 22 50 6f 72 74 66  | V%<>0 f$="Portf|
00001c00  6f 6c 69 6f 20 64 61 74  61 22 0d 10 2c 05 f5 0d  |olio data"..,...|
00001c10  10 36 22 f1 8a 30 2c 35  29 66 24 3b 22 20 6e 6f  |.6"..0,5)f$;" no|
00001c20  74 20 6f 6e 20 74 68 69  73 20 64 69 73 63 3a 2d  |t on this disc:-|
00001c30  22 0d 10 40 05 f5 0d 10  4a ae f1 8a 32 2c 38 29  |"..@....J...2,8)|
00001c40  22 41 29 20 28 41 29 62  61 6e 64 6f 6e 22 27 27  |"A) (A)bandon"''|
00001c50  8a 32 29 22 43 29 20 28  43 29 61 74 61 6c 6f 67  |.2)"C) (C)atalog|
00001c60  75 65 20 64 69 73 63 22  27 27 8a 32 29 22 44 29  |ue disc"''.2)"D)|
00001c70  20 28 44 29 72 69 76 65  20 63 68 61 6e 67 65 20  | (D)rive change |
00001c80  28 63 75 72 72 65 6e 74  6c 79 20 44 72 69 76 65  |(currently Drive|
00001c90  20 22 3b a4 64 72 69 76  65 3b 22 29 22 27 27 8a  | ";.drive;")"''.|
00001ca0  32 29 22 47 29 20 28 47  29 6f 20 6f 6e 22 27 27  |2)"G) (G)o on"''|
00001cb0  8a 32 29 22 53 29 20 28  53 29 74 61 72 74 20 61  |.2)"S) (S)tart a|
00001cc0  20 6e 65 77 20 66 69 6c  65 22 27 27 8a 32 29 22  | new file"''.2)"|
00001cd0  43 68 6f 6f 73 65 20 41  2c 43 2c 44 2c 47 20 6f  |Choose A,C,D,G o|
00001ce0  72 20 53 22 0d 10 54 05  f5 0d 10 5e 0b 2a 46 58  |r S"..T....^.*FX|
00001cf0  32 31 2c 30 0d 10 68 10  4b 45 59 25 3d a5 20 80  |21,0..h.KEY%=. .|
00001d00  20 26 44 46 0d 10 72 35  fd 20 4b 45 59 25 3d 36  | &DF..r5. KEY%=6|
00001d10  35 20 84 20 4b 45 59 25  3d 36 37 20 84 20 4b 45  |5 . KEY%=67 . KE|
00001d20  59 25 3d 36 38 20 84 20  4b 45 59 25 3d 37 31 20  |Y%=68 . KEY%=71 |
00001d30  84 20 4b 45 59 25 3d 38  33 0d 10 7c 12 e7 20 4b  |. KEY%=83..|.. K|
00001d40  45 59 25 3d 36 37 20 8c  20 2a 2e 0d 10 86 98 e7  |EY%=67 . *......|
00001d50  20 4b 45 59 25 3d 36 38  20 f1 27 8a 31 30 29 22  | KEY%=68 .'.10)"|
00001d60  45 6e 74 65 72 20 64 72  69 76 65 20 6e 6f 2e 22  |Enter drive no."|
00001d70  3b 3a f5 3a 4b 45 59 25  3d a5 2d 34 38 3a fd 4b  |;:.:KEY%=.-48:.K|
00001d80  45 59 25 3e 2d 31 20 80  20 4b 45 59 25 3c 34 3a  |EY%>-1 . KEY%<4:|
00001d90  f1 3b 22 20 22 3b 4b 45  59 25 3a 24 26 43 31 30  |.;" ";KEY%:$&C10|
00001da0  3d 22 44 52 2e 22 2b c3  28 4b 45 59 25 29 3a 58  |="DR."+.(KEY%):X|
00001db0  25 3d 26 31 30 3a 59 25  3d 26 43 3a d6 26 46 46  |%=&10:Y%=&C:.&FF|
00001dc0  46 37 3a f1 27 27 8a 31  30 29 22 44 72 69 76 65  |F7:.''.10)"Drive|
00001dd0  20 22 3b 4b 45 59 25 3b  22 20 73 65 6c 65 63 74  | ";KEY%;" select|
00001de0  65 64 22 0d 10 90 28 e7  20 4b 45 59 25 3d 36 35  |ed"...(. KEY%=65|
00001df0  20 84 20 4b 45 59 25 3d  37 31 20 84 20 4b 45 59  | . KEY%=71 . KEY|
00001e00  25 3d 38 33 20 e5 20 8d  74 64 50 0d 10 9a 08 f2  |%=83 . .tdP.....|
00001e10  6b 65 79 0d 10 a4 05 db  0d 10 ae 20 fd 4b 45 59  |key........ .KEY|
00001e20  25 3d 36 35 20 84 20 4b  45 59 25 3d 37 31 20 84  |%=65 . KEY%=71 .|
00001e30  20 4b 45 59 25 3d 38 33  0d 10 b8 07 d9 23 30 0d  | KEY%=83.....#0.|
00001e40  10 c2 1c 42 25 3d 8e 28  c3 28 79 65 61 72 25 28  |...B%=.(.(year%(|
00001e50  56 25 29 2a 31 30 2b 56  25 29 29 0d 10 cc 07 d9  |V%)*10+V%)).....|
00001e60  23 30 0d 10 d6 1e fd 42  25 3c 3e 30 20 84 20 4b  |#0.....B%<>0 . K|
00001e70  45 59 25 3d 36 35 20 84  20 4b 45 59 25 3d 38 33  |EY%=65 . KEY%=83|
00001e80  0d 10 e0 09 ee 20 85 20  87 0d 10 ea 1c e7 20 4b  |..... . ...... K|
00001e90  45 59 25 3d 36 35 20 f2  63 68 61 69 6e 28 22 4d  |EY%=65 .chain("M|
00001ea0  41 49 4e 22 29 0d 10 f4  15 e7 20 4b 45 59 25 3d  |AIN")..... KEY%=|
00001eb0  38 33 20 f2 6f 70 65 6e  3a e1 0d 10 fe 05 e1 0d  |83 .open:.......|
00001ec0  11 08 05 3a 0d 11 12 0a  dd f2 6f 70 65 6e 0d 11  |...:......open..|
00001ed0  1c 27 e7 20 56 25 3d 30  20 66 24 3d 22 49 6e 64  |.'. V%=0 f$="Ind|
00001ee0  65 78 22 20 8b 20 66 24  3d 70 24 2b 22 20 22 2b  |ex" . f$=p$+" "+|
00001ef0  c3 28 56 25 29 0d 11 26  1e f1 8a 30 2c 33 29 66  |.(V%)..&...0,3)f|
00001f00  24 3b 22 20 66 6f 72 20  22 3b 79 65 61 72 25 28  |$;" for ";year%(|
00001f10  56 25 29 0d 11 30 6b f1  8a 30 2c 35 29 22 41 20  |V%)..0k..0,5)"A |
00001f20  6e 65 77 20 66 69 6c 65  20 77 69 6c 6c 20 62 65  |new file will be|
00001f30  20 6f 70 65 6e 65 64 20  69 66 20 74 68 65 72 65  | opened if there|
00001f40  20 69 73 22 27 22 65 6e  6f 75 67 68 20 73 70 61  | is"'"enough spa|
00001f50  63 65 2e 22 27 27 22 44  6f 20 79 6f 75 20 77 69  |ce."''"Do you wi|
00001f60  73 68 20 74 6f 20 73 74  61 72 74 20 61 20 6e 65  |sh to start a ne|
00001f70  77 20 66 69 6c 65 3f 20  28 59 2f 4e 29 22 0d 11  |w file? (Y/N)"..|
00001f80  3a 05 f5 0d 11 44 0b 2a  46 58 32 31 2c 30 0d 11  |:....D.*FX21,0..|
00001f90  4e 0e 41 25 3d a5 20 80  20 26 44 46 0d 11 58 13  |N.A%=. . &DF..X.|
00001fa0  fd 20 41 25 3d 37 38 20  84 20 41 25 3d 38 39 0d  |. A%=78 . A%=89.|
00001fb0  11 62 0d e7 20 41 25 3d  37 38 20 e1 0d 11 6c 05  |.b.. A%=78 ...l.|
00001fc0  f5 0d 11 76 05 f5 0d 11  80 a2 f1 27 22 45 6e 74  |...v.......'"Ent|
00001fd0  65 72 20 64 61 74 65 20  66 72 6f 6d 20 77 68 69  |er date from whi|
00001fe0  63 68 20 22 3b 66 24 27  22 69 73 20 74 6f 20 73  |ch ";f$'"is to s|
00001ff0  74 61 72 74 20 69 6e 20  74 68 65 20 66 6f 72 6d  |tart in the form|
00002000  20 44 44 2f 4d 4d 22 27  22 77 68 65 72 65 20 44  | DD/MM"'"where D|
00002010  44 20 69 73 20 74 68 65  20 64 61 79 20 6f 66 20  |D is the day of |
00002020  74 68 65 20 6d 6f 6e 74  68 22 27 22 61 6e 64 20  |the month"'"and |
00002030  4d 4d 20 69 73 20 74 68  65 20 6d 6f 6e 74 68 20  |MM is the month |
00002040  6f 66 20 74 68 65 20 79  65 61 72 22 3b 3a e8 61  |of the year";:.a|
00002050  24 3a 61 24 3d 61 24 2b  22 2f 22 2b c3 28 79 65  |$:a$=a$+"/"+.(ye|
00002060  61 72 25 28 56 25 29 29  0d 11 8a 25 e7 20 c1 61  |ar%(V%))...%. .a|
00002070  24 2c 33 2c 31 29 3c 3e  22 2f 22 20 f2 65 72 72  |$,3,1)<>"/" .err|
00002080  6f 72 64 61 74 65 3a e5  20 8d 74 40 51 0d 11 94  |ordate:. .t@Q...|
00002090  0d e3 20 49 25 3d 31 b8  31 30 0d 11 9e 18 e7 20  |.. I%=1.10..... |
000020a0  49 25 3d 33 20 84 20 49  25 3d 36 20 e5 20 8d 74  |I%=3 . I%=6 . .t|
000020b0  72 51 0d 11 a8 34 e7 20  c1 61 24 2c 49 25 2c 31  |rQ...4. .a$,I%,1|
000020c0  29 3c 22 30 22 20 84 20  c1 61 24 2c 49 25 2c 31  |)<"0" . .a$,I%,1|
000020d0  29 3e 22 39 22 20 f2 65  72 72 6f 72 64 61 74 65  |)>"9" .errordate|
000020e0  3a 49 25 3d 32 30 0d 11  b2 05 ed 0d 11 bc 0b fd  |:I%=20..........|
000020f0  20 49 25 3c 31 39 0d 11  c6 11 44 3d bb 28 c1 61  | I%<19....D=.(.a|
00002100  24 2c 31 2c 32 29 29 0d  11 d0 11 4d 3d bb 28 c1  |$,1,2))....M=.(.|
00002110  61 24 2c 34 2c 32 29 29  0d 11 da 11 59 3d bb 28  |a$,4,2))....Y=.(|
00002120  c1 61 24 2c 37 2c 34 29  29 0d 11 e4 23 e7 20 a4  |.a$,7,4))...#. .|
00002130  76 61 6c 69 64 61 74 65  28 44 2c 4d 2c 59 29 3d  |validate(D,M,Y)=|
00002140  30 20 f2 65 72 72 6f 72  64 61 74 65 0d 11 ee 19  |0 .errordate....|
00002150  fd 20 a4 76 61 6c 69 64  61 74 65 28 44 2c 4d 2c  |. .validate(D,M,|
00002160  59 29 3c 3e 30 0d 11 f8  2c e8 27 22 41 6e 64 20  |Y)<>0...,.'"And |
00002170  65 6e 74 65 72 20 64 61  79 20 6f 66 20 77 65 65  |enter day of wee|
00002180  6b 20 28 4d 6f 6e 64 61  79 3d 31 29 20 22 44 41  |k (Monday=1) "DA|
00002190  59 0d 12 02 7b e7 20 44  41 59 3e 35 20 f1 27 22  |Y...{. DAY>5 .'"|
000021a0  57 65 65 6b 65 6e 64 73  20 61 72 65 20 6e 6f 74  |Weekends are not|
000021b0  20 61 6c 6c 6f 77 65 64  20 21 22 27 22 54 68 65  | allowed !"'"The|
000021c0  20 6e 65 78 74 20 4d 6f  6e 64 61 79 20 77 69 6c  | next Monday wil|
000021d0  6c 20 62 65 20 75 73 65  64 20 61 6e 64 22 27 22  |l be used and"'"|
000021e0  74 68 65 20 64 61 74 65  20 77 69 6c 6c 20 62 65  |the date will be|
000021f0  20 61 64 6a 75 73 74 65  64 2e 22 3a 43 25 3d 31  | adjusted.":C%=1|
00002200  3a f2 61 64 6a 75 73 74  64 61 74 65 0d 12 0c 05  |:.adjustdate....|
00002210  db 0d 12 16 26 f1 8a 32  2c 35 29 22 49 4e 49 54  |....&..2,5)"INIT|
00002220  49 41 4c 49 53 49 4e 47  20 2d 20 50 6c 65 61 73  |IALISING - Pleas|
00002230  65 20 77 61 69 74 22 0d  12 20 1e 42 25 3d 8e 28  |e wait".. .B%=.(|
00002240  c3 28 79 65 61 72 25 28  56 25 29 2d 31 29 2b c3  |.(year%(V%)-1)+.|
00002250  28 56 25 29 29 0d 12 2a  11 e7 20 42 25 3d 30 20  |(V%))..*.. B%=0 |
00002260  e5 20 8d 74 4e 52 0d 12  34 2c f4 20 54 61 6b 65  |. .tNR..4,. Take|
00002270  20 61 20 63 6f 70 79 20  6f 66 20 73 68 61 72 65  | a copy of share|
00002280  6e 61 6d 65 73 20 66 6f  72 20 6e 65 77 20 66 69  |names for new fi|
00002290  6c 65 0d 12 3e 10 e3 49  25 3d 31 b8 6e 64 61 74  |le..>..I%=1.ndat|
000022a0  61 25 0d 12 48 0d 73 24  28 49 25 29 3d 22 22 0d  |a%..H.s$(I%)="".|
000022b0  12 52 0b e3 4a 25 3d 31  b8 37 0d 12 5c 19 73 24  |.R..J%=1.7..\.s$|
000022c0  28 49 25 29 3d 73 24 28  49 25 29 2b bd 28 9a 23  |(I%)=s$(I%)+.(.#|
000022d0  42 25 29 0d 12 66 05 ed  0d 12 70 05 ed 0d 12 7a  |B%)..f....p....z|
000022e0  07 d9 23 30 0d 12 84 35  f4 20 53 65 6e 64 20 64  |..#0...5. Send d|
000022f0  61 74 61 20 74 6f 20 64  69 73 63 20 61 73 20 6f  |ata to disc as o|
00002300  75 74 6c 69 6e 65 64 20  61 74 20 73 74 61 72 74  |utlined at start|
00002310  20 6f 66 20 70 72 6f 67  2e 0d 12 8e 0b f2 65 73  | of prog......es|
00002320  70 61 63 65 0d 12 98 0a  f2 6f 70 65 6e 32 0d 12  |pace.....open2..|
00002330  a2 0d f2 70 75 73 68 79  65 61 72 0d 12 ac 09 ee  |...pushyear.....|
00002340  20 85 20 87 0d 12 b6 05  e1 0d 12 c0 05 3a 0d 12  | . ..........:..|
00002350  ca 0b dd f2 6f 70 65 6e  32 0d 12 d4 33 24 26 43  |....open2...3$&C|
00002360  30 31 3d 22 53 41 56 45  20 22 2b c3 28 79 65 61  |01="SAVE "+.(yea|
00002370  72 25 28 56 25 29 29 2b  c3 28 56 25 29 2b 22 20  |r%(V%))+.(V%)+" |
00002380  32 30 30 30 20 2b 22 2b  c3 7e 44 25 0d 12 de 0a  |2000 +"+.~D%....|
00002390  d6 26 46 46 46 37 0d 12  e8 1c 41 25 3d ae 28 c3  |.&FFF7....A%=.(.|
000023a0  28 79 65 61 72 25 28 56  25 29 29 2b c3 28 56 25  |(year%(V%))+.(V%|
000023b0  29 29 0d 12 f2 10 e3 49  25 3d 31 b8 6e 64 61 74  |)).....I%=1.ndat|
000023c0  61 25 0d 12 fc 0b e3 4a  25 3d 31 b8 37 0d 13 06  |a%.....J%=1.7...|
000023d0  19 d5 23 41 25 2c 97 28  c1 73 24 28 49 25 29 2c  |..#A%,.(.s$(I%),|
000023e0  4a 25 2c 31 29 29 0d 13  10 05 ed 0d 13 1a 05 ed  |J%,1))..........|
000023f0  0d 13 24 12 cf 23 41 25  3d 66 69 72 73 74 70 74  |..$..#A%=firstpt|
00002400  72 25 0d 13 2e 19 d5 23  41 25 2c 6d 69 6e 72 65  |r%.....#A%,minre|
00002410  63 6f 72 64 25 20 81 20  32 35 36 0d 13 38 19 d5  |cord% . 256..8..|
00002420  23 41 25 2c 6d 69 6e 72  65 63 6f 72 64 25 20 83  |#A%,minrecord% .|
00002430  20 32 35 36 0d 13 42 0a  d5 23 41 25 2c 44 0d 13  | 256..B..#A%,D..|
00002440  4c 0a d5 23 41 25 2c 4d  0d 13 56 12 d5 23 41 25  |L..#A%,M..V..#A%|
00002450  2c 28 59 20 81 20 32 35  36 29 0d 13 60 12 d5 23  |,(Y . 256)..`..#|
00002460  41 25 2c 28 59 20 83 20  32 35 36 29 0d 13 6a 0c  |A%,(Y . 256)..j.|
00002470  d5 23 41 25 2c 44 41 59  0d 13 74 19 d5 23 41 25  |.#A%,DAY..t..#A%|
00002480  2c 6d 69 6e 72 65 63 6f  72 64 25 20 81 20 32 35  |,minrecord% . 25|
00002490  36 0d 13 7e 19 d5 23 41  25 2c 6d 69 6e 72 65 63  |6..~..#A%,minrec|
000024a0  6f 72 64 25 20 83 20 32  35 36 0d 13 88 0a d5 23  |ord% . 256.....#|
000024b0  41 25 2c 44 0d 13 92 0a  d5 23 41 25 2c 4d 0d 13  |A%,D.....#A%,M..|
000024c0  9c 12 d5 23 41 25 2c 28  59 20 81 20 32 35 36 29  |...#A%,(Y . 256)|
000024d0  0d 13 a6 12 d5 23 41 25  2c 28 59 20 83 20 32 35  |.....#A%,(Y . 25|
000024e0  36 29 0d 13 b0 11 e3 20  49 25 3d 31 b8 6e 64 61  |6)..... I%=1.nda|
000024f0  74 61 25 0d 13 ba 0c d5  23 41 25 2c 26 46 46 0d  |ta%.....#A%,&FF.|
00002500  13 c4 0c d5 23 41 25 2c  26 46 46 0d 13 ce 0a d5  |....#A%,&FF.....|
00002510  23 41 25 2c 30 0d 13 d8  0a d5 23 41 25 2c 30 0d  |#A%,0.....#A%,0.|
00002520  13 e2 05 ed 0d 13 ec 13  cf 23 41 25 3d 6d 69 6e  |.........#A%=min|
00002530  72 65 63 6f 72 64 25 0d  13 f6 08 43 25 3d 31 0d  |record%....C%=1.|
00002540  14 00 0a 47 25 3d bc 2b  31 0d 14 0a 0a 4f 4c 44  |...G%=.+1....OLD|
00002550  59 3d 59 0d 14 14 08 43  25 3d 31 0d 14 1e 05 f5  |Y=Y....C%=1.....|
00002560  0d 14 28 0f f2 61 64 6a  75 73 74 64 61 74 65 0d  |..(..adjustdate.|
00002570  14 32 14 e7 20 59 3c 3e  4f 4c 44 59 20 e5 20 8d  |.2.. Y<>OLDY . .|
00002580  44 64 54 0d 14 3c 13 e3  20 49 25 3d 31 b8 6e 64  |DdT..<.. I%=1.nd|
00002590  61 74 61 25 2a 32 0d 14  46 0a d5 23 41 25 2c 30  |ata%*2..F..#A%,0|
000025a0  0d 14 50 05 ed 0d 14 5a  1c f1 8a 35 2c 47 25 29  |..P....Z...5,G%)|
000025b0  44 3b 22 2f 22 3b 4d 3b  22 2f 22 3b 59 3b 22 20  |D;"/";M;"/";Y;" |
000025c0  22 0d 14 64 0d fd 20 59  3c 3e 4f 4c 44 59 0d 14  |"..d.. Y<>OLDY..|
000025d0  6e 13 e3 20 49 25 3d 31  b8 6e 64 61 74 61 25 2a  |n.. I%=1.ndata%*|
000025e0  32 0d 14 78 0a d5 23 41  25 2c 30 0d 14 82 05 ed  |2..x..#A%,0.....|
000025f0  0d 14 8c 07 d9 23 30 0d  14 96 0d f2 74 68 6f 6c  |.....#0.....thol|
00002600  64 28 31 29 0d 14 a0 46  f4 20 53 65 74 20 63 75  |d(1)...F. Set cu|
00002610  72 72 65 6e 74 20 64 69  73 63 20 70 6f 69 6e 74  |rrent disc point|
00002620  65 72 20 74 6f 20 70 6f  69 6e 74 20 61 74 20 63  |er to point at c|
00002630  75 72 72 65 6e 74 20 64  61 74 61 20 70 6f 69 6e  |urrent data poin|
00002640  74 20 69 65 20 66 69 72  73 74 0d 14 aa 17 64 69  |t ie first....di|
00002650  73 63 70 74 72 25 3d 6d  69 6e 72 65 63 6f 72 64  |scptr%=minrecord|
00002660  25 0d 14 b4 07 d9 23 30  0d 14 be 05 db 0d 14 c8  |%.....#0........|
00002670  09 ee 20 85 20 87 0d 14  d2 05 e1 0d 14 dc 05 3a  |.. . ..........:|
00002680  0d 14 e6 0f dd f2 74 68  6f 6c 64 28 42 25 29 0d  |......thold(B%).|
00002690  14 f0 2e e7 20 42 25 3d  30 3a 74 65 6d 70 64 61  |.... B%=0:tempda|
000026a0  79 3d 44 41 59 3a 74 65  6d 70 64 3d 44 3a 74 65  |y=DAY:tempd=D:te|
000026b0  6d 70 6d 3d 4d 3a 74 65  6d 70 79 3d 59 0d 14 fa  |mpm=M:tempy=Y...|
000026c0  2e e7 20 42 25 3d 31 20  44 41 59 3d 74 65 6d 70  |.. B%=1 DAY=temp|
000026d0  64 61 79 3a 44 3d 74 65  6d 70 64 3a 4d 3d 74 65  |day:D=tempd:M=te|
000026e0  6d 70 6d 3a 59 3d 74 65  6d 70 79 0d 15 04 05 e1  |mpm:Y=tempy.....|
000026f0  0d 15 0e 05 3a 0d 15 18  0c dd f2 65 73 70 61 63  |....:......espac|
00002700  65 0d 15 22 0d f2 74 68  6f 6c 64 28 30 29 0d 15  |e.."..thold(0)..|
00002710  2c 08 43 25 3d 31 0d 15  36 08 44 25 3d 30 0d 15  |,.C%=1..6.D%=0..|
00002720  40 0a 4f 4c 44 59 3d 59  0d 15 4a 05 f5 0d 15 54  |@.OLDY=Y..J....T|
00002730  0f f2 61 64 6a 75 73 74  64 61 74 65 0d 15 5e 0b  |..adjustdate..^.|
00002740  44 25 3d 44 25 2b 31 0d  15 68 0c fd 59 3c 3e 4f  |D%=D%+1..h..Y<>O|
00002750  4c 44 59 0d 15 72 0d f2  74 68 6f 6c 64 28 31 29  |LDY..r..thold(1)|
00002760  0d 15 7c 16 44 25 3d 28  44 25 2d 31 29 2a 6e 64  |..|.D%=(D%-1)*nd|
00002770  61 74 61 25 2a 32 0d 15  86 08 58 25 3d 31 0d 15  |ata%*2....X%=1..|
00002780  90 09 59 25 3d 26 43 0d  15 9a 09 ee 20 85 20 87  |..Y%=&C..... . .|
00002790  0d 15 a4 05 e1 0d 15 ae  05 3a 0d 15 b8 0f dd f2  |.........:......|
000027a0  65 72 72 6f 72 64 61 74  65 0d 15 c2 05 db 0d 15  |errordate.......|
000027b0  cc 36 f1 8a 35 2c 31 30  29 22 45 72 72 6f 72 20  |.6..5,10)"Error |
000027c0  69 6e 20 64 61 74 65 2e  22 27 27 22 50 72 65 73  |in date."''"Pres|
000027d0  73 20 61 20 4b 45 59 20  74 6f 20 72 65 2d 65 6e  |s a KEY to re-en|
000027e0  74 65 72 22 0d 15 d6 08  49 25 3d a5 0d 15 e0 05  |ter"....I%=.....|
000027f0  db 0d 15 ea 05 e1 0d 15  f4 05 3a 0d 15 fe 0e dd  |..........:.....|
00002800  f2 70 75 73 68 79 65 61  72 0d 16 08 0b f2 73 79  |.pushyear.....sy|
00002810  73 74 65 6d 0d 16 12 10  58 25 3d ae 28 22 59 45  |stem....X%=.("YE|
00002820  41 52 22 29 0d 16 1c 0c  e3 20 49 25 3d 30 b8 33  |AR")..... I%=0.3|
00002830  0d 16 26 12 f1 23 58 25  2c 79 65 61 72 25 28 49  |..&..#X%,year%(I|
00002840  25 29 0d 16 30 05 ed 0d  16 3a 05 e1 0d 16 44 05  |%)..0....:....D.|
00002850  3a 0d 16 4e 0c dd f2 73  79 73 74 65 6d 0d 16 58  |:..N...system..X|
00002860  05 f5 0d 16 62 0b 2a 46  58 32 31 2c 30 0d 16 6c  |....b.*FX21,0..l|
00002870  10 41 25 3d 8e 28 22 4d  41 49 4e 22 29 0d 16 76  |.A%=.("MAIN")..v|
00002880  07 d9 23 30 0d 16 80 58  e7 20 41 25 3d 30 20 db  |..#0...X. A%=0 .|
00002890  3a f1 8a 30 2c 31 30 29  22 49 6e 73 65 72 74 20  |:..0,10)"Insert |
000028a0  53 79 73 74 65 6d 20 44  69 73 63 20 69 6e 20 64  |System Disc in d|
000028b0  72 69 76 65 20 30 22 27  27 22 61 6e 64 20 70 72  |rive 0"''"and pr|
000028c0  65 73 73 20 61 6e 79 20  6b 65 79 20 74 6f 20 63  |ess any key to c|
000028d0  6f 6e 74 69 6e 75 65 22  3a f5 fd a5 0d 16 8a 0b  |ontinue":.......|
000028e0  fd 20 41 25 3c 3e 30 0d  16 94 05 e1 0d 16 9e 05  |. A%<>0.........|
000028f0  3a 0d 16 a8 0e dd f2 61  73 73 65 6d 62 6c 65 0d  |:......assemble.|
00002900  16 b2 07 ef 32 31 0d 16  bc 0f e3 20 4e 25 3d 30  |....21..... N%=0|
00002910  b8 32 20 88 32 0d 16 c6  0c 50 25 3d 26 35 46 30  |.2 .2....P%=&5F0|
00002920  30 0d 16 d0 05 5b 0d 16  da 0a 4f 50 54 20 4e 25  |0....[....OPT N%|
00002930  0d 16 e4 0a 2e 73 74 61  72 74 0d 16 ee 27 20 20  |.....start...'  |
00002940  20 20 6c 64 61 20 23 30  3a 73 74 61 20 26 38 30  |  lda #0:sta &80|
00002950  3a 6c 64 61 20 23 26 36  30 3a 73 74 61 20 26 38  |:lda #&60:sta &8|
00002960  31 0d 16 f8 09 2e 6c 6f  6f 70 0d 17 02 0e 20 20  |1.....loop....  |
00002970  20 20 6c 64 79 20 23 32  0d 17 0c 0a 2e 6c 6f 6f  |  ldy #2.....loo|
00002980  70 31 0d 17 16 28 20 20  20 20 6c 64 61 20 28 26  |p1...(    lda (&|
00002990  38 30 29 2c 59 3a 61 6e  64 20 23 26 37 46 3a 73  |80),Y:and #&7F:s|
000029a0  74 61 20 28 26 38 30 29  2c 59 0d 17 20 08 2e 6f  |ta (&80),Y.. ..o|
000029b0  6b 31 0d 17 2a 2b 20 20  20 20 63 6d 70 20 23 33  |k1..*+    cmp #3|
000029c0  32 3a 62 63 73 20 6f 6b  32 3a 6c 64 61 20 23 33  |2:bcs ok2:lda #3|
000029d0  32 3a 73 74 61 20 28 26  38 30 29 2c 59 0d 17 34  |2:sta (&80),Y..4|
000029e0  08 2e 6f 6b 32 0d 17 3e  80 20 20 20 20 69 6e 79  |..ok2..>.    iny|
000029f0  3a 63 70 79 20 23 34 32  3a 62 63 63 20 6c 6f 6f  |:cpy #42:bcc loo|
00002a00  70 31 3a 63 6c 63 3a 6c  64 61 20 23 34 32 3a 61  |p1:clc:lda #42:a|
00002a10  64 63 20 26 38 30 3a 73  74 61 20 26 38 30 3a 6c  |dc &80:sta &80:l|
00002a20  64 61 20 23 30 3a 61 64  63 20 26 38 31 3a 73 74  |da #0:adc &81:st|
00002a30  61 20 26 38 31 3a 63 6d  70 20 23 26 36 35 3a 62  |a &81:cmp #&65:b|
00002a40  63 63 20 6c 6f 6f 70 3a  6c 64 61 20 26 38 30 3a  |cc loop:lda &80:|
00002a50  63 6d 70 20 23 26 30 30  3a 62 63 63 20 6c 6f 6f  |cmp #&00:bcc loo|
00002a60  70 3a 72 74 73 0d 17 48  05 5d 0d 17 52 05 ed 0d  |p:rts..H.]..R...|
00002a70  17 5c 06 ef 36 0d 17 66  05 e1 0d ff              |.\..6..f....|
00002a7c
27-05-88/AUTO.m0
27-05-88/AUTO.m1
27-05-88/AUTO.m2
27-05-88/AUTO.m4
27-05-88/AUTO.m5