URL
https://opencores.org/ocsvn/eco32/eco32/trunk
Subversion Repositories eco32
[/] [eco32/] [tags/] [eco32-0.23/] [fp/] [implementation/] [mmix/] [traffic.mms] - Rev 160
Go to most recent revision | Compare with Previous | Blame | View Log
* Traffic Signal Problem
rate GREG 100 % ridiculously small, for testing (shd be 250MHz)
t IS $255
Sensor_Buf IS Data_Segment
GREG Sensor_Buf
LOC #100
Lights IS 3
Sensor IS 4
%Lights_Name BYTE "/dev/lights",0
%Sensor_Name BYTE "/dev/sensor",0
Lights_Name BYTE "lights",0 (temporary name)
Sensor_Name BYTE "sensor",0 (temporary name)
Lights_Args OCTA Lights_Name,BinaryWrite
Sensor_Args OCTA Sensor_Name,BinaryRead
Read_Sensor OCTA Sensor_Buf,1
Boulevard BYTE #77,0 DelMar green, WALK; Berkly red, DONT
BYTE #7f,0 DelMar green, DONT; Berkly red, DONT
BYTE #73,0 DelMar green, off; Berkly red, DONT
BYTE #bf,0 DelMar amber, DONT; Berkly red, DONT
Avenue BYTE #dd,0 DelMar red, DONT; Berkly green, WALK
BYTE #df,0 DelMar red, DONT; Berkly green, DONT
BYTE #dc,0 DelMar red, DONT; Berkly green, off
BYTE #ef,0 DelMar red, DONT; Berkly amber, DONT
goal GREG % transition time for lights
Main GETA t,Lights_Args
TRAP 0,Fopen,Lights
GETA t,Sensor_Args
TRAP 0,Fopen,Sensor
GET goal,rC
ANDNMH goal,#ffff % temporary patch
JMP 2F
GREG @
delay_go GREG
Delay GET t,rC
ANDNMH t,#ffff % temporary patch
SUBU t,t,goal NB: not CMPU
PBN t,Delay
GO delay_go,delay_go,0
flash_go GREG
n GREG
green GREG
temp GREG
Flash SET n,8
1H ADD t,green,2*1
TRAP 0,Fputs,Lights DONT WALK
ADD temp,goal,rate
SR t,rate,1
ADDU goal,goal,t
GO delay_go,Delay
ADD t,green,2*2
TRAP 0,Fputs,Lights off
SET goal,temp
GO delay_go,Delay
SUB n,n,1
PBP n,1B
ADD t,green,2*1
TRAP 0,Fputs,Lights DONT WALK
MUL t,rate,4
ADDU goal,goal,t
GO delay_go,Delay
ADD t,green,2*3
TRAP 0,Fputs,Lights DONT WALK, amber
GO flash_go,flash_go,0
Wait GET goal,rC
ANDNMH goal,#ffff % temporary patch
1H GETA t,Read_Sensor
TRAP 0,Fread,Sensor
LDB t,Sensor_Buf
BZ t,Wait
GETA green,Boulevard
GO flash_go,Flash
MUL t,rate,8
ADDU goal,goal,t
GO delay_go,Delay
GETA t,Avenue
TRAP 0,Fputs,Lights
MUL t,rate,8
ADDU goal,goal,t
GO delay_go,Delay
GETA green,Avenue
GO flash_go,Flash
GETA t,Read_Sensor
TRAP 0,Fread,Sensor % clear redundant signal
MUL t,rate,5
ADDU goal,goal,t
GO delay_go,Delay
2H GETA t,Boulevard
TRAP 0,Fputs,Lights
MUL t,rate,18
ADDU goal,goal,t
GO delay_go,Delay
JMP 1B
Go to most recent revision | Compare with Previous | Blame | View Log