Skip to content

Instantly share code, notes, and snippets.

@cm2kay
Created January 26, 2012 16:07
Show Gist options
  • Save cm2kay/1683511 to your computer and use it in GitHub Desktop.
Save cm2kay/1683511 to your computer and use it in GitHub Desktop.
*-----------------------------------------------------------
* Program :
* Written by :
* Date :
* Description:
*-----------------------------------------------------------
START ORG $1000
LEDADR EQU $E00010
*PEDESTRIANS: 1 = grün, 2 = rot
*CARS: 1 = grün, 2 = gelb, 4 = rot, 3 = rot gelb
MOVE.W #$FFFF, D5 * definiert 1 Zeiteinheit (65535), PARAMETER: D6
BEGIN MOVE.B #2, D3 *setTrafficLightPedestriansTo(red);
JSR STLP
MOVE.B #4, D4 *setTrafficLightCarsTo(red);
JSR STLC
MOVE.W #$1E, D6 wait(30);
JSR WAIT
MOVE.B #3, D4 *setTrafficLightCarsTo(red+yellow);
JSR STLC
MOVE.W #$14, D6 *wait(20);
JSR WAIT
MOVE.B #1, D4 *setTrafficLightCarsTo(green);
JSR STLC
MOVE.W #$64, D6 *wait(100);
JSR WAIT
PRESS CMP.B #$FE, $E00014 *Warte auf Request
BNE PRESS
MOVE.B #2, D4 *setTrafficLightCarsTo(yellow);
JSR STLC
MOVE.W #$14, D6 *wait(20);
JSR WAIT
MOVE.B #4, D4 *setTrafficLightCarsTo(red);
JSR STLC
MOVE.W #$1E, D6 wait(30);
JSR WAIT
MOVE.B #$1, D3 *setTrafficLightPedestriansTo(green);
JSR STLP
MOVE.W #$64, D6 *wait(100);
JSR WAIT
BRA BEGIN
***** UNTERPROGRAMME *****
WAIT MULU.W D5, D6 * Gesamtwartezeit (>0) in D6
WLOOP SUBQ.L #1, D6 * (D6) := (D6)-1,
BGT WLOOP * if (D6) > 0 goto WLOOP
CLR.L D6
RTS
STLP MOVE.B D3, D1 *SetTrafficlightPedestrian PARAMETER: D3
BRA LIGHT
STLC MOVE.B D4, D2 *SetTrafficLightCar PARAMETER: D4
BRA LIGHT
LIGHT MOVE D2, D7
LSL #4, D7 *Verschiebe Anzeige um 4 Stellen nach links
ADD D1, D7 *Setze Anzeige aus A1 und A2 zusammen
MOVE.B D7, LEDADR *Update der Ampeln
RTS
END START ; last line of source
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment