Pascal [Rev 3.0M 6/ 4/84] RISOD.TEXT 28-Jun-89 17:45:03 Page 1 1:D 0 (* sccs info: @(#) risod 8.1 84/05/04 00:21:40 *) 2:S 3:D 0 $modcal, debug off, range off, ovflcheck off, stackcheck off, callabs off$ 4:D 0 $search 'BRDECS', 'SR'$ 5:S 6:D 0 (****************************************************************************) 7:D 0 (* Read Interface for Sector-oriented Devices *) 8:D 0 (****************************************************************************) 9:S 10:D 0 module risod; 11:S 12:D 1 import 13:D 1 brdecs, sr; 14:S 15:D 1 export 16:D 1 function init: boolean; 17:D 1 function fopen(var filename: string255; var exec_addr: anyptr; 18:D 2 var length: integer; var filetype: signed16): boolean; 19:D 1 procedure read(sector_addr, length: integer; anyvar buf: char; media_addressing: boolean); 20:S 21:D 1 implement {risod} 22:S 23:D 1 function init: boolean; 24:D 2 var 25:D -2 2 device: dev_type; 26:C 2 begin {init} 27:C 2 with f_area^.m_msus do 28:C 3 try 29:C 4 device := dev; {remember the user-specified dev} 30:C 4 dd_unit_init; {amigo & cs80 drivers may change m_msus.dev!} 31:C 4 if device<>dev then escape(ec_no_device); {dev matched controller, but not actual unit} 32:C 4 dd_deviceread(fubuffer, 256, 0); 33:C 4 init := dm_sysrec_valid; 34:C 4 recover 35:C 4 begin 36:C 4 if not (escapecode in [ec_no_device, ec_no_medium, ec_not_ready]) then 37:C 5 escape(escapecode); 38:C 4 init := false 39:C 4 end; {recover} 40:C 2 end; {init} 41:S 42:D 1 function fopen(var filename: string255; var exec_addr: anyptr; 43:D 2 var length: integer; var filetype: signed16): boolean; 44:C 2 begin {fopen} 45:C 2 fopen := dm_fileopen(filename, filetype, f_area^.m_filesec, length, exec_addr); 46:C 2 end; {fopen} 47:S 48:D 1 procedure read(sector_addr, length: integer; anyvar buf: char; media_addressing: boolean); 49:C 2 begin {read} 50:C 2 if not media_addressing then 51:C 3 sector_addr := sector_addr+f_area^.m_filesec; 52:C 2 dd_deviceread(buf, length, sector_addr); 53:C 2 end; {read} 54:S 55:C 1 end. {risod} 56:S No errors. No warnings. ***** Nonstandard language features enabled *****