The user may wish to run programs written in Pascal/MT+ in a ROM based system. This has been a design goal from the beginning and has been done successfully by many users.
The steps required to put a program into ROM are presented below.
PROCEDURE @INI; BEGIN END;
LINKMT USERPROG,MYWNC,MYRNC,GET,MYINI,PASLIB/S
Listed below are three skeletons for the @INI, @RNC, and @WNC routines which can be used in ROM environments.
;---------------------------------------------------------------; ; SAMPLE INITIALIZATION ROUTINE ; ;---------------------------------------------------------------; PUBLIC @INI PUBLIC @SYSIN ;SYSTEM INPUT VECTOR PUBLIC @SYSOUT ;SYSTEM OUTPUT VECTOR PUBLIC INPUT ;DEFAULT INPUT FIB ;THIS MUST BE PRESENT EVEN IF NO ;FILE I/O IS DONE PUBLIC OUTPUT ;AGAIN MUST BE PRESENT EVEN IF NO ;FILE I/O IS DONE EXTRN @RNC EXTRN @WNC @INI: LXI H,@RNC SHLD @SYSIN LXI H,@WNC SHLD @SYSOUT ; ; ... ADD MORE HERE FOR HEAP, ETC. PRUNE FROM STANDARD @INI ; RET DSEG @SYSIN: DS 2 @SYSOUT: DS 2 INPUT: DS 1 ;DUMMY FIB OUTPUT: DS 1 ;DUMMY FIB END ;AND THAT'S A SIMPLE ONE ;---------------------------------------------------------------; ; SAMPLE @RNC - READ NEXT CHARACTER ROUTINE ; ;---------------------------------------------------------------; PUBLIC @RNC @RNC: ; INCLUDE CODE HERE TO GET CHARACTER INTO A-REG AND ; ECHO IT. ALSO IF USER WANTS TO SIMULATE CON: THE ; THE DRIVER MUST ECHO BACKSPACE AS <BACKSPACE, SPACE, ; BACKSPACE> AND CR AS CR/LF MOV L,A MVI H,0 XTHL ;PUT FUNC VALUE ON STACK AND ;RET ADDR IN HL PCHL ;RETURN END ;---------------------------------------------------------------; ; SAMPLE @WNC - WRITE NEXT CHARACTER ROUTINE ; ;---------------------------------------------------------------; PUBLIC @WNC @WNC: POP H ;GET RET ADDR XTHL ;PUT IT BACK AND GET PARM CHAR ; CODE HERE TO WRITE CHARACTER IN L-REG TO OUTPUT DEVICE ; IF USER WANTS TO SIMULATE CON: COMPLETELY THE USER ; MUST OUTPUT CR AS CR/LF RET END