See all articles from ZXir QLive Alive! v8 n4
This HiSoft PASCAL source code provides the procedures and functions required for reading and writing sequential files to a LarKen DOS formatted diskette.
Program LkDOSLib;
A Library of LkDOS File Procedures and Functions
OpenFile- Open For Sequential Read
RdChar - Read 1 Char From File
Eof- True If Last Char Has Been Read
CloseFile - Closes Buffer, Frees DOS Commands
GoToDrive - Select Drive 0 or 1
Catalog - Simple Cat List
History:
Written by Larry Kenny
Navan, Ontario, Canada, 1989
VAR C : CHAR;
A : INTEGER;
FLAG : BOOLEAN;
FUNCTION Eof : BOOLEAN;
BEGIN
INLINE(#CD,#62,#00,#3A,#0F,#20,#FE,#40,
#28,#04,#3E,#FF,#18,#01,#AF,#DD,#77,#02,
#CD,#BA,#00);
END;
PROCEDURE Catalog;
BEGIN
INLINE(#F3,#CD,#62,#00,#AF,#32,#1D,#20
,#CD,#7E,#00,#CD,#7B,#00,#21,#88
,#20,#3E,#0D,#D7,#06,#03,#23,#7E
,#FE,#FA,#28,#20,#FE,#FF,#20,#F6
,#23,#7E,#FE,#FE,#28,#F0,#7E,#FE
,#FD,#28,#06,#E5,#D7,#E1,#23,#18
,#F5,#05,#28,#DD,#3E,#20,#D7,#3E
,#20,#D7,#18,#DA,#CD,#BA,#00,#00);
WRITELN;
END;
PROCEDURE GoToDrive(DV:INTEGER);
BEGIN
IF (DV=0) OR (DV=1) THEN
BEGIN
DV:=(DV+1)*2;
POKE(23728,CHR(DV));
INLINE(#CD,#62,#00,#3A,#B0,#5C,
#32,#03,#20,#CD,#BA,#00);
END
ELSE WRITELN('NON-EXISTANT DRIVE');
END;
PROCEDURE OpenFile;
BEGIN
WRITE('ENTER FILE TO OPEN ');
READLN;
INLINE(#CD,#62,#00,#21,#0F,#77,#11,#22,
#20,#06,#0A,#7E,#FE,#20,#30,#02,
#3E,#20,#12,#23,#13,#10,#F4,#3E,
#00,#32,#B0,#5C,#CD,#84,#00,#3A,
#20,#20,#FE,#0A,#28,#2B,#CD,#87,
#00,#21,#44,#20,#22,#2C,#20,#2A,
#2C,#20,#23,#22,#2C,#20,#7E,#FE,
#F9,#28,#19,#32,#1D,#20,#CD,#7E,
#00,#CD,#7B,#00,#21,#88,#20,#22,
#7C,#20,#3E,#40,#32,#0F,#20,#18,
#03,#32,#B0,#5C,#CD,#BA,#00,#00);
IF PEEK(23728,CHAR)=CHR(10) THEN
WRITELN('FILE NOT FOUND');
END;
PROCEDURE RdChar(VAR CH:CHAR);
BEGIN
INLINE(#16,#05,#CD,#6A,#00,#DD,#6E,#02,
#DD,#66,#03,#77);
END;
PROCEDURE CloseFile;
BEGIN
INLINE(#CD,#62,#00,#AF,#32,#0F,#20,#CD,#BA,#00);
END;
BEGIN {Mainline program and Demonstration}
GoToDrive(0);
Catalog;
OpenFile;
REPEAT
BEGIN
RdChar(C);
WRITE(C);
END;
UNTIL Eof;
CloseFile;
END.