* Traffic Signal Problem
|
* Traffic Signal Problem
|
rate GREG 100 % ridiculously small, for testing (shd be 250MHz)
|
rate GREG 100 % ridiculously small, for testing (shd be 250MHz)
|
t IS $255
|
t IS $255
|
Sensor_Buf IS Data_Segment
|
Sensor_Buf IS Data_Segment
|
GREG Sensor_Buf
|
GREG Sensor_Buf
|
|
|
LOC #100
|
LOC #100
|
Lights IS 3
|
Lights IS 3
|
Sensor IS 4
|
Sensor IS 4
|
%Lights_Name BYTE "/dev/lights",0
|
%Lights_Name BYTE "/dev/lights",0
|
%Sensor_Name BYTE "/dev/sensor",0
|
%Sensor_Name BYTE "/dev/sensor",0
|
Lights_Name BYTE "lights",0 (temporary name)
|
Lights_Name BYTE "lights",0 (temporary name)
|
Sensor_Name BYTE "sensor",0 (temporary name)
|
Sensor_Name BYTE "sensor",0 (temporary name)
|
Lights_Args OCTA Lights_Name,BinaryWrite
|
Lights_Args OCTA Lights_Name,BinaryWrite
|
Sensor_Args OCTA Sensor_Name,BinaryRead
|
Sensor_Args OCTA Sensor_Name,BinaryRead
|
Read_Sensor OCTA Sensor_Buf,1
|
Read_Sensor OCTA Sensor_Buf,1
|
Boulevard BYTE #77,0 DelMar green, WALK; Berkly red, DONT
|
Boulevard BYTE #77,0 DelMar green, WALK; Berkly red, DONT
|
BYTE #7f,0 DelMar green, DONT; Berkly red, DONT
|
BYTE #7f,0 DelMar green, DONT; Berkly red, DONT
|
BYTE #73,0 DelMar green, off; Berkly red, DONT
|
BYTE #73,0 DelMar green, off; Berkly red, DONT
|
BYTE #bf,0 DelMar amber, DONT; Berkly red, DONT
|
BYTE #bf,0 DelMar amber, DONT; Berkly red, DONT
|
Avenue BYTE #dd,0 DelMar red, DONT; Berkly green, WALK
|
Avenue BYTE #dd,0 DelMar red, DONT; Berkly green, WALK
|
BYTE #df,0 DelMar red, DONT; Berkly green, DONT
|
BYTE #df,0 DelMar red, DONT; Berkly green, DONT
|
BYTE #dc,0 DelMar red, DONT; Berkly green, off
|
BYTE #dc,0 DelMar red, DONT; Berkly green, off
|
BYTE #ef,0 DelMar red, DONT; Berkly amber, DONT
|
BYTE #ef,0 DelMar red, DONT; Berkly amber, DONT
|
|
|
goal GREG % transition time for lights
|
goal GREG % transition time for lights
|
Main GETA t,Lights_Args
|
Main GETA t,Lights_Args
|
TRAP 0,Fopen,Lights
|
TRAP 0,Fopen,Lights
|
GETA t,Sensor_Args
|
GETA t,Sensor_Args
|
TRAP 0,Fopen,Sensor
|
TRAP 0,Fopen,Sensor
|
GET goal,rC
|
GET goal,rC
|
ANDNMH goal,#ffff % temporary patch
|
ANDNMH goal,#ffff % temporary patch
|
JMP 2F
|
JMP 2F
|
|
|
GREG @
|
GREG @
|
delay_go GREG
|
delay_go GREG
|
Delay GET t,rC
|
Delay GET t,rC
|
ANDNMH t,#ffff % temporary patch
|
ANDNMH t,#ffff % temporary patch
|
SUBU t,t,goal NB: not CMPU
|
SUBU t,t,goal NB: not CMPU
|
PBN t,Delay
|
PBN t,Delay
|
GO delay_go,delay_go,0
|
GO delay_go,delay_go,0
|
|
|
flash_go GREG
|
flash_go GREG
|
n GREG
|
n GREG
|
green GREG
|
green GREG
|
temp GREG
|
temp GREG
|
Flash SET n,8
|
Flash SET n,8
|
1H ADD t,green,2*1
|
1H ADD t,green,2*1
|
TRAP 0,Fputs,Lights DONT WALK
|
TRAP 0,Fputs,Lights DONT WALK
|
ADD temp,goal,rate
|
ADD temp,goal,rate
|
SR t,rate,1
|
SR t,rate,1
|
ADDU goal,goal,t
|
ADDU goal,goal,t
|
GO delay_go,Delay
|
GO delay_go,Delay
|
ADD t,green,2*2
|
ADD t,green,2*2
|
TRAP 0,Fputs,Lights off
|
TRAP 0,Fputs,Lights off
|
SET goal,temp
|
SET goal,temp
|
GO delay_go,Delay
|
GO delay_go,Delay
|
SUB n,n,1
|
SUB n,n,1
|
PBP n,1B
|
PBP n,1B
|
ADD t,green,2*1
|
ADD t,green,2*1
|
TRAP 0,Fputs,Lights DONT WALK
|
TRAP 0,Fputs,Lights DONT WALK
|
MUL t,rate,4
|
MUL t,rate,4
|
ADDU goal,goal,t
|
ADDU goal,goal,t
|
GO delay_go,Delay
|
GO delay_go,Delay
|
ADD t,green,2*3
|
ADD t,green,2*3
|
TRAP 0,Fputs,Lights DONT WALK, amber
|
TRAP 0,Fputs,Lights DONT WALK, amber
|
GO flash_go,flash_go,0
|
GO flash_go,flash_go,0
|
|
|
Wait GET goal,rC
|
Wait GET goal,rC
|
ANDNMH goal,#ffff % temporary patch
|
ANDNMH goal,#ffff % temporary patch
|
1H GETA t,Read_Sensor
|
1H GETA t,Read_Sensor
|
TRAP 0,Fread,Sensor
|
TRAP 0,Fread,Sensor
|
LDB t,Sensor_Buf
|
LDB t,Sensor_Buf
|
BZ t,Wait
|
BZ t,Wait
|
GETA green,Boulevard
|
GETA green,Boulevard
|
GO flash_go,Flash
|
GO flash_go,Flash
|
MUL t,rate,8
|
MUL t,rate,8
|
ADDU goal,goal,t
|
ADDU goal,goal,t
|
GO delay_go,Delay
|
GO delay_go,Delay
|
GETA t,Avenue
|
GETA t,Avenue
|
TRAP 0,Fputs,Lights
|
TRAP 0,Fputs,Lights
|
MUL t,rate,8
|
MUL t,rate,8
|
ADDU goal,goal,t
|
ADDU goal,goal,t
|
GO delay_go,Delay
|
GO delay_go,Delay
|
GETA green,Avenue
|
GETA green,Avenue
|
GO flash_go,Flash
|
GO flash_go,Flash
|
GETA t,Read_Sensor
|
GETA t,Read_Sensor
|
TRAP 0,Fread,Sensor % clear redundant signal
|
TRAP 0,Fread,Sensor % clear redundant signal
|
MUL t,rate,5
|
MUL t,rate,5
|
ADDU goal,goal,t
|
ADDU goal,goal,t
|
GO delay_go,Delay
|
GO delay_go,Delay
|
2H GETA t,Boulevard
|
2H GETA t,Boulevard
|
TRAP 0,Fputs,Lights
|
TRAP 0,Fputs,Lights
|
MUL t,rate,18
|
MUL t,rate,18
|
ADDU goal,goal,t
|
ADDU goal,goal,t
|
GO delay_go,Delay
|
GO delay_go,Delay
|
JMP 1B
|
JMP 1B
|
|
|