|
|
DataMuseum.dkPresents historical artifacts from the history of: Philips Data Systems |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Philips Data Systems Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 7976 (0x1f28)
Notes: pts_type(SC)
Names: »INTVMA.SC«
└─⟦c47f25c27⟧ Bits:30009688 Philips computer tape "600318"
└─⟦this⟧ »M:KMDV/INTVMA.SC«
IDENT INTVMA REL 8.2 78-09-15 870105040820
*
***************************************************
*
* PHILIPS TERMINAL SYSTEM PTS
*
* INTVMA = INTERRUPT VECTORS AND SYSTEM START
* MONITOR AND APPLICATION ON ONE CAS
*
*
*
*
*
***************************************************
*
*
* THIS MODULE CONTAINS HARDWARE INTERRUPT VECTORS,
* COMMUNICATION VECTOR TABLE,STACK AREA
* AND MONITOR INITIALIZATION.
*
*
EJECT
ENTRY CVTMSZ MEMORY SIZE
ENTRY CVTSTB STACK BASE
ENTRY CVTSBA ADDRESS TO START OF BUFFER POOL
ENTRY CVTEBA ADDRESS TO END OF BUFFER POOL
ENTRY CVTINP INTERPRETER ADDRESS TABLE
ENTRY CVTDK START UP DISC
ENTRY CVTAPA APPLICATION ADDRESS
ENTRY CVTAPS APPLICATION START ADDRESS
ENTRY CVTCLK REAL TIME CLOCK
ENTRY LOOP IDLE LOOP
ENTRY INIM40 MONCON ENTRY
ENTRY CVTLSB SEGMENT LOAD BLOCK TABLE ADDRESS
ENTRY FREPAR FREE PARTITION POINTER
ENTRY PARLEN PARTITION LENGTH
ENTRY NUMPAR NUMBER OF PARTITIONS
EXTRN IHPFAR POWER FAIL / AUTO RESTART
EXTRN IHLKM LKM INTERRUPT
EXTRN IHRTC REAL TIME CLOCK
EXTRN IHTC CASSETTE TAPE
EXTRN IHSOP SYSTEM OPERATORS PANEL
**
**
EXTRN CHLT1 LOCAL CHANNEL UNIT NO. 1
EXTRN IHFD FLOPPY DISCEN
EXTRN ILLINT ILLEGAL INTERRUPT
EXTRN HALT HALT ROUTINE
EXTRN TCTAB
EXTRN TTB:ID TASK IDENTIFICATION
EXTRN TTB:ST TASK STATUS AND LEVEL
EXTRN PRUN TTAB FOR RUNNING PROGRAM
EXTRN INIMON MONITOR INITIALIZATION ROUTINE
EXTRN BUG BUGGER
EXTRN PFINIT INIT AFTER MASTER CLEAR
*
CHCR EQU /0E CHCR DEVICE ADDRESS
SOP EQU /2E SOP DEVICE ADDRESS
X:A EQU 0
SEGLEN EQU X:A SEGMENT LENGTH IN BYTES
X:B EQU 0
NUMPAR EQU X:B NUMBER OF PARTITIONS
* BY SETTING X:A NOT EQUAL TO ZERO, UNLOAD IS NOT
* PERFORMED ON CASSETTE AFTER THE APPLICATION LOADING
*
X:C EQU 0
UNLOAD EQU 1
REL0 EQU *
EJECT
*
* INTERRUPT VECTORS
*
DATA IHPFAR 0
DATA IHLKM 1
DATA IHRTC 2
DATA ILLINT 3
DATA ILLINT 4
DATA ILLINT 5
DATA ILLINT 6
DATA ILLINT
DATA IHTC 8
DATA IHSOP 9
DATA ILLINT
DATA ILLINT
DATA ILLINT
DATA ILLINT
DATA CHLT1 14
DATA IHFD 15
DATA ILLINT
DATA ILLINT
DATA ILLINT
DATA ILLINT
DATA ILLINT
DATA ILLINT
DATA ILLINT 22
DATA ILLINT
DATA CHLT1 24
DATA ILLINT
DATA ILLINT
DATA ILLINT
DATA ILLINT 28
DATA ILLINT 29
DATA IHFD 30
DATA ILLINT 31
DATA ILLINT 32
DATA ILLINT 33
DATA ILLINT
DATA ILLINT
DATA ILLINT 36
DATA ILLINT 37
DATA ILLINT 38
DATA ILLINT 39
DATA ILLINT
DATA ILLINT
DATA ILLINT 42
DATA ILLINT 43
DATA ILLINT
DATA ILLINT 45
DATA ILLINT 46
DATA ILLINT 47
DATA ILLINT 48
DATA ILLINT 49
DATA ILLINT 50
DATA ILLINT 51
DATA ILLINT 52
DATA ILLINT 53
DATA ILLINT 54
DATA ILLINT 55
DATA ILLINT 56
DATA ILLINT 57
DATA ILLINT 58
DATA ILLINT 59
DATA ILLINT 60
DATA ILLINT 61
DATA ILLINT 62
DATA TRAP TRAP ROUTINE
HLT
EJECT
*
* SYSTEM HALTS
*
HLT
HLT
*
* COMMUNICATION VECTOR TABLE
*
CVTMSZ DATA 0 MEMORY SIZE
CVTSTB DATA STB STACK BASE
CVTSBA DATA 0 START OF BUFFER AREA
CVTEBA DATA 0 END OF BUFFER AREA
CVTINP DATA 0 INTERPPRETER TABLE ADDRESS
RF INIT
RF BUGG
CVTAPA DATA 0 APPLICATION ADDRESS
CVTAPS DATA 0 APPLICATON START ADDRESS
CVTCLK DATA 0 REAL TIME CLOCK
CVTLSB EQU *
CVTDK EQU *
FREPAR EQU *
PARLEN EQU *
EJECT
*
* INIMON AND BUGGER ENTRIES
*
INIT LDKL A1,INIMON INITIALIZE AND START APPL
RF BRANCH
BUGG LDKL A13,/90 START BUGGER
LDKL A14,-8
AD A14,CVTAPA
LDKL A1,BUG
BRANCH ABR(NZ) A1
HLT
TRAP LDKL A1,/D HALT PARAMETER
CF A15,HALT
EJECT
*
* SUBROUTINE TO EXECUTE CHCR COMMAND
*
CHCREX CIO A1,1,CHCR
SST A3,CHCR
RB(NA) *-2
RTN A8
EJECT
*
* INITIALIZATION ENTRY
*
INIM LDK A6,CHCREX-REL0 LOAD CHCREX SUBR ADDRESS
LDR A8,P AND STACK BASE
ST A9,CVTAPA SAVE APPL ADDRESS
ADR A14,A9 CALC APPL LINK BASE
*
* COMPUTE MEMORY SIZE
*
LDKL A1,/5555
LDKL A2,4094
INIM30 SUKL A2,4096
LDR* A3,A2 SAVE CONTENTS
STR A1,A2 CHECK IF MEMORY
CWR* A1,A2
RB(NE) INIM30
STR A3,A2 RESTORE CONTENTS
ADK A2,2
ST A2,CVTMSZ MEMORY SIZE TO CVT
SUK A2,2
ST A2,CVTEBA END OF BUFFER POOL
EJECT
*
* LOAD APPLICATION
*
LDKL A1,/0400 IND LOAD ON SOP
OTR A1,0,SOP
LDKL A12,INIM20 INSTRUCTION AFTER APL
ABR A2 PERFORM APL
INIM20 EQU *
IFT UNLOAD=0
LDK A1,/F
CFR A8,A6
XIF
ST A9,CVTSBA SET ADDRESS TO BEGINNING OF BUFFER POOL
ST A13,CVTAPS SAVE START ADDRESS
EJECT
*
* INITIALIZE STACK
*
INIM40 LD A15,CVTSTB LOAD STACK BASE
LDKL A1,LOOP
STR A1,A15
LDKL A1,/FC00
STR A1,A15 ADJUST STACK FOR LOOP
SUKL A15,28
LDK A1,0
STR A1,A15
EJECT
*
* FIND FIRST USER TASK
*
LD A1,TCTAB TCTAB ADDRESS
LDR* A4,A1 TCTAB LENGTH
INIM50 ADK A1,2
SUK A4,2
RF(NZ) INIM60
HLT NO USER TASK FOUND
INIM60 LDR* A5,A1 TTAB ADDRESS
LD A2,TTB:ID,A5 TASK IDENTIFICATION
RB(N) INIM50 MONITOR TASK
ST A5,PRUN SET TTAB FOR RUNNING PROGRAM
CMR A5
LD A7,TTB:ST,A5 GET USER LEVEL
SRC A7,6
EJECT
*
* START SYSTEM
*
LDKL A13,WAITIS
STR A13,A15 STORE USER START ADDRESS
STR A7,A15 AND LEVEL ON STACK
ABL PFINIT INITIALIZE DEVICES
RES 80
STB EQU *-2 STACK BASE
*
* IDLE LOOP
*
LOOP RB *
WAITIS EQU *
LDKL A8,10
LKM
DATA 6
LDK A1,0 EXIT PARAMETER = CASSETTE
ABI CVTAPS
END INIM