# WERSJA 83-03 #PARAMETERS #O #IS #OS WHENEVER COMMAND ERROR,GO TO 1ER MZ 40000 IF PRE(XFAT) OR ABS(XF), FORTRANCOMP *CR INICSTER,*CR INICSOURCE,BIN,*LP INICLST IF PRE(XFIV),FORTRAN *CR INICSTER,*CR INICSOURCE,BIN,*LP INICLST IF NOT HALTED(LD),GOTO 2ER CREATE ! IF ABSENT(IS=),(AS *CR3,BOOTSTRAPTXT) ELSE (AS *CR3,%(IS=)) IF ABSENT(OS=),(SP X,(PROLOGSTAN)) ELSE( SP X,(%(OS=))) IF NOT EXISTS(%X),(CREATE %X(*DA,BUCK1,KWORD15)) AS *DA1,%X(WRITE) IF STRING(%(O=))=(),(ONLINE *LP) ELSE - (IF STRING(%(O=))=(0),(AS *LP0,!(WRITE)) ELSE (AS *LP0,%(O=)(WRITE))) ENTER 0 IF DELETED ,GO TO 1FIN 1ER DP 0,EXECUTION ERROR(S) IN PROGRAM INIC GO TO 1FIN 2ER DP 0,COMPILATION ERROR(S) IN PROGRAM INIC 1FIN IF NOT DELETED,DL ERASE ! DP 0,END OF INICJATOR EXIT #WERSJA 83-03 # # PARAMETERS # # A - TAB # B - PILE # C - WINDOW # D -KOMPILATOR #MZC CREATE ! INPUT !,T####,PS %C,(TC/&TAB/,R/&TAB/%A/,R/&PILE/%B/,)E,E #### EDIT PROLSOURCE,,! ER ! IF PRE(MZC),(MZ %(MZC)) ELSE (MZ 650000) IF PRE(XFAT) OR ABS(XF),FORTRANCOMP *CR PROLSTER,*CR PROLSOURCE,BIN,*LP PROLOGLS SEMI :LIB.SUBGROUPFSCE IF PRE(XFIV),FORTRAN *CR PROLSTER,*CR PROLSOURCE,BIN,*LPPROLOGLST,- SEMI :LIB.SUBGROUPFSCE SAVE PROLBIN(+1) DELETE CREATE ! INPUT !,T####,PS ================================================== KOMPILATOREM %D ZOSTALA UTWORZONA WERSJA INTERPRETERA O WYMIARACH: TAB=%A, PILE=%B UMIESZCZONA NA PLIKU: %^DIRENT(PROLBIN)^ MOZNA JEJ UZYWAC POD SYSTEMEM OPERACYJNYM GEORGE-3 ================================================== #### LF ! ER ! EXIT #WERSJA 83-03 IF PRESENT(MONIT),(TRACE %(MONIT=)) ELSE (TRACE FULLBUT,COMMANDS) # # # # # PARAMETERS #: #SUP #PREFIX #GUIDE #GUIDEONLY #RESUME #INTERP #VER #MZ #T #TRACE OFF #MS #IS #O #AO #I #AI #MONIT # # VARIABLES # #V - :,OWNER #U - PREFIX #X - RESUME,INTERP,VER,MS,IS,OS,SAVE #T - MZ,PAUSE # # PROCESSING SUP # DEFAULT OWNER NAME SHOULD BE DEFINED BELOW IF PRESENT(:),(SP V,(:%(:).)) ELSE (SP V,(:MACROS.)) IF ABSENT(SUP) AND EXISTS(%VPROLMESSAGES) ,LF %VPROLMESSAGES IF PRESENT(PREFIX=),SP U,(%(PREFIX=)) # # PROCESSING GUIDE GUIDEONLY # ACCESS TO FILE PROLOGUIDE # IF ABSENT(GUIDE) ,GO TO 90PR IF EXISTS(%VPROLOGUIDE),GO TO 9002PR DP 0,NO GUIDE IN SYSTEM IF PRESENT(GUIDEONLY),EXIT 9002PR IF STRING(%(GUIDE))=(*) OR STRING(%(GUIDEONLY))=(*),- GO TO 901PR LF %VPROLOGUIDE,*LP,PAGE DP 0,GUIDE SENT TO PRINTER IF PRESENT(GUIDEONLY),EXIT GO TO 90PR 901PR LF %VPROLOGUIDE IF PRESENT(GUIDEONLY),EXIT 90PR # # ERROR CONDITIONS SET ON # WHENEVER COMMAND ERROR , GO TO 91ER WHENEVER FINISH , GO TO 92ER IF NOT MOP , ( WHENEVER JTEX , GO TO 93ER ) # # # WORK FILES CREATION # !0 FOR O=0 ^ !1 FOR OS=0 ^ !2 FOR AO=0 # CREATE ! CREATE !(*DA,BUCK1,KWORD15) CREATE ! # # # PROCESSING : INTERP= VER= RESUME= # ACCESS TO FILES : QSTPROLBIN,PROLBIN # IF ABSENT(RESUME=) AND ABSENT(RESUME) , GO TO 91PR IF STRING(%(RESUME=))=() OR STRING(%(RESUME))=() , ( SP X,(%VQSTPROLBIN) ) ELS ( SP X,(%U%(RESUME=)) ) GO TO 92PR 91PR IF PRESENT(INTERP=) , ( SP X,(%(INTERP=)) ) ELSE - (IF PRESENT(VER=) , ( SP X,(%VPROLBIN(%(VER=))) ) ELSE - ( SP X,(%VPROLBIN) )) 92PR # # # PROCESSING : MZ= T= # IF ABSENT(MZ=) , ( SP T,(45K) ) ELSE - ( SP T,(%(MZ=)) ) MZ %T IF NOT EXISTS(%X) , GO TO 94ER # # LOADING FROM %X # LOAD %X # # CORE IMAGE NOW! # IF PRESENT(T=) , ( TIME %(T=) ) ELSE ( TIME 5MINS ) # # # PROCESSING SWITCHES # IF PRESENT(TRACEOFF) , ON 0 # # # PROCESSING : MS= # ACCESS TO FILE : DEFAULTSTATE # IF STRING(%(MS=))=() , GO TO 93PR IF NOT EXISTS(%U%(MS=)) , ( SP X,(%VDEFAULTSTATE)) ELSE - ( SP X,(%U%(MS=)) ) AS *DA1,%X SP X,DIRENT(%X) DP 0,IS=%X CREATE %U%(MS=)(+1)(*DA,BUCK1,KWORD15) AS *DA3,%U%(MS=)(WRITE) SP X,DIRENT(%U%(MS=)) DP 0,OS=%X GO TO 95PR 93PR # PROCESSING : IS= OS= # ACCESS TO FILES : DEFAULTSTATE, !2 # IF PRESENT(RESUME),GO TO 931PR IF STRING(%(IS=))=() , ( SP X,(%VDEFAULTSTATE)) ELSE - (SP X,(%U%(IS=)) ) IF NOT EXISTS(%X) , GO TO 94ER AS *DA1,%X SP X,DIRENT(%X) DP 0,IS=%X 931PR IF STRING(%(OS=))=() OR STRING(%(OS=))=(0) , (AS *DA3,!1(WRITE)) ELSE - ( GO TO 94PR ) GO TO 95PR 94PR IF NOT EXISTS(%U%(OS=)) , ( CREATE %U%(OS=)(*DA,KWORD15,BUCK1)) SP X,DIRENT(%U%(OS=)) AS *DA3,%X(WRITE) DP 0,OS=%X 95PR # # PROCESSING : O= AO= I= AI= # ACCESS TO FILES : !0 ,!2 # IF NOT STRING(%(O=))=() , - (IF STRING(%(O=))=(0),(AS *LP0,!(WRITE)) ELSE - (AS *LP0,%U%(O=)(APPEND))) ELSE - (ONLINE *LP0) IF STRING(%(I=))=(),(ONLINE *CR0) ELSE - (IF EXISTS(%U%(I=)),(AS *CR0,%U%(I=)) ELSE (GO TO 94ER)) IF PRESENT(I=) , ( SP (I=),() ) IF STRING(%(AI=))=(),(ONLINE *CR2) ELSE - (IF EXISTS(%U%(AI=)),(AS *CR2,%U%(AI=)) ELSE (GO TO 94ER)) IF PRESENT(AI=),( SP (AI=),() ) IF NOT STRING(%(AO=))=() , - (IF STRING(%(AO=))=(0) , ( AS *LP9,!2(WRITE) ) ELSE - ( AS *LP9,%U%(AO=)(APPEND)) ) ELSE - (ONLINE *LP9) IF PRESENT(RESUME) , ( RESUME ) ELSE ( ENTER ) 91CONT IF HALTED(USER),GO TO 92HLT IF FAIL(TIME UP) , GO TO 999ER IF DISPLAY(OK), GO TO 91FIN # # PERIPHERAL HALTED # IF NOT FAIL(FILE *CR0 EXHAUSTED) , GO TO 91HLT IF ABSENT(I=) , GO TO 95ER IF STRING(%(I=))=(),(ONLINE *CR0) ELSE - (IF EXISTS(%U%(I=)),(AS *CR0,%U%(I=)) ELSE (GO TO 94ER)) SP (I=),() RESUME GO TO 91CONT 91HLT IF NOT FAIL(FILE *CR2 EXHAUSTED) , GO TO 96ER IF ABSENT(AI=) , GO TO 97ER IF STRING(%(AI=))=(),(ONLINE *CR2) ELSE - (IF EXISTS(%U%(AI=)),(AS *CR2,%U%(AI=)) ELSE (GO TO 94ER)) SP (AI=),() RESUME GO TO 91CONT 92HLT # # PAUSE PROCESSING # DP 0, PAUSE IN PROLOG IF STRING"%(PAUSE=)">"(" , ( SP T,(%'PAUSE=(' ) ) ELSE - ( SP T,(%'PAUSE=' ) ) IF STRING(%T)=(),GO TO 93HLT DP 0,CALLING (%T) %T 911CONT DP 0,AGAIN IN PROLOG IF NOT CORE,GO TO 98ER RESUME GO TO 91CONT 93HLT IF NOT MOP,GO TO 99ER QUESTION 0, GO TO 911CONT # # # 91FIN # TERMINATION # ER !,!,! IF CORE,DELETE DP 0,END OF PROLOG EXIT # # # # ERROR PROCESSING # 91ER DP 0,COMMAND ERROR GO TO 91FIN 92ER DP 0,SYSTEM CLOSING SP X , (%UCLOSED) 921ER IF PRESENT(SAVE=) , ( SP X,(%U%(SAVE=)) ) SAVE %X SP X,DIRENT(%X) DP 0,PROGRAM SAVED IN FILE DP 0,%X GO TO 91FIN 93ER DP 0,JOB TIME EXCEEDED SP X,(%UJTEXC) GO TO 921ER 94ER SP X,DIRENT(%X) DP 0,FILE NOT FOUND DP 0,NAME = %X GO TO 91FIN 95ER DP 0, NO MORE 'I=' PARAMETERS SP X,(%UI EOI) IF NOT MOP,GO TO 921ER QUESTION 0,ANSWER FILE NAME AS *CR0,%^DISPLAY^ RESUME GO TO 91CONT 96ER DP 0,EXECUTION ERROR(S) GO TO 91FIN 97ER DP 0,NO MORE 'AI=' PARAMETERS SP X,(%UAI EOI) IF NOT MOP,GO TO 921ER QUESTION 0,ANSWER FILE NAME AS *CR2,%^DISPLAY^ RESUME GOTO 91CONT 98ER DP 0,RESUME IMPOSIBLE IN NO CORE CONTEXT GO TO 91FIN 99ER DP 0,NO 'PAUSE' PARAMETER IN NOT MOP CONTEXT SP X,(%UPAUSEP) GO TO 921ER 999ER SP X,(%UTIMEUP) GO TO 921ER