Home » CEEFAX disks » telesoftware5.adl » 22-01-88/TPRINT2

22-01-88/TPRINT2

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 » telesoftware5.adl
Filename: 22-01-88/TPRINT2
Read OK:
File size: 1564 bytes
Load address: FFFF1A00
Exec address: FFFF8023
File contents
   10REM"��
   20REM"���  TELEPRINTER  LISTING 2
   30REM"���     �Mike Rawlings
   40REM"���        1-2-1987
   50REM"��
   60REM"��
   70REM"���  For BBCB / B+ / MASTER
   80REM"���     With DFS or ADFS
   90REM"���     With TFS or ATS
  100REM"���With SECOND PROCESSOR (ATS)
  110REM"��
  120REM"��
  130REM"���     *TYPE Tp/Inf For
  140REM"���       Full details
  150REM"��
  160:
  170MODE7
  180HIMEM=PAGE+&1900:code=&6700
  190@%=0:DIM tp 24,page 8
  200ON ERROR RUN
  210PROCnew
  220*DISK
  230hnl=OPENIN"TPINDEX":len=EXT#hnl:CLOSE#0:IFlen<>0 PROCinit:GOTO300
  240ONERROR PROCnew:RUN
  250*SAVE TPINDEX 6800 7400
  260ONERROR GOTO710
  270scrns=0:next=0:PROCscrn:RESTORE1380:PROCmsge:VDU31,34,13,32,31,34,14,32,31,5,22,152,31,5,24,152:hnl=OPENOUT"SCREENS":REPEATscrns=scrns+1:FORL=15TO16:PRINTTAB(24,L)scrns-1:NEXT:PTR#hnl=scrns*960:UNTIL0
  280IFscrns<1 PROCosc("DELETE TPINDEX"):PROCnew:RUN
  290FORL=0TOscrns*4STEP4:!(&6800+L)=L/4*&10000:NEXT:PROCindx:next=0
  300PROCtsoft:PROCscrn:IFFNget(19,12,48,53)=9 THEN300
  310ch=x-48:VDU31,7,13,160,31,7,14,160:IFFNget(16,14,48,57)=9 THEN300
  320pa=(x-48)*100:IFFNget(17,14,47,58)=9 THEN300
  330pa=pa+(x-48)*10:IFFNget(18,14,47,58)=9 THEN300
  340pa=pa+x-48:VDU31,5,24,152:IFnext=0 THEN380
  350search=ch*10+(pa DIV100)+(pa MOD100)*256:FORL=0TOnext-1:IF(!(&6800+L*4)AND&FFFF)<>search THEN370
  360found=L:L=next:NEXT:PROCdis:GOTO300
  370NEXT
  380IFnext=scrns PROCfull:GOTO220
  390PROCosc("CH"+STR$(ch)):PROCosc("PAGE"+STR$(pa)):VDU31,7,15,160,31,7,16,160:high=1:*TRANSFER 7480
  400VDU7:last=FNham:pre=last:st=last:IFst=TRUE VDU31,5,6,136:PRINT"�DATA ERROR":GOTO390
  410PROCsave:IFlast=0 PROCcat:PROCprint:GOTO300
  420PROCosc("PAGE"+STR$(pa)):*TRANSFER 7480
  430last=FNham:IFlast=TRUE PRINTTAB(20,24)CHR$136"�DATA ERROR";:GOTO420:ELSEIFpre=st ORlast<>st pre=last:GOTO410
  440FORL=1TOhigh:IF?(&6800+(next+L-1)*4)=0 L=high:NEXT:GOTO420:ELSENEXT:VDU7:PROCcat:GOTO350
  450:
  460DEFPROCprint:*DISPLAY 7480
  470VDU30:PRINT$page:*FX15
  480PRINTTAB(0,24)"PRINT Y/N ? ";:x=(GET OR&20)-32:IFx<>89 x=78
  490VDUx:IFx<>89 ENDPROC:ELSEFORL=0TO22:x=&74A8+L*40
  500IF?x<160 OR?x=255 tp?L=32:ELSEtp?L=?x AND&7F
  510IF?x<140 AND ?x>151 ?x=155
  520NEXT:tp?L=(pa DIV100)+48:CALLcode:*FX3,10
  530?&7868=13:PRINT$page;$&7848:store$="":?&7868=?tp:FORL=1TO23:x=&7868+L*40:?x=13:IFstore$=$(x-40) PRINT:ELSEstore$=$(x-40):PRINTSPC(15)store$
  540?x=tp?L:NEXT:PRINT'''''''':*FX3,0
  550ENDPROC
  560:
  570DEFFNham:RESTORE:one=?&7482 AND&7F:ten=?&7483 AND&7F:REPEATREADd1,d2:UNTILd2=one ORd2=0:one=d1:IFd2=0 =-1
  580RESTORE:REPEATREADd1,d2:UNTILd2=ten ORd2=0:ten=d1:IFd2=0 =-1
  590$page=STR$(pa)+"0000 ":page?5=(ten MOD8)+48:page?6=one+48
  600=(ten MOD8)*10+one
  610DATA0,&15,1,2,2,&49,3,&5E,4,&64,5,&73,6,&38,7,&2F,8,&50,9,&47,10,&C,11,&1B,12,&21,13,&36,14,&7D,15,&6A,0,0
  620:
  630DEFPROCdis
  640*DISK
  650hnl=OPENIN"SCREENS":PROCosg(3):PROCtsoft:last=FNham:PROCprint:IFfound=scrns ENDPROC:ELSEfound=found+1:IF(!(&6800+found*4)AND&FFFF)<>search ENDPROC:ELSEGOTO640
  660:
  670*DISK
  680CLOSE#0:IFERR=17 ORERR=27 FORL=next TOscrns-1:?(&6800+L*4)=0:GOTO300
  690*HOFF
  700CLS:REPORT:PRINT''" at line ";ERL:END
  710CLOSE#0:scrns=scrns-1:GOTO280
  720:
  730DEFPROCosc($tp):X%=tp MOD256:Y%=tp DIV256:CALL&FFF7:ENDPROC
  740:
  750DEFPROCsave:found=next+last-1:IFlast=0 found=next
  760IF?(&6800+found*4)<>0 GOTO800:ELSE*DISK
  770IFlast>high high=last
  780x=scrns-next:IFscrns<high+next high=x
  790IFscrns<last+next:ELSEx=&6800+found*4:?x=ch*10+pa DIV100:x?1=pa MOD100:$tp="SCREENS":X%=tp:Y%=tp DIV256:A%=&C0:hnl=USR(&FFCE)AND&FF:PROCosg(1)
  800*DISPLAY 7480
  810VDU30:PRINT$page:ENDPROC
  820:
  830DEFPROCscrn:CLS:PRINTTAB(0,2)"����켤���������������贬��輬���������굠���������������������꽤���������������������������������������������":VDU31,0,5,150,160:PRINTSTRING$(36,CHR$(124));
  840VDU255,255:FORL2=6TO23:VDU31,0,L2,150,160,157,148:NEXT:FORL2=8TO19:VDU31,0,L2,131,157,159,129,31,30,L2,134,157:NEXT:VDU31,0,20,150,160:PRINTSTRING$(28,CHR$(124))STRING$(10,CHR$(255)):VDU31,5,22,132
  850PRINT"Press <ESCAPE> to choose again":VDU150,160:PRINTSTRING$(38,"`")CHR$133;:PRINTSPC9"Press <TAB> for Editor";:FORL2=11TO12:VDU31,8,L2,141:PRINT"Channel ?":VDU31,7,L2+2,152,141:PRINT"Page ?":VDU31,32,L2+2,132,141
  860PRINTscrns-next:VDU31,7,L2+4,152,141:PRINT"Waiting...":NEXT:VDU31,22,6,132:PRINT "(c) M.J.Rawlings":*FX 15
  870ENDPROC
  880:
  890DEFPROCtsoft:*TELESOFT
  900*HON
  910ONERROR GOTO670
  920ENDPROC
  930:
  940DEFPROCinit:*LO. TPINDEX
  950scrns=len/4:next=scrns:FORL=0TOscrns-1:IF?(&6800+L*4)=0 next=L:L=scrns
  960NEXT:ENDPROC
  970:
  980DEFPROCnew:scrns=0:next=0:PROCscrn:RESTORE1390:PROCmsge:VDU31,5,22,152,31,5,24,152:PROCspc:*DISK
  990ENDPROC
 1000:
 1010DEFPROCfull:RESTORE1400:PROCmsge:PROCspc
 1020ONERROR RUN
 1030ENDPROC
 1040:
 1050DEFPROCcat:*DISK
 1060found=next:next=next+high:PROCindx:PROCtsoft:ENDPROC
 1070:
 1080DEFPROCedit:*DISK
 1090IFnext=0 PROCno:ENDPROC:ELSEL=-1:REPEAT:VDU31,5,24,152:L=L+1:search=(!(&6800+L*4)AND&FFFF):ch=(?(&6800+L*4))DIV10:pa=((?(&6800+L*4))MOD10)*100+?(&6801+L*4)
 1100FORL2=11TO12:PRINTTAB(17,L2)": "ch TAB(7,L2+2)CHR$(160)TAB(14,L2+2)": "pa:VDU31,7,L2+4,141:PRINT" Delete Y/N ?"SPC5:NEXT:x=(GET OR&20)-32:IFx<>89 x=78
 1110FORL2=15TO16:VDU31,22,L2,x:NEXT:IFx<>89 L=L-1:REPEATL=L+1:UNTIL(!(&6804+L*4)AND&FFFF)<>search:UNTILL>next-2:ENDPROC
 1120IFsearch<>(!(&6800+L*4+4)AND&FFFF)GOTO1150
 1130FORL2=15TO16:VDU31,7,L2,141:PRINT" All pages Y/N ? ":NEXT:x=(GET OR&20)-32:IFx<>89 x=78
 1140FORL2=15TO16:VDU31,25,L2,x:NEXT
 1150REPEAT:IFx=89 GOTO1210
 1160found=L:hnl=OPENIN"SCREENS":PROCosg(3):PROCtsoft:last=FNham:*DISPLAY 7480
 1170*DISK
 1180VDU30:PRINT$page:*FX15
 1190PRINTTAB(0,24)"DELETE Y/N ? ";:d=(GET OR&20)-32:IFd<>89 d=78
 1200VDUd:IFd<>89 L=L+1:GOTO1220
 1210pre=!(&6800+L*4):FORL2=L TOnext-2:!(&6800+L2*4)=!(&6800+L2*4+4):NEXT:!(&6800+next*4-4)=(pre DIV&10000)*&10000:next=next-1:IFx=89 FORL2=13TO14:VDU31,32,L2,132,141:PRINTscrns-next:NEXT
 1220UNTIL(!(&6800+L*4)AND&FFFF)<>search:IFx=78 PROCscrn
 1230PROCindx:L=L-1:UNTILL>next-2:ENDPROC
 1240:
 1250DEFPROCno:RESTORE1410:PROCmsge:PROCspc:ENDPROC
 1260:
 1270DEFPROCmsge:FORL=11TO15STEP2:READd$:VDU31,4,L,141:PRINTd$:VDU31,4,L+1,141:PRINTd$:NEXT:ENDPROC
 1280:
 1290DEFPROCspc:REPEATUNTILGET=32:ENDPROC
 1300:
 1310DEFPROCosg(x):A%=x:X%=tp:Y%=tp DIV256:?tp=hnl:!(tp+1)=&7480:!(tp+5)=960:!(tp+9)=(!(&6802+found*4)AND&FFF)*960:CALL&FFD1:CLOSE#0:ENDPROC
 1320:
 1330DEFPROCindx:PROCosc("SAVE TPINDEX 6800+"+STR$~(scrns*4)):ENDPROC
 1340:
 1350DEFFNget(p1,p2,p3,p4):VDU31,p1,p2:REPEATx=GET:IFx=9 UNTILx=9:PROCedit:=9
 1360UNTILx>p3 ANDx<p4:VDU31,p1,p2-1,x,31,p1,p2,x:=x
 1370:
 1380DATA "DISK BEING INITIALISED","   PLEASE BE PATIENT","MAXIMUM SCREENS = "
 1390DATA "LOAD TELEPRINTER DISK","    OR BLANK DISK","  THEN PRESS SPACE"
 1400DATA " NO ROOM LEFT ON DISK","    LOAD NEW DISK","    OR USE EDITOR"
 1410DATA " THERE ARE NO SCREENS","       TO EDIT","     PRESS SPACE"

