Home » Personal collection » Acorn tapes » Electron_User » Electron_User_tape22a_acorn_eu_1991_may.wav » PF-List

PF-List

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 » Personal collection » Acorn tapes » Electron_User » Electron_User_tape22a_acorn_eu_1991_may.wav
Filename: PF-List
Read OK:
File size: 0D25 bytes
Load address: FFFF1A00
Exec address: FFFF8023
Duplicates

There are 3 duplicate copies of this file in the archive:

File contents
   10REM PF-List
   20REM by Graham Kendall
   30REM (c) The Micro User
   40PROCInit
   50ON ERROR GOTO 250
   60REPEAT
   70MODE 7
   80Mode%=7
   90PROCInitVariables
  100PROCGetFileName
  110PROCPrint
  120MODE 3
  130Mode%=3
  140REPEAT
  150PROCProcessNextLine
  160UNTIL End_Of_File
  170CLOSE#0 : File=0
  180PROCCn("End of List",22):PROCSpace(24)
  190MODE 7
  200Mode%=7
  210ans%=FNAsk("Another File?")
  220UNTIL ans%=FALSE
  230END
  240:
  250REM ++ Error Routine ++
  260ON ERROR OFF
  270IF Printing% Printing%=FALSE:PRINT:*FX3,4
  280IF Mode%=3 MODE 7:Mode%=7 ELSE CLS
  290IF File<>0 CLOSE#File:File=0
  300IF ERR=17 IF NOT INKEY-1 GOTO 50
  310IF ERR>127 PROCErr("File Error!"):GOTO 50
  320REPORT:PRINT" at line ";ERL:END
  330:
  340DEF PROCInit
  350Title$="Function/Procedure Display"
  360LoAlfa$="abcdefghijklmnopqrstuvwxyz"
  370HiAlfa$="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
  380Numeric$="0123456789_`"
  390AlfaNum$=LoAlfa$+HiAlfa$+Numeric$
  400Printing%=FALSE
  410DIM Buffer% 256
  420oscli%=&FFF7
  430File=0
  440ENDPROC
  450:
  460DEF PROCInitVariables
  470ans%=TRUE
  480Page%=1
  490Line_Cnt%=0
  500IF File<>0 CLOSE#File:File=0
  510End_Of_File=FALSE
  520Printing%=FALSE
  530ENDPROC
  540:
  550DEF PROCGetFileName
  560File=0
  570REPEAT
  580REPEAT
  590REPEAT
  600CLS
  610PROCPrintTitle_1
  620PROCCn("Which file do you wish to use"+CHR$(&0A)+CHR$(&0D),10)
  630INPUT File$
  640IF LEFT$(File$,1)="*" CLS:PROCOScommand(File$):PROCSpace(24)
  650UNTIL File$>"" AND LEFT$(File$,1)<>"*"
  660File=OPENIN(File$)
  670IF File=0 PROCErr("File does not exist")
  680UNTIL File<>0
  690B%=BGET#File
  700IF B%<>&0D CLOSE#File:File=0:PROCErr("This is not a BASIC program")
  710UNTIL B%=&0D
  720ENDPROC
  730:
  740DEF PROCOScommand($Buffer%)
  750LOCAL X%,Y%
  760X%=Buffer% MOD 256
  770Y%=Buffer% DIV 256
  780CALL oscli%
  790ENDPROC
  800:
  810DEF PROCPrint
  820Print%=FNAsk("Do you wish to print output?")
  830ENDPROC
  840:
  850DEF PROCProcessNextLine
  860PROCReadNextLine
  870IF End_Of_File ENDPROC
  880PROCReadLineNumber
  890IF Line_Num%>&8000 End_Of_File=TRUE:ENDPROC
  900I%=3
  910B%=FNGetNonSpace
  920IF B%=&DD PROCDisplay
  930ENDPROC
  940:
  950DEF PROCReadNextLine
  960I%=0
  970REPEAT
  980B%=BGET#File
  990Buffer%?I%=B%
 1000I%=I%+1
 1010IF EOF#File End_Of_File=TRUE
 1020UNTIL (B%=&0D AND I%>3) OR End_Of_File
 1030ENDPROC
 1040:
 1050DEF PROCReadLineNumber
 1060Line_Num%=Buffer%?0*256+Buffer%?1
 1070ENDPROC
 1080:
 1090DEF FNGetNonSpace:LOCAL B%
 1100REPEAT B%=FNNextByte:UNTIL B%<>&20:=B%
 1110:
 1120DEF FNNextByte:LOCAL B%
 1130B%=Buffer%?I%:I%=I%+1:=B%
 1140:
 1150DEF PROCDisplay
 1160IF Line_Cnt%=0 PROCPrintTitle_2
 1170Line_Cnt%=Line_Cnt% +1
 1180Name$=FNGetName
 1190LnNum$=RIGHT$(STRING$(5," ")+STR$Line_Num%,5)
 1200IF Print% Printing%=TRUE:*FX3,10
 1210PRINT Type$TAB(11)Name$TAB(73)LnNum$
 1220Printing%=FALSE:*FX3,4
 1230IF Line_Cnt%=13 PROCNewScreen
 1240ENDPROC
 1250:
 1260DEF FNGetName
 1270Name$=""
 1280Type$=FNProcOrFn
 1290IF Type$="Error" THEN=Name$
 1300REPEAT
 1310B%=FNNextByte
 1320Name$=Name$+CHR$(B%)
 1330UNTIL INSTR(AlfaNum$,CHR$(B%))=0
 1340Name$=LEFT$(Name$,(LEN(Name$)-1))
 1350=Name$
 1360:
 1370DEF FNProcOrFn
 1380Type$=""
 1390B%=FNGetNonSpace
 1400IF B%=&A4 Type$="Function"
 1410IF B%=&F2 Type$="Procedure"
 1420IF Type$="" Type$="Error"
 1430=Type$
 1440:
 1450DEF PROCNewScreen
 1460IF NOT Print% PROCCn("More Follows",22)
 1470IF NOT Print% PROCSpace(24)
 1480Line_Cnt%=0
 1490Page%=Page%+1
 1500CLS:ENDPROC
 1510:
 1520DEF PROCErr(Msg$)
 1530PROCCn(Msg$,22)
 1540PROCSpace(24)
 1550ENDPROC
 1560:
 1570DEF PROCCn(t$,Y%)
 1580IF Mode%=3 g%=39 ELSE g%=19
 1590LOCAL X%:X%=g%-LENt$/2
 1600PRINTTAB(X%,Y%)t$;:ENDPROC
 1610:
 1620DEF PROCSpace(Line%)
 1630PROCCn("Press Space to Continue",Line%)
 1640REPEAT UNTIL GET=32
 1650ENDPROC
 1660:
 1670DEF FNAsk(A$)
 1680REPEAT CLS:PROCPrintTitle_1
 1690PROCCn(A$,10):A%=INSTR("YyNn",GET$)
 1700UNTIL A%>0
 1710IF A%=1 OR A%=2 A%=TRUE ELSE A%=FALSE
 1720CLS:=A%
 1730:
 1740DEF PROCPrintTitle_1
 1750PROCCn(CHR$(141)+Title$,1)
 1760PROCCn(CHR$(141)+Title$,2)
 1770ENDPROC
 1780:
 1790DEF PROCPrintTitle_2
 1800IF Print% AND Page%=1 Printing%=TRUE:*FX3,10
 1810PROCCn("Procedures and Functions in Program "+File$+" (Page "+STR$(Page%)+")",2)
 1820IF Print% AND Page%=1 PRINT:Printing%=FALSE:*FX3,4
 1830PRINTTAB(0,4)"Type"TAB(11,4)"Name"TAB(74,4)"Line"
 1840PRINTTAB(0,5)"----"TAB(11,5)"----"TAB(74,5)"----"
 1850ENDPROC


� PF-List
� by Graham Kendall
� (c) The Micro User
(	�Init
2� � � �dz@
<�
F� 7
PMode%=7
Z�InitVariables
d�GetFileName
n
�Print
x� 3
�Mode%=3
��
��ProcessNextLine
�� End_Of_File
��#0 : File=0
�$�Cn("End of List",22):�Space(24)
�� 7
�Mode%=7
�ans%=�Ask("Another File?")
�� ans%=�
��
�:
�� ++ Error Routine ++
	� � �
$� Printing% Printing%=�:�:*FX3,4
� Mode%=3 � 7:Mode%=7 � �
"� File<>0 �#File:File=0
,� �=17 � � �-1 � �Tr@
6&� �>127 �Err("File Error!"):� �Tr@
@�:�" at line ";�:�
J:
T� �Init
^'Title$="Function/Procedure Display"
h(LoAlfa$="abcdefghijklmnopqrstuvwxyz"
r(HiAlfa$="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
|Numeric$="0123456789_`"
�%AlfaNum$=LoAlfa$+HiAlfa$+Numeric$
�Printing%=�
�� Buffer% 256
�oscli%=&FFF7
�
File=0
��
�:
�� �InitVariables
�
ans%=�
�Page%=1
�Line_Cnt%=0
�� File<>0 �#File:File=0
�End_Of_File=�
Printing%=�
�
:
&� �GetFileName
0
File=0
:�
D�
N�
X�
b�PrintTitle_1
l9�Cn("Which file do you wish to use"+�(&0A)+�(&0D),10)
v� File$
�2� �File$,1)="*" �:�OScommand(File$):�Space(24)
�� File$>"" � �File$,1)<>"*"
�File=�(File$)
�(� File=0 �Err("File does not exist")
�
� File<>0
�
B%=�#File
�?� B%<>&0D �#File:File=0:�Err("This is not a BASIC program")
�� B%=&0D
��
�:
�� �OScommand($Buffer%)
�� X%,Y%
�X%=Buffer% � 256
Y%=Buffer% � 256
� oscli%
�
 :
*� �Print
4/Print%=�Ask("Do you wish to print output?")
>�
H:
R� �ProcessNextLine
\�ReadNextLine
f� End_Of_File �
p�ReadLineNumber
z%� Line_Num%>&8000 End_Of_File=�:�
�I%=3
�B%=�GetNonSpace
�� B%=&DD �Display
��
�:
�� �ReadNextLine
�I%=0
��
�
B%=�#File
�Buffer%?I%=B%
�I%=I%+1
�� �#File End_Of_File=�
�#� (B%=&0D � I%>3) � End_Of_File
�
:
� �ReadLineNumber
$%Line_Num%=Buffer%?0*256+Buffer%?1
.�
8:
B� �GetNonSpace:� B%
L � B%=�NextByte:� B%<>&20:=B%
V:
`� �NextByte:� B%
jB%=Buffer%?I%:I%=I%+1:=B%
t:
~� �Display
�� Line_Cnt%=0 �PrintTitle_2
�Line_Cnt%=Line_Cnt% +1
�Name$=�GetName
�!LnNum$=��5," ")+�Line_Num%,5)
� � Print% Printing%=�:*FX3,10
�� Type$�11)Name$�73)LnNum$
�Printing%=�:*FX3,4
�� Line_Cnt%=13 �NewScreen
��
�:
�� �GetName
�Name$=""
Type$=�ProcOrFn

� Type$="Error" �=Name$
�
B%=�NextByte
(Name$=Name$+�(B%)
2� �AlfaNum$,�(B%))=0
<Name$=�Name$,(�(Name$)-1))
F
=Name$
P:
Z� �ProcOrFn
dType$=""
nB%=�GetNonSpace
x� B%=&A4 Type$="Function"
�� B%=&F2 Type$="Procedure"
�� Type$="" Type$="Error"
�
=Type$
�:
�� �NewScreen
�%� � Print% �Cn("More Follows",22)
�� � Print% �Space(24)
�Line_Cnt%=0
�Page%=Page%+1
��:�
�:
�� �Err(Msg$)
��Cn(Msg$,22)
�Space(24)
�
:
"� �Cn(t$,Y%)
,� Mode%=3 g%=39 � g%=19
6� X%:X%=g%-�t$/2
@�X%,Y%)t$;:�
J:
T� �Space(Line%)
^(�Cn("Press Space to Continue",Line%)
h� � �=32
r�
|:
�� �Ask(A$)
�� �:�PrintTitle_1
��Cn(A$,10):A%=�"YyNn",�)
�
� A%>0
�� A%=1 � A%=2 A%=� � A%=�
�	�:=A%
�:
�� �PrintTitle_1
��Cn(�(141)+Title$,1)
��Cn(�(141)+Title$,2)
��
�:
�� �PrintTitle_2
*� Print% � Page%=1 Printing%=�:*FX3,10
N�Cn("Procedures and Functions in Program "+File$+" (Page "+�(Page%)+")",2)
+� Print% � Page%=1 �:Printing%=�:*FX3,4
&(�0,4)"Type"�11,4)"Name"�74,4)"Line"
0(�0,5)"----"�11,5)"----"�74,5)"----"
:�
�
00000000  0d 00 0a 0d f4 20 50 46  2d 4c 69 73 74 0d 00 14  |..... PF-List...|
00000010  17 f4 20 62 79 20 47 72  61 68 61 6d 20 4b 65 6e  |.. by Graham Ken|
00000020  64 61 6c 6c 0d 00 1e 18  f4 20 28 63 29 20 54 68  |dall..... (c) Th|
00000030  65 20 4d 69 63 72 6f 20  55 73 65 72 0d 00 28 09  |e Micro User..(.|
00000040  f2 49 6e 69 74 0d 00 32  0e ee 20 85 20 e5 20 8d  |.Init..2.. . . .|
00000050  64 7a 40 0d 00 3c 05 f5  0d 00 46 07 eb 20 37 0d  |dz@..<....F.. 7.|
00000060  00 50 0b 4d 6f 64 65 25  3d 37 0d 00 5a 12 f2 49  |.P.Mode%=7..Z..I|
00000070  6e 69 74 56 61 72 69 61  62 6c 65 73 0d 00 64 10  |nitVariables..d.|
00000080  f2 47 65 74 46 69 6c 65  4e 61 6d 65 0d 00 6e 0a  |.GetFileName..n.|
00000090  f2 50 72 69 6e 74 0d 00  78 07 eb 20 33 0d 00 82  |.Print..x.. 3...|
000000a0  0b 4d 6f 64 65 25 3d 33  0d 00 8c 05 f5 0d 00 96  |.Mode%=3........|
000000b0  14 f2 50 72 6f 63 65 73  73 4e 65 78 74 4c 69 6e  |..ProcessNextLin|
000000c0  65 0d 00 a0 11 fd 20 45  6e 64 5f 4f 66 5f 46 69  |e..... End_Of_Fi|
000000d0  6c 65 0d 00 aa 10 d9 23  30 20 3a 20 46 69 6c 65  |le.....#0 : File|
000000e0  3d 30 0d 00 b4 24 f2 43  6e 28 22 45 6e 64 20 6f  |=0...$.Cn("End o|
000000f0  66 20 4c 69 73 74 22 2c  32 32 29 3a f2 53 70 61  |f List",22):.Spa|
00000100  63 65 28 32 34 29 0d 00  be 07 eb 20 37 0d 00 c8  |ce(24)..... 7...|
00000110  0b 4d 6f 64 65 25 3d 37  0d 00 d2 1e 61 6e 73 25  |.Mode%=7....ans%|
00000120  3d a4 41 73 6b 28 22 41  6e 6f 74 68 65 72 20 46  |=.Ask("Another F|
00000130  69 6c 65 3f 22 29 0d 00  dc 0c fd 20 61 6e 73 25  |ile?")..... ans%|
00000140  3d a3 0d 00 e6 05 e0 0d  00 f0 05 3a 0d 00 fa 19  |=..........:....|
00000150  f4 20 2b 2b 20 45 72 72  6f 72 20 52 6f 75 74 69  |. ++ Error Routi|
00000160  6e 65 20 2b 2b 0d 01 04  09 ee 20 85 20 87 0d 01  |ne ++..... . ...|
00000170  0e 24 e7 20 50 72 69 6e  74 69 6e 67 25 20 50 72  |.$. Printing% Pr|
00000180  69 6e 74 69 6e 67 25 3d  a3 3a f1 3a 2a 46 58 33  |inting%=.:.:*FX3|
00000190  2c 34 0d 01 18 1d e7 20  4d 6f 64 65 25 3d 33 20  |,4..... Mode%=3 |
000001a0  eb 20 37 3a 4d 6f 64 65  25 3d 37 20 8b 20 db 0d  |. 7:Mode%=7 . ..|
000001b0  01 22 1b e7 20 46 69 6c  65 3c 3e 30 20 d9 23 46  |.".. File<>0 .#F|
000001c0  69 6c 65 3a 46 69 6c 65  3d 30 0d 01 2c 19 e7 20  |ile:File=0..,.. |
000001d0  9f 3d 31 37 20 e7 20 ac  20 a6 2d 31 20 e5 20 8d  |.=17 . . .-1 . .|
000001e0  54 72 40 0d 01 36 26 e7  20 9f 3e 31 32 37 20 f2  |Tr@..6&. .>127 .|
000001f0  45 72 72 28 22 46 69 6c  65 20 45 72 72 6f 72 21  |Err("File Error!|
00000200  22 29 3a e5 20 8d 54 72  40 0d 01 40 16 f6 3a f1  |"):. .Tr@..@..:.|
00000210  22 20 61 74 20 6c 69 6e  65 20 22 3b 9e 3a e0 0d  |" at line ";.:..|
00000220  01 4a 05 3a 0d 01 54 0b  dd 20 f2 49 6e 69 74 0d  |.J.:..T.. .Init.|
00000230  01 5e 27 54 69 74 6c 65  24 3d 22 46 75 6e 63 74  |.^'Title$="Funct|
00000240  69 6f 6e 2f 50 72 6f 63  65 64 75 72 65 20 44 69  |ion/Procedure Di|
00000250  73 70 6c 61 79 22 0d 01  68 28 4c 6f 41 6c 66 61  |splay"..h(LoAlfa|
00000260  24 3d 22 61 62 63 64 65  66 67 68 69 6a 6b 6c 6d  |$="abcdefghijklm|
00000270  6e 6f 70 71 72 73 74 75  76 77 78 79 7a 22 0d 01  |nopqrstuvwxyz"..|
00000280  72 28 48 69 41 6c 66 61  24 3d 22 41 42 43 44 45  |r(HiAlfa$="ABCDE|
00000290  46 47 48 49 4a 4b 4c 4d  4e 4f 50 51 52 53 54 55  |FGHIJKLMNOPQRSTU|
000002a0  56 57 58 59 5a 22 0d 01  7c 1b 4e 75 6d 65 72 69  |VWXYZ"..|.Numeri|
000002b0  63 24 3d 22 30 31 32 33  34 35 36 37 38 39 5f 60  |c$="0123456789_`|
000002c0  22 0d 01 86 25 41 6c 66  61 4e 75 6d 24 3d 4c 6f  |"...%AlfaNum$=Lo|
000002d0  41 6c 66 61 24 2b 48 69  41 6c 66 61 24 2b 4e 75  |Alfa$+HiAlfa$+Nu|
000002e0  6d 65 72 69 63 24 0d 01  90 0f 50 72 69 6e 74 69  |meric$....Printi|
000002f0  6e 67 25 3d a3 0d 01 9a  11 de 20 42 75 66 66 65  |ng%=...... Buffe|
00000300  72 25 20 32 35 36 0d 01  a4 10 6f 73 63 6c 69 25  |r% 256....oscli%|
00000310  3d 26 46 46 46 37 0d 01  ae 0a 46 69 6c 65 3d 30  |=&FFF7....File=0|
00000320  0d 01 b8 05 e1 0d 01 c2  05 3a 0d 01 cc 14 dd 20  |.........:..... |
00000330  f2 49 6e 69 74 56 61 72  69 61 62 6c 65 73 0d 01  |.InitVariables..|
00000340  d6 0a 61 6e 73 25 3d b9  0d 01 e0 0b 50 61 67 65  |..ans%=.....Page|
00000350  25 3d 31 0d 01 ea 0f 4c  69 6e 65 5f 43 6e 74 25  |%=1....Line_Cnt%|
00000360  3d 30 0d 01 f4 1b e7 20  46 69 6c 65 3c 3e 30 20  |=0..... File<>0 |
00000370  d9 23 46 69 6c 65 3a 46  69 6c 65 3d 30 0d 01 fe  |.#File:File=0...|
00000380  11 45 6e 64 5f 4f 66 5f  46 69 6c 65 3d a3 0d 02  |.End_Of_File=...|
00000390  08 0f 50 72 69 6e 74 69  6e 67 25 3d a3 0d 02 12  |..Printing%=....|
000003a0  05 e1 0d 02 1c 05 3a 0d  02 26 12 dd 20 f2 47 65  |......:..&.. .Ge|
000003b0  74 46 69 6c 65 4e 61 6d  65 0d 02 30 0a 46 69 6c  |tFileName..0.Fil|
000003c0  65 3d 30 0d 02 3a 05 f5  0d 02 44 05 f5 0d 02 4e  |e=0..:....D....N|
000003d0  05 f5 0d 02 58 05 db 0d  02 62 11 f2 50 72 69 6e  |....X....b..Prin|
000003e0  74 54 69 74 6c 65 5f 31  0d 02 6c 39 f2 43 6e 28  |tTitle_1..l9.Cn(|
000003f0  22 57 68 69 63 68 20 66  69 6c 65 20 64 6f 20 79  |"Which file do y|
00000400  6f 75 20 77 69 73 68 20  74 6f 20 75 73 65 22 2b  |ou wish to use"+|
00000410  bd 28 26 30 41 29 2b bd  28 26 30 44 29 2c 31 30  |.(&0A)+.(&0D),10|
00000420  29 0d 02 76 0b e8 20 46  69 6c 65 24 0d 02 80 32  |)..v.. File$...2|
00000430  e7 20 c0 46 69 6c 65 24  2c 31 29 3d 22 2a 22 20  |. .File$,1)="*" |
00000440  db 3a f2 4f 53 63 6f 6d  6d 61 6e 64 28 46 69 6c  |.:.OScommand(Fil|
00000450  65 24 29 3a f2 53 70 61  63 65 28 32 34 29 0d 02  |e$):.Space(24)..|
00000460  8a 1f fd 20 46 69 6c 65  24 3e 22 22 20 80 20 c0  |... File$>"" . .|
00000470  46 69 6c 65 24 2c 31 29  3c 3e 22 2a 22 0d 02 94  |File$,1)<>"*"...|
00000480  11 46 69 6c 65 3d 8e 28  46 69 6c 65 24 29 0d 02  |.File=.(File$)..|
00000490  9e 28 e7 20 46 69 6c 65  3d 30 20 f2 45 72 72 28  |.(. File=0 .Err(|
000004a0  22 46 69 6c 65 20 64 6f  65 73 20 6e 6f 74 20 65  |"File does not e|
000004b0  78 69 73 74 22 29 0d 02  a8 0d fd 20 46 69 6c 65  |xist")..... File|
000004c0  3c 3e 30 0d 02 b2 0d 42  25 3d 9a 23 46 69 6c 65  |<>0....B%=.#File|
000004d0  0d 02 bc 3f e7 20 42 25  3c 3e 26 30 44 20 d9 23  |...?. B%<>&0D .#|
000004e0  46 69 6c 65 3a 46 69 6c  65 3d 30 3a f2 45 72 72  |File:File=0:.Err|
000004f0  28 22 54 68 69 73 20 69  73 20 6e 6f 74 20 61 20  |("This is not a |
00000500  42 41 53 49 43 20 70 72  6f 67 72 61 6d 22 29 0d  |BASIC program").|
00000510  02 c6 0c fd 20 42 25 3d  26 30 44 0d 02 d0 05 e1  |.... B%=&0D.....|
00000520  0d 02 da 05 3a 0d 02 e4  1a dd 20 f2 4f 53 63 6f  |....:..... .OSco|
00000530  6d 6d 61 6e 64 28 24 42  75 66 66 65 72 25 29 0d  |mmand($Buffer%).|
00000540  02 ee 0b ea 20 58 25 2c  59 25 0d 02 f8 14 58 25  |.... X%,Y%....X%|
00000550  3d 42 75 66 66 65 72 25  20 83 20 32 35 36 0d 03  |=Buffer% . 256..|
00000560  02 14 59 25 3d 42 75 66  66 65 72 25 20 81 20 32  |..Y%=Buffer% . 2|
00000570  35 36 0d 03 0c 0c d6 20  6f 73 63 6c 69 25 0d 03  |56..... oscli%..|
00000580  16 05 e1 0d 03 20 05 3a  0d 03 2a 0c dd 20 f2 50  |..... .:..*.. .P|
00000590  72 69 6e 74 0d 03 34 2f  50 72 69 6e 74 25 3d a4  |rint..4/Print%=.|
000005a0  41 73 6b 28 22 44 6f 20  79 6f 75 20 77 69 73 68  |Ask("Do you wish|
000005b0  20 74 6f 20 70 72 69 6e  74 20 6f 75 74 70 75 74  | to print output|
000005c0  3f 22 29 0d 03 3e 05 e1  0d 03 48 05 3a 0d 03 52  |?")..>....H.:..R|
000005d0  16 dd 20 f2 50 72 6f 63  65 73 73 4e 65 78 74 4c  |.. .ProcessNextL|
000005e0  69 6e 65 0d 03 5c 11 f2  52 65 61 64 4e 65 78 74  |ine..\..ReadNext|
000005f0  4c 69 6e 65 0d 03 66 13  e7 20 45 6e 64 5f 4f 66  |Line..f.. End_Of|
00000600  5f 46 69 6c 65 20 e1 0d  03 70 13 f2 52 65 61 64  |_File ...p..Read|
00000610  4c 69 6e 65 4e 75 6d 62  65 72 0d 03 7a 25 e7 20  |LineNumber..z%. |
00000620  4c 69 6e 65 5f 4e 75 6d  25 3e 26 38 30 30 30 20  |Line_Num%>&8000 |
00000630  45 6e 64 5f 4f 66 5f 46  69 6c 65 3d b9 3a e1 0d  |End_Of_File=.:..|
00000640  03 84 08 49 25 3d 33 0d  03 8e 13 42 25 3d a4 47  |...I%=3....B%=.G|
00000650  65 74 4e 6f 6e 53 70 61  63 65 0d 03 98 15 e7 20  |etNonSpace..... |
00000660  42 25 3d 26 44 44 20 f2  44 69 73 70 6c 61 79 0d  |B%=&DD .Display.|
00000670  03 a2 05 e1 0d 03 ac 05  3a 0d 03 b6 13 dd 20 f2  |........:..... .|
00000680  52 65 61 64 4e 65 78 74  4c 69 6e 65 0d 03 c0 08  |ReadNextLine....|
00000690  49 25 3d 30 0d 03 ca 05  f5 0d 03 d4 0d 42 25 3d  |I%=0.........B%=|
000006a0  9a 23 46 69 6c 65 0d 03  de 11 42 75 66 66 65 72  |.#File....Buffer|
000006b0  25 3f 49 25 3d 42 25 0d  03 e8 0b 49 25 3d 49 25  |%?I%=B%....I%=I%|
000006c0  2b 31 0d 03 f2 1a e7 20  c5 23 46 69 6c 65 20 45  |+1..... .#File E|
000006d0  6e 64 5f 4f 66 5f 46 69  6c 65 3d b9 0d 03 fc 23  |nd_Of_File=....#|
000006e0  fd 20 28 42 25 3d 26 30  44 20 80 20 49 25 3e 33  |. (B%=&0D . I%>3|
000006f0  29 20 84 20 45 6e 64 5f  4f 66 5f 46 69 6c 65 0d  |) . End_Of_File.|
00000700  04 06 05 e1 0d 04 10 05  3a 0d 04 1a 15 dd 20 f2  |........:..... .|
00000710  52 65 61 64 4c 69 6e 65  4e 75 6d 62 65 72 0d 04  |ReadLineNumber..|
00000720  24 25 4c 69 6e 65 5f 4e  75 6d 25 3d 42 75 66 66  |$%Line_Num%=Buff|
00000730  65 72 25 3f 30 2a 32 35  36 2b 42 75 66 66 65 72  |er%?0*256+Buffer|
00000740  25 3f 31 0d 04 2e 05 e1  0d 04 38 05 3a 0d 04 42  |%?1.......8.:..B|
00000750  17 dd 20 a4 47 65 74 4e  6f 6e 53 70 61 63 65 3a  |.. .GetNonSpace:|
00000760  ea 20 42 25 0d 04 4c 20  f5 20 42 25 3d a4 4e 65  |. B%..L . B%=.Ne|
00000770  78 74 42 79 74 65 3a fd  20 42 25 3c 3e 26 32 30  |xtByte:. B%<>&20|
00000780  3a 3d 42 25 0d 04 56 05  3a 0d 04 60 14 dd 20 a4  |:=B%..V.:..`.. .|
00000790  4e 65 78 74 42 79 74 65  3a ea 20 42 25 0d 04 6a  |NextByte:. B%..j|
000007a0  1d 42 25 3d 42 75 66 66  65 72 25 3f 49 25 3a 49  |.B%=Buffer%?I%:I|
000007b0  25 3d 49 25 2b 31 3a 3d  42 25 0d 04 74 05 3a 0d  |%=I%+1:=B%..t.:.|
000007c0  04 7e 0e dd 20 f2 44 69  73 70 6c 61 79 0d 04 88  |.~.. .Display...|
000007d0  1f e7 20 4c 69 6e 65 5f  43 6e 74 25 3d 30 20 f2  |.. Line_Cnt%=0 .|
000007e0  50 72 69 6e 74 54 69 74  6c 65 5f 32 0d 04 92 1a  |PrintTitle_2....|
000007f0  4c 69 6e 65 5f 43 6e 74  25 3d 4c 69 6e 65 5f 43  |Line_Cnt%=Line_C|
00000800  6e 74 25 20 2b 31 0d 04  9c 12 4e 61 6d 65 24 3d  |nt% +1....Name$=|
00000810  a4 47 65 74 4e 61 6d 65  0d 04 a6 21 4c 6e 4e 75  |.GetName...!LnNu|
00000820  6d 24 3d c2 c4 35 2c 22  20 22 29 2b c3 4c 69 6e  |m$=..5," ")+.Lin|
00000830  65 5f 4e 75 6d 25 2c 35  29 0d 04 b0 20 e7 20 50  |e_Num%,5)... . P|
00000840  72 69 6e 74 25 20 50 72  69 6e 74 69 6e 67 25 3d  |rint% Printing%=|
00000850  b9 3a 2a 46 58 33 2c 31  30 0d 04 ba 1e f1 20 54  |.:*FX3,10..... T|
00000860  79 70 65 24 8a 31 31 29  4e 61 6d 65 24 8a 37 33  |ype$.11)Name$.73|
00000870  29 4c 6e 4e 75 6d 24 0d  04 c4 16 50 72 69 6e 74  |)LnNum$....Print|
00000880  69 6e 67 25 3d a3 3a 2a  46 58 33 2c 34 0d 04 ce  |ing%=.:*FX3,4...|
00000890  1d e7 20 4c 69 6e 65 5f  43 6e 74 25 3d 31 33 20  |.. Line_Cnt%=13 |
000008a0  f2 4e 65 77 53 63 72 65  65 6e 0d 04 d8 05 e1 0d  |.NewScreen......|
000008b0  04 e2 05 3a 0d 04 ec 0e  dd 20 a4 47 65 74 4e 61  |...:..... .GetNa|
000008c0  6d 65 0d 04 f6 0c 4e 61  6d 65 24 3d 22 22 0d 05  |me....Name$=""..|
000008d0  00 13 54 79 70 65 24 3d  a4 50 72 6f 63 4f 72 46  |..Type$=.ProcOrF|
000008e0  6e 0d 05 0a 1b e7 20 54  79 70 65 24 3d 22 45 72  |n..... Type$="Er|
000008f0  72 6f 72 22 20 8c 3d 4e  61 6d 65 24 0d 05 14 05  |ror" .=Name$....|
00000900  f5 0d 05 1e 10 42 25 3d  a4 4e 65 78 74 42 79 74  |.....B%=.NextByt|
00000910  65 0d 05 28 15 4e 61 6d  65 24 3d 4e 61 6d 65 24  |e..(.Name$=Name$|
00000920  2b bd 28 42 25 29 0d 05  32 18 fd 20 a7 41 6c 66  |+.(B%)..2.. .Alf|
00000930  61 4e 75 6d 24 2c bd 28  42 25 29 29 3d 30 0d 05  |aNum$,.(B%))=0..|
00000940  3c 1e 4e 61 6d 65 24 3d  c0 4e 61 6d 65 24 2c 28  |<.Name$=.Name$,(|
00000950  a9 28 4e 61 6d 65 24 29  2d 31 29 29 0d 05 46 0a  |.(Name$)-1))..F.|
00000960  3d 4e 61 6d 65 24 0d 05  50 05 3a 0d 05 5a 0f dd  |=Name$..P.:..Z..|
00000970  20 a4 50 72 6f 63 4f 72  46 6e 0d 05 64 0c 54 79  | .ProcOrFn..d.Ty|
00000980  70 65 24 3d 22 22 0d 05  6e 13 42 25 3d a4 47 65  |pe$=""..n.B%=.Ge|
00000990  74 4e 6f 6e 53 70 61 63  65 0d 05 78 1d e7 20 42  |tNonSpace..x.. B|
000009a0  25 3d 26 41 34 20 54 79  70 65 24 3d 22 46 75 6e  |%=&A4 Type$="Fun|
000009b0  63 74 69 6f 6e 22 0d 05  82 1e e7 20 42 25 3d 26  |ction"..... B%=&|
000009c0  46 32 20 54 79 70 65 24  3d 22 50 72 6f 63 65 64  |F2 Type$="Proced|
000009d0  75 72 65 22 0d 05 8c 1c  e7 20 54 79 70 65 24 3d  |ure"..... Type$=|
000009e0  22 22 20 54 79 70 65 24  3d 22 45 72 72 6f 72 22  |"" Type$="Error"|
000009f0  0d 05 96 0a 3d 54 79 70  65 24 0d 05 a0 05 3a 0d  |....=Type$....:.|
00000a00  05 aa 10 dd 20 f2 4e 65  77 53 63 72 65 65 6e 0d  |.... .NewScreen.|
00000a10  05 b4 25 e7 20 ac 20 50  72 69 6e 74 25 20 f2 43  |..%. . Print% .C|
00000a20  6e 28 22 4d 6f 72 65 20  46 6f 6c 6c 6f 77 73 22  |n("More Follows"|
00000a30  2c 32 32 29 0d 05 be 19  e7 20 ac 20 50 72 69 6e  |,22)..... . Prin|
00000a40  74 25 20 f2 53 70 61 63  65 28 32 34 29 0d 05 c8  |t% .Space(24)...|
00000a50  0f 4c 69 6e 65 5f 43 6e  74 25 3d 30 0d 05 d2 11  |.Line_Cnt%=0....|
00000a60  50 61 67 65 25 3d 50 61  67 65 25 2b 31 0d 05 dc  |Page%=Page%+1...|
00000a70  07 db 3a e1 0d 05 e6 05  3a 0d 05 f0 10 dd 20 f2  |..:.....:..... .|
00000a80  45 72 72 28 4d 73 67 24  29 0d 05 fa 10 f2 43 6e  |Err(Msg$).....Cn|
00000a90  28 4d 73 67 24 2c 32 32  29 0d 06 04 0e f2 53 70  |(Msg$,22).....Sp|
00000aa0  61 63 65 28 32 34 29 0d  06 0e 05 e1 0d 06 18 05  |ace(24).........|
00000ab0  3a 0d 06 22 10 dd 20 f2  43 6e 28 74 24 2c 59 25  |:..".. .Cn(t$,Y%|
00000ac0  29 0d 06 2c 1b e7 20 4d  6f 64 65 25 3d 33 20 67  |)..,.. Mode%=3 g|
00000ad0  25 3d 33 39 20 8b 20 67  25 3d 31 39 0d 06 36 14  |%=39 . g%=19..6.|
00000ae0  ea 20 58 25 3a 58 25 3d  67 25 2d a9 74 24 2f 32  |. X%:X%=g%-.t$/2|
00000af0  0d 06 40 11 f1 8a 58 25  2c 59 25 29 74 24 3b 3a  |..@...X%,Y%)t$;:|
00000b00  e1 0d 06 4a 05 3a 0d 06  54 13 dd 20 f2 53 70 61  |...J.:..T.. .Spa|
00000b10  63 65 28 4c 69 6e 65 25  29 0d 06 5e 28 f2 43 6e  |ce(Line%)..^(.Cn|
00000b20  28 22 50 72 65 73 73 20  53 70 61 63 65 20 74 6f  |("Press Space to|
00000b30  20 43 6f 6e 74 69 6e 75  65 22 2c 4c 69 6e 65 25  | Continue",Line%|
00000b40  29 0d 06 68 0c f5 20 fd  20 a5 3d 33 32 0d 06 72  |)..h.. . .=32..r|
00000b50  05 e1 0d 06 7c 05 3a 0d  06 86 0e dd 20 a4 41 73  |....|.:..... .As|
00000b60  6b 28 41 24 29 0d 06 90  15 f5 20 db 3a f2 50 72  |k(A$)..... .:.Pr|
00000b70  69 6e 74 54 69 74 6c 65  5f 31 0d 06 9a 1c f2 43  |intTitle_1.....C|
00000b80  6e 28 41 24 2c 31 30 29  3a 41 25 3d a7 22 59 79  |n(A$,10):A%=."Yy|
00000b90  4e 6e 22 2c be 29 0d 06  a4 0a fd 20 41 25 3e 30  |Nn",.)..... A%>0|
00000ba0  0d 06 ae 1d e7 20 41 25  3d 31 20 84 20 41 25 3d  |..... A%=1 . A%=|
00000bb0  32 20 41 25 3d b9 20 8b  20 41 25 3d a3 0d 06 b8  |2 A%=. . A%=....|
00000bc0  09 db 3a 3d 41 25 0d 06  c2 05 3a 0d 06 cc 13 dd  |..:=A%....:.....|
00000bd0  20 f2 50 72 69 6e 74 54  69 74 6c 65 5f 31 0d 06  | .PrintTitle_1..|
00000be0  d6 18 f2 43 6e 28 bd 28  31 34 31 29 2b 54 69 74  |...Cn(.(141)+Tit|
00000bf0  6c 65 24 2c 31 29 0d 06  e0 18 f2 43 6e 28 bd 28  |le$,1).....Cn(.(|
00000c00  31 34 31 29 2b 54 69 74  6c 65 24 2c 32 29 0d 06  |141)+Title$,2)..|
00000c10  ea 05 e1 0d 06 f4 05 3a  0d 06 fe 13 dd 20 f2 50  |.......:..... .P|
00000c20  72 69 6e 74 54 69 74 6c  65 5f 32 0d 07 08 2a e7  |rintTitle_2...*.|
00000c30  20 50 72 69 6e 74 25 20  80 20 50 61 67 65 25 3d  | Print% . Page%=|
00000c40  31 20 50 72 69 6e 74 69  6e 67 25 3d b9 3a 2a 46  |1 Printing%=.:*F|
00000c50  58 33 2c 31 30 0d 07 12  4e f2 43 6e 28 22 50 72  |X3,10...N.Cn("Pr|
00000c60  6f 63 65 64 75 72 65 73  20 61 6e 64 20 46 75 6e  |ocedures and Fun|
00000c70  63 74 69 6f 6e 73 20 69  6e 20 50 72 6f 67 72 61  |ctions in Progra|
00000c80  6d 20 22 2b 46 69 6c 65  24 2b 22 20 28 50 61 67  |m "+File$+" (Pag|
00000c90  65 20 22 2b c3 28 50 61  67 65 25 29 2b 22 29 22  |e "+.(Page%)+")"|
00000ca0  2c 32 29 0d 07 1c 2b e7  20 50 72 69 6e 74 25 20  |,2)...+. Print% |
00000cb0  80 20 50 61 67 65 25 3d  31 20 f1 3a 50 72 69 6e  |. Page%=1 .:Prin|
00000cc0  74 69 6e 67 25 3d a3 3a  2a 46 58 33 2c 34 0d 07  |ting%=.:*FX3,4..|
00000cd0  26 28 f1 8a 30 2c 34 29  22 54 79 70 65 22 8a 31  |&(..0,4)"Type".1|
00000ce0  31 2c 34 29 22 4e 61 6d  65 22 8a 37 34 2c 34 29  |1,4)"Name".74,4)|
00000cf0  22 4c 69 6e 65 22 0d 07  30 28 f1 8a 30 2c 35 29  |"Line"..0(..0,5)|
00000d00  22 2d 2d 2d 2d 22 8a 31  31 2c 35 29 22 2d 2d 2d  |"----".11,5)"---|
00000d10  2d 22 8a 37 34 2c 35 29  22 2d 2d 2d 2d 22 0d 07  |-".74,5)"----"..|
00000d20  3a 05 e1 0d ff                                    |:....|
00000d25
PF-List.m0
PF-List.m1
PF-List.m2
PF-List.m4
PF-List.m5