mirror of
https://github.com/SEPPDROID/Digital-Research-Source-Code.git
synced 2025-10-23 08:24:18 +00:00
118 lines
2.8 KiB
Plaintext
118 lines
2.8 KiB
Plaintext
$title ('INTERFACE TO CP/M I/O')
|
||
io:
|
||
do;
|
||
|
||
/*
|
||
Template for all BDOS calls
|
||
*/
|
||
|
||
/*
|
||
|
||
modified 3/26/81 R. Silberstein
|
||
modified 6/16/81 R. Silberstein
|
||
modified 9/14/81 R. Silberstein
|
||
|
||
*/
|
||
|
||
declare tbuff (80h) byte external;
|
||
|
||
mon1: procedure (func,info) external;
|
||
declare func byte;
|
||
declare info address;
|
||
end mon1;
|
||
|
||
mon2: procedure (func,info) byte external;
|
||
declare func byte;
|
||
declare info address;
|
||
end mon2;
|
||
|
||
/**************************************
|
||
* *
|
||
* B D O S Externals *
|
||
* *
|
||
**************************************/
|
||
|
||
system$reset: procedure public;
|
||
call mon1 (0,0);
|
||
end system$reset;
|
||
|
||
read$console: procedure byte public;
|
||
return mon2 (1,0);
|
||
end read$console;
|
||
|
||
write$console: procedure (char) public;
|
||
declare char byte;
|
||
call mon1 (2,char);
|
||
end write$console;
|
||
|
||
write$list: procedure (char) public;
|
||
declare char byte;
|
||
call mon1 (5,char);
|
||
end write$list;
|
||
|
||
constat: procedure byte public;
|
||
return mon2 (11,0);
|
||
end constat;
|
||
|
||
VERSION: PROCEDURE ADDRESS PUBLIC;
|
||
RETURN MON2 (12, 0);
|
||
END VERSION;
|
||
|
||
select$disk: procedure (disk$number) public;
|
||
declare disk$number byte;
|
||
call mon1 (14,disk$number);
|
||
end select$disk;
|
||
|
||
set$DMA$address: procedure (DMA$address) public;
|
||
declare DMA$address address;
|
||
call mon1 (26,DMA$address);
|
||
end set$DMA$address;
|
||
|
||
open$file: procedure (fcb$address) byte public;
|
||
declare fcb$address address;
|
||
CALL SET$DMA$ADDRESS (.TBUFF); /* FOR 1.4 SYSTEMS */
|
||
return mon2 (15,fcb$address);
|
||
end open$file;
|
||
|
||
OPEN$RO$FILE: PROCEDURE (FCB$ADDRESS) BYTE PUBLIC;
|
||
DECLARE FCB$ADDRESS ADDRESS, FCB BASED FCB$ADDRESS (32) BYTE;
|
||
FCB (6) = FCB (6) OR 80H;
|
||
RETURN OPEN$FILE (FCB$ADDRESS);
|
||
END OPEN$RO$FILE;
|
||
|
||
close$file: procedure (fcb$address) byte public;
|
||
declare fcb$address address;
|
||
return mon2 (16,fcb$address);
|
||
end close$file;
|
||
|
||
delete$file: procedure (fcb$address) public;
|
||
declare fcb$address address;
|
||
CALL mon1 (19,fcb$address);
|
||
end delete$file;
|
||
|
||
read$record: procedure (fcb$address) byte public;
|
||
declare fcb$address address;
|
||
return mon2 (20,fcb$address);
|
||
end read$record;
|
||
|
||
write$record: procedure (fcb$address) byte public;
|
||
declare fcb$address address;
|
||
return mon2 (21,fcb$address);
|
||
end write$record;
|
||
|
||
create$file: procedure (fcb$address) byte public;
|
||
declare fcb$address address;
|
||
return mon2 (22,fcb$address);
|
||
end create$file;
|
||
|
||
interrogate$disk: procedure byte public;
|
||
return mon2 (25,0);
|
||
end interrogate$disk;
|
||
|
||
crlf: procedure public;
|
||
call write$console (0dh);
|
||
call write$console (0ah);
|
||
end crlf;
|
||
|
||
end io;
|
||
|