1
0
mirror of https://github.com/PDP-10/its.git synced 2026-03-25 17:58:40 +00:00

Overlay Freeway Crossing and exit back to SSV.

Put the game code at address 10000 to avoid clobbering SSV.
^Z exits back to timesharing.
This commit is contained in:
Lars Brinkhoff
2025-06-18 12:46:07 +02:00
parent 8976a9f733
commit 9f92760301

View File

@@ -1,6 +1,8 @@
TITLE FREEWAY CROSSING PROGRAM
IFNDEF BEGIN, BEGIN=10000
.INSRT IMLAC;IMDEFS
LOC 100
.ADDR.=1
LOC BEGIN
JMS INPUT ;MAIN PROGRAM
JMS START1 ;START UP BY INITIALIZING
LOOP1: JMS KEYS ;CHECK AND ACT ON KEYBOARD
@@ -24,13 +26,13 @@ LOOP2: JMS POS ;MODIFY CAR POSITIONS
JMS EXEC ;EXECUTE DISPLAY
JMP LOOP2 ;END OF MAIN PROGRAM,LOOP
POS: 0 ;GET NEW CAR POSITIONS
LAW CARTAB ;INDEXING
LAC [CARTAB] ;INDEXING
DAC NCARTAB' ;FOR CAR TABLE
LAW RVEL ;INDEXING
LAC [RVEL] ;INDEXING
DAC NRVEL' ;FOR RANDOM VELOCITY
LAW VEL ;INDEXING
LAC [VEL] ;INDEXING
DAC NVEL' ;FOR VELOCITIES
LAW POSIT
LAC [POSIT]
DAC NPOSIT' ;FOR CURRENT POSITIONS
LWC 6 ;LOOP SIX TIMES
DAC CTR'
@@ -147,6 +149,9 @@ KEYS: 0 ;KEYBOARD READ ROUTINE
CLA
KRC
SAM [1372] ;CONTROL-Z
JMP .+2
I JMP [101] ;BACK TO SSV
AND [177]
SAM [2] ;TRANSMIT
JMP K2
@@ -221,7 +226,7 @@ INPUT: 0 ;INPUT VELOCITIES, ETC.
ASN ;IF MISTAKE AND SET TO 0, SET TO 1
COA
DAC SUBVEL' ;STORE VELOCITY
LAW TAB1
LAC [TAB1]
ADD SUBVEL'
DAC VADR'
I LAC VADR'
@@ -277,11 +282,11 @@ INCAR: LAC [B] ;INITIALIZE OUTPUT BUFFER
SUB NK2'
JMS OUTPUT ;OUTPUT SCORMX
HLT ;INPUT CAR SPEEDS
LAW CARTAB ;INDEXING
LAC [CARTAB] ;INDEXING
DAC NCARTAB' ;FOR CAR CALLS
LAW RVEL
LAC [RVEL]
DAC NRVEL' ;FOR RANDOM VELOCITIES
LAW VEL
LAC [VEL]
DAC NVEL' ;FOR VELOCITIES
LWC 6
DAC CTR' ;LOOP SIX TIMES
@@ -347,7 +352,7 @@ SCORMD: 0 ;ROUTINE TO MODIFY SCORE
DAC NSCORE'
CLA ;NOW PUT IN DISPLAY
DAC BLANK' ;BLANK INDICATOR
LAW NUM1
LAC [NUM1]
DAC NNUM1'
LAW 12
DAC SDIV
@@ -402,9 +407,10 @@ START1: 0 ;ALTERNATE START LOCATION
CLA
DAC OTC'
START4: LAC PERMSET'
IOF
ASZ
JMP START3
LAW TAB
LAC [TAB]
DAC VADR'
LAC TAB
DAC DIGIT
@@ -464,9 +470,9 @@ ENDD: 0 ;DID THE SUBJECT MAKE IT?
CRASH: 0 ;ROUTINE TO CHECK FOR CRASH
KSN
KRC ;CLEAR KEYBOARD
LAW POSIT ;INDEXING
LAC [POSIT] ;INDEXING
DAC NPOSIT' ;FOR POSITIONS
LAW VEL
LAC [VEL]
DAC NVEL'
LWC 6
DAC CTR' ;LOOP COUNTER
@@ -517,6 +523,9 @@ CRASH1: KSN ;CHECK KEYBOARD
JMP CRASH1
CLA
KRC
SAM [1372] ;CONTROL-Z
JMP .+2
I JMP [101] ;BACK TO SSV
AND [177]
SAM [2] ;CHECK FOR XMIT
JMP CRASH1 ;IF NOT LOOP
@@ -814,7 +823,7 @@ EXEC: 0 ;EXECUTE ONE DISPLAY CYCLE
LDA ;LOAD DATA SWITCHES
ASM ;SKIP IF BIT 0 ON
HLT ;OTHERWISE STOP
LAW DIS ;GET DISPLAY ADDRESS
LAC [DIS] ;GET DISPLAY ADDRESS
DLA
DON ;RUN DISPLAY
I JMP EXEC ;RETURN
@@ -1151,6 +1160,7 @@ REST: DNOP ;DISPLAY WAIT ROUTINE
DNOP
DRJM ;RETURN
DIS: DHVC ;START OF DISPLAY
DADR
DSTS 1
DLXA 1400 ;DRAW HIGHWAY
DLYA 4600
@@ -1490,7 +1500,7 @@ CRUNC0: DNOP
DLYA 4000
DHLT
L: ..ZZ=. ;LITERALS GO HERE
LOC 3000
LOC <BEGIN+3000>&77000
ISZ OTA' ;MODULE TO PRINT OUTPUT BUFFER--START HERE
LAC [B]
DAC OTB' ;UNPACK COUNTER
@@ -1519,4 +1529,4 @@ B: 0 ;PRINT BUFFER
LOC ..ZZ
CONSTANTS ;LITERALS
VARIABLES
END
END BEGIN+1