mirror of
https://github.com/SEPPDROID/Digital-Research-Source-Code.git
synced 2025-10-25 17:34:06 +00:00
118 lines
2.5 KiB
Plaintext
118 lines
2.5 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;
|