Classic Computer Magazine Archive PROGRAM LISTING: 85-06/DISKIO.ACT


; 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


Back to previous page