DEFINITION MODULE DRIVES;
PROCEDURE OPEN(Drive:SHORTCARD;FileName:ARRAY OF CHAR;
          Channel:SHORTCARD);
PROCEDURE CLOSE(Channel:SHORTCARD);
PROCEDURE ERASE(Drive:SHORTCARD;FileName:ARRAY OF CHAR);
PROCEDURE EOF(Channel:SHORTCARD):BOOLEAN;
PROCEDURE RELOAD(Drive:SHORTCARD;FileName:ARRAY OF CHAR);
PROCEDURE SAVE(Drive:SHORTCARD;FileName:ARRAY OF CHAR;
               START,LEN:CARDINAL);
PROCEDURE LOAD(Drive:SHORTCARD;FileName:ARRAY OF CHAR;
                START:CARDINAL);
PROCEDURE CAT(Drive:SHORTCARD);
PROCEDURE RDEXISTS(FileName:ARRAY OF CHAR):BOOLEAN;
PROCEDURE RDROOM():CARDINAL;
CONST D=0BD9BH;
VAR  ExistAction:(Error,Overwrite);
VAR [D+31] Bch:CHAR;
VAR [D+35] FileLen:CARDINAL;

END DRIVES.
 
IMPLEMENTATION MODULE DRIVES;
VAR [D+3] DRNO:CARDINAL;
VAR [D+8] NAMSTO:ARRAY [0..11] OF CHAR;
VAR [D+32] FBLST:CARDINAL;SACT:SHORTCARD;
VAR [D+37] RELOD:CARDINAL;
VAR [0BD02H] OUTCHN:SHORTCARD;
 
PROCEDURE OPEN(Drive:SHORTCARD;FileName:ARRAY OF CHAR;
          Channel:SHORTCARD);HEX
01 E2 FA DD E1 3B F1 08 18 23
END OPEN;
 
PROCEDURE ERASE(Drive:SHORTCARD;FileName:ARRAY OF CHAR);HEX
01 E5 FB 18 0A
END ERASE;
 
PROCEDURE LOAD(Drive:SHORTCARD;FileName:ARRAY OF CHAR;
                Start:CARDINAL);HEX
01 E7 F9 DD E1 18 10
END LOAD;
 
PROCEDURE RELOAD(Drive:SHORTCARD;FileName:ARRAY OF CHAR);HEX
01 E9 FB DD E1 18 10
END RELOAD;
 
PROCEDURE SAVE(Drive:SHORTCARD;FileName:ARRAY OF CHAR;
               Start,Length:CARDINAL);HEX
01 E8 F7 DD E1 E1 22 (@FileLen) E1 22 (@FBLST) 22 (@RELOD)
D9 E1 C1 3B F1 CD (@EOF+9) 3A (@ExistAction) 32 (@SACT) D9 58
16 FF EB 39 F9 DD E5 08 C3 (@74) END SAVE;
 
PROCEDURE CLOSE(Channel:SHORTCARD);HEX
0E E3 18 F9
END CLOSE;
 
PROCEDURE CAT(Drive:SHORTCARD);HEX
0E E6 32 (@DRNO) 3A (@OUTCHN) 18 EF
END CAT;
 
PROCEDURE RDROOM():CARDINAL;HEX
0E EA 3E 0D 18 F2 END RDROOM;
 
PROCEDURE EOF(Channel:SHORTCARD):BOOLEAN;HEX
0E E4 CD (@74) 37 C8 3F C9 32 (@DRNO) 03 11 (@NAMSTO)
06 0C AF BE 28 09 B9 28 06 ED A0 10 F6 18 05 3E
20 12 13 10 FC 3E FF 12 C9 END EOF;
 
PROCEDURE RDEXISTS(FileName:ARRAY OF CHAR):BOOLEAN;HEX
3E 0D CD (@EOF+9) 0E E1 CD (@74) 37 C0 3F C9 END RDEXISTS;
 
PROCEDURE INIT;HEX C3 (@74-7) END INIT;

BEGIN
INIT;
ExistAction:=Overwrite
END DRIVES.
