|
|
DataMuseum.dkPresents historical artifacts from the history of: CP/M |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about CP/M Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 1664 (0x680)
Types: TextFile
Names: »PINI.SRC«
└─⟦02f213fda⟧ Bits:30008919 MT+ SPP 2/3
└─⟦this⟧ »PINI.SRC«
└─⟦8dcf1351b⟧ Bits:30004118/disk2.imd SW1720/I5 Pascal/MT+ Release 5.5
└─⟦this⟧ »PINI.SRC«
└─⟦c9df7130d⟧ Bits:30005915 Pascal MT+ Release 5.2 (Jet-80)
└─⟦this⟧ »PINI.SRC«
└─⟦e44a40b06⟧ Bits:30005968 SW1820/I8 RC855 Pascal MT+ Release 5.5
└─⟦this⟧ »PINI.SRC«
MODULE INITIALIZE;
CONST
HW_STACK_SIZE = 128; (* NUMBER OF BYTES RESERVED FOR HARDWARE STACK *)
(* CHANGE IS HEAVY RECURSION IS USED *)
(*$I FIBDEF.LIB*)
VAR
SYSMEM : EXTERNAL INTEGER; (* TOP OF HEAP *)
@SFP : EXTERNAL INTEGER; (* TOP OF RECURSION STACK *)
@EFL : ^INTEGER; (* USED BY FULLHEAP *)
@FRL : RECORD
LINK : ^INTEGER;
SIZE : INTEGER
END; (* USED ALSO BY FULLHEAP *)
INPUT,
OUTPUT: FIB; (* DEFAULT CONSOLE FILES *)
@TFN: STRINGÆ2Å; (* FOR TEMP. FILE NAMES *)
@SYSIN,
@SYSOU: INTEGER; (* I/O VECTORS *)
@RNC,
@WNC: EXTERNAL INTEGER; (* REALLY SUBROUTINES BUT JUST *)
(* NEED THESE TO GET THEIR ADDRESSES *)
(*$E-*) (* HIDE GETSP *)
FUNCTION GETSP:INTEGER;
VAR
TEMPINT: INTEGER; (* FOR CAPTURING STACK POINTER *)
BEGIN
INLINE("LXI H / 0 / 0 / "DAD SP / "SHLD / TEMPINT);
GETSP := TEMPINT
END;
(*$E+*)
PROCEDURE @INI;
BEGIN
@FRL.LINK := NIL;
@FRL.SIZE := 0;
@EFL := NIL;
SYSMEM := ADDR(SYSMEM) + 2; (* SO SYSMEM POINTS TO FREE AREA *)
@SFP := GETSP - HW_STACK_SIZE;
@TFN := '00';
WITH INPUT DO
BEGIN
IOSIZE := 1;
BUFLEN := 1;
OPTION := FCONIO;
FTEXT := TRUE;
FBUFFERÆ0Å := ' ';
FBUFADR := WRD(ADDR(INPUT.FBUFFER))
END;
WITH OUTPUT DO
BEGIN
IOSIZE := 1;
BUFLEN := 1;
OPTION := FCONIO;
FTEXT := TRUE;
FBUFFERÆ0Å := ' ';
FBUFADR := WRD(ADDR(OUTPUT.FBUFFER))
END;
@SYSIN := ADDR(@RNC);
@SYSOU := ADDR(@WNC)
END;
MODEND.
«eof»