; DISKIO (LISTING 7)
MODULE:BYTE err
BYTE ARRAY fln(16),abort=" ÁÂÏÒÔÅÄ "
PROC MyErr(BYTE e)
Position(1,16):Print(" ÅÒÒÏÒ ")
PrintB(e):err=1:mes^=lin21
Position(12,21):PrintB(e)
WHILE key=255 DO OD key=21:RETURN
PROC CIO=$E456(BYTE a,x)
PROC IO2(BYTE cmd CARD buf,len)
BYTE IOcmd=866 ;7-LOAD 11-SAVE
CARD IObuf=868,IOlen=872
IOcmd=cmd:IObuf=buf:IOlen=len
CIO(0,32):RETURN
PROC Dir():BYTE i,j,lft=82
BYTE ARRAY a(18),f(9)
lft=22:Position(22,3)
FOR i=1 TO 11 DO Pb(16):PutE() OD
Position(22,3):j=0
Close(2):Open(2,"D:*.V3D",6,0)
FOR i=1 TO 22 DO InputSD(2,a)
IF a(0)=16 THEN EXIT FI
SCopyS(f,a,3,10):Print(f)
IF j=0 THEN j=1:Put(' )
ELSE j=0:PutE() FI
OD Position(22,14):Print(a)
Close(2):lft=1:RETURN
PROC Inp(BYTE ARRAY f):BYTE i
BYTE ARRAY a(10)
SCopy(f,"D: ")
Position(23,16):Pb(15)
Position(23,16):InputS(a)
i=a(0)+3:IF i>11 THEN i=11 FI
SAssign(f,a,3,10):SAssign(f,".V3D",i,14)
Position(23,16):Print(f):RETURN
PROC SaveP():BYTE k:CARD n,t
Position(1,16):Print(" Ó Á Ö Å ")
Inp(fln)
Position(1,16):Print("[S]- ÓÁÖÅ ")
WHILE key=255 DO OD k=key:key=255
IF k<>62 THEN Position(1,16):Put('S)
Print(abort):RETURN
FI t=Error:Error=MyErr:err=0
n=8*P(0)+18:Close(2):Open(2,fln,8,0)
IF err>0 THEN Close(2):Error=t:RETURN FI
IO2(11,P,n):IO2(11,C7,5):Close(2)
Position(1,16):Print(" ÓÁÖÅÄ ")
Error=t:Dir() RETURN
PROC LoadP():BYTE k:CARD n,t
Position(1,16):Print(" Ì Ï Á Ä ")
Inp(fln)
Position(1,16):Print("[L]- ÌÏÁÄ ")
WHILE key=255 DO OD k=key:key=255
IF k<>0 THEN Position(1,16):Put('L)
Print(abort):RETURN
FI t=Error:Error=MyErr:err=0
Close(2):Open(2,fln,4,0)
IF err>0 THEN Close(2):Error=t:RETURN FI
IO2(7,P,2):n=8*P(0)+16
IO2(7,P+2,n):IO2(7,C7,5):Close(2)
Position(1,16):Print(" ÌÏÁÄÅÄ ")
Error=t:SetDfault():CPon()
Position(30,19):Pb(6):RETURN