|  | DataMuseum.dkPresents historical artifacts from the history of: RegneCentralen RC700 "Piccolo" | 
This is an automatic "excavation" of a thematic subset of
 See our Wiki for more about RegneCentralen RC700 "Piccolo" Excavated with: AutoArchaeologist - Free & Open Source Software. | 
top - metrics - download
    Length: 1664 (0x680)
    Types: TextFile
    Names: »PINI.SRC«
└─⟦8dcf1351b⟧ Bits:30004118/disk2.imd SW1720/I5 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»