�"��
!�"���  TELEPRINTER  LISTING 2
�"���     �Mike Rawlings
(�"���        1-2-1987
2�"��
<�"��
F!�"���  For BBCB / B+ / MASTER
P�"���     With DFS or ADFS
Z�"���     With TFS or ATS
d$�"���With SECOND PROCESSOR (ATS)
n�"��
x�"��
��"���     *TYPE Tp/Inf For
��"���       Full details
��"��
�:
��7
��=�+&1900:code=&6700
�@%=0:� tp 24,page 8
�	� � �
��new
�	*DISK
�4hnl=�"TPINDEX":len=�#hnl:�#0:�len<>0 �init:�TlA
�
� �new:�
�*SAVE TPINDEX 6800 7400
� �dFB
�scrns=0:next=0:�scrn:��DdE:�msge:�31,34,13,32,31,34,14,32,31,5,22,152,31,5,24,152:hnl=�"SCREENS":�scrns=scrns+1:�L=15�16:�24,L)scrns-1:�:�#hnl=scrns*960:�0
*�scrns<1 �osc("DELETE TPINDEX"):�new:�
"7�L=0�scrns*4�4:!(&6800+L)=L/4*&10000:�:�indx:next=0
,+�tsoft:�scrn:�get(19,12,48,53)=9 ��TlA
6?ch=x-48:�31,7,13,160,31,7,14,160:�get(16,14,48,57)=9 ��TlA
@,pa=(x-48)*100:�get(17,14,47,58)=9 ��TlA
J.pa=pa+(x-48)*10:�get(18,14,47,58)=9 ��TlA
T)pa=pa+x-48:�31,5,24,152:�next=0 ��D|A
^Xsearch=ch*10+(pa �100)+(pa �100)*256:�L=0�next-1:�(!(&6800+L*4)�&FFFF)<>search ��DrA
hfound=L:L=next:�:�dis:�TlA
r�
|�next=scrns �full:�d\@
�V�osc("CH"+�(ch)):�osc("PAGE"+�(pa)):�31,7,15,160,31,7,16,160:high=1:*TRANSFER 7480
�H�7:last=�ham:pre=last:st=last:�st=� �31,5,6,136:�"�DATA ERROR":�tFA
�#�save:�last=0 �cat:�print:�TlA
�%�osc("PAGE"+�(pa)):*TRANSFER 7480
�Xlast=�ham:�last=� �20,24)�136"�DATA ERROR";:�tdA:��pre=st �last<>st pre=last:�tZA
�F�L=1�high:�?(&6800+(next+L-1)*4)=0 L=high:�:�tdA:��:�7:�cat:�D^A
�:
���print:*DISPLAY 7480
��30:�$page:*FX15
�4�0,24)"PRINT Y/N ? ";:x=(� �&20)-32:�x<>89 x=78
�%�x:�x<>89 �:��L=0�22:x=&74A8+L*40
�)�?x<160 �?x=255 tp?L=32:�tp?L=?x �&7F
��?x<140 � ?x>151 ?x=155
%�:tp?L=(pa �100)+48:�code:*FX3,10
z?&7868=13:�$page;$&7848:store$="":?&7868=?tp:�L=1�23:x=&7868+L*40:?x=13:�store$=$(x-40) �:�store$=$(x-40):�(15)store$
?x=tp?L:�:�'''''''':*FX3,0
&�
0:
:Rݤham:�:one=?&7482 �&7F:ten=?&7483 �&7F:��d1,d2:�d2=one �d2=0:one=d1:�d2=0 =-1
D,�:��d1,d2:�d2=ten �d2=0:ten=d1:�d2=0 =-1
N8$page=�(pa)+"0000 ":page?5=(ten �8)+48:page?6=one+48
X=(ten �8)*10+one
bk�0,&15,1,2,2,&49,3,&5E,4,&64,5,&73,6,&38,7,&2F,8,&50,9,&47,10,&C,11,&1B,12,&21,13,&36,14,&7D,15,&6A,0,0
l:
v	��dis
�	*DISK
�{hnl=�"SCREENS":�osg(3):�tsoft:last=�ham:�print:�found=scrns �:�found=found+1:�(!(&6800+found*4)�&FFFF)<>search �:��t@B
�:
�	*DISK
�9�#0:�=17 ��=27 �L=next �scrns-1:?(&6800+L*4)=0:�TlA
�	*HOFF
��:�:�''" at line ";�:�
��#0:scrns=scrns-1:�TXA
�:
�-��osc($tp):X%=tp �256:Y%=tp �256:�&FFF7:�
�:
�/��save:found=next+last-1:�last=0 found=next
�%�?(&6800+found*4)<>0 �T`C:�*DISK
�last>high high=last
(x=scrns-next:�scrns<high+next high=x
��scrns<last+next:�x=&6800+found*4:?x=ch*10+pa �100:x?1=pa �100:$tp="SCREENS":X%=tp:Y%=tp �256:A%=&C0:hnl=�(&FFCE)�&FF:�osg(1)
 *DISPLAY 7480
*�30:�$page:�
4:
>���scrn:�:�0,2)"����켤��������������贬��輬������굠��������������������꽤��������������������������������������������":�31,0,5,150,160:��36,�(124));
H��255,255:�L2=6�23:�31,0,L2,150,160,157,148:�:�L2=8�19:�31,0,L2,131,157,159,129,31,30,L2,134,157:�:�31,0,20,150,160:��28,�(124))�10,�(255)):�31,5,22,132
R��"Press <ESCAPE> to choose again":�150,160:��38,"`")�133;:�9"Press <TAB> for Editor";:�L2=11�12:�31,8,L2,141:�"Channel ?":�31,7,L2+2,152,141:�"Page ?":�31,32,L2+2,132,141
\[�scrns-next:�31,7,L2+4,152,141:�"Waiting...":�:�31,22,6,132:� "(c) M.J.Rawlings":*FX 15
f�
p:
z��tsoft:*TELESOFT
�*HON
�� �t^B
��
�:
���init:*LO. TPINDEX
�Fscrns=len/4:next=scrns:�L=0�scrns-1:�?(&6800+L*4)=0 next=L:L=scrns
��:�
�:
�N��new:scrns=0:next=0:�scrn:��DnE:�msge:�31,5,22,152,31,5,24,152:�spc:*DISK
��
�:
���full:��DxE:�msge:�spc
�� �
�
:
��cat:*DISK
$,found=next:next=next+high:�indx:�tsoft:�
.:
8��edit:*DISK
B��next=0 �no:�:�L=-1:�:�31,5,24,152:L=L+1:search=(!(&6800+L*4)�&FFFF):ch=(?(&6800+L*4))�10:pa=((?(&6800+L*4))�10)*100+?(&6801+L*4)
Lx�L2=11�12:�17,L2)": "ch �7,L2+2)�(160)�14,L2+2)": "pa:�31,7,L2+4,141:�" Delete Y/N ?"�5:�:x=(� �&20)-32:�x<>89 x=78
VY�L2=15�16:�31,22,L2,x:�:�x<>89 L=L-1:�L=L+1:�(!(&6804+L*4)�&FFFF)<>search:�L>next-2:�
`(�search<>(!(&6800+L*4+4)�&FFFF)�D~D
jK�L2=15�16:�31,7,L2,141:�" All pages Y/N ? ":�:x=(� �&20)-32:�x<>89 x=78
t�L2=15�16:�31,25,L2,x:�
~�:�x=89 �tzD
�Afound=L:hnl=�"SCREENS":�osg(3):�tsoft:last=�ham:*DISPLAY 7480
�	*DISK
��30:�$page:*FX15
�5�0,24)"DELETE Y/N ? ";:d=(� �&20)-32:�d<>89 d=78
��d:�d<>89 L=L+1:�dDD
��pre=!(&6800+L*4):�L2=L �next-2:!(&6800+L2*4)=!(&6800+L2*4+4):�:!(&6800+next*4-4)=(pre �&10000)*&10000:next=next-1:�x=89 �L2=13�14:�31,32,L2,132,141:�scrns-next:�
�-�(!(&6800+L*4)�&FFFF)<>search:�x=78 �scrn
��indx:L=L-1:�L>next-2:�
�:
���no:��tBE:�msge:�spc:�
�:
�?��msge:�L=11�15�2:�d$:�31,4,L,141:�d$:�31,4,L+1,141:�d$:�:�
:

��spc:���=32:�
:
u��osg(x):A%=x:X%=tp:Y%=tp �256:?tp=hnl:!(tp+1)=&7480:!(tp+5)=960:!(tp+9)=(!(&6802+found*4)�&FFF)*960:�&FFD1:�#0:�
(:
23��indx:�osc("SAVE TPINDEX 6800+"+�~(scrns*4)):�
<:
F8ݤget(p1,p2,p3,p4):�31,p1,p2:�x=�:�x=9 �x=9:�edit:=9
P+�x>p3 �x<p4:�31,p1,p2-1,x,31,p1,p2,x:=x
Z:
dJ� "DISK BEING INITIALISED","   PLEASE BE PATIENT","MAXIMUM SCREENS = "
nF� "LOAD TELEPRINTER DISK","    OR BLANK DISK","  THEN PRESS SPACE"
xE� " NO ROOM LEFT ON DISK","    LOAD NEW DISK","    OR USE EDITOR"
�A� " THERE ARE NO SCREENS","       TO EDIT","     PRESS SPACE"
�
00000000  0d 00 0a 08 f4 22 86 9d  0d 00 14 21 f4 22 86 9d  |.....".....!."..|
00000010  84 20 20 54 45 4c 45 50  52 49 4e 54 45 52 20 20  |.  TELEPRINTER  |
00000020  4c 49 53 54 49 4e 47 20  32 0d 00 1e 1c f4 22 86  |LISTING 2.....".|
00000030  9d 84 20 20 20 20 20 84  4d 69 6b 65 20 52 61 77  |..     .Mike Raw|
00000040  6c 69 6e 67 73 0d 00 28  19 f4 22 86 9d 84 20 20  |lings..(.."...  |
00000050  20 20 20 20 20 20 31 2d  32 2d 31 39 38 37 0d 00  |      1-2-1987..|
00000060  32 08 f4 22 86 9d 0d 00  3c 08 f4 22 83 9d 0d 00  |2.."....<.."....|
00000070  46 21 f4 22 83 9d 81 20  20 46 6f 72 20 42 42 43  |F!."...  For BBC|
00000080  42 20 2f 20 42 2b 20 2f  20 4d 41 53 54 45 52 0d  |B / B+ / MASTER.|
00000090  00 50 1e f4 22 83 9d 81  20 20 20 20 20 57 69 74  |.P.."...     Wit|
000000a0  68 20 44 46 53 20 6f 72  20 41 44 46 53 0d 00 5a  |h DFS or ADFS..Z|
000000b0  1d f4 22 83 9d 81 20 20  20 20 20 57 69 74 68 20  |.."...     With |
000000c0  54 46 53 20 6f 72 20 41  54 53 0d 00 64 24 f4 22  |TFS or ATS..d$."|
000000d0  83 9d 81 57 69 74 68 20  53 45 43 4f 4e 44 20 50  |...With SECOND P|
000000e0  52 4f 43 45 53 53 4f 52  20 28 41 54 53 29 0d 00  |ROCESSOR (ATS)..|
000000f0  6e 08 f4 22 83 9d 0d 00  78 08 f4 22 84 9d 0d 00  |n.."....x.."....|
00000100  82 1e f4 22 84 9d 87 20  20 20 20 20 2a 54 59 50  |..."...     *TYP|
00000110  45 20 54 70 2f 49 6e 66  20 46 6f 72 0d 00 8c 1c  |E Tp/Inf For....|
00000120  f4 22 84 9d 87 20 20 20  20 20 20 20 46 75 6c 6c  |."...       Full|
00000130  20 64 65 74 61 69 6c 73  0d 00 96 08 f4 22 84 9d  | details....."..|
00000140  0d 00 a0 05 3a 0d 00 aa  06 eb 37 0d 00 b4 18 d3  |....:.....7.....|
00000150  3d 90 2b 26 31 39 30 30  3a 63 6f 64 65 3d 26 36  |=.+&1900:code=&6|
00000160  37 30 30 0d 00 be 17 40  25 3d 30 3a de 20 74 70  |700....@%=0:. tp|
00000170  20 32 34 2c 70 61 67 65  20 38 0d 00 c8 09 ee 20  | 24,page 8..... |
00000180  85 20 f9 0d 00 d2 08 f2  6e 65 77 0d 00 dc 09 2a  |. ......new....*|
00000190  44 49 53 4b 0d 00 e6 34  68 6e 6c 3d 8e 22 54 50  |DISK...4hnl=."TP|
000001a0  49 4e 44 45 58 22 3a 6c  65 6e 3d a2 23 68 6e 6c  |INDEX":len=.#hnl|
000001b0  3a d9 23 30 3a e7 6c 65  6e 3c 3e 30 20 f2 69 6e  |:.#0:.len<>0 .in|
000001c0  69 74 3a e5 8d 54 6c 41  0d 00 f0 0d ee 85 20 f2  |it:..TlA...... .|
000001d0  6e 65 77 3a f9 0d 00 fa  1b 2a 53 41 56 45 20 54  |new:.....*SAVE T|
000001e0  50 49 4e 44 45 58 20 36  38 30 30 20 37 34 30 30  |PINDEX 6800 7400|
000001f0  0d 01 04 0c ee 85 20 e5  8d 64 46 42 0d 01 0e a0  |...... ..dFB....|
00000200  73 63 72 6e 73 3d 30 3a  6e 65 78 74 3d 30 3a f2  |scrns=0:next=0:.|
00000210  73 63 72 6e 3a f7 8d 44  64 45 3a f2 6d 73 67 65  |scrn:..DdE:.msge|
00000220  3a ef 33 31 2c 33 34 2c  31 33 2c 33 32 2c 33 31  |:.31,34,13,32,31|
00000230  2c 33 34 2c 31 34 2c 33  32 2c 33 31 2c 35 2c 32  |,34,14,32,31,5,2|
00000240  32 2c 31 35 32 2c 33 31  2c 35 2c 32 34 2c 31 35  |2,152,31,5,24,15|
00000250  32 3a 68 6e 6c 3d ae 22  53 43 52 45 45 4e 53 22  |2:hnl=."SCREENS"|
00000260  3a f5 73 63 72 6e 73 3d  73 63 72 6e 73 2b 31 3a  |:.scrns=scrns+1:|
00000270  e3 4c 3d 31 35 b8 31 36  3a f1 8a 32 34 2c 4c 29  |.L=15.16:..24,L)|
00000280  73 63 72 6e 73 2d 31 3a  ed 3a cf 23 68 6e 6c 3d  |scrns-1:.:.#hnl=|
00000290  73 63 72 6e 73 2a 39 36  30 3a fd 30 0d 01 18 2a  |scrns*960:.0...*|
000002a0  e7 73 63 72 6e 73 3c 31  20 f2 6f 73 63 28 22 44  |.scrns<1 .osc("D|
000002b0  45 4c 45 54 45 20 54 50  49 4e 44 45 58 22 29 3a  |ELETE TPINDEX"):|
000002c0  f2 6e 65 77 3a f9 0d 01  22 37 e3 4c 3d 30 b8 73  |.new:..."7.L=0.s|
000002d0  63 72 6e 73 2a 34 88 34  3a 21 28 26 36 38 30 30  |crns*4.4:!(&6800|
000002e0  2b 4c 29 3d 4c 2f 34 2a  26 31 30 30 30 30 3a ed  |+L)=L/4*&10000:.|
000002f0  3a f2 69 6e 64 78 3a 6e  65 78 74 3d 30 0d 01 2c  |:.indx:next=0..,|
00000300  2b f2 74 73 6f 66 74 3a  f2 73 63 72 6e 3a e7 a4  |+.tsoft:.scrn:..|
00000310  67 65 74 28 31 39 2c 31  32 2c 34 38 2c 35 33 29  |get(19,12,48,53)|
00000320  3d 39 20 8c 8d 54 6c 41  0d 01 36 3f 63 68 3d 78  |=9 ..TlA..6?ch=x|
00000330  2d 34 38 3a ef 33 31 2c  37 2c 31 33 2c 31 36 30  |-48:.31,7,13,160|
00000340  2c 33 31 2c 37 2c 31 34  2c 31 36 30 3a e7 a4 67  |,31,7,14,160:..g|
00000350  65 74 28 31 36 2c 31 34  2c 34 38 2c 35 37 29 3d  |et(16,14,48,57)=|
00000360  39 20 8c 8d 54 6c 41 0d  01 40 2c 70 61 3d 28 78  |9 ..TlA..@,pa=(x|
00000370  2d 34 38 29 2a 31 30 30  3a e7 a4 67 65 74 28 31  |-48)*100:..get(1|
00000380  37 2c 31 34 2c 34 37 2c  35 38 29 3d 39 20 8c 8d  |7,14,47,58)=9 ..|
00000390  54 6c 41 0d 01 4a 2e 70  61 3d 70 61 2b 28 78 2d  |TlA..J.pa=pa+(x-|
000003a0  34 38 29 2a 31 30 3a e7  a4 67 65 74 28 31 38 2c  |48)*10:..get(18,|
000003b0  31 34 2c 34 37 2c 35 38  29 3d 39 20 8c 8d 54 6c  |14,47,58)=9 ..Tl|
000003c0  41 0d 01 54 29 70 61 3d  70 61 2b 78 2d 34 38 3a  |A..T)pa=pa+x-48:|
000003d0  ef 33 31 2c 35 2c 32 34  2c 31 35 32 3a e7 6e 65  |.31,5,24,152:.ne|
000003e0  78 74 3d 30 20 8c 8d 44  7c 41 0d 01 5e 58 73 65  |xt=0 ..D|A..^Xse|
000003f0  61 72 63 68 3d 63 68 2a  31 30 2b 28 70 61 20 81  |arch=ch*10+(pa .|
00000400  31 30 30 29 2b 28 70 61  20 83 31 30 30 29 2a 32  |100)+(pa .100)*2|
00000410  35 36 3a e3 4c 3d 30 b8  6e 65 78 74 2d 31 3a e7  |56:.L=0.next-1:.|
00000420  28 21 28 26 36 38 30 30  2b 4c 2a 34 29 80 26 46  |(!(&6800+L*4).&F|
00000430  46 46 46 29 3c 3e 73 65  61 72 63 68 20 8c 8d 44  |FFF)<>search ..D|
00000440  72 41 0d 01 68 1f 66 6f  75 6e 64 3d 4c 3a 4c 3d  |rA..h.found=L:L=|
00000450  6e 65 78 74 3a ed 3a f2  64 69 73 3a e5 8d 54 6c  |next:.:.dis:..Tl|
00000460  41 0d 01 72 05 ed 0d 01  7c 1b e7 6e 65 78 74 3d  |A..r....|..next=|
00000470  73 63 72 6e 73 20 f2 66  75 6c 6c 3a e5 8d 64 5c  |scrns .full:..d\|
00000480  40 0d 01 86 56 f2 6f 73  63 28 22 43 48 22 2b c3  |@...V.osc("CH"+.|
00000490  28 63 68 29 29 3a f2 6f  73 63 28 22 50 41 47 45  |(ch)):.osc("PAGE|
000004a0  22 2b c3 28 70 61 29 29  3a ef 33 31 2c 37 2c 31  |"+.(pa)):.31,7,1|
000004b0  35 2c 31 36 30 2c 33 31  2c 37 2c 31 36 2c 31 36  |5,160,31,7,16,16|
000004c0  30 3a 68 69 67 68 3d 31  3a 2a 54 52 41 4e 53 46  |0:high=1:*TRANSF|
000004d0  45 52 20 37 34 38 30 0d  01 90 48 ef 37 3a 6c 61  |ER 7480...H.7:la|
000004e0  73 74 3d a4 68 61 6d 3a  70 72 65 3d 6c 61 73 74  |st=.ham:pre=last|
000004f0  3a 73 74 3d 6c 61 73 74  3a e7 73 74 3d b9 20 ef  |:st=last:.st=. .|
00000500  33 31 2c 35 2c 36 2c 31  33 36 3a f1 22 81 44 41  |31,5,6,136:.".DA|
00000510  54 41 20 45 52 52 4f 52  22 3a e5 8d 74 46 41 0d  |TA ERROR":..tFA.|
00000520  01 9a 23 f2 73 61 76 65  3a e7 6c 61 73 74 3d 30  |..#.save:.last=0|
00000530  20 f2 63 61 74 3a f2 70  72 69 6e 74 3a e5 8d 54  | .cat:.print:..T|
00000540  6c 41 0d 01 a4 25 f2 6f  73 63 28 22 50 41 47 45  |lA...%.osc("PAGE|
00000550  22 2b c3 28 70 61 29 29  3a 2a 54 52 41 4e 53 46  |"+.(pa)):*TRANSF|
00000560  45 52 20 37 34 38 30 0d  01 ae 58 6c 61 73 74 3d  |ER 7480...Xlast=|
00000570  a4 68 61 6d 3a e7 6c 61  73 74 3d b9 20 f1 8a 32  |.ham:.last=. ..2|
00000580  30 2c 32 34 29 bd 31 33  36 22 81 44 41 54 41 20  |0,24).136".DATA |
00000590  45 52 52 4f 52 22 3b 3a  e5 8d 74 64 41 3a 8b e7  |ERROR";:..tdA:..|
000005a0  70 72 65 3d 73 74 20 84  6c 61 73 74 3c 3e 73 74  |pre=st .last<>st|
000005b0  20 70 72 65 3d 6c 61 73  74 3a e5 8d 74 5a 41 0d  | pre=last:..tZA.|
000005c0  01 b8 46 e3 4c 3d 31 b8  68 69 67 68 3a e7 3f 28  |..F.L=1.high:.?(|
000005d0  26 36 38 30 30 2b 28 6e  65 78 74 2b 4c 2d 31 29  |&6800+(next+L-1)|
000005e0  2a 34 29 3d 30 20 4c 3d  68 69 67 68 3a ed 3a e5  |*4)=0 L=high:.:.|
000005f0  8d 74 64 41 3a 8b ed 3a  ef 37 3a f2 63 61 74 3a  |.tdA:..:.7:.cat:|
00000600  e5 8d 44 5e 41 0d 01 c2  05 3a 0d 01 cc 19 dd f2  |..D^A....:......|
00000610  70 72 69 6e 74 3a 2a 44  49 53 50 4c 41 59 20 37  |print:*DISPLAY 7|
00000620  34 38 30 0d 01 d6 14 ef  33 30 3a f1 24 70 61 67  |480.....30:.$pag|
00000630  65 3a 2a 46 58 31 35 0d  01 e0 34 f1 8a 30 2c 32  |e:*FX15...4..0,2|
00000640  34 29 22 50 52 49 4e 54  20 59 2f 4e 20 3f 20 22  |4)"PRINT Y/N ? "|
00000650  3b 3a 78 3d 28 a5 20 84  26 32 30 29 2d 33 32 3a  |;:x=(. .&20)-32:|
00000660  e7 78 3c 3e 38 39 20 78  3d 37 38 0d 01 ea 25 ef  |.x<>89 x=78...%.|
00000670  78 3a e7 78 3c 3e 38 39  20 e1 3a 8b e3 4c 3d 30  |x:.x<>89 .:..L=0|
00000680  b8 32 32 3a 78 3d 26 37  34 41 38 2b 4c 2a 34 30  |.22:x=&74A8+L*40|
00000690  0d 01 f4 29 e7 3f 78 3c  31 36 30 20 84 3f 78 3d  |...).?x<160 .?x=|
000006a0  32 35 35 20 74 70 3f 4c  3d 33 32 3a 8b 74 70 3f  |255 tp?L=32:.tp?|
000006b0  4c 3d 3f 78 20 80 26 37  46 0d 01 fe 1b e7 3f 78  |L=?x .&7F.....?x|
000006c0  3c 31 34 30 20 80 20 3f  78 3e 31 35 31 20 3f 78  |<140 . ?x>151 ?x|
000006d0  3d 31 35 35 0d 02 08 25  ed 3a 74 70 3f 4c 3d 28  |=155...%.:tp?L=(|
000006e0  70 61 20 81 31 30 30 29  2b 34 38 3a d6 63 6f 64  |pa .100)+48:.cod|
000006f0  65 3a 2a 46 58 33 2c 31  30 0d 02 12 7a 3f 26 37  |e:*FX3,10...z?&7|
00000700  38 36 38 3d 31 33 3a f1  24 70 61 67 65 3b 24 26  |868=13:.$page;$&|
00000710  37 38 34 38 3a 73 74 6f  72 65 24 3d 22 22 3a 3f  |7848:store$="":?|
00000720  26 37 38 36 38 3d 3f 74  70 3a e3 4c 3d 31 b8 32  |&7868=?tp:.L=1.2|
00000730  33 3a 78 3d 26 37 38 36  38 2b 4c 2a 34 30 3a 3f  |3:x=&7868+L*40:?|
00000740  78 3d 31 33 3a e7 73 74  6f 72 65 24 3d 24 28 78  |x=13:.store$=$(x|
00000750  2d 34 30 29 20 f1 3a 8b  73 74 6f 72 65 24 3d 24  |-40) .:.store$=$|
00000760  28 78 2d 34 30 29 3a f1  89 28 31 35 29 73 74 6f  |(x-40):..(15)sto|
00000770  72 65 24 0d 02 1c 1e 3f  78 3d 74 70 3f 4c 3a ed  |re$....?x=tp?L:.|
00000780  3a f1 27 27 27 27 27 27  27 27 3a 2a 46 58 33 2c  |:.'''''''':*FX3,|
00000790  30 0d 02 26 05 e1 0d 02  30 05 3a 0d 02 3a 52 dd  |0..&....0.:..:R.|
000007a0  a4 68 61 6d 3a f7 3a 6f  6e 65 3d 3f 26 37 34 38  |.ham:.:one=?&748|
000007b0  32 20 80 26 37 46 3a 74  65 6e 3d 3f 26 37 34 38  |2 .&7F:ten=?&748|
000007c0  33 20 80 26 37 46 3a f5  f3 64 31 2c 64 32 3a fd  |3 .&7F:..d1,d2:.|
000007d0  64 32 3d 6f 6e 65 20 84  64 32 3d 30 3a 6f 6e 65  |d2=one .d2=0:one|
000007e0  3d 64 31 3a e7 64 32 3d  30 20 3d 2d 31 0d 02 44  |=d1:.d2=0 =-1..D|
000007f0  2c f7 3a f5 f3 64 31 2c  64 32 3a fd 64 32 3d 74  |,.:..d1,d2:.d2=t|
00000800  65 6e 20 84 64 32 3d 30  3a 74 65 6e 3d 64 31 3a  |en .d2=0:ten=d1:|
00000810  e7 64 32 3d 30 20 3d 2d  31 0d 02 4e 38 24 70 61  |.d2=0 =-1..N8$pa|
00000820  67 65 3d c3 28 70 61 29  2b 22 30 30 30 30 20 22  |ge=.(pa)+"0000 "|
00000830  3a 70 61 67 65 3f 35 3d  28 74 65 6e 20 83 38 29  |:page?5=(ten .8)|
00000840  2b 34 38 3a 70 61 67 65  3f 36 3d 6f 6e 65 2b 34  |+48:page?6=one+4|
00000850  38 0d 02 58 14 3d 28 74  65 6e 20 83 38 29 2a 31  |8..X.=(ten .8)*1|
00000860  30 2b 6f 6e 65 0d 02 62  6b dc 30 2c 26 31 35 2c  |0+one..bk.0,&15,|
00000870  31 2c 32 2c 32 2c 26 34  39 2c 33 2c 26 35 45 2c  |1,2,2,&49,3,&5E,|
00000880  34 2c 26 36 34 2c 35 2c  26 37 33 2c 36 2c 26 33  |4,&64,5,&73,6,&3|
00000890  38 2c 37 2c 26 32 46 2c  38 2c 26 35 30 2c 39 2c  |8,7,&2F,8,&50,9,|
000008a0  26 34 37 2c 31 30 2c 26  43 2c 31 31 2c 26 31 42  |&47,10,&C,11,&1B|
000008b0  2c 31 32 2c 26 32 31 2c  31 33 2c 26 33 36 2c 31  |,12,&21,13,&36,1|
000008c0  34 2c 26 37 44 2c 31 35  2c 26 36 41 2c 30 2c 30  |4,&7D,15,&6A,0,0|
000008d0  0d 02 6c 05 3a 0d 02 76  09 dd f2 64 69 73 0d 02  |..l.:..v...dis..|
000008e0  80 09 2a 44 49 53 4b 0d  02 8a 7b 68 6e 6c 3d 8e  |..*DISK...{hnl=.|
000008f0  22 53 43 52 45 45 4e 53  22 3a f2 6f 73 67 28 33  |"SCREENS":.osg(3|
00000900  29 3a f2 74 73 6f 66 74  3a 6c 61 73 74 3d a4 68  |):.tsoft:last=.h|
00000910  61 6d 3a f2 70 72 69 6e  74 3a e7 66 6f 75 6e 64  |am:.print:.found|
00000920  3d 73 63 72 6e 73 20 e1  3a 8b 66 6f 75 6e 64 3d  |=scrns .:.found=|
00000930  66 6f 75 6e 64 2b 31 3a  e7 28 21 28 26 36 38 30  |found+1:.(!(&680|
00000940  30 2b 66 6f 75 6e 64 2a  34 29 80 26 46 46 46 46  |0+found*4).&FFFF|
00000950  29 3c 3e 73 65 61 72 63  68 20 e1 3a 8b e5 8d 74  |)<>search .:...t|
00000960  40 42 0d 02 94 05 3a 0d  02 9e 09 2a 44 49 53 4b  |@B....:....*DISK|
00000970  0d 02 a8 39 d9 23 30 3a  e7 9f 3d 31 37 20 84 9f  |...9.#0:..=17 ..|
00000980  3d 32 37 20 e3 4c 3d 6e  65 78 74 20 b8 73 63 72  |=27 .L=next .scr|
00000990  6e 73 2d 31 3a 3f 28 26  36 38 30 30 2b 4c 2a 34  |ns-1:?(&6800+L*4|
000009a0  29 3d 30 3a e5 8d 54 6c  41 0d 02 b2 09 2a 48 4f  |)=0:..TlA....*HO|
000009b0  46 46 0d 02 bc 1a db 3a  f6 3a f1 27 27 22 20 61  |FF.....:.:.''" a|
000009c0  74 20 6c 69 6e 65 20 22  3b 9e 3a e0 0d 02 c6 1b  |t line ";.:.....|
000009d0  d9 23 30 3a 73 63 72 6e  73 3d 73 63 72 6e 73 2d  |.#0:scrns=scrns-|
000009e0  31 3a e5 8d 54 58 41 0d  02 d0 05 3a 0d 02 da 2d  |1:..TXA....:...-|
000009f0  dd f2 6f 73 63 28 24 74  70 29 3a 58 25 3d 74 70  |..osc($tp):X%=tp|
00000a00  20 83 32 35 36 3a 59 25  3d 74 70 20 81 32 35 36  | .256:Y%=tp .256|
00000a10  3a d6 26 46 46 46 37 3a  e1 0d 02 e4 05 3a 0d 02  |:.&FFF7:.....:..|
00000a20  ee 2f dd f2 73 61 76 65  3a 66 6f 75 6e 64 3d 6e  |./..save:found=n|
00000a30  65 78 74 2b 6c 61 73 74  2d 31 3a e7 6c 61 73 74  |ext+last-1:.last|
00000a40  3d 30 20 66 6f 75 6e 64  3d 6e 65 78 74 0d 02 f8  |=0 found=next...|
00000a50  25 e7 3f 28 26 36 38 30  30 2b 66 6f 75 6e 64 2a  |%.?(&6800+found*|
00000a60  34 29 3c 3e 30 20 e5 8d  54 60 43 3a 8b 2a 44 49  |4)<>0 ..T`C:.*DI|
00000a70  53 4b 0d 03 02 18 e7 6c  61 73 74 3e 68 69 67 68  |SK.....last>high|
00000a80  20 68 69 67 68 3d 6c 61  73 74 0d 03 0c 28 78 3d  | high=last...(x=|
00000a90  73 63 72 6e 73 2d 6e 65  78 74 3a e7 73 63 72 6e  |scrns-next:.scrn|
00000aa0  73 3c 68 69 67 68 2b 6e  65 78 74 20 68 69 67 68  |s<high+next high|
00000ab0  3d 78 0d 03 16 81 e7 73  63 72 6e 73 3c 6c 61 73  |=x.....scrns<las|
00000ac0  74 2b 6e 65 78 74 3a 8b  78 3d 26 36 38 30 30 2b  |t+next:.x=&6800+|
00000ad0  66 6f 75 6e 64 2a 34 3a  3f 78 3d 63 68 2a 31 30  |found*4:?x=ch*10|
00000ae0  2b 70 61 20 81 31 30 30  3a 78 3f 31 3d 70 61 20  |+pa .100:x?1=pa |
00000af0  83 31 30 30 3a 24 74 70  3d 22 53 43 52 45 45 4e  |.100:$tp="SCREEN|
00000b00  53 22 3a 58 25 3d 74 70  3a 59 25 3d 74 70 20 81  |S":X%=tp:Y%=tp .|
00000b10  32 35 36 3a 41 25 3d 26  43 30 3a 68 6e 6c 3d ba  |256:A%=&C0:hnl=.|
00000b20  28 26 46 46 43 45 29 80  26 46 46 3a f2 6f 73 67  |(&FFCE).&FF:.osg|
00000b30  28 31 29 0d 03 20 11 2a  44 49 53 50 4c 41 59 20  |(1).. .*DISPLAY |
00000b40  37 34 38 30 0d 03 2a 10  ef 33 30 3a f1 24 70 61  |7480..*..30:.$pa|
00000b50  67 65 3a e1 0d 03 34 05  3a 0d 03 3e ab dd f2 73  |ge:...4.:..>...s|
00000b60  63 72 6e 3a db 3a f1 8a  30 2c 32 29 22 94 9d 97  |crn:.:..0,2)"...|
00000b70  a8 ec bc a4 fc ac a4 fc  a0 a0 fc ac a4 fc ec b0  |................|
00000b80  fc ec b0 ec bc e8 b4 e8  b4 ac fc ac e8 bc ac e8  |................|
00000b90  bc f4 a0 a0 9c 94 9d 97  a0 ea b5 a0 ff ac a0 ff  |................|
00000ba0  a0 a0 ff ac a0 ff ae a1  ff ee b1 ea b5 ea bf fe  |................|
00000bb0  b5 a0 ff a0 ea bd a4 ea  bd f7 a0 86 9d 94 9d 97  |................|
00000bc0  a0 aa a5 a0 af ac a4 af  ac a4 af ac a4 af a0 a0  |................|
00000bd0  af aa a5 ae ad aa a5 aa  a5 a0 af a0 aa ad ac aa  |................|
00000be0  a5 af a0 86 9d 22 3a ef  33 31 2c 30 2c 35 2c 31  |.....":.31,0,5,1|
00000bf0  35 30 2c 31 36 30 3a f1  c4 33 36 2c bd 28 31 32  |50,160:..36,.(12|
00000c00  34 29 29 3b 0d 03 48 9b  ef 32 35 35 2c 32 35 35  |4));..H..255,255|
00000c10  3a e3 4c 32 3d 36 b8 32  33 3a ef 33 31 2c 30 2c  |:.L2=6.23:.31,0,|
00000c20  4c 32 2c 31 35 30 2c 31  36 30 2c 31 35 37 2c 31  |L2,150,160,157,1|
00000c30  34 38 3a ed 3a e3 4c 32  3d 38 b8 31 39 3a ef 33  |48:.:.L2=8.19:.3|
00000c40  31 2c 30 2c 4c 32 2c 31  33 31 2c 31 35 37 2c 31  |1,0,L2,131,157,1|
00000c50  35 39 2c 31 32 39 2c 33  31 2c 33 30 2c 4c 32 2c  |59,129,31,30,L2,|
00000c60  31 33 34 2c 31 35 37 3a  ed 3a ef 33 31 2c 30 2c  |134,157:.:.31,0,|
00000c70  32 30 2c 31 35 30 2c 31  36 30 3a f1 c4 32 38 2c  |20,150,160:..28,|
00000c80  bd 28 31 32 34 29 29 c4  31 30 2c bd 28 32 35 35  |.(124)).10,.(255|
00000c90  29 29 3a ef 33 31 2c 35  2c 32 32 2c 31 33 32 0d  |)):.31,5,22,132.|
00000ca0  03 52 af f1 22 50 72 65  73 73 20 3c 45 53 43 41  |.R.."Press <ESCA|
00000cb0  50 45 3e 20 74 6f 20 63  68 6f 6f 73 65 20 61 67  |PE> to choose ag|
00000cc0  61 69 6e 22 3a ef 31 35  30 2c 31 36 30 3a f1 c4  |ain":.150,160:..|
00000cd0  33 38 2c 22 60 22 29 bd  31 33 33 3b 3a f1 89 39  |38,"`").133;:..9|
00000ce0  22 50 72 65 73 73 20 3c  54 41 42 3e 20 66 6f 72  |"Press <TAB> for|
00000cf0  20 45 64 69 74 6f 72 22  3b 3a e3 4c 32 3d 31 31  | Editor";:.L2=11|
00000d00  b8 31 32 3a ef 33 31 2c  38 2c 4c 32 2c 31 34 31  |.12:.31,8,L2,141|
00000d10  3a f1 22 43 68 61 6e 6e  65 6c 20 3f 22 3a ef 33  |:."Channel ?":.3|
00000d20  31 2c 37 2c 4c 32 2b 32  2c 31 35 32 2c 31 34 31  |1,7,L2+2,152,141|
00000d30  3a f1 22 50 61 67 65 20  3f 22 3a ef 33 31 2c 33  |:."Page ?":.31,3|
00000d40  32 2c 4c 32 2b 32 2c 31  33 32 2c 31 34 31 0d 03  |2,L2+2,132,141..|
00000d50  5c 5b f1 73 63 72 6e 73  2d 6e 65 78 74 3a ef 33  |\[.scrns-next:.3|
00000d60  31 2c 37 2c 4c 32 2b 34  2c 31 35 32 2c 31 34 31  |1,7,L2+4,152,141|
00000d70  3a f1 22 57 61 69 74 69  6e 67 2e 2e 2e 22 3a ed  |:."Waiting...":.|
00000d80  3a ef 33 31 2c 32 32 2c  36 2c 31 33 32 3a f1 20  |:.31,22,6,132:. |
00000d90  22 28 63 29 20 4d 2e 4a  2e 52 61 77 6c 69 6e 67  |"(c) M.J.Rawling|
00000da0  73 22 3a 2a 46 58 20 31  35 0d 03 66 05 e1 0d 03  |s":*FX 15..f....|
00000db0  70 05 3a 0d 03 7a 15 dd  f2 74 73 6f 66 74 3a 2a  |p.:..z...tsoft:*|
00000dc0  54 45 4c 45 53 4f 46 54  0d 03 84 08 2a 48 4f 4e  |TELESOFT....*HON|
00000dd0  0d 03 8e 0c ee 85 20 e5  8d 74 5e 42 0d 03 98 05  |...... ..t^B....|
00000de0  e1 0d 03 a2 05 3a 0d 03  ac 17 dd f2 69 6e 69 74  |.....:......init|
00000df0  3a 2a 4c 4f 2e 20 54 50  49 4e 44 45 58 0d 03 b6  |:*LO. TPINDEX...|
00000e00  46 73 63 72 6e 73 3d 6c  65 6e 2f 34 3a 6e 65 78  |Fscrns=len/4:nex|
00000e10  74 3d 73 63 72 6e 73 3a  e3 4c 3d 30 b8 73 63 72  |t=scrns:.L=0.scr|
00000e20  6e 73 2d 31 3a e7 3f 28  26 36 38 30 30 2b 4c 2a  |ns-1:.?(&6800+L*|
00000e30  34 29 3d 30 20 6e 65 78  74 3d 4c 3a 4c 3d 73 63  |4)=0 next=L:L=sc|
00000e40  72 6e 73 0d 03 c0 07 ed  3a e1 0d 03 ca 05 3a 0d  |rns.....:.....:.|
00000e50  03 d4 4e dd f2 6e 65 77  3a 73 63 72 6e 73 3d 30  |..N..new:scrns=0|
00000e60  3a 6e 65 78 74 3d 30 3a  f2 73 63 72 6e 3a f7 8d  |:next=0:.scrn:..|
00000e70  44 6e 45 3a f2 6d 73 67  65 3a ef 33 31 2c 35 2c  |DnE:.msge:.31,5,|
00000e80  32 32 2c 31 35 32 2c 33  31 2c 35 2c 32 34 2c 31  |22,152,31,5,24,1|
00000e90  35 32 3a f2 73 70 63 3a  2a 44 49 53 4b 0d 03 de  |52:.spc:*DISK...|
00000ea0  05 e1 0d 03 e8 05 3a 0d  03 f2 1b dd f2 66 75 6c  |......:......ful|
00000eb0  6c 3a f7 8d 44 78 45 3a  f2 6d 73 67 65 3a f2 73  |l:..DxE:.msge:.s|
00000ec0  70 63 0d 03 fc 08 ee 85  20 f9 0d 04 06 05 e1 0d  |pc...... .......|
00000ed0  04 10 05 3a 0d 04 1a 0f  dd f2 63 61 74 3a 2a 44  |...:......cat:*D|
00000ee0  49 53 4b 0d 04 24 2c 66  6f 75 6e 64 3d 6e 65 78  |ISK..$,found=nex|
00000ef0  74 3a 6e 65 78 74 3d 6e  65 78 74 2b 68 69 67 68  |t:next=next+high|
00000f00  3a f2 69 6e 64 78 3a f2  74 73 6f 66 74 3a e1 0d  |:.indx:.tsoft:..|
00000f10  04 2e 05 3a 0d 04 38 10  dd f2 65 64 69 74 3a 2a  |...:..8...edit:*|
00000f20  44 49 53 4b 0d 04 42 85  e7 6e 65 78 74 3d 30 20  |DISK..B..next=0 |
00000f30  f2 6e 6f 3a e1 3a 8b 4c  3d 2d 31 3a f5 3a ef 33  |.no:.:.L=-1:.:.3|
00000f40  31 2c 35 2c 32 34 2c 31  35 32 3a 4c 3d 4c 2b 31  |1,5,24,152:L=L+1|
00000f50  3a 73 65 61 72 63 68 3d  28 21 28 26 36 38 30 30  |:search=(!(&6800|
00000f60  2b 4c 2a 34 29 80 26 46  46 46 46 29 3a 63 68 3d  |+L*4).&FFFF):ch=|
00000f70  28 3f 28 26 36 38 30 30  2b 4c 2a 34 29 29 81 31  |(?(&6800+L*4)).1|
00000f80  30 3a 70 61 3d 28 28 3f  28 26 36 38 30 30 2b 4c  |0:pa=((?(&6800+L|
00000f90  2a 34 29 29 83 31 30 29  2a 31 30 30 2b 3f 28 26  |*4)).10)*100+?(&|
00000fa0  36 38 30 31 2b 4c 2a 34  29 0d 04 4c 78 e3 4c 32  |6801+L*4)..Lx.L2|
00000fb0  3d 31 31 b8 31 32 3a f1  8a 31 37 2c 4c 32 29 22  |=11.12:..17,L2)"|
00000fc0  3a 20 22 63 68 20 8a 37  2c 4c 32 2b 32 29 bd 28  |: "ch .7,L2+2).(|
00000fd0  31 36 30 29 8a 31 34 2c  4c 32 2b 32 29 22 3a 20  |160).14,L2+2)": |
00000fe0  22 70 61 3a ef 33 31 2c  37 2c 4c 32 2b 34 2c 31  |"pa:.31,7,L2+4,1|
00000ff0  34 31 3a f1 22 20 44 65  6c 65 74 65 20 59 2f 4e  |41:." Delete Y/N|
00001000  20 3f 22 89 35 3a ed 3a  78 3d 28 a5 20 84 26 32  | ?".5:.:x=(. .&2|
00001010  30 29 2d 33 32 3a e7 78  3c 3e 38 39 20 78 3d 37  |0)-32:.x<>89 x=7|
00001020  38 0d 04 56 59 e3 4c 32  3d 31 35 b8 31 36 3a ef  |8..VY.L2=15.16:.|
00001030  33 31 2c 32 32 2c 4c 32  2c 78 3a ed 3a e7 78 3c  |31,22,L2,x:.:.x<|
00001040  3e 38 39 20 4c 3d 4c 2d  31 3a f5 4c 3d 4c 2b 31  |>89 L=L-1:.L=L+1|
00001050  3a fd 28 21 28 26 36 38  30 34 2b 4c 2a 34 29 80  |:.(!(&6804+L*4).|
00001060  26 46 46 46 46 29 3c 3e  73 65 61 72 63 68 3a fd  |&FFFF)<>search:.|
00001070  4c 3e 6e 65 78 74 2d 32  3a e1 0d 04 60 28 e7 73  |L>next-2:...`(.s|
00001080  65 61 72 63 68 3c 3e 28  21 28 26 36 38 30 30 2b  |earch<>(!(&6800+|
00001090  4c 2a 34 2b 34 29 80 26  46 46 46 46 29 e5 8d 44  |L*4+4).&FFFF)..D|
000010a0  7e 44 0d 04 6a 4b e3 4c  32 3d 31 35 b8 31 36 3a  |~D..jK.L2=15.16:|
000010b0  ef 33 31 2c 37 2c 4c 32  2c 31 34 31 3a f1 22 20  |.31,7,L2,141:." |
000010c0  41 6c 6c 20 70 61 67 65  73 20 59 2f 4e 20 3f 20  |All pages Y/N ? |
000010d0  22 3a ed 3a 78 3d 28 a5  20 84 26 32 30 29 2d 33  |":.:x=(. .&20)-3|
000010e0  32 3a e7 78 3c 3e 38 39  20 78 3d 37 38 0d 04 74  |2:.x<>89 x=78..t|
000010f0  1b e3 4c 32 3d 31 35 b8  31 36 3a ef 33 31 2c 32  |..L2=15.16:.31,2|
00001100  35 2c 4c 32 2c 78 3a ed  0d 04 7e 11 f5 3a e7 78  |5,L2,x:...~..:.x|
00001110  3d 38 39 20 e5 8d 74 7a  44 0d 04 88 41 66 6f 75  |=89 ..tzD...Afou|
00001120  6e 64 3d 4c 3a 68 6e 6c  3d 8e 22 53 43 52 45 45  |nd=L:hnl=."SCREE|
00001130  4e 53 22 3a f2 6f 73 67  28 33 29 3a f2 74 73 6f  |NS":.osg(3):.tso|
00001140  66 74 3a 6c 61 73 74 3d  a4 68 61 6d 3a 2a 44 49  |ft:last=.ham:*DI|
00001150  53 50 4c 41 59 20 37 34  38 30 0d 04 92 09 2a 44  |SPLAY 7480....*D|
00001160  49 53 4b 0d 04 9c 14 ef  33 30 3a f1 24 70 61 67  |ISK.....30:.$pag|
00001170  65 3a 2a 46 58 31 35 0d  04 a6 35 f1 8a 30 2c 32  |e:*FX15...5..0,2|
00001180  34 29 22 44 45 4c 45 54  45 20 59 2f 4e 20 3f 20  |4)"DELETE Y/N ? |
00001190  22 3b 3a 64 3d 28 a5 20  84 26 32 30 29 2d 33 32  |";:d=(. .&20)-32|
000011a0  3a e7 64 3c 3e 38 39 20  64 3d 37 38 0d 04 b0 19  |:.d<>89 d=78....|
000011b0  ef 64 3a e7 64 3c 3e 38  39 20 4c 3d 4c 2b 31 3a  |.d:.d<>89 L=L+1:|
000011c0  e5 8d 64 44 44 0d 04 ba  a5 70 72 65 3d 21 28 26  |..dDD....pre=!(&|
000011d0  36 38 30 30 2b 4c 2a 34  29 3a e3 4c 32 3d 4c 20  |6800+L*4):.L2=L |
000011e0  b8 6e 65 78 74 2d 32 3a  21 28 26 36 38 30 30 2b  |.next-2:!(&6800+|
000011f0  4c 32 2a 34 29 3d 21 28  26 36 38 30 30 2b 4c 32  |L2*4)=!(&6800+L2|
00001200  2a 34 2b 34 29 3a ed 3a  21 28 26 36 38 30 30 2b  |*4+4):.:!(&6800+|
00001210  6e 65 78 74 2a 34 2d 34  29 3d 28 70 72 65 20 81  |next*4-4)=(pre .|
00001220  26 31 30 30 30 30 29 2a  26 31 30 30 30 30 3a 6e  |&10000)*&10000:n|
00001230  65 78 74 3d 6e 65 78 74  2d 31 3a e7 78 3d 38 39  |ext=next-1:.x=89|
00001240  20 e3 4c 32 3d 31 33 b8  31 34 3a ef 33 31 2c 33  | .L2=13.14:.31,3|
00001250  32 2c 4c 32 2c 31 33 32  2c 31 34 31 3a f1 73 63  |2,L2,132,141:.sc|
00001260  72 6e 73 2d 6e 65 78 74  3a ed 0d 04 c4 2d fd 28  |rns-next:....-.(|
00001270  21 28 26 36 38 30 30 2b  4c 2a 34 29 80 26 46 46  |!(&6800+L*4).&FF|
00001280  46 46 29 3c 3e 73 65 61  72 63 68 3a e7 78 3d 37  |FF)<>search:.x=7|
00001290  38 20 f2 73 63 72 6e 0d  04 ce 1b f2 69 6e 64 78  |8 .scrn.....indx|
000012a0  3a 4c 3d 4c 2d 31 3a fd  4c 3e 6e 65 78 74 2d 32  |:L=L-1:.L>next-2|
000012b0  3a e1 0d 04 d8 05 3a 0d  04 e2 1b dd f2 6e 6f 3a  |:.....:......no:|
000012c0  f7 8d 74 42 45 3a f2 6d  73 67 65 3a f2 73 70 63  |..tBE:.msge:.spc|
000012d0  3a e1 0d 04 ec 05 3a 0d  04 f6 3f dd f2 6d 73 67  |:.....:...?..msg|
000012e0  65 3a e3 4c 3d 31 31 b8  31 35 88 32 3a f3 64 24  |e:.L=11.15.2:.d$|
000012f0  3a ef 33 31 2c 34 2c 4c  2c 31 34 31 3a f1 64 24  |:.31,4,L,141:.d$|
00001300  3a ef 33 31 2c 34 2c 4c  2b 31 2c 31 34 31 3a f1  |:.31,4,L+1,141:.|
00001310  64 24 3a ed 3a e1 0d 05  00 05 3a 0d 05 0a 12 dd  |d$:.:.....:.....|
00001320  f2 73 70 63 3a f5 fd a5  3d 33 32 3a e1 0d 05 14  |.spc:...=32:....|
00001330  05 3a 0d 05 1e 75 dd f2  6f 73 67 28 78 29 3a 41  |.:...u..osg(x):A|
00001340  25 3d 78 3a 58 25 3d 74  70 3a 59 25 3d 74 70 20  |%=x:X%=tp:Y%=tp |
00001350  81 32 35 36 3a 3f 74 70  3d 68 6e 6c 3a 21 28 74  |.256:?tp=hnl:!(t|
00001360  70 2b 31 29 3d 26 37 34  38 30 3a 21 28 74 70 2b  |p+1)=&7480:!(tp+|
00001370  35 29 3d 39 36 30 3a 21  28 74 70 2b 39 29 3d 28  |5)=960:!(tp+9)=(|
00001380  21 28 26 36 38 30 32 2b  66 6f 75 6e 64 2a 34 29  |!(&6802+found*4)|
00001390  80 26 46 46 46 29 2a 39  36 30 3a d6 26 46 46 44  |.&FFF)*960:.&FFD|
000013a0  31 3a d9 23 30 3a e1 0d  05 28 05 3a 0d 05 32 33  |1:.#0:...(.:..23|
000013b0  dd f2 69 6e 64 78 3a f2  6f 73 63 28 22 53 41 56  |..indx:.osc("SAV|
000013c0  45 20 54 50 49 4e 44 45  58 20 36 38 30 30 2b 22  |E TPINDEX 6800+"|
000013d0  2b c3 7e 28 73 63 72 6e  73 2a 34 29 29 3a e1 0d  |+.~(scrns*4)):..|
000013e0  05 3c 05 3a 0d 05 46 38  dd a4 67 65 74 28 70 31  |.<.:..F8..get(p1|
000013f0  2c 70 32 2c 70 33 2c 70  34 29 3a ef 33 31 2c 70  |,p2,p3,p4):.31,p|
00001400  31 2c 70 32 3a f5 78 3d  a5 3a e7 78 3d 39 20 fd  |1,p2:.x=.:.x=9 .|
00001410  78 3d 39 3a f2 65 64 69  74 3a 3d 39 0d 05 50 2b  |x=9:.edit:=9..P+|
00001420  fd 78 3e 70 33 20 80 78  3c 70 34 3a ef 33 31 2c  |.x>p3 .x<p4:.31,|
00001430  70 31 2c 70 32 2d 31 2c  78 2c 33 31 2c 70 31 2c  |p1,p2-1,x,31,p1,|
00001440  70 32 2c 78 3a 3d 78 0d  05 5a 05 3a 0d 05 64 4a  |p2,x:=x..Z.:..dJ|
00001450  dc 20 22 44 49 53 4b 20  42 45 49 4e 47 20 49 4e  |. "DISK BEING IN|
00001460  49 54 49 41 4c 49 53 45  44 22 2c 22 20 20 20 50  |ITIALISED","   P|
00001470  4c 45 41 53 45 20 42 45  20 50 41 54 49 45 4e 54  |LEASE BE PATIENT|
00001480  22 2c 22 4d 41 58 49 4d  55 4d 20 53 43 52 45 45  |","MAXIMUM SCREE|
00001490  4e 53 20 3d 20 22 0d 05  6e 46 dc 20 22 4c 4f 41  |NS = "..nF. "LOA|
000014a0  44 20 54 45 4c 45 50 52  49 4e 54 45 52 20 44 49  |D TELEPRINTER DI|
000014b0  53 4b 22 2c 22 20 20 20  20 4f 52 20 42 4c 41 4e  |SK","    OR BLAN|
000014c0  4b 20 44 49 53 4b 22 2c  22 20 20 54 48 45 4e 20  |K DISK","  THEN |
000014d0  50 52 45 53 53 20 53 50  41 43 45 22 0d 05 78 45  |PRESS SPACE"..xE|
000014e0  dc 20 22 20 4e 4f 20 52  4f 4f 4d 20 4c 45 46 54  |. " NO ROOM LEFT|
000014f0  20 4f 4e 20 44 49 53 4b  22 2c 22 20 20 20 20 4c  | ON DISK","    L|
00001500  4f 41 44 20 4e 45 57 20  44 49 53 4b 22 2c 22 20  |OAD NEW DISK"," |
00001510  20 20 20 4f 52 20 55 53  45 20 45 44 49 54 4f 52  |   OR USE EDITOR|
00001520  22 0d 05 82 41 dc 20 22  20 54 48 45 52 45 20 41  |"...A. " THERE A|
00001530  52 45 20 4e 4f 20 53 43  52 45 45 4e 53 22 2c 22  |RE NO SCREENS","|
00001540  20 20 20 20 20 20 20 54  4f 20 45 44 49 54 22 2c  |       TO EDIT",|
00001550  22 20 20 20 20 20 50 52  45 53 53 20 53 50 41 43  |"     PRESS SPAC|
00001560  45 22 0d ff                                       |E"..|
00001564
22-01-88/TPRINT2.m0
22-01-88/TPRINT2.m1
22-01-88/TPRINT2.m2
22-01-88/TPRINT2.m4
22-01-88/TPRINT2.m5