P729 CEEFAX 729 Wed 27 Jan 21:11/11 |B2201214|a16TP7Inf|i14TFXT|m10|s÷n1÷e T ELEPRINTER T s be frustrating, many information pages are  ine madf up of rolling pages can  morf waiting than rfadingN Saving a sfr ies of pages to disc is  ous, and unless you have ADFS only 31 pa ges can bf saved  ADFS is not hassle free.  d is a program that will :- A ically save a series of pages to disc rf ady to be reloaded for  ers normal reading speed. G instant hard copy at the prfss of a ke8. ST sc as the available storage space  llow. I er buffer to avoid waiting for thf next page to be displayed. W appily with either the Teletfxt Filing S ystem or the new ATS C ta corruption bfcausf of poor recept|c
P729 CEEFAX 729 Wed 27 Jan 20:50/05 |B2202214|a16TP7Inf|i14TEXT|m336E|s÷n1÷f ion without crashing. T taken me a little time to write and tes t, well to bf  far too long in factN The final version (mark  requirements, and in two respfcts  ms better than expectedN ghen I started I nfver seriously thought it  ssible to cram more than 100 $fletext pa ges onto one 100K disc, I visage incorporating an editing routine. I am also quite  f built in "idiot proofing", you can cal l it "user I efer the first phrase as I frequently ne ed  S sfying the first reqqhrement was my init ial target which would not  hard but for the need to maintain compa tibility with both ATSTFS Becausf the TFS is a filing system it is nescessary DFS
P729 CEEFAX 729 Wed 27 Jan 20:00/11 |B2203214<—16TP7Inf|i14 @XT|m36DA|s÷n1÷e saving and rdselect thd TFS afterwards, thd  system appdars to reset the ON ER OR  inter, and my original version rdlied hf avily on disc error handling. M ng, swearing and kicking thf waste paper baskft round the room  penny finally droppfd, the solution is to rfset the ON ER OR electing thf TFS, sfe P OC T ond  po detect which sub page numbfr is  g encoded"N Both systems O calls to do thd dfcoding for you, but th ey are incompatible M h peaShng, poAhng and experimenting was required FN o replace thfse Osword callsN The final version can be ldft to download a comple te series of rolling pagds  , leaving you free to watch thd tdll|c
P729 CEEFAX 729 Wed 27 Jan 21:11/21 |B2204214 yN I use an amended  the Telesoft magazine pagfs to disc ever y friday, I back from doing the shopping. T ant printout routine caused no compatibi lity difficulties, but  interpreting Teletext control codes in order to  characters resulted in a basic routine tuffed full of IF's and GOTO'sn Thfse co mmands are vfry slow and thf need  t all 960 characters on the screen resul ted in the printout bfing  antbN The solution is, of course, machin e code and the  ely pfrceptableN This code also converts the  uarter and divide characters from the  letext valuf into the appropriate printe r codesN You may need to  codfs to suit your printer, these are c learly marked with REM
P729 CEEFAX 729 Wed 27 Jan 21:11/57 |B2205214 n listing one. T agf has changed many times in the develo pment of  FLEPRINTERI ially used a simple *SAVE routine and  ickly hit the 31 file barrierN The iNhti al answer to this was to rfad  disc sfctors directly, using Osword &7F and with sectors 0 and 1  tomised directory. dhis increased the ma ximum number of K 99 but this method has three serhous dra wbacks. F c format which cannot be *CATalogufd, bu r  le, having a fixed storagf capacity  rdless of disc formatN Also this Osword call can only handle whole 256  ors four of which are needed for each sc reen, as a teletext  in just 960 bytes this leaves the tail end of every NT eal systfm would sse the standard DF|c
P729 CEEFAX 729 Wed 27 Jan 21:03/23 |B2206214|a16TP/Inf|i14TEXT|m4111E|s÷n1÷ eS commands  lf to usf thf maximum storage capacity egardless of the disc format, and storf screens continuously across  ariesN TSAV E a seperate indfx file "TPINDEX", which  access file called "SCREENSbN This  is initialised with OPENOUT and then ex tendfd by increasing the file P TR£) by 960 byte incrfments until a disc full error is  the file is closed and the maximum numb er of NT atest advantage of the available disc  ace and is compatible not only with 40 o r 80 track systems and with  uble density but also with the ADFS, whi ch trfats both sides  isc as a continuous surfaceN An 80 track double sided AADF S can store a maximum of 678 screens|c
P729 CEEFAX 729 Wed 27 Jan 21:00/11 |B2207214 e, othfr  8 sfctors per track instead of 16, can chieve a massive 764 screens per disc s ee figN 1). T into two halves in order to leave the m aximum NT is an ideal application for the I/O  ter buffer broadcast last weekN T—is buf fer is 10.25K (prints 12  stopping) with the TFS, or 12.73k (15 sc rfens) using the ATS stomatically adjusted according to the v alud of PAGENT in listing one which also includes the printout codd, note the alterations to t he zeroMpage addresses, this is  the ATS ssds the same arda of memory ori ginally allocated to the N Although the ATS leaves these zeroMpagd valufs as it finds  e can interrupt the ATS and access thdse locations  orifhnal value|c
P729 CEEFAX 729 Wed 27 Jan 21:00/20 |B2208214417F4|s÷n1÷ es are rdstordd. The amdnded buffer prog ram will  buffer and then chain the TELEPRINTER  ogramN Alternatively you can use a sidew ays ram printer buffer, which  nt at least 18 screens bdfore finally gr inding to a halt. T no hardware specific commands, uses onl y well  and keeps all machine code above PAGE, as a result it is not only compatible wi th both teletext roms but also  BBC, BBCS and MAS DRN It sdould al1o be possible to convert it to NL Acorn Teletext Adapters. I portant to keep track of memory usage wh en devising this  ly to leave room for the buffer but also to ensure  ex areas are not overwrittdnN Fig 2 s—ow s how B ed, note the arfa set asidd for stor|c
P729 CEEFAX 729 Wed 27 Jan 21:05/15 |B2209214 eing  ary screen storage space and the index, the space bftween bfing ssfd for the pri nter bufferN Those purists who  "structured prograjlhng" may well shudde r at the number of GO N II take the view that if a command does th e fob with the  f right speed for the application then u se it. T writing tortured P2OCedures that arf  gfr and more involved than nescessary me rfly to avoid thf terrible  ssing a GOTON Thf logic of these program s are often more  n the "primitive" IF THEN GOTO typf, the y are   cticeN Of course you sdould avoid  ng a maze of GOTO's, but it is wrong to be paranoid about the use of  command. I tion varies bftween excellent and ho|c
P729 CEEFAX 729 Wed 27 Jan 21:05/01 |B220A214|a16TP/Inf|i14TEXT|m41ECA|s÷n1÷ epeless, T be able to survive the worst that my afr ial NT ble data errors that could crasd or  use the program. Firstly thf page number could be corrupted so that a  pages would be saved with one or more s2 b pages missing,  umber could be corrupted which would con fuse the  is trapped by checUhng to see if FNham h as  b page numbfr and skipping this sub  N $hese errors are detected by checUhng for gaps in the indfx and if  nd continuing the search past the end of the series until the N This method is also used to enrtre that sub pages are NT way the program could become confused i s if the  ted, in which case the series would |c
P729 CEEFAX 729 Wed 27 Jan 21:06/13 |B220B214|a16TP7Inf|i14TEXT|m42235|s÷n1÷ ebe  o delete thf whole series and resave. I my experience thesf errors are not comm on and in most cases you will be  download the complete series at the fir st attempt. dhere is,  for corruption in the page itselfN This is partly  blems between the ATS and the TFS, but a lso  often perfectly readable. USINGTHE ELEPRINTER H sgh about how the program was written, i t is I t. The program comfs in two halves,  ly CHAIN "TPRINT", this will assfmble al l the code before CHAINing TPRINTNF rst you will be prompted to insert eithf r an empty disc or an  d $fleprinter discL on pressing space it will search the NI this cannot be found then it will se|c
P729 CEEFAX 729 Wed 27 Jan 20:56/54 |B220C214|a16TP7Inf|i14TEXT|m425A0|s÷n1÷ et up a blank  ialise the largest "SCREENS" file that ill fit  ace on the discN It is bfst to sse a bla nk  t as thf $fleprinter program uses  filing system commands it will not corr upt   I disc is full then you will be promptfd t o insert another  N dy to start downloading, simply enter th e channfl and pagf  m will do the rest. If the page you want has alrfady  ogram will find it on the indfx and disp lay it  n otherwise it will start searching for it "off airbN If there are no sub pages then again it will be displayed  rintout option imlfdiately on being foun d, entering anything other Y y" will return you to the prompt scr|c
P729 CEEFAX 729 Wed 27 Jan 20:00/01 |B220D210|a16TP7Inf|i14TEXT eeen If there ard sub  ole series will be savfd to disc (if not alrdady saved)  n sequenceN Note that the program does n ot wait  ries but instead saves them out of order . I thd scrdens then thd program will  ll the lower numbdred screens that it ha s room for, and will then  hdse lower numbersN On the right hand si dd of the prompt  ber of blank screen spaces left on thd d isc if you  nought then you will be askfd to either load  file. PTAB ditor, this dIsplays the channel and pag e  in the order that thdy werd savdd,  an option to deletf if required (enteri ng anything other than "Y" or 
P729 CEEFAX 729 Wed 27 Jan 21:11/14 |B220E214|a16TP#Inf|i14TEXT|m42C76|s÷n1÷ ell display the next channel and page nu mbfr)N If you are trying to  ies of pages then you will bf asked if y ou want to delete them  ything other then "Y" or "y" will cause thf sub pages to  th a delete optionN This deletion operat ion removes  ly and shuffles all the rfcords down to leave  eens, it does not erasf or move the  al screens on the disc as this would tak e far too longN After several  d resaving procedures the entries on the index will bf in a  e physical position on disc in the rando m access file SCREENS ed. The program relies on the "TPINDEX" file to  you erasf this file then you will not be  r. PESCAPE
P729 CEEFAX 729 Wed 27 Jan 21:11/17 |B220F214 eou to the prompt page at any time, thou gh ESCAPE h downloading a sfries of pages thfn  e of those pages will bf entered on the index as it is only updatfd at  f the saving routine.  P2OCEDURES AND FUNCTIONS POC nt : Display one page with printout opt ion. FND . POCG y for display. POCB ion of OSCLI. P OCS en to disc. POCS reen display. PROCR soft system and reset ON ERROR. P GB : Load and read indfx. POC Load nfw disc" message. POCD sc full" message. POCS x. POCE POCN screens" message. POCD mfssage. POCP PO Cosg(x) : Load or save one screen us|c
P729 CEEFAX 729 Wed 27 Jan 20:00/37 |B2210214|a16TP7Inf|i14TEXT|m4334C|s÷n1÷ eing OSGPBP. P OCS FN get : Double hdight get routine. VARIAB DR ch : Channel n5dber.  : Call address for code.  Last sub page number. D a. S  : Printer codf for divide character ound : Record number of screen fou nd in search. P for half character. P er code for hash character.  : File handle. H page numbdr loaded. F length. LG ble. LG . NN O bfr. PFN P  : String for storing page and sub p-acd number. A
P729 CEEFAX 729 Wed 27 Jan 21:00/00 |B2211214ITEXTB e loop. P ound character. P de for quarter character.  Maximum number of screens.  Combined channfl and page number used i n search   : First subMpage number.  : Previous sub page number.  t in PROCprint. T storage. P rhree quarter character.  ens part of sub page numbfr.  : General input variable.  FIG 1: Screens per disc ########## ######################################## ####  || || || || F g System || DFS || DFS || DFS || ADFS || ADFS || D S D || DMD || D-D || D-D || D-D ||
P729 CEEFAX 729 Wed 27 Jan 21:00/05 |B2212214|a16TP/Inf|i14$FXT|m43A0A|s÷n1÷ e6 || 18 || 16 || 18 || ###### #############||######||######| #####||######||  || || || || || TSS | 188 || 166 || 188 || ########### ########||######||######||######||###### ||######||  || || || || ||  80T S-S || 209 || 337 || 380 || 337 || 380 || ################ ###||######||######||######||######||### ###||  || || || || TD -S || 102 || 166 || 188 || 337 || 380 || ################### ######||######||######||######||######||  | || || || TDS || 209 || 337 || 380 || 678 || 764 || ######################## #||######||######||######||######|| 
P729 CEEFAX 729 Wed 27 Jan 21:01/35 |B2213214 e FIGM  TFS#### ######### ATS  || SCREEN  &7C00||#############||&7C00  || || SCR FEN || STORAGE &7480||#############||&7480  || ||  INDEX || ########### ##||&6800  || PRINT CODE ||  00||#############||&6700  || BUFFERCOD E || ############# || ||  || BUFFER || ###### #######|| DHIMEM 3300   || VARIAB DB || N ############|| TOP ||  
P729 CEEFAX 729 Wed 27 Jan 21:01/10 |B2210214 e || BASIC ||  00||#############||&1A00  @AGE 