mirror of
https://github.com/PDP-10/its.git
synced 2026-03-21 00:48:06 +00:00
Convert Freeway Crossing to run on a Graphics machine.
The original game was coded to run on an Alpha PDS-1. The Imlacs used at MIT were Graphics machines, hence it's more useful for the game to run on those.
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
TITLE FREEWAY CROSSING PROGRAM
|
||||
IFNDEF BEGIN, BEGIN=10000
|
||||
IFNDEF ALPHA, ALPHA=0
|
||||
.INSRT IMLAC;IMDEFS
|
||||
.ADDR.=1
|
||||
LOC BEGIN
|
||||
@@ -88,6 +89,7 @@ RRRR: 0 ;SUBROUTINE FOR RANDOM VELOCITIES
|
||||
I JMP RRRR ;RETURN
|
||||
CONVERT: 0 ;CONVERT TO DLXA
|
||||
SAR 1
|
||||
IFN ALPHA,[
|
||||
DAC TMP'
|
||||
LAW 11
|
||||
DAC .+3
|
||||
@@ -99,6 +101,8 @@ CONVERT: 0 ;CONVERT TO DLXA
|
||||
SAL 2 ;GET MSB PORTION
|
||||
ADD .-3 ;ADD LSB PORTION
|
||||
ADD [11400] ;MAKE DLXA
|
||||
]
|
||||
.ELSE ADD [10230]
|
||||
I JMP CONVERT ;RETURN
|
||||
SUBJECT: 0 ;GET POSITION FOR SUBJECT
|
||||
LAC SUBPOS'
|
||||
@@ -106,7 +110,8 @@ SUBJECT: 0 ;GET POSITION FOR SUBJECT
|
||||
DAC SUBPOS' ;GET NEW POSITION
|
||||
SAL 1
|
||||
JMS CONVERT
|
||||
ADD [11500] ;MAKE DLYA
|
||||
IFN ALPHA,ADD [11500] ;MAKE DLYA
|
||||
.ELSE ADD [10352]
|
||||
DAC CAR0 ;STORE IN DISPLAY
|
||||
I JMP SUBJECT ;RETURN
|
||||
RVEL: 40 ;STORAGE FOR RANDOM VELOCITIES
|
||||
@@ -442,7 +447,9 @@ START: 0 ;INITIALIZATION ROUTINE
|
||||
JMS WRITE
|
||||
LAW 12 ;LF
|
||||
JMS WRITE
|
||||
START2: LAC [DLYA 3100]
|
||||
START2:
|
||||
IFN ALPHA,LAC [DLYA 3100]
|
||||
.ELSE LAC [DLYA 602]
|
||||
DAC CAR0 ;INITIALIZE SUBJEXT
|
||||
CLA
|
||||
DAC SUBPOS'
|
||||
@@ -461,7 +468,8 @@ START2: LAC [DLYA 3100]
|
||||
JMP LOOP1 ;RETURN
|
||||
ENDD: 0 ;DID THE SUBJECT MAKE IT?
|
||||
LAC CAR0
|
||||
SUB [DLYA 4700]
|
||||
IFN ALPHA,SUB [DLYA 4700]
|
||||
.ELSE SUB [DLYA 1176]
|
||||
ASP
|
||||
I JMP ENDD ;RETURN IF HE DIDN'T
|
||||
CLA
|
||||
@@ -831,6 +839,7 @@ LRD1: INC E,B30
|
||||
INC B30,B30
|
||||
INC B30,B30
|
||||
INC B30,B30
|
||||
IFN ALPHA,[
|
||||
INC D00,131
|
||||
DIXM
|
||||
DIXM
|
||||
@@ -840,9 +849,19 @@ LRD1: INC E,B30
|
||||
LLD2: DDXM
|
||||
DDXM
|
||||
INC E,D30
|
||||
]
|
||||
.ELSE [
|
||||
INC D30,D30
|
||||
INC D30,D30
|
||||
INC D30,X
|
||||
LLD2: INC E,DM30
|
||||
INC DM30,DM30
|
||||
INC DM30,DM30
|
||||
]
|
||||
INC BM30,BM30
|
||||
INC BM30,BM30
|
||||
INC BM30,BM30
|
||||
IFN ALPHA,[
|
||||
INC BM30,N
|
||||
DDXM
|
||||
DDXM
|
||||
@@ -850,28 +869,48 @@ LLD2: DDXM
|
||||
LRD3: DIXM
|
||||
DIXM
|
||||
INC E,DM30
|
||||
]
|
||||
.ELSE [
|
||||
INC BM30,X
|
||||
LRD3: INC E,D30
|
||||
INC D30,D30
|
||||
INC D30,D30
|
||||
]
|
||||
INC B30,B30
|
||||
INC B30,B30
|
||||
INC B30,B30
|
||||
IFN ALPHA,[
|
||||
INC B30,131
|
||||
DIXM
|
||||
DRJM
|
||||
]
|
||||
.ELSE B30,X
|
||||
LLD4: INC E,BM30
|
||||
INC BM30,BM30
|
||||
INC BM30,BM30
|
||||
INC BM30,BM30
|
||||
IFN ALPHA,[
|
||||
INC D00,N
|
||||
DDXM
|
||||
DDXM
|
||||
DDXM
|
||||
DDXM
|
||||
DRJM
|
||||
]
|
||||
.ELSE [
|
||||
INC DM30,DM30
|
||||
INC DM30,DM30
|
||||
INC DM30,X
|
||||
]
|
||||
LR5: INC E,B30
|
||||
INC B30,B30
|
||||
INC B30,B30
|
||||
IFN ALPHA,[
|
||||
INC B30,131
|
||||
DIXM
|
||||
DRJM
|
||||
]
|
||||
.ELSE INC B30,X
|
||||
CAR: INC E,DM33 ;WORD CAR
|
||||
INC DM10,BM30
|
||||
INC BM20,B0M3
|
||||
@@ -911,9 +950,12 @@ CAR: INC E,DM33 ;WORD CAR
|
||||
UP: INC E,B03 ;LINE GOING UP
|
||||
INC B03,B03
|
||||
INC B03,B03
|
||||
IFN ALPHA,[
|
||||
INC B03,113
|
||||
DIYM
|
||||
DRJM
|
||||
]
|
||||
.ELSE INC B03,X
|
||||
B3: INC E,D10 ;ONE
|
||||
INC B20,B20
|
||||
INC DM20,B03
|
||||
@@ -1001,10 +1043,16 @@ CRUNCH: INC E,D22 ;CRUNCH DRAWING ROUTINE
|
||||
INC B3M2,B3M2
|
||||
INC B23,B23
|
||||
INC D00,N
|
||||
IFN ALPHA,[
|
||||
DIXM
|
||||
DIXM
|
||||
DIXM
|
||||
DIXM
|
||||
]
|
||||
.ELSE [
|
||||
DLXA 1022
|
||||
DLYA 340
|
||||
]
|
||||
INC E,D30
|
||||
INC D30,D30
|
||||
INC D30,D30
|
||||
@@ -1162,8 +1210,14 @@ REST: DNOP ;DISPLAY WAIT ROUTINE
|
||||
DIS: DHVC ;START OF DISPLAY
|
||||
DADR
|
||||
DSTS 1
|
||||
IFN ALPHA,[
|
||||
DLXA 1400 ;DRAW HIGHWAY
|
||||
DLYA 4600
|
||||
]
|
||||
.ELSE [
|
||||
DLXA 230
|
||||
DLYA 1154
|
||||
]
|
||||
DNOP
|
||||
DNOP
|
||||
DNOP
|
||||
@@ -1189,10 +1243,13 @@ DIS: DHVC ;START OF DISPLAY
|
||||
DJMS LR5
|
||||
DJMS LR5
|
||||
DJMS LR5
|
||||
IFN ALPHA,[
|
||||
DIXM
|
||||
DIXM
|
||||
DIXM
|
||||
DIXM
|
||||
]
|
||||
.ELSE DLXA 1022
|
||||
DJMS LR5
|
||||
DJMS LR5
|
||||
DJMS LR5
|
||||
@@ -1212,10 +1269,13 @@ DIS: DHVC ;START OF DISPLAY
|
||||
DJMS LR5
|
||||
DJMS LR5
|
||||
DJMS LR5
|
||||
IFN ALPHA,[
|
||||
DDYM
|
||||
DDYM
|
||||
DDYM
|
||||
DDYM
|
||||
]
|
||||
.ELSE DLYA 1110
|
||||
DJMS LLD4
|
||||
DJMS LLD4
|
||||
DJMS LLD4
|
||||
@@ -1237,10 +1297,13 @@ DIS: DHVC ;START OF DISPLAY
|
||||
DJMS LLD2
|
||||
DJMS LLD2
|
||||
DJMS LLD2
|
||||
IFN ALPHA,[
|
||||
DDYM
|
||||
DDYM
|
||||
DDYM
|
||||
DDYM
|
||||
]
|
||||
.ELSE DLYA 1044
|
||||
DJMS LRD1
|
||||
DJMS LRD1
|
||||
DJMS LRD1
|
||||
@@ -1261,10 +1324,13 @@ DIS: DHVC ;START OF DISPLAY
|
||||
DJMS LRD3
|
||||
DJMS LRD3
|
||||
DJMS LRD3
|
||||
IFN ALPHA,[
|
||||
DDYM
|
||||
DDYM
|
||||
DDYM
|
||||
DDYM
|
||||
]
|
||||
.ELSE DLYA 1000
|
||||
DJMS LLD4
|
||||
DJMS LLD4
|
||||
DJMS LLD4
|
||||
@@ -1286,10 +1352,13 @@ DIS: DHVC ;START OF DISPLAY
|
||||
DJMS LLD2
|
||||
DJMS LLD2
|
||||
DJMS LLD2
|
||||
IFN ALPHA,[
|
||||
DDYM
|
||||
DDYM
|
||||
DDYM
|
||||
DDYM
|
||||
]
|
||||
.ELSE DLYA 734
|
||||
DJMS LRD1
|
||||
DJMS LRD1
|
||||
DJMS LRD1
|
||||
@@ -1310,10 +1379,13 @@ DIS: DHVC ;START OF DISPLAY
|
||||
DJMS LRD3
|
||||
DJMS LRD3
|
||||
DJMS LRD3
|
||||
IFN ALPHA,[
|
||||
DDYM
|
||||
DDYM
|
||||
DDYM
|
||||
DDYM
|
||||
]
|
||||
.ELSE DLYA 670
|
||||
DJMS LLD4
|
||||
DJMS LLD4
|
||||
|
||||
@@ -1335,10 +1407,13 @@ DIS: DHVC ;START OF DISPLAY
|
||||
DJMS LLD2
|
||||
DJMS LLD2
|
||||
DJMS LLD2
|
||||
IFN ALPHA,[
|
||||
DDYM
|
||||
DDYM
|
||||
DDYM
|
||||
DDYM
|
||||
]
|
||||
.ELSE DLYA 624
|
||||
DJMS LR5
|
||||
DJMS LR5
|
||||
DJMS LR5
|
||||
@@ -1358,10 +1433,13 @@ DIS: DHVC ;START OF DISPLAY
|
||||
DJMS LR5
|
||||
DJMS LR5
|
||||
DJMS LR5
|
||||
IFN ALPHA,[
|
||||
DIXM
|
||||
DIXM
|
||||
DIXM
|
||||
DIXM
|
||||
]
|
||||
.ELSE DLXA 1022
|
||||
DJMS LR5
|
||||
DJMS LR5
|
||||
|
||||
@@ -1382,8 +1460,14 @@ DIS: DHVC ;START OF DISPLAY
|
||||
DJMS LR5
|
||||
DJMS LR5
|
||||
DJMS LR5
|
||||
IFN ALPHA,[
|
||||
DLXA 4000
|
||||
DLYA 3100
|
||||
]
|
||||
.ELSE [
|
||||
DLXA 745
|
||||
DLYA 1440
|
||||
]
|
||||
DJMS REST
|
||||
DJMS UP
|
||||
DJMS UP
|
||||
@@ -1409,7 +1493,8 @@ SCORE: DNOP
|
||||
DJMS LETTER+61 ;R
|
||||
DJMS LETTER+21 ;E
|
||||
DJMS LETTER+115 ;:
|
||||
DLXA 3640
|
||||
IFN ALPHA,DLXA 3640
|
||||
.ELSE DLXA 745
|
||||
DDYM
|
||||
DDYM
|
||||
|
||||
@@ -1420,10 +1505,17 @@ NUM1: DIXM
|
||||
DIXM
|
||||
DIXM
|
||||
DJMS LETTER+45
|
||||
DLXA 4000
|
||||
IFN ALPHA,DLXA 4000
|
||||
.ELSE DLXA 1000
|
||||
SET: DNOP
|
||||
IFN ALPHA,[
|
||||
DLXA 3400
|
||||
DLYA 2000
|
||||
]
|
||||
.ELSE [
|
||||
DLXA 670
|
||||
DLYA 340
|
||||
]
|
||||
DJMS REST
|
||||
DJMS LETTER+70 ;S
|
||||
DJMS LETTER+21 ;E
|
||||
@@ -1438,10 +1530,17 @@ SET: DNOP
|
||||
DJMS LETTER+21 ;E
|
||||
DJMS LETTER+21 ;E
|
||||
DJMS LETTER+13 ;D
|
||||
DLXA 4000
|
||||
IFN ALPHA,DLXA 4000
|
||||
.ELSE DLXA 1000
|
||||
FIRE: DNOP
|
||||
IFN ALPHA,[
|
||||
DLXA 3400
|
||||
DLYA 2000
|
||||
]
|
||||
.ELSE [
|
||||
DLXA 670
|
||||
DLYA 340
|
||||
]
|
||||
DJMS REST
|
||||
DJMS LETTER+70 ;S
|
||||
DJMS LETTER+76 ;T
|
||||
@@ -1459,45 +1558,105 @@ FIRE: DNOP
|
||||
DJMS LETTER ;A
|
||||
DJMS LETTER+13 ;D
|
||||
DJMS LETTER+111 ;Y
|
||||
IFN ALPHA,[
|
||||
DLXA 4000
|
||||
|
||||
CAR0: DLYA 3100
|
||||
]
|
||||
.ELSE [
|
||||
DLXA 1000
|
||||
CAR0: DLYA 602
|
||||
]
|
||||
DJMS REST
|
||||
DJMS CAR
|
||||
IFN ALPHA,[
|
||||
DLXA 4000
|
||||
DLYA 2700
|
||||
]
|
||||
.ELSE [
|
||||
DLXA 1000
|
||||
DLYA 536
|
||||
]
|
||||
DJMS REST
|
||||
DIGIT: DJMS B3
|
||||
IFN ALPHA,[
|
||||
CAR1: DLXA 1400
|
||||
DLYA 3300
|
||||
]
|
||||
.ELSE [
|
||||
CAR1: DLXA 230
|
||||
DLYA 646
|
||||
]
|
||||
DJMS REST
|
||||
DJMS CAR
|
||||
IFN ALPHA,[
|
||||
CAR2: DLXA 1400
|
||||
DLYA 3500
|
||||
]
|
||||
.ELSE [
|
||||
CAR2: DLXA 230
|
||||
DLYA 712
|
||||
]
|
||||
DJMS REST
|
||||
DJMS CAR
|
||||
IFN ALPHA,[
|
||||
CAR3: DLXA 1400
|
||||
DLYA 3700
|
||||
]
|
||||
.ELSE [
|
||||
CAR3: DLXA 230
|
||||
DLYA 756
|
||||
]
|
||||
DJMS REST
|
||||
DJMS CAR
|
||||
IFN ALPHA,[
|
||||
CAR4: DLXA 1400
|
||||
DLYA 4100
|
||||
]
|
||||
.ELSE [
|
||||
CAR4: DLXA 230
|
||||
DLYA 1022
|
||||
]
|
||||
DJMS REST
|
||||
DJMS CAR
|
||||
IFN ALPHA,[
|
||||
CAR5: DLXA 1400
|
||||
DLYA 4300
|
||||
]
|
||||
.ELSE [
|
||||
CAR5: DLXA 230
|
||||
DLYA 1066
|
||||
]
|
||||
DJMS REST
|
||||
DJMS CAR
|
||||
IFN ALPHA,[
|
||||
CAR6: DLXA 1400
|
||||
DLYA 4500
|
||||
]
|
||||
.ELSE [
|
||||
CAR6: DLXA 230
|
||||
DLYA 1132
|
||||
]
|
||||
DJMS REST
|
||||
DJMS CAR
|
||||
IFN ALPHA,[
|
||||
DLXA 3700
|
||||
DLYA 2000
|
||||
]
|
||||
.ELSE [
|
||||
DLXA 756
|
||||
DLYA 340
|
||||
]
|
||||
DJMS REST
|
||||
CRUNC0: DNOP
|
||||
IFN ALPHA,[
|
||||
DLXA 4000 ;CENTER BEAM AND WAIT
|
||||
DLYA 4000
|
||||
]
|
||||
.ELSE [
|
||||
DLXA 1000
|
||||
DLYA 1000
|
||||
]
|
||||
DHLT
|
||||
L: ..ZZ=. ;LITERALS GO HERE
|
||||
LOC <BEGIN+3000>&77000
|
||||
|
||||
Reference in New Issue
Block a user