home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Gold Fish 2
/
goldfish_vol2_cd1.bin
/
files
/
dev
/
asm
/
tbsource
/
atlights.s
next >
Wrap
Text File
|
1993-12-21
|
175KB
|
9,213 lines
***********************************************
* *
* (C)opyright 1991 *
* *
* by Tomi Blinnikka *
* *
* Don't try to understand the code *
* *
***********************************************
;Here are the iff.library offsets
OpenIFF: equ -30 ; (filename) (A0)
CloseIFF: equ -36 ; (ifffile) (A1)
FindChunk: equ -42 ; (ifffile,chunkname) (A1,D0)
GetBMHD: equ -48 ; (ifffile) (A1)
GetColorTab: equ -54 ; (ifffile,colortable) (A1/A0)
DecodePic: equ -60 ; (ifffile,bitmap) (A1/A0)
SaveBitMap: equ -66 ; (name,bmap,ctab,crmd) (A0-A2,D0)
SaveClip: equ -72 ; (name,bmap,ctab,crmd,x,y,w,h) (A0-A2,D0-D4)
IffError: equ -78 ; () ()
GetViewModes: equ -84 ; (ifffile) (A1)
;*************** E R R O R - C O D E S ************************************
IFF_BADTASK: equ -1 ; IffError() called by wrong task
IFF_CANTOPENFILE: equ 16 ; File not found
IFF_READERROR: equ 17 ; Error reading file
IFF_NOMEM: equ 18 ; Not enough memory for IFF file
IFF_NOTIFF: equ 19 ; File is not an IFF file
IFF_WRITEERROR: equ 20 ; Error writing file
IFF_NOILBM: equ 24 ; IFF file is not of type ILBM
IFF_NOBMHD: equ 25 ; BMHD chunk not found
IFF_NOBODY: equ 26 ; BODY chunk not found
IFF_TOOMANYPLANES: equ 27 ; Picture has more planes than BitMap
IFF_UNKNOWNCOMPRESSION: equ 28 ; Unknown compression type
;Here are the req.library offsets
Center = -$001e
SetSize = -$0024
SetLocation = -$002a
ReadLocation = -$0030
ReqFormat = -$0036
Dispatch = -$003c
FileRequester = -$0054
ColorRequester = -$005a
DrawBox = -$0060
MakeButton = -$0066
MakeScrollbar = -$006c
PurgeFiles = -$0072
GetFontHeightAndWidth = -$0078
MakeGadget = -$007e
MakeString = -$0084
MakeProp = -$008a
LinkGadget = -$0090
LinkStringGadget = -$0096
LinkPropGadget = -$009c
GetString = -$00a2
RealTimeScroll = -$00a8
TextRequest = -$00ae
GetLong = -$00b4
RawKeyToAscii = -$00ba
ExtendedColorRequester = -$00c0
NewGetString = -$00c6
;Here lie the arp-offsets, thank God for them
ShowTitle = -$011a
Puts = -$00F0
ReadLine = -$00F6
GADS = -$00FC
Atol = -$0102
EscapeString = -$0108
CheckAbort = -$010E
CheckBreak = -$0114
Getenv = -$011A
Setenv = -$0120
FileRequest = -$0126
CloseWindowSafely = -$012C
CreatePort = -$0132
DeletePort = -$0138
SendPacket = -$013E
InitStdPacket = -$0144
PathName = -$014A
Assign = -$0150
DosAllocMem = -$0156
DosFreeMem = -$015C
BtoCStr = -$0162
CtoBStr = -$0168
GetDevInfo = -$016E
FreeTaskResList = -$0174
ArpExit = -$017A
ArpAlloc = -$0180
ArpAllocMem = -$0186
ArpOpen = -$018C
ArpDupLock = -$0192
ArpLock = -$0198
RListAlloc = -$019E
FindCLI = -$01A4
QSort = -$01AA
PatternMatch = -$01B0
FindFirst = -$01B6
FindNext = -$01BC
FreeAnchorChain = -$01C2
CompareLock = -$01C8
FindTaskResList = -$01CE
CreateTaskResList = -$01D4
FreeResList = -$01DA
FreeTrackedItem = -$01E0
GetTracker = -$01E6
GetAccess = -$01EC
FreeAccess = -$01F2
FreeDAList = -$01F8
AddDANode = -$01FE
AddDADevs = -$0204
Strcmp = -$020A
Strncmp = -$0210
Toupper = -$0216
SyncRun = -$021C
ASyncRun = -$0222
SpawnShell = -$0222
LoadPrg = -$0228
PreParse = -$022E
StamptoStr = -$0234
StrtoStamp = -$023A
ObtainResidentPrg = -$0240
AddResidentPrg = -$0246
RemResidentPrg = -$024C
UnLoadPrg = -$0252
LMult = -$0258
LDiv = -$025E
LMod = -$0264
CheckSumPrg = -$026A
TackOn = -$0270
BaseName = -$0276
ReleaseResidentPrg = -$027C
SPrintf = -$0282
GetKeywordIndex = -$0288
ArpOpenLibrary = -$028E
ArpAllocFreq = -$0294
;Here lie the normal Amiga lib-offsets, rest in peace
Disable = -$0078
Enable = -$007e
InitGels = -$0078
InitMasks = -$007e
AddVSprite = -$0066
RemVSprite = -$008a
SortGList = -$0096
DrawGList = -$0072
DrawEllipse = -$00b4
AreaEllipse = -$00ba
AllocRaster = -$01ec
FreeRaster = -$01f2
InitTmpRas = -$01d4
InitArea = -$011a
LoadRGB4 = -$00c0
SetRGB4CM = -$0276
GetRGB4 = -$0245
CBump = -$016e
CMove = -$0174
CWait = -$017a
UCopperListInit = -$0252
FreeVPortCopLists = -$021c
OpenWorkBench = -$00d2
DisplayAlert = -$005a
FindResident = -$0060
FindName = -$0114
FindTask = -$0126
RawDoFmt = -$020a
Forbid = -$0084
Permit = -$008a
Debug = -$0072
Supervisor = -$001e
Exception = -$0042
Wait = -$013e
DoIO = -$01c8
SendIO = -$01ce
CheckIO = -$01d4
WaitIO = -$01da
AbortIO = -$01e0
AddDevice = -$01b0
RemDevice = -$01b6
OpenDevice = -$01bc
CloseDevice = -$01c2
OpenLibrary = -$0228
CloseLibrary = -$019e
Text = -$003c
SetRGB4 = -$0120
SetAPen = -$0156
SetBPen = -$015c
ScrollRaster = -$018c
Move = -$00f0
Draw = -$00f6
Flood = -$014a
RectFill = -$0132
OpenScreen = -$00c6
OpenWindow = -$00cc
CloseWindow = -$0048
CloseScreen = -$0042
InPut = -$0036
OutPut = -$003c
Delay = -$00c6
InitBitMap = -$0186
ClipBit = -$0228
AllocMem = -$00c6
FreeMem = -$00d2
CopyMem = -$0270
CopyMemQuick = -$0276
AllocSignal = -$014a
FreeSignal = -$0150
AddIntServer = -$00a8
RemIntServer = -$00ae
WaitTOF = -$010e
VBeamPos = -$0180
SetRast = -$00ea
AddGadget = -$002a
AddGList = -$01b6
RemoveGadget = -$00e4
SetFont = -$0042
OpenFont = -$0048
CloseFont = -$004e
ClearScreen = -$0030
ClearMenuStrip = -$0036
ClearPointer = -$003c
SetPrefs = -$0144
GetPrefs = -$0084
DisplayBeep = -$0060
DrawBorder = -$006c
ItemAddress = -$0090
ModifyIDCMP = -$0096
OffGadget = -$00ae
OffMenu = -$00b4
OnGadget = -$00ba
OnMenu = -$00c0
PrintIText = -$00d8
RefreshGadgets = -$00de
RefreshGList = -$01b0
RemakeDisplay = -$0180
RethinkDisplay = -$0186
SetMenuStrip = -$0108
SetPointer = -$010e
ActivateGadget = -$01ce
ActivateWindow = -$01c2
AddPort = -$0162
RemPort = -$0168
PutMsg = -$016e
GetMsg = -$0174
ReplyMsg = -$017a
WaitPort = -$0180
FindPort = -$0186
Open = -$001e
Close = -$0024
Read = -$002a
Write = -$0030
Input = -$0036
Output = -$003c
Seek = -$0042
DeleteFile = -$0048
Rename = -$004e
CreateDir = -$0078
CurrentDir = -$007e
ParentDir = -$00d2
OpenDiskFont = -$001e
AvailFonts = -$0024
;--------------------------------------------------
;IDCMP Classes
SIZEVERIFY EQU $00000001
NEWSIZE EQU $00000002
REFRESHWINDOW EQU $00000004
MOUSEBUTTONS EQU $00000008
MOUSEMOVE EQU $00000010
GADGETDOWN EQU $00000020
GADGETUP EQU $00000040
REQSET EQU $00000080
MENUPICK EQU $00000100
CLOSEWINDOW EQU $00000200
RAWKEY EQU $00000400
REQVERIFY EQU $00000800
REQCLEAR EQU $00001000
MENUVERIFY EQU $00002000
NEWPREFS EQU $00004000
DISKINSERTED EQU $00008000
DISKREMOVED EQU $00010000
WBENCHMESSAGE EQU $00020000
ACTIVEWINDOW EQU $00040000
INACTIVEWINDOW EQU $00080000
DELTAMOVE EQU $00100000
VANILLAKEY EQU $00200000
INTUITICKS EQU $00400000
;--------------------------------------------------
; Other Stuff
INTB_TBE EQU 0
INTB_DSKBLK EQU 1
INTB_SOFTINT EQU 2
INTB_PORTS EQU 3
INTB_COPER EQU 4
INTB_VERTB EQU 5
INTB_BLIT EQU 6
INTB_AUD0 EQU 7
INTB_AUD1 EQU 8
INTB_AUD2 EQU 9
INTB_AUD3 EQU 10
INTB_RBF EQU 11
INTB_DSKSYNC EQU 12
INTB_EXTER EQU 13
INTB_INTEN EQU 14
INTB_SETCLR EQU 15
MODE_OLDFILE EQU 1005
MODE_NEWFILE EQU 1006
MEMF_PUBLIC EQU 1
MEMF_CHIP EQU 2
MEMF_FAST EQU 4
MEMF_CLEAR EQU 65536
MEMF_LARGEST EQU 131072
SHARED_LOCK EQU -2
ACCESS_READ EQU -2
EXCLUSIVE_LOCK EQU -1
ACCESS_WRITE EQU -1
DRAFT EQU $000
NLQ EQU $100
FANFOLD EQU $00
SINGLE EQU $80
NOITEM EQU $003F
NOMENU EQU $001F
NOSUB EQU $001F
MENUNULL EQU $FFFF
MAXPOT EQU $FFFF
wd_WINDOWSIZING EQU $0001
wd_WINDOWDRAG EQU $0002
wd_WINDOWDEPTH EQU $0004
wd_WINDOWCLOSE EQU $0008
wd_SIZEBRIGHT EQU $0010
wd_SIZEBBOTTOM EQU $0020
wd_SMART_REFRESH EQU $0000
wd_SIMPLE_REFRESH EQU $0040
wd_SUPER_REFRESH EQU $0080
wd_OTHER_REFRESH EQU $00C0
wd_BACKDROP EQU $0100
wd_REPORTMOUSE EQU $0200
wd_GIMMEZEROZERO EQU $0400
wd_BORDERLESS EQU $0800
wd_ACTIVATE EQU $1000
wd_WINDOWACTIVE EQU $2000
wd_INREQUEST EQU $4000
wd_MENUSTATE EQU $8000
DAListSize EQU 20480
FileNameBufSize EQU 20480
FIB EQU 260
RECOVERY_ALERT EQU $00000000
DEADEND_ALERT EQU $80000000
DEVICES EQU %00000001
DISKONLY EQU %00000010
VOLUMES EQU %00000100
DIRS EQU %00001000
UNIT_MICROHZ EQU 0
UNIT_VBLANK EQU 1
NT_UNKNOWN EQU 0
NT_TASK EQU 1
NT_INTERRUPT EQU 2
NT_DEVICE EQU 3
NT_MSGPORT EQU 4
NT_MESSAGE EQU 5
NT_FREEMSG EQU 6
NT_REPLYMSG EQU 7
NT_RESOURCE EQU 8
NT_LIBRARY EQU 9
NT_MEMORY EQU 10
NT_SOFTINT EQU 11 ;Exec Private
NT_FONT EQU 12
NT_PROCESS EQU 13
NT_SEMAPHORE EQU 14
NT_SIGNALSEM EQU 15
NT_BOOTNODE EQU 16
PA_SIGNAL EQU 0
CMD_INVALID EQU 0
CMD_RESET EQU 1
CMD_READ EQU 2
CMD_WRITE EQU 3
CMD_UPDATE EQU 4
CMD_CLEAR EQU 5
CMD_STOP EQU 6
CMD_START EQU 7
CMD_FLUSH EQU 8
CMD_NONSTD EQU 9
TR_ADDREQUEST EQU 9
TR_GETSYSTIME EQU 10
TR_SETSYSTIME EQU 11
;Req.library stuff
FRQSHOWINFOB EQU 0
FRQEXTSELECTB EQU 1
FRQCACHINGB EQU 2
FRQGETFONTS EQU 3
FRQINFOGADGETB EQU 4
FRQHIDEWILDSB EQU 5
FRQABSOLUTEXYB EQU 6
FRQCACHEPURGEB EQU 7
FRQNOHALFCACHEB EQU 8
FRQNOSORTB EQU 9
FRQNODRAGB EQU 10
FRQSAVINGB EQU 11
FRQLOADINGB EQU 12
FRQDIRONLYB EQU 13
;Nothing to do with those ^^^
VecTab_Size EQU 10240
TmpRas_Size EQU ((640+15)/16*2)*256
;--------------------------------------------------
section TL,code
Start: move.l $4,a6
lea.l reqname(pc),a1
moveq.l #2,d0
jsr OpenLibrary(a6)
tst.l d0
bne Start1
lea.l dosname(pc),a1
moveq.l #0,d0
jsr OpenLibrary(a6)
tst.l d0
beq NoReq_ShutDown
move.l d0,a6
jsr Output(a6)
move.l d0,d4
beq NoReq_ShutDown
lea.l NoREQText1(pc),a0
move.l a0,d2
move.l #21,d3
move.l d4,d1
jsr Write(a6)
lea.l NoREQText2(pc),a0
move.l a0,d2
move.l #7,d3
move.l d4,d1
jsr Write(a6)
move.l a6,a1
move.l $4,a6
jsr CloseLibrary(a6)
NoReq_ShutDown: move.l #8,d0
rts
Start1: move.l d0,reqbase
move.l d0,a0
move.l $26(a0),dosbase
move.l $2a(a0),intbase
move.l $2e(a0),gfxbase
move.l dosbase(pc),a6
jsr OutPut(a6)
move.l d0,OutFile
;Get MaxDisplayColumns
Start1.1: move.l intbase(pc),a1
move.l $3c(a1),a0
;Get memory for IORequest for timer.device
move.l $4,a6
move.l #$28,d0
move.l #MEMF_CLEAR+MEMF_PUBLIC,d1
jsr AllocMem(a6)
tst.l d0
beq ShutDown
move.l d0,TimeReq
;Open timer.device
lea.l timename(pc),a0
move.l #UNIT_MICROHZ,d0
move.l TimeReq(pc),a1
move.l #0,d1
jsr OpenDevice(a6)
tst.l d0
bne ShutDown
;Create Port
move.l $4,a6
move.l #-1,d0
jsr AllocSignal(a6)
cmp.l #-1,d0
beq ShutDown
move.b d0,TSigBit
;Get memory for Timers replyport
move.l #$22,d0
move.l #MEMF_CLEAR+MEMF_PUBLIC,d1
jsr AllocMem(a6)
tst.l d0
beq ShutDown
move.l d0,TPort
;Add Port
move.l TPort,a0
lea.l TimePName,a1
move.l a1,$a(a0) ;Name
move.b #$00,$9(a0) ;Priority = 0
move.b #NT_MSGPORT,$8(a0) ;Type NT_MSGPORT
move.b #PA_SIGNAL,$e(a0)
move.b TSigBit(pc),$f(a0)
move.l OurTask(pc),$10(a0)
move.l TPort(pc),a1
jsr AddPort(a6)
;Allocate other needed memory space
move.l #VecTab_Size,d0
move.l #MEMF_CHIP+MEMF_CLEAR,d1
jsr AllocMem(a6)
tst.l d0
beq ShowGuru
move.l d0,VecTab1
move.l #TmpRas_Size,d0
move.l #MEMF_CHIP+MEMF_CLEAR,d1
jsr AllocMem(a6)
tst.l d0
beq ShowGuru
move.l d0,TmpRas
;Open Screen
move.l intbase(pc),a6
lea.l NewScreen1(pc),a0
jsr OpenScreen(a6)
tst.l d0
bne OpenScreen1
lea.l NoScreen1(pc),a0
jmp ErrorPrint
OpenScreen1: move.l d0,Screen1
move.l d0,SToW1
move.l d0,SToW2
move.l d0,SToW3
move.l d0,SToW4
move.l d0,SToW7
move.l d0,SToW8
move.l d0,TLIntScreen
;Get ViewPort
move.l Screen1(pc),a0
add.l #$2c,a0
move.l a0,ViewPort
;Open Window2
move.l intbase(pc),a6
lea.l NewWindow2(pc),a0
jsr OpenWindow(a6)
tst.l d0
bne Window2.1
lea.l NoWin2(pc),a0
jmp ErrorPrint
Window2.1: move.l d0,Window2
;Get RastPort2
move.l d0,a0
move.l $32(a0),RastPort2
;move requesters to Window2
move.l $4,a6
move.l #$00,a1
jsr FindTask(a6)
move.l d0,OurTask
move.l d0,a0
move.l $b8(a0),OldTaskWinPtr
move.l Window2(pc),$b8(a0)
;Set the menus for Window2
move.l intbase(pc),a6
move.l Window2(pc),a0
lea.l Menu1(pc),a1
jsr SetMenuStrip(a6)
tst.l d0
beq ShutDown
MainLoop: jmp Window2IDCMP
;Open Window1
New: move.l intbase(pc),a6
move.l Screen1(pc),a0
move.l #$00,d0
jsr ShowTitle(a6)
move.l $4,a6
move.l TimeReq(pc),a1
jsr DoIO(a6)
move.l Window2(pc),a0
move.l #$0,d0
jsr MenusOff
move.l intbase(pc),a6
lea.l NewWindow1(pc),a0
jsr OpenWindow(a6)
tst.l d0
bne New1
lea.l NoWin1(pc),a0
jmp ErrorPrint
New1: move.l d0,Window1
;Get RastPort1
move.l d0,a0
move.l $32(a0),RastPort1
move.l gfxbase(pc),a6
move.l #640,d0
move.l #256,d1
jsr AllocRaster(a6)
tst.l d0
bne GetRastP0.1
jmp ShowGuru
GetRastP0.1: move.l d0,PlanePtr
move.l gfxbase(pc),a6
lea.l NewAreaInfo1(pc),a0
move.l VecTab1(pc),a1
move.l #2048,d0
jsr InitArea(a6)
tst.l d0
bne GetRastP1
lea.l NoAreaInit(pc),a0
jmp ErrorPrint
GetRastP1: move.l PlanePtr(pc),a1
lea.l NewTmpRas1(pc),a0
move.l #TmpRas_Size,d0
jsr InitTmpRas(a6)
move.l RastPort1(pc),a0
lea.l NewTmpRas1(pc),a1
lea.l NewAreaInfo1(pc),a2
move.l a1,$c(a0)
move.l a2,$10(a0)
;Open Variable Editor window
move.l intbase(pc),a6
lea.l NewWindow3(pc),a0
jsr OpenWindow(a6)
tst.l d0
bne VE1
lea.l NoWin3(pc),a0
jmp ErrorPrint
VE1: move.l d0,Window3
move.l intbase(pc),a6
move.l Window3(pc),a0
lea.l Menu9(pc),a1
jsr SetMenuStrip(a6)
move.l Window3(pc),a0
move.l #$0,d0
jsr MenusOff
;Get RastPort3
move.l Window3,a0
move.l $32(a0),RastPort3
; move.l intbase(pc),a6
; lea.l MapTxt1(pc),a1
; move.l #$00,d0
; move.l d0,d1
; move RastPort3(pc),a0
; jsr PrintIText(a6)
move.l ViewPort(pc),a0
move.l gfxbase(pc),a6
lea.l ColorMap2(pc),a1
move.l #8,d0
jsr LoadRGB4(a6)
; Draw city map
move.l intbase(pc),a6
move.l RastPort1(pc),a0
lea.l CityMap1(pc),a1
move.l #$0,d0
move.l #$0,d1
jsr DrawBorder(a6)
move.l gfxbase(pc),a6
move.l RastPort1(pc),a1
move.l #$01,d0
jsr SetAPen(a6)
move.l RastPort1(pc),a1
move.l #30,d0
move.l #16,d1
move.l #3,d2
move.l #2,d3
jsr DrawEllipse(a6)
move.l RastPort1(pc),a1
move.l #110,d0
move.l #16,d1
jsr DrawEllipse(a6)
move.l RastPort1(pc),a1
move.l #116,d0
move.l #16,d1
jsr DrawEllipse(a6)
move.l RastPort1(pc),a1
move.l #122,d0
move.l #16,d1
jsr DrawEllipse(a6)
move.l RastPort1(pc),a1
move.l #290,d0
move.l #16,d1
jsr DrawEllipse(a6)
move.l RastPort1(pc),a1
move.l #368,d0
move.l #16,d1
jsr DrawEllipse(a6)
move.l RastPort1(pc),a1
move.l #374,d0
move.l #16,d1
jsr DrawEllipse(a6)
move.l RastPort1(pc),a1
move.l #380,d0
move.l #16,d1
jsr DrawEllipse(a6)
move.l RastPort1(pc),a1
move.l #368,d0
move.l #43,d1
jsr DrawEllipse(a6)
move.l RastPort1(pc),a1
move.l #368,d0
move.l #47,d1
jsr DrawEllipse(a6)
move.l RastPort1(pc),a1
move.l #368,d0
move.l #51,d1
jsr DrawEllipse(a6)
move.l RastPort1(pc),a1
move.l #368,d0
move.l #64,d1
jsr DrawEllipse(a6)
move.l RastPort1(pc),a1
move.l #374,d0
move.l #64,d1
jsr DrawEllipse(a6)
move.l RastPort1(pc),a1
move.l #380,d0
move.l #64,d1
jsr DrawEllipse(a6)
move.l RastPort1(pc),a1
move.l #368,d0
move.l #92,d1
jsr DrawEllipse(a6)
move.l RastPort1(pc),a1
move.l #278,d0
move.l #92,d1
jsr DrawEllipse(a6)
move.l RastPort1(pc),a1
move.l #284,d0
move.l #92,d1
jsr DrawEllipse(a6)
move.l RastPort1(pc),a1
move.l #290,d0
move.l #92,d1
jsr DrawEllipse(a6)
move.l RastPort1(pc),a1
move.l #290,d0
move.l #56,d1
jsr DrawEllipse(a6)
move.l RastPort1(pc),a1
move.l RastPort1(pc),a1
move.l #290,d0
move.l #60,d1
jsr DrawEllipse(a6)
move.l RastPort1(pc),a1
move.l #290,d0
move.l #64,d1
jsr DrawEllipse(a6)
move.l RastPort1(pc),a1
move.l #278,d0
move.l #43,d1
jsr DrawEllipse(a6)
move.l RastPort1(pc),a1
move.l #284,d0
move.l #43,d1
jsr DrawEllipse(a6)
move.l RastPort1(pc),a1
move.l #290,d0
move.l #43,d1
jsr DrawEllipse(a6)
move.l RastPort1(pc),a1
move.l #110,d0
move.l #43,d1
jsr DrawEllipse(a6)
move.l RastPort1(pc),a1
move.l #110,d0
move.l #47,d1
jsr DrawEllipse(a6)
move.l RastPort1(pc),a1
move.l #110,d0
move.l #51,d1
jsr DrawEllipse(a6)
move.l RastPort1(pc),a1
move.l #110,d0
move.l #64,d1
jsr DrawEllipse(a6)
move.l RastPort1(pc),a1
move.l #116,d0
move.l #64,d1
jsr DrawEllipse(a6)
move.l RastPort1(pc),a1
move.l #122,d0
move.l #64,d1
jsr DrawEllipse(a6)
move.l RastPort1(pc),a1
move.l #110,d0
move.l #92,d1
jsr DrawEllipse(a6)
move.l RastPort1(pc),a1
move.l #18,d0
move.l #92,d1
jsr DrawEllipse(a6)
move.l RastPort1(pc),a1
move.l #24,d0
move.l #92,d1
jsr DrawEllipse(a6)
move.l RastPort1(pc),a1
move.l #30,d0
move.l #92,d1
jsr DrawEllipse(a6)
move.l RastPort1(pc),a1
move.l #30,d0
move.l #56,d1
jsr DrawEllipse(a6)
move.l RastPort1(pc),a1
move.l #30,d0
move.l #60,d1
jsr DrawEllipse(a6)
move.l RastPort1(pc),a1
move.l #30,d0
move.l #64,d1
jsr DrawEllipse(a6)
move.l RastPort1(pc),a1
move.l #18,d0
move.l #43,d1
jsr DrawEllipse(a6)
move.l RastPort1(pc),a1
move.l #24,d0
move.l #43,d1
jsr DrawEllipse(a6)
move.l RastPort1(pc),a1
move.l #30,d0
move.l #43,d1
jsr DrawEllipse(a6)
jsr ColorLights
;Get System time for later use
move.l TimeReq(pc),a0
move.b #NT_MESSAGE,$8(a0)
move.b #$00,$9(a0)
move.l #$00,$a(a0)
move.l TPort(pc),$e(a0)
move.w #TR_GETSYSTIME,$1c(a0)
move.l $4,a6
move.l TimeReq(pc),a1
jsr DoIO(a6)
move.l TimeReq(pc),a0
move.l $20(a0),LSecs
move.l $20(a0),CSecs
move.l intbase(pc),a6
lea.l Gadget1(pc),a0
move.l Window3(pc),a1
move.l #$00,a2
jsr ActivateGadget(a6)
;add interrupt for the car movements
move.l $4,a6
move.l #INTB_VERTB,d0
lea.l TLInt(pc),a1
jsr AddIntServer(a6)
jsr InitCars
; Check if the window´s close button pressed
Window1IDCMP:
move.l gfxbase(pc),a6
move.l RastPort1(pc),a1
jsr SortGList(a6)
move.l ViewPort(pc),a0
move.l RastPort1(pc),a1
jsr DrawGList(a6)
move.l intbase(pc),a6
jsr RethinkDisplay(a6)
move.l TimeReq(pc),a0
move.b #NT_MESSAGE,$8(a0)
move.b #$00,$9(a0)
move.l #$00,$a(a0)
move.l TPort(pc),$e(a0)
move.w #TR_GETSYSTIME,$1c(a0)
move.l $4,a6
move.l TimeReq(pc),a1
jsr DoIO(a6)
;Now compare the set times with current and then maybe change lights
CheckRLength: cmp.l #$00,RedLength ;See if length=0
bne CheckGLength
move.l intbase(pc),a6
move.l Screen1(pc),a0
jsr DisplayBeep(a6)
move.l #$30,RedLength ;If it is then reset
move.b #"3",Gad1Buf
move.b #"0",Gad1Buf+1
move.b #$00,Gad1Buf+2
move.l Window3(pc),a1
lea.l Gadget1(pc),a0
move.l #-1,d0
jsr RefreshGList(a6)
CheckGLength: cmp.l #$00,GreenLength ;See if length=0
bne CompareL
move.l intbase(pc),a6
move.l Screen1(pc),a0
jsr DisplayBeep(a6)
move.l #$20,GreenLength ;If it is then reset
move.b #"2",Gad3Buf
move.b #"0",Gad3Buf+1
move.b #$00,Gad3Buf+2
move.l Window3(pc),a1
lea.l Gadget1(pc),a0
move.l #-1,d0
jsr RefreshGList(a6)
CompareL: move.l TimeReq(pc),a0
move.l $20(a0),a3
sub.l GSecs,a3 ;Cars crossing junction
cmp.l OutCarTime(pc),a3
bhi CarsLeave ;per z secs
CompareL0.1: move.l $20(a0),a3
sub.l CSecs,a3
cmp.l InCarTime(pc),a3
bhi Cars
move.l $20(a0),a3
sub.l LSecs,a3
cmp.b #$00,LStatus
beq CompareL1
cmp.b #$02,LStatus
beq CompareL2
CompareL0: cmp.l AmberLength(pc),a3
bcs Window1IDCMP2
jmp GetNewSysTime
CompareL1: cmp.l RedLength(pc),a3
bcs Window1IDCMP2
jmp GetNewSysTime
CompareL2: cmp.l GreenLength(pc),a3
bcs Window1IDCMP2
;Get new system time and save it
GetNewSysTime: move.l TimeReq(pc),a0
move.b #NT_MESSAGE,$8(a0)
move.b #$00,$9(a0)
move.l #$00,$a(a0)
move.l TPort(pc),$e(a0)
move.w #TR_GETSYSTIME,$1c(a0)
move.l $4,a6
move.l TimeReq(pc),a1
jsr DoIO(a6)
move.l TimeReq(pc),a0
move.l $20(a0),LSecs
jmp ChangeLights
Window1IDCMP2:
move.l gfxbase(pc),a6
move.l RastPort1(pc),a1
jsr SortGList(a6)
move.l ViewPort(pc),a0
move.l RastPort1(pc),a1
jsr DrawGList(a6)
move.l Window1(pc),a0
move.l Window2(pc),a4
move.l Window3(pc),a3
jsr CheckIDCMP
cmp.l #CLOSEWINDOW,d2
beq CityMapQuit
cmp.l #GADGETUP,d2
beq Activategads
cmp.l #VANILLAKEY,d2
beq Keys
cmp.l #MENUPICK,d2
beq DoWin2MenusExt
cmp.l #RAWKEY,d2
beq Window2KeysExt
cmp.l #GADGETDOWN,d2
beq ButtonsDown
jmp Window1IDCMP
ButtonsDown: move.l intbase(pc),a6
lea.l ModeGad1(pc),a1
cmp.l a1,a5
beq ButtonsDown1
lea.l ModeGad2(pc),a1
cmp.l a1,a5
beq ButtonsDown2
lea.l ModeGad3(pc),a1
cmp.l a1,a5
beq ButtonsDown3
jmp Window1IDCMP
ButtonsDown1: lea.l ModeGad2(pc),a0
move.w #$6,$c(a0)
lea.l ModeGad3(pc),a0
move.w #$6,$c(a0)
move.l Window3(pc),a1
lea.l ModeGad1(pc),a0
move.l #3,d0
jsr RefreshGList(a6)
move.l #$2,TrafficMode
jmp Window1IDCMP
ButtonsDown2: lea.l ModeGad1(pc),a0
move.w #$6,$c(a0)
lea.l ModeGad3(pc),a0
move.w #$6,$c(a0)
move.l Window3(pc),a1
lea.l ModeGad1(pc),a0
move.l #3,d0
jsr RefreshGList(a6)
move.l #$4,TrafficMode
jmp Window1IDCMP
ButtonsDown3: lea.l ModeGad1(pc),a0
move.w #$6,$c(a0)
lea.l ModeGad2(pc),a0
move.w #$6,$c(a0)
move.l Window3(pc),a1
lea.l ModeGad1(pc),a0
move.l #3,d0
jsr RefreshGList(a6)
move.l #$5,TrafficMode
jmp Window1IDCMP
ButtonsDown4: move.l intbase(pc),a6
lea.l ModeGad1(pc),a0
cmp.w #$06,$c(a0)
bne ButtonsDown5
lea.l ModeGad2(pc),a0
cmp.w #$06,$c(a0)
bne ButtonsDown5
lea.l ModeGad3(pc),a0
cmp.w #$06,$c(a0)
bne ButtonsDown5
move.w #$86,$c(a5)
lea.l ModeGad1(pc),a0
move.l #3,d0
move.l Window3(pc),a1
jsr RefreshGList(a6)
ButtonsDown5: jmp Window1IDCMP
Window2KeysExt: cmp.w #$5f,d3
bne W2K0
jsr GrapsOff
jsr Help
jsr GrapsOn
W2K0: jmp Window1IDCMP
DoWin2MenusExt: jsr MenuNull
cmp.l #$01,d6 ;Change this if you want more menus
; beq
cmp.l #$00,d6
bne ExtIsMenu1.2
ExtIsMenu1.0: cmp.l #$01,d5
bne ExtIsMenu1.01
jsr GrapsOff
jsr Help
jsr GrapsOn
jmp Window1IDCMP
ExtIsMenu1.01: cmp.l #$02,d5
bne ExtIsMenu1.02
jsr GrapsOff
jsr Load
jsr GrapsOn
jmp Window1IDCMP
ExtIsMenu1.02: cmp.l #$04,d5
bne ExtIsMenu1.03
jsr GrapsOff
jsr SaveAs
jsr GrapsOn
jmp Window1IDCMP
ExtIsMenu1.03: cmp.l #$05,d5
bne ExtIsMenu1.1
jsr GrapsOff
jsr About
jsr GrapsOn
ExtIsMenu1.1: cmp.l #$06,d5
beq CityMapQuit
ExtIsMenu1.2: jmp Window1IDCMP
GrapsOff:
move.l $4,a6
move.l #INTB_VERTB,d0
lea.l TLInt(pc),a1
jsr RemIntServer(a6)
cmp.b #$01,SpritesXOn
beq GrapsOff1
move.l gfxbase(pc),a6
lea.l Sprite1(pc),a0
jsr RemVSprite(a6)
lea.l Sprite4(pc),a0
jsr RemVSprite(a6)
lea.l Sprite9(pc),a0
jsr RemVSprite(a6)
lea.l Sprite10(pc),a0
jsr RemVSprite(a6)
jmp GrapsOff2
GrapsOff1: move.l gfxbase(pc),a6
lea.l Sprite7(pc),a0
jsr RemVSprite(a6)
lea.l Sprite8(pc),a0
jsr RemVSprite(a6)
lea.l Sprite9(pc),a0
jsr RemVSprite(a6)
lea.l Sprite10(pc),a0
jsr RemVSprite(a6)
lea.l Sprite11(pc),a0
jsr RemVSprite(a6)
lea.l Sprite12(pc),a0
jsr RemVSprite(a6)
GrapsOff2: lea.l Sprite13(pc),a0
jsr RemVSprite(a6)
lea.l Sprite14(pc),a0
jsr RemVSprite(a6)
lea.l Sprite15(pc),a0
jsr RemVSprite(a6)
lea.l Sprite16(pc),a0
jsr RemVSprite(a6)
lea.l Sprite17(pc),a0
jsr RemVSprite(a6)
lea.l Sprite18(pc),a0
jsr RemVSprite(a6)
lea.l Sprite19(pc),a0
jsr RemVSprite(a6)
; lea.l Sprite20(pc),a0
; jsr RemVSprite(a6)
; lea.l Sprite21(pc),a0
; jsr RemVSprite(a6)
; lea.l Sprite22(pc),a0
; jsr RemVSprite(a6)
; lea.l Sprite23(pc),a0
; jsr RemVSprite(a6)
lea.l Sprite24(pc),a0
jsr RemVSprite(a6)
lea.l Sprite25(pc),a0
jsr RemVSprite(a6)
lea.l Sprite26(pc),a0
jsr RemVSprite(a6)
lea.l Sprite27(pc),a0
jsr RemVSprite(a6)
move.l RastPort1(pc),a1
jsr SortGList(a6)
move.l ViewPort(pc),a0
move.l RastPort1(pc),a1
jsr DrawGList(a6)
move.l intbase(pc),a6
jsr RethinkDisplay(a6)
rts
GrapsOn: move.l $4,a6
move.l #INTB_VERTB,d0
lea.l TLInt(pc),a1
jsr AddIntServer(a6)
jsr InitCars
rts
Activategads: move.l intbase(pc),a6
move.l (a5),a0
cmp.l #$00,a0
bne ActivateGads1
lea.l Gadget1(pc),a0
ActivateGads1: move.l Window3(pc),a1
move.l #$00,a2
jsr ActivateGadget(a6)
jmp ButtonsDown4
Keys: cmp.w #$1b,d3
beq CityMapQuit
jmp Window1IDCMP
CityMapQuit:
;Remove interrupt server
move.l $4,a6
move.l #INTB_VERTB,d0
lea.l TLInt(pc),a1
jsr RemIntServer(a6)
move.l gfxbase(pc),a6
move.l PlanePtr(pc),a0
move.l #640,d0
move.l #256,d1
jsr FreeRaster(a6)
;Change the colors to the presets so the quitting gadgets look ok
move.l ViewPort(pc),a0
move.l gfxbase(pc),a6
lea.l ColorMap1(pc),a1
move.l #8,d0
jsr LoadRGB4(a6)
;Remove sprites, otherwise they'll be seen in the wrong window!
move.l gfxbase(pc),a6
lea.l Sprite1(pc),a0
jsr RemVSprite(a6)
lea.l Sprite4(pc),a0
jsr RemVSprite(a6)
lea.l Sprite7(pc),a0
jsr RemVSprite(a6)
lea.l Sprite8(pc),a0
jsr RemVSprite(a6)
lea.l Sprite9(pc),a0
jsr RemVSprite(a6)
lea.l Sprite10(pc),a0
jsr RemVSprite(a6)
lea.l Sprite11(pc),a0
jsr RemVSprite(a6)
lea.l Sprite12(pc),a0
jsr RemVSprite(a6)
lea.l Sprite13(pc),a0
jsr RemVSprite(a6)
lea.l Sprite14(pc),a0
jsr RemVSprite(a6)
lea.l Sprite15(pc),a0
jsr RemVSprite(a6)
lea.l Sprite16(pc),a0
jsr RemVSprite(a6)
lea.l Sprite17(pc),a0
jsr RemVSprite(a6)
lea.l Sprite18(pc),a0
jsr RemVSprite(a6)
lea.l Sprite19(pc),a0
jsr RemVSprite(a6)
; lea.l Sprite20(pc),a0
; jsr RemVSprite(a6)
; lea.l Sprite21(pc),a0
; jsr RemVSprite(a6)
; lea.l Sprite22(pc),a0
; jsr RemVSprite(a6)
; lea.l Sprite23(pc),a0
; jsr RemVSprite(a6)
lea.l Sprite24(pc),a0
jsr RemVSprite(a6)
lea.l Sprite25(pc),a0
jsr RemVSprite(a6)
lea.l Sprite26(pc),a0
jsr RemVSprite(a6)
lea.l Sprite27(pc),a0
jsr RemVSprite(a6)
move.l RastPort1(pc),a1
jsr SortGList(a6)
move.l ViewPort(pc),a0
move.l RastPort1(pc),a1
jsr DrawGList(a6)
move.l intbase(pc),a6
jsr RethinkDisplay(a6)
move.l Screen1(pc),a0
move.l #$ff,d0
jsr ShowTitle(a6)
move.l Window2(pc),a0
move.l #$00,d0
jsr MenusOn
move.l Window1(pc),a0
jsr ClearMSGs
move.l #$0,Window1
move.l Window3(pc),a0
move.l intbase(pc),a6
jsr ClearMenuStrip(a6)
move.l Window3(pc),a0
jsr ClearMSGs
move.l #$0,Window3
GoToMainLoop1: jmp MainLoop
CarsLeave: move.l TimeReq(pc),a0
move.b #NT_MESSAGE,$8(a0)
move.b #$00,$9(a0)
move.l #$00,$a(a0)
move.l TPort(pc),$e(a0)
move.w #TR_GETSYSTIME,$1c(a0)
move.l $4,a6
move.l TimeReq(pc),a1
jsr DoIO(a6)
move.l TimeReq(pc),a0
move.l $20(a0),GSecs
jsr YLightsGreen
jsr XLightsGreen
jmp CompareL0.1
;Here starts the part with the cars themselves
;Add checking of Max Amount of cars etc.
Cars: move.l gfxbase(pc),a6
move.l RastPort1(pc),a1
move.l #$00,d0
jsr SetAPen(a6)
move.l TimeReq(pc),a0
move.b #NT_MESSAGE,$8(a0)
move.b #$00,$9(a0)
move.l #$00,$a(a0)
move.l TPort(pc),$e(a0)
move.w #TR_GETSYSTIME,$1c(a0)
move.l $4,a6
move.l TimeReq(pc),a1
jsr DoIO(a6)
move.l TimeReq(pc),a0
move.l $20(a0),CSecs
jsr GetRandom
cmp.l In1(pc),d5
bhi Cars1
add.w #$01,Amount1
jsr CarCome1
Cars1: jsr GetRandom
cmp.l In2(pc),d5
bhi Cars2
add.w #$01,Amount2
jsr CarCome2
Cars2: jsr GetRandom
cmp.l In3(pc),d5
bhi Cars3
add.w #$01,Amount3
jsr CarCome3
Cars3: jsr GetRandom
cmp.l In4(pc),d5
bhi Cars4
add.w #$01,Amount4
jsr CarCome4
Cars4: jsr GetRandom
cmp.l In5(pc),d5
bhi Cars5
add.w #$01,Amount5
jsr CarCome5
Cars5: jsr GetRandom
cmp.l In6(pc),d5
bhi Cars6
add.w #$01,Amount6
jsr CarCome6
Cars6: jsr GetRandom
cmp.l In7(pc),d5
bhi Cars7
add.w #$01,Amount7
jsr CarCome7
Cars7: jsr GetRandom
cmp.l In8(pc),d5
bhi Window1IDCMP2
add.w #$01,Amount8
jsr CarCome8
jmp Window1IDCMP2
CarCome1: move.w Amount1(pc),DStream
lea.l FString(pc),a0
lea.l DStream(pc),a1
lea.l PutChProc(pc),a2
lea.l PutChData(pc),a3
move.l $4,a6
jsr RawDoFmt(a6)
move.l gfxbase(pc),a6
move.l RastPort1(pc),a1
move.l #39,d0
move.l #12,d1
move.l #58,d2
move.l #21,d3
jsr RectFill(a6)
move.l intbase(pc),a6
lea.l AmountTxt1(pc),a1
move.l RastPort1(pc),a0
move.l #$00,d0
move.l #$00,d1
jsr PrintIText(a6)
rts
CarCome2: move.w Amount2(pc),DStream
lea.l FString(pc),a0
lea.l DStream(pc),a1
lea.l PutChProc(pc),a2
lea.l PutChData(pc),a3
move.l $4,a6
jsr RawDoFmt(a6)
move.l gfxbase(pc),a6
move.l RastPort1(pc),a1
move.l #301,d0
move.l #12,d1
move.l #321,d2
move.l #21,d3
jsr RectFill(a6)
move.l intbase(pc),a6
lea.l AmountTxt2(pc),a1
move.l RastPort1(pc),a0
move.l #$00,d0
move.l #$00,d1
jsr PrintIText(a6)
rts
CarCome3: move.w Amount3(pc),DStream
lea.l FString(pc),a0
lea.l DStream(pc),a1
lea.l PutChProc(pc),a2
lea.l PutChData(pc),a3
move.l $4,a6
jsr RawDoFmt(a6)
move.l gfxbase(pc),a6
move.l RastPort1(pc),a1
move.l #360,d0
move.l #22,d1
move.l #375,d2
move.l #31,d3
jsr RectFill(a6)
move.l intbase(pc),a6
lea.l AmountTxt3(pc),a1
move.l RastPort1(pc),a0
move.l #$00,d0
move.l #$00,d1
jsr PrintIText(a6)
rts
CarCome4: move.w Amount4(pc),DStream
lea.l FString(pc),a0
lea.l DStream(pc),a1
lea.l PutChProc(pc),a2
lea.l PutChData(pc),a3
move.l $4,a6
jsr RawDoFmt(a6)
move.l gfxbase(pc),a6
move.l RastPort1(pc),a1
move.l #360,d0
move.l #70,d1
move.l #375,d2
move.l #80,d3
jsr RectFill(a6)
move.l intbase(pc),a6
lea.l AmountTxt4(pc),a1
move.l RastPort1(pc),a0
move.l #$00,d0
move.l #$00,d1
jsr PrintIText(a6)
rts
CarCome5: move.w Amount5(pc),DStream
lea.l FString(pc),a0
lea.l DStream(pc),a1
lea.l PutChProc(pc),a2
lea.l PutChData(pc),a3
move.l $4,a6
jsr RawDoFmt(a6)
move.l gfxbase(pc),a6
move.l RastPort1(pc),a1
move.l #338,d0
move.l #88,d1
move.l #358,d2
move.l #96,d3
jsr RectFill(a6)
move.l intbase(pc),a6
lea.l AmountTxt5(pc),a1
move.l RastPort1(pc),a0
move.l #$00,d0
move.l #$00,d1
jsr PrintIText(a6)
rts
CarCome6: move.w Amount6(pc),DStream
lea.l FString(pc),a0
lea.l DStream(pc),a1
lea.l PutChProc(pc),a2
lea.l PutChData(pc),a3
move.l $4,a6
jsr RawDoFmt(a6)
move.l gfxbase(pc),a6
move.l RastPort1(pc),a1
move.l #78,d0
move.l #88,d1
move.l #98,d2
move.l #96,d3
jsr RectFill(a6)
move.l intbase(pc),a6
lea.l AmountTxt6(pc),a1
move.l RastPort1(pc),a0
move.l #$00,d0
move.l #$00,d1
jsr PrintIText(a6)
rts
CarCome7: move.w Amount7(pc),DStream
lea.l FString(pc),a0
lea.l DStream(pc),a1
lea.l PutChProc(pc),a2
lea.l PutChData(pc),a3
move.l $4,a6
jsr RawDoFmt(a6)
move.l gfxbase(pc),a6
move.l RastPort1(pc),a1
move.l #20,d0
move.l #76,d1
move.l #40,d2
move.l #86,d3
jsr RectFill(a6)
move.l intbase(pc),a6
lea.l AmountTxt7(pc),a1
move.l RastPort1(pc),a0
move.l #$00,d0
move.l #$00,d1
jsr PrintIText(a6)
rts
CarCome8: move.w Amount8(pc),DStream
lea.l FString(pc),a0
lea.l DStream(pc),a1
lea.l PutChProc(pc),a2
lea.l PutChData(pc),a3
move.l $4,a6
jsr RawDoFmt(a6)
move.l gfxbase(pc),a6
move.l RastPort1(pc),a1
move.l #20,d0
move.l #28,d1
move.l #40,d2
move.l #38,d3
jsr RectFill(a6)
move.l intbase(pc),a6
lea.l AmountTxt8(pc),a1
move.l RastPort1(pc),a0
move.l #$00,d0
move.l #$00,d1
jsr PrintIText(a6)
rts
CarCome9: move.w Amount9(pc),DStream
lea.l FString(pc),a0
lea.l DStream(pc),a1
lea.l PutChProc(pc),a2
lea.l PutChData(pc),a3
move.l $4,a6
jsr RawDoFmt(a6)
move.l gfxbase(pc),a6
move.l RastPort1(pc),a1
move.l #101,d0
move.l #22,d1
move.l #121,d2
move.l #31,d3
jsr RectFill(a6)
move.l intbase(pc),a6
lea.l AmountTxt9(pc),a1
move.l RastPort1(pc),a0
move.l #$00,d0
move.l #$00,d1
jsr PrintIText(a6)
rts
CarCome10: move.w Amount10(pc),DStream
lea.l FString(pc),a0
lea.l DStream(pc),a1
lea.l PutChProc(pc),a2
lea.l PutChData(pc),a3
move.l $4,a6
jsr RawDoFmt(a6)
move.l gfxbase(pc),a6
move.l RastPort1(pc),a1
move.l #280,d0
move.l #27,d1
move.l #300,d2
move.l #37,d3
jsr RectFill(a6)
move.l intbase(pc),a6
lea.l AmountTxt10(pc),a1
move.l RastPort1(pc),a0
move.l #$00,d0
move.l #$00,d1
jsr PrintIText(a6)
rts
CarCome11: move.w Amount11(pc),DStream
lea.l FString(pc),a0
lea.l DStream(pc),a1
lea.l PutChProc(pc),a2
lea.l PutChData(pc),a3
move.l $4,a6
jsr RawDoFmt(a6)
move.l gfxbase(pc),a6
move.l RastPort1(pc),a1
move.l #301,d0
move.l #57,d1
move.l #321,d2
move.l #67,d3
jsr RectFill(a6)
move.l intbase(pc),a6
lea.l AmountTxt11(pc),a1
move.l RastPort1(pc),a0
move.l #$00,d0
move.l #$00,d1
jsr PrintIText(a6)
rts
CarCome12: move.w Amount12(pc),DStream
lea.l FString(pc),a0
lea.l DStream(pc),a1
lea.l PutChProc(pc),a2
lea.l PutChData(pc),a3
move.l $4,a6
jsr RawDoFmt(a6)
move.l gfxbase(pc),a6
move.l RastPort1(pc),a1
move.l #337,d0
move.l #41,d1
move.l #357,d2
move.l #51,d3
jsr RectFill(a6)
move.l intbase(pc),a6
lea.l AmountTxt12(pc),a1
move.l RastPort1(pc),a0
move.l #$00,d0
move.l #$00,d1
jsr PrintIText(a6)
rts
CarCome13: move.w Amount13(pc),DStream
lea.l FString(pc),a0
lea.l DStream(pc),a1
lea.l PutChProc(pc),a2
lea.l PutChData(pc),a3
move.l $4,a6
jsr RawDoFmt(a6)
move.l gfxbase(pc),a6
move.l RastPort1(pc),a1
move.l #280,d0
move.l #77,d1
move.l #300,d2
move.l #87,d3
jsr RectFill(a6)
move.l intbase(pc),a6
lea.l AmountTxt13(pc),a1
move.l RastPort1(pc),a0
move.l #$00,d0
move.l #$00,d1
jsr PrintIText(a6)
rts
CarCome14: move.w Amount14(pc),DStream
lea.l FString(pc),a0
lea.l DStream(pc),a1
lea.l PutChProc(pc),a2
lea.l PutChData(pc),a3
move.l $4,a6
jsr RawDoFmt(a6)
move.l gfxbase(pc),a6
move.l RastPort1(pc),a1
move.l #101,d0
move.l #69,d1
move.l #121,d2
move.l #79,d3
jsr RectFill(a6)
move.l intbase(pc),a6
lea.l AmountTxt14(pc),a1
move.l RastPort1(pc),a0
move.l #$00,d0
move.l #$00,d1
jsr PrintIText(a6)
rts
CarCome15: move.w Amount15(pc),DStream
lea.l FString(pc),a0
lea.l DStream(pc),a1
lea.l PutChProc(pc),a2
lea.l PutChData(pc),a3
move.l $4,a6
jsr RawDoFmt(a6)
move.l gfxbase(pc),a6
move.l RastPort1(pc),a1
move.l #39,d0
move.l #57,d1
move.l #61,d2
move.l #67,d3
jsr RectFill(a6)
move.l intbase(pc),a6
lea.l AmountTxt15(pc),a1
move.l RastPort1(pc),a0
move.l #$00,d0
move.l #$00,d1
jsr PrintIText(a6)
rts
CarCome16: move.w Amount16(pc),DStream
lea.l FString(pc),a0
lea.l DStream(pc),a1
lea.l PutChProc(pc),a2
lea.l PutChData(pc),a3
move.l $4,a6
jsr RawDoFmt(a6)
move.l gfxbase(pc),a6
move.l RastPort1(pc),a1
move.l #75,d0
move.l #40,d1
move.l #95,d2
move.l #50,d3
jsr RectFill(a6)
move.l intbase(pc),a6
lea.l AmountTxt16(pc),a1
move.l RastPort1(pc),a0
move.l #$00,d0
move.l #$00,d1
jsr PrintIText(a6)
rts
;Here's the thing that checks if there is room for more cars
CheckXMax: rts
CheckYMax: rts
;Here we have the routine that changes the lights
;
;LightStatus contains previous situation
;
;0 = "Original" i.e. green lights in the north-south direction
;1 = Amber 1 --
;3 = Green lights in the east-west direction
;4 = Amber 2 --
ChangeLights: move.b LStatus(pc),d0
beq LStat1
cmp.b #$01,d0
beq LStat2
cmp.b #$02,d0
beq LStat3
;Let it go on. If LStatus <>0,1,2 then it MUST be 3 :-)
;You actually never should do this, but now even if there is an error
;the light status will be reseted.
LStat0: move.l gfxbase(pc),a6
cmp.b #$01,SpritesXOn
bne LStat0.1
lea.l Sprite7(pc),a0
jsr RemVSprite(a6)
lea.l Sprite8(pc),a0
jsr RemVSprite(a6)
lea.l Sprite11(pc),a0
jsr RemVSprite(a6)
lea.l Sprite12(pc),a0
jsr RemVSprite(a6)
lea.l Sprite1(pc),a0
move.l RastPort1(pc),a1
jsr AddVSprite(a6)
lea.l Sprite4(pc),a0
move.l RastPort1(pc),a1
jsr AddVSprite(a6)
lea.l Sprite9(pc),a0
move.l RastPort1(pc),a1
jsr AddVSprite(a6)
lea.l Sprite10(pc),a0
move.l RastPort1(pc),a1
jsr AddVSprite(a6)
move.b #$00,SpritesXOn
LStat0.1: move.l ViewPort(pc),a0
move.l #3,d0
move.l #$a,d1
move.l #$a,d2
move.l #$a,d3
jsr SetRGB4(a6)
move.l ViewPort(pc),a0
move.l #6,d0
move.l #$a,d1
jsr SetRGB4(a6)
move.l ViewPort(pc),a0
move.l #7,d0
move.l #$a,d1
jsr SetRGB4(a6)
move.l ViewPort(pc),a0
move.l #4,d0
move.l #$0,d1
move.l #$f,d2
move.l #$0,d3
jsr SetRGB4(a6)
move.l ViewPort(pc),a0
move.l #5,d0
move.l #$f,d1
move.l #$0,d2
move.l #$0,d3
jsr SetRGB4(a6)
move.b #$00,LStatus
jmp Window1IDCMP2
LStat1: cmp.l #$00,AmberLength
beq LStat2
move.l gfxbase(pc),a6
move.l ViewPort(pc),a0
move.l #6,d0
move.l #$f,d1
move.l #$a,d2
move.l #$0,d3
jsr SetRGB4(a6)
move.l ViewPort(pc),a0
move.l #4,d0
move.l #$a,d1
move.l #$a,d2
move.l #$a,d3
jsr SetRGB4(a6)
move.l ViewPort(pc),a0
move.b #$1,LStatus
jmp Window1IDCMP2
LStat2: move.l gfxbase(pc),a6
cmp.b #$01,SpritesXOn
beq LStat2.1
lea.l Sprite1(pc),a0
jsr RemVSprite(a6)
lea.l Sprite4(pc),a0
jsr RemVSprite(a6)
lea.l Sprite9(pc),a0
jsr RemVSprite(a6)
lea.l Sprite10(pc),a0
jsr RemVSprite(a6)
lea.l Sprite7(pc),a0
move.l RastPort1(pc),a1
jsr AddVSprite(a6)
lea.l Sprite8(pc),a0
move.l RastPort1(pc),a1
jsr AddVSprite(a6)
lea.l Sprite11(pc),a0
move.l RastPort1(pc),a1
jsr AddVSprite(a6)
lea.l Sprite12(pc),a0
move.l RastPort1(pc),a1
jsr AddVSprite(a6)
move.b #$01,SpritesXOn
LStat2.1: move.l ViewPort(pc),a0
move.l #6,d0
move.l #$a,d1
move.l #$a,d2
move.l #$a,d3
jsr SetRGB4(a6)
move.l ViewPort(pc),a0
move.l #4,d0
move.l #$a,d1
jsr SetRGB4(a6)
move.l ViewPort(pc),a0
move.l #5,d0
move.l #$a,d1
jsr SetRGB4(a6)
move.l ViewPort(pc),a0
move.l #3,d0
move.l #$0,d1
move.l #$f,d2
move.l #$0,d3
jsr SetRGB4(a6)
move.l ViewPort(pc),a0
move.l #7,d0
move.l #$f,d1
move.l #$0,d2
move.l #$0,d3
jsr SetRGB4(a6)
move.b #$2,LStatus
jmp Window1IDCMP2
LStat3: cmp.l #$00,AmberLength
beq LStat0
move.l gfxbase(pc),a6
move.l ViewPort(pc),a0
move.l #6,d0
move.l #$f,d1
move.l #$a,d2
move.l #$0,d3
jsr SetRGB4(a6)
move.l ViewPort(pc),a0
move.l #3,d0
move.l #$a,d1
move.l #$a,d2
move.l #$a,d3
jsr SetRGB4(a6)
move.b #$3,LStatus
jmp Window1IDCMP2
GetRandom: move.l TimeReq(pc),a0
move.b #NT_MESSAGE,$8(a0)
move.b #$00,$9(a0)
move.l #$00,$a(a0)
move.l TPort(pc),$e(a0)
move.w #TR_GETSYSTIME,$1c(a0)
move.l $4,a6
move.l TimeReq(pc),a1
jsr DoIO(a6)
move.l TimeReq(pc),a0
move.l TrafficMode(pc),d1
move.l $24(a0),d0
ror.l #$8,d0
ror.l d1,d0
move.l #$00,d1
move.b d0,d1
cmp.l #$64,d1
bhi GetRandom
move.l #$00,DStream2
move.b d1,DStream2+3
move.l DStream2(pc),d5
rts
GetRandom2: move.l TimeReq(pc),a0
move.b #NT_MESSAGE,$8(a0)
move.b #$00,$9(a0)
move.l #$00,$a(a0)
move.l TPort(pc),$e(a0)
move.w #TR_GETSYSTIME,$1c(a0)
move.l $4,a6
move.l TimeReq(pc),a1
jsr DoIO(a6)
move.l TimeReq(pc),a0
move.l $24(a0),d0
ror.l #$8,d0
ror.l #$2,d0
move.l #$00,d1
move.b d0,d1
cmp.l #$64,d1
bhi GetRandom
move.l #$00,DStream2
move.b d1,DStream2+3
move.l DStream2(pc),d5
rts
YLightsGreen: cmp.b #$00,LStatus
bne YBatchOut
lea.l Sprite1(pc),a2
cmp.l #$00,$3a(a2)
bne YBatch2
YBatch1: cmp.w #$00,Amount1
beq YBatch2
jsr GetRandom2
cmp.l T7(pc),d5 ;if turns left
bcs YBatch1Right
sub.l T7(pc),d5
cmp.l T8(pc),d5 ;if turns right
bcs YBatch1Left
YBatch1Stra: move.b #1,$3a(a2)
sub.w #$01,Amount1
jsr CarCome1
jmp YBatch2
YBatch1Right: move.b #2,$3a(a2)
sub.w #$01,Amount1
jsr CarCome1
jmp YBatch2
YBatch1Left: move.b #3,$3a(a2)
sub.w #$01,Amount1
jsr CarCome1
YBatch2: lea.l Sprite4(pc),a2
cmp.l #$00,$3a(a2)
bne YBatch5
cmp.w #$00,Amount2
beq YBatch5
jsr GetRandom2
cmp.l T10(pc),d5 ;if turns left
bcs YBatch2Right
sub.l T10(pc),d5
cmp.l T11(pc),d5 ;if turns right
bcs YBatch2Left
YBatch2Stra: move.b #4,$3a(a2)
sub.w #1,Amount2
jsr CarCome2
jmp YBatch5
YBatch2Right: move.b #5,$3a(a2)
sub.w #1,Amount2
jsr CarCome2
jmp YBatch5
YBatch2Left: move.b #6,$3a(a2)
sub.w #1,Amount2
jsr CarCome2
YBatch5: lea.l Sprite9(pc),a2
cmp.l #$00,$3a(a2)
bne YBatch6
cmp.w #$00,Amount5
beq YBatch6
jsr GetRandom2
cmp.l T46(pc),d5 ;if turns left
bcs YBatch5Right
sub.l T46(pc),d5
cmp.l T47(pc),d5 ;if turns right
bcs YBatch5Left
YBatch5Stra: move.b #7,$3a(a2)
sub.w #1,Amount5
jsr CarCome5
jmp YBatch6
YBatch5Right: move.b #8,$3a(a2)
sub.w #1,Amount5
jsr CarCome5
jmp YBatch6
YBatch5Left: move.b #9,$3a(a2)
sub.w #1,Amount5
jsr CarCome5
YBatch6: lea.l Sprite10(pc),a2
cmp.l #$00,$3a(a2)
bne YBatch15
cmp.w #$00,Amount6
beq YBatch15
jsr GetRandom2
cmp.l T43(pc),d5 ;if turns left
bcs YBatch6Right
sub.l T43(pc),d5
cmp.l T44(pc),d5 ;if turns right
bcs YBatch6Left
YBatch6Stra: move.b #10,$3a(a2)
sub.w #1,Amount6
jsr CarCome6
jmp YBatch15
YBatch6Right: move.b #11,$3a(a2)
sub.w #1,Amount6
jsr CarCome6
jmp YBatch15
YBatch6Left: move.b #12,$3a(a2)
sub.w #1,Amount6
jsr CarCome6
YBatch15: lea.l Sprite24(pc),a2
cmp.l #$00,$3a(a2)
beq YBatch15.1
add.l #$3e,a2
cmp.l #$00,$3a(a2)
bne YBatch16
YBatch15.1: cmp.w #$00,Amount15
beq YBatch16
jsr GetRandom2
cmp.l T31(pc),d5 ;if turns left
bcs YBatch15Right
sub.l T31(pc),d5
cmp.l T32(pc),d5 ;if turns right
bcs YBatch15Left
YBatch15Stra: move.b #19,$3a(a2)
sub.w #1,Amount15
jsr CarCome15
jmp YBatch16
YBatch15Right: move.b #20,$3a(a2)
sub.w #1,Amount15
jsr CarCome15
jmp YBatch16
YBatch15Left: move.b #21,$3a(a2)
sub.w #1,Amount15
jsr CarCome15
YBatch16: lea.l Sprite26(pc),a2
cmp.l #$00,$3a(a2)
beq YBatch16.1
add.l #$3e,a2
cmp.l #$00,$3a(a2)
bne YBatch11
YBatch16.1: cmp.w #$00,Amount16
beq YBatch11
jsr GetRandom2
cmp.l T19(pc),d5 ;if turns left
bcs YBatch16Right
sub.l T19(pc),d5
cmp.l T20(pc),d5 ;if turns right
bcs YBatch16Left
YBatch16Stra: move.b #13,$3a(a2)
sub.w #1,Amount16
jsr CarCome16
jmp YBatch11
YBatch16Right: move.b #14,$3a(a2)
sub.w #1,Amount16
jsr CarCome16
jmp YBatch11
YBatch16Left: move.b #15,$3a(a2)
sub.w #1,Amount16
jsr CarCome16
YBatch11: lea.l Sprite16(pc),a2
cmp.l #$00,$3a(a2)
beq YBatch11.1
add.l #$3e,a2
cmp.l #$00,$3a(a2)
bne YBatch12
YBatch11.1: cmp.w #$00,Amount12
beq YBatch12
jsr GetRandom2
cmp.l T22(pc),d5 ;if turns left
bcs YBatch11Right
sub.l T22(pc),d5
cmp.l T23(pc),d5 ;if turns right
bcs YBatch11Left
YBatch11Stra: move.b #16,$3a(a2)
sub.w #1,Amount12
jsr CarCome12
jmp YBatch12
YBatch11Right: move.b #17,$3a(a2)
sub.w #1,Amount12
jsr CarCome12
jmp YBatch12
YBatch11Left: move.b #18,$3a(a2)
sub.w #1,Amount12
jsr CarCome12
YBatch12: lea.l Sprite18(pc),a2
cmp.l #$00,$3a(a2)
beq YBatch12.1
add.l #$3e,a2
cmp.l #$00,$3a(a2)
bne YBatchOut
YBatch12.1: cmp.w #$00,Amount11
beq YBatchOut
jsr GetRandom2
cmp.l T34(pc),d5 ;if turns left
bcs YBatch12Right
sub.l T34(pc),d5
cmp.l T35(pc),d5 ;if turns right
bcs YBatch12Left
YBatch12Stra: move.b #22,$3a(a2)
sub.w #1,Amount11
jsr CarCome11
jmp YBatchOut
YBatch12Right: move.b #23,$3a(a2)
sub.w #1,Amount11
jsr CarCome11
jmp YBatchOut
YBatch12Left: move.b #24,$3a(a2)
sub.w #1,Amount11
jsr CarCome11
YBatchOut: rts
XLightsGreen: cmp.b #$02,LStatus
bne XBatchOut
XBatch3: lea.l Sprite7(pc),a2
cmp.l #$00,$3a(a2)
bne XBatch4
cmp.w #$00,Amount3
beq XBatch4
jsr GetRandom2
cmp.l T16(pc),d5 ;if turns left
bcs XBatch3Right
sub.l T16(pc),d5
cmp.l T17(pc),d5 ;if turns right
bcs XBatch3Left
XBatch3Stra: move.b #43,$3a(a2)
sub.w #1,Amount3
jsr CarCome3
jmp XBatch4
XBatch3Right: move.b #44,$3a(a2)
sub.w #1,Amount3
jsr CarCome3
jmp XBatch4
XBatch3Left: move.b #45,$3a(a2)
sub.w #1,Amount3
jsr CarCome3
XBatch4: lea.l Sprite8(pc),a2
cmp.l #$00,$3a(a2)
bne XBatch7
cmp.w #$00,Amount4
beq XBatch7
jsr GetRandom2
cmp.l T40(pc),d5 ;if turns left
bcs XBatch4Right
sub.l T40(pc),d5
cmp.l T41(pc),d5 ;if turns right
bcs XBatch4Left
XBatch4Stra: move.b #46,$3a(a2)
sub.w #1,Amount4
jsr CarCome4
jmp XBatch7
XBatch4Right: move.b #47,$3a(a2)
sub.w #1,Amount4
jsr CarCome4
jmp XBatch7
XBatch4Left: move.b #48,$3a(a2)
sub.w #1,Amount4
jsr CarCome4
XBatch7: lea.l Sprite11(pc),a2
cmp.l #$00,$3a(a2)
bne XBatch8
cmp.w #$00,Amount7
beq XBatch8
jsr GetRandom2
cmp.l T28(pc),d5 ;if turns left
bcs XBatch7Right
sub.l T29(pc),d5
cmp.l T30(pc),d5 ;if turns right
bcs XBatch7Left
XBatch7Stra: move.b #46,$3a(a2)
sub.w #1,Amount7
jsr CarCome7
jmp XBatch8
XBatch7Right: move.b #47,$3a(a2)
sub.w #1,Amount7
jsr CarCome7
jmp XBatch8
XBatch7Left: move.b #48,$3a(a2)
sub.w #1,Amount7
jsr CarCome7
XBatch8: lea.l Sprite12(pc),a2
cmp.l #$00,$3a(a2)
bne XBatch9
cmp.w #$00,Amount8
beq XBatch9
jsr GetRandom2
cmp.l T1(pc),d5 ;if turns left
bcs XBatch8Right
sub.l T1(pc),d5
cmp.l T2(pc),d5 ;if turns right
bcs XBatch8Left
XBatch8Stra: move.b #26,$3a(a2)
sub.w #1,Amount8
jsr CarCome8
jmp XBatch9
XBatch8Right: move.b #27,$3a(a2)
sub.w #1,Amount8
jsr CarCome8
jmp XBatch9
XBatch8Left: move.b #28,$3a(a2)
sub.w #1,Amount8
jsr CarCome8
XBatch9: lea.l Sprite13(pc),a2
cmp.l #$00,$3a(a2)
bne XBatch10
cmp.w #$00,Amount9
beq XBatch10
jsr GetRandom2
cmp.l T13(pc),d5 ;if turns left
bcs XBatch9Right
sub.l T13(pc),d5
cmp.l T14(pc),d5 ;if turns right
bcs XBatch9Left
XBatch9Stra: move.b #26,$3a(a2)
sub.w #1,Amount9
jsr CarCome9
jmp XBatch10
XBatch9Right: move.b #27,$3a(a2)
sub.w #1,Amount9
jsr CarCome9
jmp XBatch10
XBatch9Left: move.b #28,$3a(a2)
sub.w #1,Amount9
jsr CarCome9
XBatch10: lea.l Sprite14(pc),a2
cmp.l #$00,$3a(a2)
beq XBatch10.1
add.l #$3e,a2
cmp.l #$00,$3a(a2)
bne XBatch13
XBatch10.1: cmp.w #$00,Amount10
beq XBatch13
jsr GetRandom2
cmp.l T4(pc),d5 ;if turns left
bcs XBatch10Right
sub.l T4(pc),d5
cmp.l T5(pc),d5 ;if turns right
bcs XBatch10Left
XBatch10Stra: move.b #31,$3a(a2)
sub.w #1,Amount10
jsr CarCome10
jmp XBatch13
XBatch10Right: move.b #32,$3a(a2)
sub.w #1,Amount10
jsr CarCome10
jmp XBatch13
XBatch10Left: move.b #33,$3a(a2)
sub.w #1,Amount10
jsr CarCome10
XBatch13: lea.l Sprite20(pc),a2
cmp.l #$00,$3a(a2)
beq XBatch13.1
add.l #$3e,a2
cmp.l #$00,$3a(a2)
bne XBatch14
XBatch13.1: cmp.w #$00,Amount13
beq XBatch14
jsr GetRandom2
cmp.l T28(pc),d5 ;if turns left
bcs XBatch13Right
sub.l T28(pc),d5
cmp.l T29(pc),d5 ;if turns right
bcs XBatch13Left
XBatch13Stra: move.b #34,$3a(a2)
sub.w #1,Amount13
jsr CarCome13
jmp XBatch14
XBatch13Right: move.b #35,$3a(a2)
sub.w #1,Amount13
jsr CarCome13
jmp XBatch14
XBatch13Left: move.b #36,$3a(a2)
sub.w #1,Amount13
jsr CarCome13
XBatch14: lea.l Sprite22(pc),a2
cmp.l #$00,$3a(a2)
beq XBatch14.1
add.l #$3e,a2
cmp.l #$00,$3a(a2)
bne XBatchOut
XBatch14.1: cmp.w #$00,Amount13
beq XBatchOut
jsr GetRandom2
cmp.l T37(pc),d5 ;if turns left
bcs XBatch14Right
sub.l T37(pc),d5
cmp.l T38(pc),d5 ;if turns right
bcs XBatch14Left
XBatch14Stra: move.b #34,$3a(a2)
sub.w #1,Amount14
jsr CarCome14
jmp XBatchOut
XBatch14Right: move.b #35,$3a(a2)
sub.w #1,Amount14
jsr CarCome14
jmp XBatchOut
XBatch14Left: move.b #36,$3a(a2)
sub.w #1,Amount14
jsr CarCome14
XBatchOut: rts
InitCars: lea.l Sprite1(pc),a2
lea.l Sprite27(pc),a3
add.l #$3e,a3
InitCars1: move.l #$00,$3a(a2) ;Clear Current & Destination
add.l #$3e,a2
cmp.l a2,a3
bne InitCars1
;Batch 1
lea.l TLIntData(pc),a1
lea.l Sprite1(pc),a2
move.w DTJY(pc),$16(a2)
move.w J1XL(pc),$18(a2)
move.l $50(a1),$24(a2)
;Batch 2
lea.l Sprite4(pc),a2 ;Sprite4
move.w DTJY(pc),$16(a2)
move.w J2XL(pc),$18(a2)
move.l $50(a1),$24(a2)
;Batch 3
lea.l Sprite7(pc),a2
move.w J1YT(pc),$16(a2)
move.w DRJX(pc),$18(a2)
move.l $58(a1),$24(a2)
;Batch 4
lea.l Sprite8(pc),a2
move.w J2YT(pc),$16(a2)
move.w DRJX(pc),$18(a2)
move.l $58(a1),$24(a2)
;Batch 5
lea.l Sprite9(pc),a2
move.w DBJY(pc),$16(a2)
move.w J2XR(pc),$18(a2)
move.l $4c(a1),$24(a2)
;Batch 6
lea.l Sprite10(pc),a2
move.w DBJY(pc),$16(a2)
move.w J1XR(pc),$18(a2)
move.l $4c(a1),$24(a2)
;Batch 7
lea.l Sprite11(pc),a2
move.w J2YB(pc),$16(a2)
move.w DLJX(pc),$18(a2)
move.l $54(a1),$24(a2)
;Batch 8
lea.l Sprite12(pc),a2
move.w J1YB(pc),$16(a2)
move.w DLJX(pc),$18(a2)
move.l $54(a1),$24(a2)
;Batch 9
lea.l Sprite13(pc),a2
move.w J1YT(pc),$16(a2)
move.w FRJX(pc),$18(a2)
move.l $58(a1),$24(a2)
;Batch 10
lea.l Sprite14(pc),a2
move.w J1YB(pc),$16(a2)
move.w FLJX(pc),$18(a2)
move.l $54(a1),$24(a2)
lea.l Sprite15(pc),a2
move.w J1YB(pc),$16(a2)
move.w FLJX(pc),$18(a2)
move.l $54(a1),$24(a2)
;Batch 11
lea.l Sprite16(pc),a2
move.w FBJY(pc),$16(a2)
move.w J2XR(pc),$18(a2)
move.l $4c(a1),$24(a2)
lea.l Sprite17(pc),a2
move.w FBJY(pc),$16(a2)
move.w J2XR(pc),$18(a2)
move.l $4c(a1),$24(a2)
;Batch 12
lea.l Sprite18(pc),a2
move.w FTJY(pc),$16(a2)
move.w J2XL(pc),$18(a2)
move.l $58(a1),$24(a2)
lea.l Sprite19(pc),a2
move.w FTJY(pc),$16(a2)
move.w J2XL(pc),$18(a2)
move.l $50(a1),$24(a2)
;Batch 13
lea.l Sprite20(pc),a2
move.w FLJX(pc),$16(a2)
move.w J1XR(pc),$18(a2)
move.l $54(a1),$24(a2)
lea.l Sprite21(pc),a2
move.w FLJX(pc),$16(a2)
move.w J1XR(pc),$18(a2)
move.l $54(a1),$24(a2)
;Batch 14
lea.l Sprite22(pc),a2
move.w FRJX(pc),$16(a2)
move.w J1XR(pc),$18(a2)
move.l $58(a1),$24(a2)
lea.l Sprite23(pc),a2
move.w FRJX(pc),$16(a2)
move.w J1XR(pc),$18(a2)
move.l $58(a1),$24(a2)
;Batch 15
lea.l Sprite24(pc),a2
move.w FTJY(pc),$16(a2)
move.w J1XL(pc),$18(a2)
move.l $50(a1),$24(a2)
lea.l Sprite25(pc),a2
move.w FTJY(pc),$16(a2)
move.w J1XL(pc),$18(a2)
move.l $50(a1),$24(a2)
;Batch 16
lea.l Sprite26(pc),a2
move.w FBJY(pc),$16(a2)
move.w J1XR(pc),$18(a2)
move.l $4c(a1),$24(a2)
lea.l Sprite27(pc),a2
move.w FBJY(pc),$16(a2)
move.w J1XR(pc),$18(a2)
move.l $4c(a1),$24(a2)
DrawSprites: move.l gfxbase(pc),a6
lea.l DummyHead(pc),a0
lea.l DummyTail(pc),a1
lea.l GelsInfo(pc),a2
move.l RastPort1(pc),a3
move.l a2,$14(a3)
jsr InitGels(a6)
;Batch 1
lea.l Sprite1(pc),a0
jsr InitMasks(a6)
;Batch 2
lea.l Sprite4(pc),a0
jsr InitMasks(a6)
;Batch 3
lea.l Sprite7(pc),a0
jsr InitMasks(a6)
;Batch 4
lea.l Sprite8(pc),a0
jsr InitMasks(a6)
;Batch 5
lea.l Sprite9(pc),a0
jsr InitMasks(a6)
;Batch 6
lea.l Sprite10(pc),a0
jsr InitMasks(a6)
;Batch 7
lea.l Sprite11(pc),a0
jsr InitMasks(a6)
;Batch 8
lea.l Sprite12(pc),a0
jsr InitMasks(a6)
;Batch 9
lea.l Sprite13(pc),a0
jsr InitMasks(a6)
lea.l Sprite13(pc),a0
move.l RastPort1(pc),a1
jsr AddVSprite(a6)
;Batch 10
lea.l Sprite14(pc),a0
jsr InitMasks(a6)
lea.l Sprite14(pc),a0
move.l RastPort1(pc),a1
jsr AddVSprite(a6)
lea.l Sprite15(pc),a0
jsr InitMasks(a6)
lea.l Sprite15(pc),a0
move.l RastPort1(pc),a1
jsr AddVSprite(a6)
;Batch 11
lea.l Sprite16(pc),a0
jsr InitMasks(a6)
lea.l Sprite16(pc),a0
move.l RastPort1(pc),a1
jsr AddVSprite(a6)
lea.l Sprite17(pc),a0
jsr InitMasks(a6)
lea.l Sprite17(pc),a0
move.l RastPort1(pc),a1
jsr AddVSprite(a6)
;Batch 12
lea.l Sprite18(pc),a0
jsr InitMasks(a6)
lea.l Sprite18(pc),a0
move.l RastPort1(pc),a1
jsr AddVSprite(a6)
lea.l Sprite19(pc),a0
jsr InitMasks(a6)
lea.l Sprite19(pc),a0
move.l RastPort1(pc),a1
jsr AddVSprite(a6)
;Batch 13
; lea.l Sprite20(pc),a0
; jsr InitMasks(a6)
; lea.l Sprite20(pc),a0
; move.l RastPort1(pc),a1
; jsr AddVSprite(a6)
; lea.l Sprite21(pc),a0
; jsr InitMasks(a6)
; lea.l Sprite21(pc),a0
; move.l RastPort1(pc),a1
; jsr AddVSprite(a6)
;Batch 14
; lea.l Sprite22(pc),a0
; jsr InitMasks(a6)
; lea.l Sprite22(pc),a0
; move.l RastPort1(pc),a1
; jsr AddVSprite(a6)
; lea.l Sprite23(pc),a0
; jsr InitMasks(a6)
; lea.l Sprite23(pc),a0
; move.l RastPort1(pc),a1
; jsr AddVSprite(a6)
;Batch 15
lea.l Sprite24(pc),a0
jsr InitMasks(a6)
lea.l Sprite24(pc),a0
move.l RastPort1(pc),a1
jsr AddVSprite(a6)
lea.l Sprite25(pc),a0
jsr InitMasks(a6)
lea.l Sprite25(pc),a0
move.l RastPort1(pc),a1
jsr AddVSprite(a6)
;Batch 16
lea.l Sprite26(pc),a0
jsr InitMasks(a6)
lea.l Sprite26(pc),a0
move.l RastPort1(pc),a1
jsr AddVSprite(a6)
lea.l Sprite27(pc),a0
jsr InitMasks(a6)
lea.l Sprite27(pc),a0
move.l RastPort1(pc),a1
jsr AddVSprite(a6)
;Add sprites 1, 2, 4, 5, 9, 10
lea.l Sprite1(pc),a0
move.l RastPort1(pc),a1
jsr AddVSprite(a6)
lea.l Sprite4(pc),a0
move.l RastPort1(pc),a1
jsr AddVSprite(a6)
lea.l Sprite9(pc),a0
move.l RastPort1(pc),a1
jsr AddVSprite(a6)
lea.l Sprite10(pc),a0
move.l RastPort1(pc),a1
jsr AddVSprite(a6)
move.b #$00,SpritesXOn
InitCars10:
;Might as well draw the sprites too ?
move.l RastPort1(pc),a1
jsr SortGList(a6)
move.l ViewPort(pc),a0
move.l RastPort1(pc),a1
jsr DrawGList(a6)
move.l intbase(pc),a6
jsr RethinkDisplay(a6)
rts
MenuNull: move.l d3,d6 ; 3 2 1
;10987654321098765432109876543210
ror.l #5,d6 ;%0000000000000000000000000011111,d6
lsr.l #8,d6 ;%0000000000000000000000000011111,d6
lsr.l #8,d6
lsr.l #8,d6
lsr.l #3,d6
move.l d3,d5
ror.l #5,d5 ;%0000000000000000000011111100000,d5
ror.l #6,d5 ;%0000000000000000000000000111111,d5
lsr.l #8,d5
lsr.l #8,d5
lsr.l #8,d5
lsr.l #2,d5
;SubItems
move.l #$00,d4
move.w d3,d4
lsr.l #5,d4 ;%0000000000000001111100000000000,d4
lsr.l #6,d4 ;%0000000000000000000000000011111,d5
rts
Check2IDCMP: move.l $4,a6 ;made this a SubRoutine...
move.l $56(a0),a2 ;Give it the window structure in a0
move.l #0,d1
move.b $0f(a2),d1
move.l #0,d0
bset.l d1,d0
jsr Wait(a6)
Get2Msg1: move.l a2,a0
jsr GetMsg(a6)
tst.l d0
beq Get2Msg2
move.l d0,a1
move.l $14(a1),d2 ;answers with Class in d2,
move.w $18(a1),d3 ;Code in d3 and
move.w $1a(a1),a4 ;Qualifier in a4
move.l $1c(a1),a5 ;IAddress in a5
jsr ReplyMsg(a6)
jmp Get2Msg1
Get2Msg2: move.l #-1,d0
rts
Window2IDCMP: move.l Window2(pc),a0
jsr Check2IDCMP
PE.01: cmp.l #MENUPICK,d2
beq DoWin2Menus
cmp.l #RAWKEY,d2
beq Window2Keys
jmp Window2IDCMP
Window2Keys: cmp.w #$5f,d3
bne Window2Keys0
jsr Help
Window2Keys0: jmp Window2IDCMP
DoWin2Menus: jsr MenuNull
cmp.l #$01,d6 ;Change this if you want more menus
; beq
cmp.l #$00,d6
bne IsMenu1.1
cmp.l #$00,d5
beq New
IsMenu1.0: cmp.l #$01,d5
bne IsMenu1.01
jsr Help
jmp MainLoop
IsMenu1.01: cmp.l #$02,d5
bne IsMenu1.02
jsr Load
jmp MainLoop
IsMenu1.02: cmp.l #$04,d5
bne IsMenu1.03
jsr SaveAs
jmp MainLoop
IsMenu1.03: cmp.l #$05,d5
bne IsMenu1.04
jsr About
IsMenu1.04: cmp.l #$06,d5
beq QuittingReq
IsMenu1.1 jmp MainLoop
Help: move.l Window2(pc),a0
move.l #%100000,d0
jsr MenusOff
lea.l NewHelpWin1(pc),a0
move.l intbase(pc),a6
jsr OpenWindow(a6)
tst.l d0
bne Help1
lea.l NoHelpWin1(pc),a0
jmp ShowGuru
Help1: move.l d0,HelpWin1
move.l HelpWin1,a1
move.l $32(a1),a0
lea.l Help1Txt1,a1
move.w #$10,d0
move.w #$10,d1
jsr PrintIText(a6)
move.w #$00,HelpStatus
; move.l Screen1,a0
; jsr DisplayBeep(a6)
HelpWin1IDCMP: move.l HelpWin1(pc),a0
jsr Check2IDCMP
cmp.l #GADGETUP,d2
beq HelpWin1IDCMP2
cmp.l #CLOSEWINDOW,d2
beq HelpWin1IDCMP2
cmp.l #VANILLAKEY,d2
bne HelpWin1IDCMP
cmp.w #$1b,d3
beq HelpWin1IDCMP2
cmp.w #"y",d3
beq HelpWin1IDCMP3
cmp.w #"Y",d3
beq HelpWin1IDCMP3
cmp.w #"n",d3
beq HelpWin1IDCMP2
cmp.w #"N",d3
beq HelpWin1IDCMP2
jmp HelpWin1IDCMP
HelpWin1IDCMP1: cmp.w #$2,$26(a5)
beq HelpWin1IDCMP2
cmp.w #$3,$26(a5)
bne HelpWin1IDCMP
HelpWin1IDCMP2: move.l Window2(pc),a0
move.l #%100000,d0
jsr MenusOn
move.l HelpWin1(pc),a0
jsr ClearMSGs
move.l #0,HelpWin1
rts
HelpWin1IDCMP3: move.l HelpWin1(pc),a0
jsr ClearMSGs
move.l #0,HelpWin1
lea.l NewHelpWin1(pc),a0
move.l intbase(pc),a6
jsr OpenWindow(a6)
tst.l d0
bne HW3
lea.l NoHelpWin1(pc),a0
jmp ShowGuru
HW3: move.l d0,HelpWin1
move.l d0,a0
move.l $32(a0),a0
cmp.w #$01,HelpStatus
beq HW1I4
move.w #$01,HelpStatus
lea.l Help2Txt1,a1
move.w #$10,d0
move.w #$10,d1
jsr PrintIText(a6)
jmp HelpWin1IDCMP1
HW1I4: move.w #$00,HelpStatus
lea.l Help3Txt1,a1
move.w #$10,d0
move.w #$10,d1
jsr PrintIText(a6)
jmp HelpWin1IDCMP1
Load: move.l Window2(pc),a0
move.l #%1000000,d0
jsr MenusOff
lea.l LWWin1Name(pc),a5
jsr FReq
tst.l d0
beq LoadOut
; move.l dosbase(pc),a6
; move.l #MODE_OLDFILE,d2
; move.l d0,d1
; jsr Open(a6)
; move.l d0,DiskFile1
; move.l dosbase(pc),a6
; move.l DiskFile1(pc),d1
; jsr Close(a6)
LoadOut: move.l Window2(pc),a0
move.l #%1000000,d0
jsr MenusOn
rts
SaveAs: move.l Window2(pc),a0
move.l #%10000000,d0
jsr MenusOff
lea.l SWWin1Name(pc),a5
jsr FReq
tst.l d0
beq SaveAsOut
SaveAsOut: move.l Window2(pc),a0
move.l #%10000000,d0
jsr MenusOn
rts
ColorLights: move.l gfxbase(pc),a6
move.l RastPort1(pc),a1
move.l #5,d0
jsr SetAPen(a6)
move.l #1,d2
move.l RastPort1(pc),a1
move.l #110,d0
move.l #16,d1
jsr Flood(a6)
move.l RastPort1(pc),a1
move.l #368,d0
move.l #16,d1
jsr Flood(a6)
move.l RastPort1(pc),a1
move.l #368,d0
move.l #64,d1
jsr Flood(a6)
move.l RastPort1(pc),a1
move.l #290,d0
move.l #92,d1
jsr Flood(a6)
move.l RastPort1(pc),a1
move.l #290,d0
move.l #43,d1
jsr Flood(a6)
move.l RastPort1(pc),a1
move.l #110,d0
move.l #64,d1
jsr Flood(a6)
move.l RastPort1(pc),a1
move.l #30,d0
move.l #92,d1
jsr Flood(a6)
move.l RastPort1(pc),a1
move.l #30,d0
move.l #43,d1
jsr Flood(a6)
move.l gfxbase(pc),a6
move.l RastPort1(pc),a1
move.l #6,d0
jsr SetAPen(a6)
move.l RastPort1(pc),a1
move.l #116,d0
move.l #16,d1
jsr Flood(a6)
move.l RastPort1(pc),a1
move.l #374,d0
move.l #16,d1
jsr Flood(a6)
move.l RastPort1(pc),a1
move.l #368,d0
move.l #47,d1
jsr Flood(a6)
move.l RastPort1(pc),a1
move.l #374,d0
move.l #64,d1
jsr Flood(a6)
move.l RastPort1(pc),a1
move.l #284,d0
move.l #92,d1
jsr Flood(a6)
move.l RastPort1(pc),a1
move.l #290,d0
move.l #60,d1
jsr Flood(a6)
move.l RastPort1(pc),a1
move.l #284,d0
move.l #43,d1
jsr Flood(a6)
move.l RastPort1(pc),a1
move.l #110,d0
move.l #47,d1
jsr Flood(a6)
move.l RastPort1(pc),a1
move.l #116,d0
move.l #64,d1
jsr Flood(a6)
move.l RastPort1(pc),a1
move.l #24,d0
move.l #92,d1
jsr Flood(a6)
move.l RastPort1(pc),a1
move.l #30,d0
move.l #60,d1
jsr Flood(a6)
move.l RastPort1(pc),a1
move.l #24,d0
move.l #43,d1
jsr Flood(a6)
move.l gfxbase(pc),a6
move.l RastPort1(pc),a1
move.l #4,d0
jsr SetAPen(a6)
move.l RastPort1(pc),a1
move.l #368,d0
move.l #51,d1
jsr Flood(a6)
move.l RastPort1(pc),a1
move.l #290,d0
move.l #56,d1
jsr Flood(a6)
move.l RastPort1(pc),a1
move.l #110,d0
move.l #51,d1
jsr Flood(a6)
move.l RastPort1(pc),a1
move.l #30,d0
move.l #56,d1
jsr Flood(a6)
;
move.l gfxbase(pc),a6
move.l RastPort1(pc),a1
move.l #7,d0
jsr SetAPen(a6)
move.l RastPort1(pc),a1
move.l #30,d0
move.l #16,d1
move.l #1,d2
jsr Flood(a6)
move.l RastPort1(pc),a1
move.l #290,d0
move.l #16,d1
jsr Flood(a6)
move.l RastPort1(pc),a1
move.l #368,d0
move.l #43,d1
jsr Flood(a6)
move.l RastPort1(pc),a1
move.l #368,d0
move.l #92,d1
jsr Flood(a6)
move.l RastPort1(pc),a1
move.l #290,d0
move.l #64,d1
jsr Flood(a6)
move.l RastPort1(pc),a1
move.l #110,d0
move.l #43,d1
jsr Flood(a6)
move.l RastPort1(pc),a1
move.l #110,d0
move.l #92,d1
jsr Flood(a6)
move.l RastPort1(pc),a1
move.l #30,d0
move.l #64,d1
jsr Flood(a6)
;
move.l gfxbase(pc),a6
move.l RastPort1(pc),a1
move.l #3,d0
jsr SetAPen(a6)
move.l RastPort1(pc),a1
move.l #122,d0
move.l #16,d1
jsr Flood(a6)
move.l RastPort1(pc),a1
move.l #380,d0
move.l #16,d1
jsr Flood(a6)
move.l RastPort1(pc),a1
move.l #380,d0
move.l #64,d1
jsr Flood(a6)
move.l RastPort1(pc),a1
move.l #278,d0
move.l #92,d1
jsr Flood(a6)
move.l RastPort1(pc),a1
move.l #278,d0
move.l #43,d1
jsr Flood(a6)
move.l RastPort1(pc),a1
move.l #122,d0
move.l #64,d1
jsr Flood(a6)
move.l RastPort1(pc),a1
move.l #18,d0
move.l #92,d1
jsr Flood(a6)
move.l RastPort1(pc),a1
move.l #18,d0
move.l #43,d1
jsr Flood(a6)
move.l ViewPort(pc),a0
rts
About: move.l Window2(pc),a0
move.l #%10100000,d0
jsr MenusOff
lea.l NewAbWindow1(pc),a0
move.l intbase(pc),a6
jsr OpenWindow(a6)
tst.l d0
bne About1
lea.l NoAbWin1(pc),a0
jmp ShowGuru
About1: move.l d0,AbWin1
move.l d0,a0
move.l $32(a0),AbRP
move.l gfxbase(pc),a6 ;Black Background
move.l AbRP(pc),a1
move.l #$02,d0
jsr SetRast(a6)
move.l intbase(pc),a6 ;Draw Gads again
move.l AbWin1(pc),a1
lea.l MGad1(pc),a0
move.l #$00,a2
move.l #-1,d0
jsr RefreshGList(a6)
move.l AbRP(pc),a0 ;Border
lea.l AbBorder1(pc),a1
move.l #$00,d0
move.l #$00,d1
jsr DrawBorder(a6)
move.l AbRP(pc),a0 ;Texts
lea.l AboutTxt1(pc),a1
move.l #$00,d0
move.l d0,d1
jsr PrintIText(a6)
About2: move.l AbWin1(pc),a0
jsr Check2IDCMP
cmp.l #GADGETUP,d2
beq AboutOut
cmp.l #VANILLAKEY,d2
beq AboutKeys
jmp About2
AboutKeys: cmp.w #$1b,d3
beq AboutOut
cmp.w #"y",d3
beq AboutOut
cmp.w #"Y",d3
beq AboutOut
cmp.w #"n",d3
beq AboutOut
cmp.w #"N",d3
beq AboutOut
jmp About2
AboutOut: move.l AbWin1(pc),a0
jsr ClearMSGs
move.l #$0,AbWin1
move.l Window2(pc),a0
move.l #%10100000,d0
jsr MenusOn
rts
FReq: move.l a5,FRTitle
move.l reqbase(pc),a6
lea.l FileRequest1(pc),a0
jsr FileRequester(a6)
tst.l 0
bne FreqOut
FreqOut: rts
QuittingReq: move.l Window2(pc),a0
move.l #%11100000,d0
jsr MenusOff
lea.l NewQuitWin1(pc),a0
move.l intbase(pc),a6
jsr OpenWindow(a6)
tst.l d0
bne QuittingReq1
lea.l NoQuitWin1(pc),a0
jmp ErrorPrint
QuittingReq1: move.l d0,QuitWin1
move.l QuitWin1,a1
move.l $32(a1),a0
lea.l QuitWin1Txt1,a1
move.w #$10,d0
move.w #$10,d1
jsr PrintIText(a6)
move.l Screen1,a0
jsr DisplayBeep(a6)
jsr Wait.05Sec
move.l Screen1,a0
jsr DisplayBeep(a6)
jsr Wait.05Sec
move.l Screen1,a0
jsr DisplayBeep(a6)
QuitWin1IDCMP: move.l QuitWin1(pc),a0
jsr Check2IDCMP
cmp.l #GADGETUP,d2
beq QuitWin1IDCMP1
cmp.l #VANILLAKEY,d2
bne QuitWin1IDCMP
cmp.w #$1b,d3
beq QuitWin1IDCMP2
cmp.w #"y",d3
beq ShutDown
cmp.w #"Y",d3
beq ShutDown
cmp.w #"n",d3
beq QuitWin1IDCMP2
cmp.w #"N",d3
beq QuitWin1IDCMP2
jmp QuitWin1IDCMP
QuitWin1IDCMP1: cmp.w #$2,$26(a5)
beq ShutDown
cmp.w #$3,$26(a5)
bne QuitWin1IDCMP
QuitWin1IDCMP2: move.l Window2(pc),a0
lea.l Menu1(pc),a1
move.l #%11100000,d0
jsr MenusOn
move.l QuitWin1(pc),a0
jsr ClearMSGs
move.l #0,QuitWin1
jmp MainLoop
CheckIDCMP: move.l $4,a6 ;made this a SubRoutine...
move.l $56(a0),a2
move.l a2,a0
jsr GetMsg(a6)
tst.l d0
bne GetMsg1.1
move.l $56(a3),a3
move.l a3,a0
jsr GetMsg(a6)
tst.l d0
bne GetMsg1.1
move.l $56(a4),a4
move.l a4,a0
jsr GetMsg(a6)
tst.l d0
bne GetMsg1.1
move.l #0,d1
move.b $0f(a2),d1
bset.l d1,d0
move.l #0,d2
move.b $0f(a3),d2
bset.l d2,d0
move.l #0,d3
move.b $0f(a4),d3
bset.l d3,d0
CheckIDCMP3: jsr Wait(a6)
GetMsg1: move.l a2,a0
jsr GetMsg(a6)
tst.l d0
bne GetMsg1.1
move.l a3,a0
jsr GetMsg(a6)
tst.l d0
bne GetMsg1.1
move.l a4,a0
jsr GetMsg(a6)
tst.l d0
beq GetMsg2
GetMsg1.1: move.l d0,a1
move.l $14(a1),d2 ;answers with Class in d2,
move.w $18(a1),d3 ;Code in d3 and
move.w $1a(a1),a4 ;Qualifier in a4
move.l $1c(a1),a5 ;IAddress in a5
jsr ReplyMsg(a6)
GetMsg2: move.l #-1,d0
rts
Wait.05Sec: move.l a6,a5
move.l dosbase(pc),a6
move.l #1,d1
jsr Delay(a6)
move.l a5,a6
rts
MenusOn: move.l intbase(pc),a6 ;Menu number in d0
jsr OnMenu(a6) ;Window in a0
rts
MenusOff: move.l intbase(pc),a6 ;Window in a0
jsr OffMenu(a6)
rts
ClearMSGs: move.l a0,d0
tst.l d0
beq ClearMsg3
move.l a0,a3
move.l $4,a6 ;made this a SubRoutine...
jsr Forbid(a6)
move.l $56(a3),a2 ;Give it the window structure in a0
ClearMsg1: move.l a2,a0
jsr GetMsg(a6)
tst.l d0
beq ClearMsg2
move.l d0,a1
jsr ReplyMsg(a6)
jmp ClearMsg1
ClearMsg2: move.l a3,a0
move.l intbase(pc),a6
jsr CloseWindow(a6)
move.l $4,a6
jsr Permit(a6)
ClearMsg3: rts
ShutDown: move.l $4,a6
tst.l TPort
beq ShutDown104
move.l TPort(pc),a1
jsr RemPort(a6)
move.l #$22,d0
move.l TPort(pc),a1
jsr FreeMem(a6)
move.l TimeReq(pc),a1
jsr CloseDevice(a6)
ShutDown104: tst.b TSigBit
beq ShutDown103
move.l #$00,d0
move.b TSigBit,d0
jsr FreeSignal(a6)
ShutDown103: tst.l TimeReq
beq ShutDown102
move.l #$28,d0
move.l TimeReq(pc),a1
jsr FreeMem(a6)
ShutDown102: move.l OurTask(pc),a0
move.l OldTaskWinPtr(pc),$b8(a0)
move.l Window3(pc),a0
beq ShutDown102.1
move.l intbase(pc),a6
jsr ClearMenuStrip(a6)
move.l Window3(pc),a0
jsr ClearMSGs
move.l #$00,HelpWin1
ShutDown102.1: move.l HelpWin1(pc),a0
jsr ClearMSGs
move.l #$00,HelpWin1
move.l AbWin1(pc),a0
jsr ClearMSGs
move.l #$0,AbWin1
move.l FRWin1(pc),a0
jsr ClearMSGs
move.l #$0,FRWin1
ShutDown101.1: move.l $4,a6
tst.l TmpRas
beq ShutDown101.2
move.l TmpRas(pc),a1
move.l #TmpRas_Size,d0
jsr FreeMem(a6)
ShutDown101.2: tst.l VecTab1
beq ShutDown100
move.l $4,a6
move.l VecTab1(pc),a1
move.l #VecTab_Size,d0
jsr FreeMem(a6)
ShutDown100:
ShutDown100.1: move.l QuitWin1(pc),a0
jsr ClearMSGs
move.l #$0,QuitWin1
tst.l Window1
beq ShutDown99
move.l Window1(pc),a0
jsr ClearMSGs
move.l #$0,Window1
ShutDown99: tst.l Window2
beq ShutDown98
move.l Window2(pc),a0
move.l intbase(pc),a6
jsr ClearMenuStrip(a6)
move.l Window2(pc),a0
jsr ClearMSGs
move.l #$0,Window2
ShutDown98: tst.l Screen1
beq ShutDown97
move.l Screen1(pc),a0
move.l intbase(pc),a6
jsr CloseScreen(a6)
move.l #$0,Screen1
ShutDown97: tst.l reqbase
beq ShutDown96
lea.l FileRequest1(pc),a0
move.l reqbase,a6
jsr PurgeFiles(a6)
move.l $4,a6
move.l reqbase(pc),a1
jsr CloseLibrary(a6)
ShutDown96:
ShutDown_END: clr.l d0
rts
;Interrupt for handling car movements
TLIntCode: movem.l d2-d7/a2-a6,-(sp)
move.l $8(a1),a5 ;Get screen pointer
move.w $8(a5),a6 ;Get screenX
move.w $a(a5),a5 ;Get screenY
move.w ScrOldX(pc),a0
move.w a6,ScrOldX
sub.w a0,a6
move.w a6,XOffSet
move.w ScrOldY(pc),a0
move.w a5,ScrOldY
sub.w a0,a5
move.w a5,YOffSet
move.w XOffSet(pc),d0
move.w YOffSet(pc),d1
add.w d0,DLJX
add.w d0,DRJX
add.w d0,FRJX
add.w d0,FLJX
add.w d0,J1XL
add.w d0,J1XR
add.w d0,J2XL
add.w d0,J2XR
add.w d1,DTJY
add.w d1,FTJY
add.w d1,FBJY
add.w d1,DBJY
add.w d1,J1YT
add.w d1,J1YB
add.w d1,J2YT
add.w d1,J2YB
move.l (a1),a0 ;Get Sprite1
AdSOfS: add.w d0,$18(a0) ;Add X - this keeps sprites
add.w d1,$16(a0) ;Add Y - in the right place
add.l #$3e,a0
move.l $4(a1),a3
add.l #$3e,a3
cmp.l a0,a3
bne AdSOfS
move.l (a1),a0
TLIntCode2: cmp.l #$00,$3a(a0)
bne MoveSprites
TLIntCode3: add.l #$3e,a0
move.l $4(a1),a3
add.l #$3e,a3
cmp.l a0,a3
bne TLIntCode2
move.l gfxbase(pc),a6
move.l RastPort1(pc),a1
jsr SortGList(a6)
movem.l (sp)+,d2-d7/a2-a6
move.l #1,d0
rts
MoveSprites: cmp.b #1,$3a(a0)
beq M1
cmp.b #2,$3a(a0)
beq M2
cmp.b #3,$3a(a0)
beq M3
cmp.b #4,$3a(a0)
beq M4
cmp.b #5,$3a(a0)
beq M5
cmp.b #6,$3a(a0)
beq M6
cmp.b #7,$3a(a0)
beq M7
cmp.b #8,$3a(a0)
beq M8
cmp.b #9,$3a(a0)
beq M9
cmp.b #10,$3a(a0)
beq M10
cmp.b #11,$3a(a0)
beq M11
cmp.b #12,$3a(a0)
beq M12
cmp.b #13,$3a(a0)
beq M13
cmp.b #14,$3a(a0)
beq M14
cmp.b #15,$3a(a0)
beq M15
cmp.b #16,$3a(a0)
beq M16
cmp.b #17,$3a(a0)
beq M17
cmp.b #18,$3a(a0)
beq M18
cmp.b #19,$3a(a0)
beq M19
cmp.b #20,$3a(a0)
beq M20
cmp.b #21,$3a(a0)
beq M21
cmp.b #22,$3a(a0)
beq M22
cmp.b #23,$3a(a0)
beq M23
cmp.b #24,$3a(a0)
beq M24
cmp.b #43,$3a(a0)
beq M43
cmp.b #44,$3a(a0)
beq M44
cmp.b #45,$3a(a0)
beq M45
cmp.b #46,$3a(a0)
beq M46
cmp.b #47,$3a(a0)
beq M47
cmp.b #48,$3a(a0)
beq M48
cmp.b #37,$3a(a0)
beq M37
cmp.b #38,$3a(a0)
beq M38
cmp.b #39,$3a(a0)
beq M39
jmp TLIntCode3
M1: move.w $16(a0),d0
cmp.w FTJY(pc),d0
bcc M1.1
add.w #$01,$16(a0)
jmp TLIntCode3
M1.1: add.w #$01,Amount15
movem.l a0-a1,-(sp)
jsr CarCome15
movem.l (sp)+,a0-a1
jmp ResetSprite
M2: move.w $16(a0),d0
cmp.w J1YT(pc),d0
beq M2.1
add.w #$01,$16(a0)
jmp TLIntCode3
M2.1: move.l $58(a1),$24(a0)
move.w DLJX(pc),d0
cmp.w $18(a0),d0
beq M2.2
sub.w #$01,$18(a0)
jmp TLIntCode3
M2.2: jmp ResetSprite
M3: move.w $16(a0),d0
cmp.w J1YB(pc),d0
beq M3.1
add.w #$01,$16(a0)
jmp TLIntCode3
M3.1: move.l $54(a1),$24(a0)
move.w FLJX(pc),d0
cmp.w $18(a0),d0
bcc M3.2
add.w #$03,$18(a0)
jmp TLIntCode3
M3.2: add.w #$01,Amount10
movem.l a0-a1,-(sp)
jsr CarCome10
movem.l (sp)+,a0-a1
jmp ResetSprite
M4: move.w $16(a0),d0
cmp.w FTJY(pc),d0
beq M4.1
add.w #$01,$16(a0)
jmp TLIntCode3
M4.1: add.w #$01,Amount11
movem.l a0-a1,-(sp)
jsr CarCome11
movem.l (sp)+,a0-a1
jmp ResetSprite
M5: move.w $16(a0),d0
cmp.w J1YT(pc),d0
beq M5.1
add.w #$01,$16(a0)
jmp TLIntCode3
M5.1: move.l $58(a1),$24(a0)
move.w FRJX(pc),d0
cmp.w $18(a0),d0
bcc M5.2
sub.w #$03,$18(a0)
jmp TLIntCode3
M5.2: add.w #$01,Amount9
movem.l a0-a1,-(sp)
jsr CarCome9
movem.l (sp)+,a0-a1
jmp ResetSprite
M6: move.w $16(a0),d0
cmp.w J1YB(pc),d0
bcc M6.1
add.w #$01,$16(a0)
jmp TLIntCode3
M6.1: move.l $54(a1),$24(a0)
move.w DRJX(pc),d0
cmp.w $18(a0),d0
bcs M6.2
add.w #$03,$18(a0)
jmp TLIntCode3
M6.2: jmp ResetSprite
M7: move.w $16(a0),d0
cmp.w FBJY(pc),d0
bcs M7.1
sub.w #$01,$16(a0)
jmp TLIntCode3
M7.1: add.w #$01,Amount12
movem.l a0-a1,-(sp)
jsr CarCome12
movem.l (sp)+,a0-a1
jmp ResetSprite
M8: move.w $16(a0),d0
cmp.w J2YT(pc),d0
beq M8.1
sub.w #$01,$16(a0)
jmp TLIntCode3
M8.1: move.l $58(a1),$24(a0)
move.w FRJX(pc),d0
cmp.w $18(a0),d0
bcc M8.2
sub.w #$03,$18(a0)
jmp TLIntCode3
M8.2: add.w #$01,Amount14
movem.l a0-a1,-(sp)
jsr CarCome14
movem.l (sp)+,a0-a1
jmp ResetSprite
M9: move.w $16(a0),d0
cmp.w J2YB(pc),d0
beq M9.1
sub.w #$01,$16(a0)
jmp TLIntCode3
M9.1: move.l $54(a1),$24(a0)
move.w DRJX(pc),d0
cmp.w $18(a0),d0
bcs M9.2
add.w #$03,$18(a0)
jmp TLIntCode3
M9.2: jmp ResetSprite
M10: move.w $16(a0),d0
cmp.w FBJY(pc),d0
beq M10.1
sub.w #$01,$16(a0)
jmp TLIntCode3
M10.1: add.w #$01,Amount16
movem.l a0-a1,-(sp)
jsr CarCome16
movem.l (sp)+,a0-a1
jmp ResetSprite
M11: move.w $16(a0),d0
cmp.w J2YT(pc),d0
beq M11.1
sub.w #$01,$16(a0)
jmp TLIntCode3
M11.1: move.l $58(a1),$24(a0)
move.w DLJX(pc),d0
cmp.w $18(a0),d0
bcc M11.2
sub.w #$03,$18(a0)
jmp TLIntCode3
M11.2: jmp ResetSprite
M12: move.w $16(a0),d0
cmp.w J2YB(pc),d0
beq M12.1
sub.w #$01,$16(a0)
jmp TLIntCode3
M12.1: move.l $54(a1),$24(a0)
move.w FLJX(pc),d0
cmp.w $18(a0),d0
bcs M12.2
add.w #$03,$18(a0)
jmp TLIntCode3
M12.2: add.w #$01,Amount13
movem.l a0-a1,-(sp)
jsr CarCome13
movem.l (sp)+,a0-a1
jmp ResetSprite
M13: move.w $16(a0),d0
cmp.w DTJY(pc),d0
beq M13.1
sub.w #$01,$16(a0)
jmp TLIntCode3
M13.1: jmp ResetSprite
M14: move.w $16(a0),d0
cmp.w J1YT(pc),d0
beq M14.1
sub.w #$01,$16(a0)
jmp TLIntCode3
M14.1: move.l $58(a1),$24(a0)
move.w DLJX(pc),d0
cmp.w $18(a0),d0
beq M14.2
sub.w #$01,$18(a0)
jmp TLIntCode3
M14.2: jmp ResetSprite
M15: move.w $16(a0),d0
cmp.w J1YB(pc),d0
beq M15.1
sub.w #$01,$16(a0)
jmp TLIntCode3
M15.1: move.l $54(a1),$24(a0)
move.w FLJX(pc),d0
cmp.w $18(a0),d0
bcs M15.2
add.w #$03,$18(a0)
jmp TLIntCode3
M15.2: add.w #$01,Amount10
movem.l a0-a1,-(sp)
jsr CarCome10
movem.l (sp)+,a0-a1
jmp ResetSprite
M16: move.l $4c(a1),$24(a0)
move.w $16(a0),d0
cmp.w DTJY(pc),d0
beq M16.1
sub.w #$01,$16(a0)
jmp TLIntCode3
M16.1: jmp ResetSprite
M17: move.w $16(a0),d0
cmp.w J1YT(pc),d0
beq M17.1
sub.w #$01,$16(a0)
jmp TLIntCode3
M17.1: move.l $58(a1),$24(a0)
move.w FRJX(pc),d0
cmp.w $18(a0),d0
bcc M17.2
sub.w #$03,$18(a0)
jmp TLIntCode3
M17.2: add.w #$01,Amount9
movem.l a0-a1,-(sp)
jsr CarCome9
movem.l (sp)+,a0-a1
jmp ResetSprite
M18: move.w $16(a0),d0
cmp.w J1YB(pc),d0
beq M18.1
sub.w #$01,$16(a0)
jmp TLIntCode3
M18.1: move.l $54(a1),$24(a0)
move.w DRJX(pc),d0
cmp.w $18(a0),d0
beq M18.2
add.w #$01,$18(a0)
jmp TLIntCode3
M18.2: jmp ResetSprite
M19: move.w $16(a0),d0
cmp.w DBJY(pc),d0
beq M19.1
add.w #$01,$16(a0)
jmp TLIntCode3
M19.1: jmp ResetSprite
M20: move.w $16(a0),d0
cmp.w J2YT(pc),d0
beq M20.1
add.w #$01,$16(a0)
jmp TLIntCode3
M20.1: move.l $58(a1),$24(a0)
move.w DLJX(pc),d0
cmp.w $18(a0),d0
beq M20.2
sub.w #$01,$18(a0)
jmp TLIntCode3
M20.2: jmp ResetSprite
M21: move.w $16(a0),d0
cmp.w J2YB(pc),d0
beq M21.1
add.w #$01,$16(a0)
jmp TLIntCode3
M21.1: move.l $54(a1),$24(a0)
move.w FLJX(pc),d0
cmp.w $18(a0),d0
bcs M21.2
add.w #$03,$18(a0)
jmp TLIntCode3
M21.2: add.w #$01,Amount10
movem.l a0-a1,-(sp)
jsr CarCome10
movem.l (sp)+,a0-a1
jmp ResetSprite
M22: move.l $50(a1),$24(a0)
move.w $16(a0),d0
cmp.w DBJY(pc),d0
beq M22.1
add.w #$01,$16(a0)
jmp TLIntCode3
M22.1: jmp ResetSprite
M23: move.w $16(a0),d0
cmp.w J2YT(pc),d0
beq M23.1
add.w #$01,$16(a0)
jmp TLIntCode3
M23.1: move.l $58(a1),$24(a0)
move.w FRJX(pc),d0
cmp.w $18(a0),d0
bcc M23.2
sub.w #$03,$18(a0)
jmp TLIntCode3
M23.2: add.w #$01,Amount14
movem.l a0-a1,-(sp)
jsr CarCome14
movem.l (sp)+,a0-a1
jmp ResetSprite
M24: move.w $16(a0),d0
cmp.w J2YB(pc),d0
beq M24.1
add.w #$01,$16(a0)
jmp TLIntCode3
M24.1: move.l $54(a1),$24(a0)
move.w DRJX(pc),d0
cmp.w $18(a0),d0
bcs M24.2
add.w #$03,$18(a0)
jmp TLIntCode3
M24.2: jmp ResetSprite
;Xbatches
M43: move.w $18(a0),d0
cmp.w FRJX(pc),d0
bcs M43.1
sub.w #$03,$18(a0)
jmp TLIntCode3
M43.1: add.w #$01,Amount9
movem.l a0-a1,-(sp)
jsr CarCome9
movem.l (sp)+,a0-a1
jmp ResetSprite
M44: move.w $18(a0),d0
cmp.w J2XR(pc),d0
beq M44.1
sub.w #$01,$18(a0)
jmp TLIntCode3
M44.1: move.l $4c(a1),$24(a0)
move.w DTJY(pc),d0
cmp.w $16(a0),d0
beq M44.2
sub.w #$01,$16(a0)
jmp TLIntCode3
M44.2: jmp ResetSprite
M45: move.w $18(a0),d0
cmp.w J2XL(pc),d0
beq M45.1
sub.w #$01,$18(a0)
jmp TLIntCode3
M45.1: move.l $50(a1),$24(a0)
move.w FTJY(pc),d0
cmp.w $16(a0),d0
beq M45.2
add.w #$01,$16(a0)
jmp TLIntCode3
M45.2: add.w #$01,Amount11
movem.l a0-a1,-(sp)
jsr CarCome11
movem.l (sp)+,a0-a1
jmp ResetSprite
M46: move.w $18(a0),d0
cmp.w FRJX(pc),d0
bcs M46.1
sub.w #$03,$18(a0)
jmp TLIntCode3
M46.1: add.w #$01,Amount14
movem.l a0-a1,-(sp)
jsr CarCome14
movem.l (sp)+,a0-a1
jmp ResetSprite
M47: move.w $18(a0),d0
cmp.w J2XR(pc),d0
beq M47.1
sub.w #$01,$18(a0)
jmp TLIntCode3
M47.1: move.l $4c(a1),$24(a0)
move.w FTJY(pc),d0
cmp.w $16(a0),d0
beq M47.2
sub.w #$01,$16(a0)
jmp TLIntCode3
M47.2: add.w #$01,Amount12
movem.l a0-a1,-(sp)
jsr CarCome12
movem.l (sp)+,a0-a1
jmp ResetSprite
M48: move.w $18(a0),d0
cmp.w J2XL(pc),d0
beq M48.1
sub.w #$01,$18(a0)
jmp TLIntCode3
M48.1: move.l $50(a1),$24(a0)
move.w DBJY(pc),d0
cmp.w $16(a0),d0
bcc M48.2
add.w #$03,$16(a0)
jmp TLIntCode3
M48.2: jmp ResetSprite
M37: move.w $18(a0),d0
cmp.w DLJX(pc),d0
bcs M37.1
sub.w #$03,$18(a0)
jmp TLIntCode3
M37.1: add.w #$01,Amount14
movem.l a0-a1,-(sp)
jsr CarCome14
movem.l (sp)+,a0-a1
jmp ResetSprite
M38: move.w $18(a0),d0
cmp.w J1XR(pc),d0
beq M38.1
sub.w #$01,$18(a0)
jmp TLIntCode3
M38.1: move.l $4c(a1),$24(a0)
move.w DTJY(pc),d0
cmp.w $16(a0),d0
beq M38.2
sub.w #$01,$16(a0)
jmp TLIntCode3
M38.2: jmp ResetSprite
M39: move.w $18(a0),d0
cmp.w J1XL(pc),d0
beq M39.1
sub.w #$01,$18(a0)
jmp TLIntCode3
M39.1: move.l $50(a1),$24(a0)
move.w FTJY(pc),d0
cmp.w $16(a0),d0
beq M39.2
add.w #$01,$16(a0)
jmp TLIntCode3
M39.2: add.w #$01,Amount15
movem.l a0-a1,-(sp)
jsr CarCome15
movem.l (sp)+,a0-a1
jmp ResetSprite
ResetSprite: move.l #$00,$3a(a0) ;Clears Curr&Dest
move.l a0,d0 ;Compare with batches
cmp.l $c(a1),d0 ;so we can reset
bls Batch1 ;the correct things
cmp.l $10(a1),d0 ;like SprImg and
bls Batch2 ;SprY,X
cmp.l $14(a1),d0
bls Batch3
cmp.l $18(a1),d0
bls Batch4
cmp.l $1c(a1),d0
bls Batch5
cmp.l $20(a1),d0
bls Batch6
cmp.l $24(a1),d0
bls Batch7
cmp.l $28(a1),d0
bls Batch8
cmp.l $2c(a1),d0
bls Batch9
cmp.l $30(a1),d0
bls Batch10
cmp.l $34(a1),d0
bls Batch11
cmp.l $38(a1),d0
bls Batch12
cmp.l $3c(a1),d0
bls Batch13
cmp.l $40(a1),d0
bls Batch14
cmp.l $44(a1),d0
bls Batch15
cmp.l $48(a1),d0
bls Batch16
jmp TLIntCode3
Batch16: move.l $4c(a1),$24(a0)
move.w FBJY(pc),$16(a0)
move.w J1XR(pc),$18(a0)
jmp TLIntCode3
Batch15: move.l $50(a1),$24(a0)
move.w FTJY(pc),$16(a0)
move.w J1XL(pc),$18(a0)
jmp TLIntCode3
Batch14: move.l $58(a1),$24(a0)
move.w J2YT(pc),$16(a0)
move.w FRJX(pc),$18(a0)
jmp TLIntCode3
Batch13: move.l $54(a1),$24(a0)
move.w J2YB(pc),$16(a0)
move.w FLJX(pc),$18(a0)
jmp TLIntCode3
Batch12: move.l $50(a1),$24(a0)
move.w FTJY(pc),$16(a0)
move.w J2XL(pc),$18(a0)
jmp TLIntCode3
Batch11: move.l $4c(a1),$24(a0)
move.w FBJY(pc),$16(a0)
move.w J2XR(pc),$18(a0)
jmp TLIntCode3
Batch10: move.l $54(a1),$24(a0)
move.w J1YB(pc),$16(a0)
move.w FLJX(pc),$18(a0)
jmp TLIntCode3
Batch9: move.l $58(a1),$24(a0)
move.w J1YT(pc),$16(a0)
move.w FRJX(pc),$18(a0)
jmp TLIntCode3
Batch8: move.l $54(a1),$24(a0)
move.w J1YB(pc),$16(a0)
move.w DLJX(pc),$18(a0)
jmp TLIntCode3
Batch7: move.l $54(a1),$24(a0)
move.w J2YB(pc),$16(a0)
move.w DLJX(pc),$18(a0)
jmp TLIntCode3
Batch6: move.l $4c(a1),$24(a0)
move.w DBJY(pc),$16(a0)
move.w J1XR(pc),$18(a0)
jmp TLIntCode3
Batch5: move.l $4c(a1),$24(a0)
move.w DBJY(pc),$16(a0)
move.w J2XR(pc),$18(a0)
jmp TLIntCode3
Batch4: move.l $58(a1),$24(a0)
move.w J2YT(pc),$16(a0)
move.w DRJX(pc),$18(a0)
jmp TLIntCode3
Batch3: move.l $58(a1),$24(a0)
move.w J1YT(pc),$16(a0)
move.w DRJX(pc),$18(a0)
jmp TLIntCode3
Batch2: move.l $50(a1),$24(a0)
move.w DTJY(pc),$16(a0)
move.w J2XL(pc),$18(a0)
jmp TLIntCode3
Batch1: move.l $50(a1),$24(a0)
move.w DTJY(pc),$16(a0)
move.w J1XL(pc),$18(a0)
jmp TLIntCode3
ScrOldX: dc.w 0
ScrOldY: dc.w 0
XOffSet: dc.w 0
YOffSet: dc.w 0
DLJX: dc.w 5
FBJY: dc.w 60
FRJX: dc.w 120
DTJY: dc.w 21
FTJY: dc.w 71
DBJY: dc.w 99
DRJX: dc.w 363
FLJX: dc.w 255
J1YT: dc.w 32
J1YB: dc.w 43
J2YT: dc.w 82
J2YB: dc.w 92
J1XL: dc.w 44
J1XR: dc.w 77
J2XL: dc.w 308
J2XR: dc.w 337
SpritesXOn: dc.b 1 ;1= sprs 1,2,4,5 aren't on
ds.l 0
;Printer to the CLI (use it for error messages)
ErrorPrint: move.l a0,d2
ErrorPrint1: tst.b (a0)+
bne ErrorPrint1
subq.l #1,a0
sub.l d2,a0
move.l a0,d3
move.l OutFile(pc),d1
move.l dosbase(pc),a6
jsr Write(a6)
jmp ShutDown
ShowGuru: move.l #RECOVERY_ALERT,d0
lea.l NoMem(pc),a0
move.l #52,d1
move.l intbase(pc),a6
jsr DisplayAlert(a6)
rts
;chck: btst #$0006,$bfe001
; bne chck
; lea.l NoCode(pc),a0
; jmp ErrorPrint
ds.l 0
;Structures: First the display stuff
Window1: dc.l 0
Window2: dc.l 0
Window3: dc.l 0
Screen1: dc.l 0
QuitWin1: dc.l 0
HelpWin1: dc.l 0
FRWin1: dc.l 0
AbWin1: dc.l 0
RastPort1: dc.l 0
RastPort2: dc.l 0
RastPort3: dc.l 0
AbRP: dc.l 0
FRRP: dc.l 0
ViewPort: dc.l 0
OldTaskWinPtr: dc.l 0
SWWin1Name: dc.b "Save traffic situation as...",0
ds.l 0
LWWin1Name: dc.b "Load traffic situation",0
ds.l 0
;Memory stuff
ChipMem1: dc.l 0
TmpRas: dc.l 0
PlanePtr: dc.l 0
VecTab1: dc.l 0
;Timer stuff
timename: dc.b "timer.device",0
ds.l 0
timebase: dc.l 0 ;"library" base of timer.dev
TSigBit: dc.b 0 ;Timer SignalBit
ds.l 0
TPort: dc.l 0 ;Timer ReplyPort
TimePName: dc.b "TrafficTimer",0
ds.l 0
TimeReq: dc.l 0 ;Traffic InputOutPutReq
GSecs: dc.l 0 ;Cars crossing junction
LSecs: dc.l 0 ;Light
CSecs: dc.l 0 ;ComingCar
Mics: dc.l 0
;Car Stuff
Amount1: dc.w 0 ;Amount of cars
Amount2: dc.w 0
Amount3: dc.w 0
Amount4: dc.w 0
Amount5: dc.w 0
Amount6: dc.w 0
Amount7: dc.w 0
Amount8: dc.w 0
Amount9: dc.w 0
Amount10: dc.w 0
Amount11: dc.w 0
Amount12: dc.w 0
Amount13: dc.w 0
Amount14: dc.w 0
Amount15: dc.w 0
Amount16: dc.w 0
ds.l 0
;File stuff
OutFile: dc.l 0 ;It`s the way to the CLI
Lock: dc.l 0
FileReq: dc.l 0
FileReqTracker: dc.l 0
DiskFile1: dc.l 0
;Library stuff
reqbase: dc.l 0
dosbase: dc.l 0
gfxbase: dc.l 0
intbase: dc.l 0
NoREQText1: dc.b "You need "
ds.l 0
reqname: dc.b "req.library",0
ds.l 0
NoREQText2: dc.b " v2.2+",$0a,0
ds.l 0
dosname: dc.b "dos.library",0
ds.l 0
gfxname: dc.b "graphics.library",0
ds.l 0
intname: dc.b "intuition.library",0
ds.l 0
;Task Stuff
OurTask: dc.l 0
;Error texts
NoWBScreen: dc.b "Couldn´t open WorkBench Screen",$0a,0
ds.l 0
NoScreen1: dc.b "Couldn´t open Screen1.",$0a,0
ds.l 0
NoWin1: dc.b "Couldn´t open CityMap-Window1.",$0a,0
ds.l 0
NoWin2: dc.b "Couldn´t open BackDrop-Window2.",$0a,0
ds.l 0
NoWin3: dc.b "Couldn´t open VariableEd-Window3.",$0a,0
ds.l 0
NoAreaInit: dc.b "Couldn´t init area.",$0a,0
ds.l 0
NoQuitWin1: dc.b "Couldn´t open Quitting-Window.",$0a,0
ds.l 0
NoFRWin1: dc.b "Couldn´t open FileRequest-Window.",$0a,0
ds.l 0
NoAbWin1: dc.b "Couldn´t open About-Window.",$0a,0
ds.l 0
NoHelpWin1: dc.b "Couldn´t open Help-Window.",$0a,0
ds.l 0
WhoKnows?: dc.b "User didn´t read the fucking manual error.",$0a,0
ds.l 0
NoCode: dc.b "Hey, Jack! Finish the fucking code!",$0a,0
ds.l 0
NoFileBufMem: dc.b "Couldn´t get memory (20kb).",$0a,0
ds.l 0
;Guru messages
NoMem: dc.b 0,$d0
dc.b $10
dc.b "Canceled - Not enough memory.",0
dc.b 1
dc.b 0,$10
dc.b $2d
dc.b "Left for o.k.",0
dc.b 1
dc.b $1,$f0
dc.b $2d
dc.b "Right for CANCEL",0
dc.b 0
ds.l 0
;Our Color Map(s)
ColorMap1: dc.w $aaa,$000,$fff,$0f0,$0f0,$f00,$fa0,$f00
ColorMap2: dc.w $aaa,$000,$fff,$aaa,$0f0,$f00,$aaa,$aaa
;Other Stuff XIV
HelpStatus dc.w 0 ;Which text on screen
LStatus: dc.b 3 ;Status of trafficlights
ds.l 0
TrafficMode: dc.l 4 ;Mode. 2 = night, 4 = day, 5 = heavy
;Interrupt stuff
TLInt: dc.l 0 ;Succ
dc.l 0 ;Pred
dc.b 2 ;type
dc.b 0 ;pri
dc.l TLIntName ;name
dc.l TLIntData ;userstuff
dc.l TLIntCode ;code
TLIntName: dc.b "TL_Interrupt",0
ds.l 0
TLIntData: dc.l Sprite1 ;Pointer to first car Spr
dc.l Sprite27 ;Pointer to last car Spr
TLIntScreen: dc.l 0 ;Pointer to Screen
dc.l Sprite1 ;Pointer to SprBatch1
dc.l Sprite4 ;Pointer to SprBatch2
dc.l Sprite7 ;Pointer to SprBatch3
dc.l Sprite8 ;Pointer to SprBatch4
dc.l Sprite9 ;Pointer to SprBatch5
dc.l Sprite10 ;Pointer to SprBatch6
dc.l Sprite11 ;Pointer to SprBatch7
dc.l Sprite12 ;Pointer to SprBatch8
dc.l Sprite13 ;Pointer to SprBatch9
dc.l Sprite15 ;Pointer to SprBatch10
dc.l Sprite17 ;Pointer to SprBatch11
dc.l Sprite19 ;Pointer to SprBatch12
dc.l Sprite21 ;Pointer to SprBatch13
dc.l Sprite23 ;Pointer to SprBatch14
dc.l Sprite25 ;Pointer to SprBatch15
dc.l Sprite27 ;Pointer to SprBatch16
dc.l UpSprImg ;Pointer to UpSprImg
dc.l DownSprImg ;Pointer to DownSprImg
dc.l RightSprImg ;Pointer to RightSprImg
dc.l LeftSprImg ;Pointer to LeftSprImg
GelsInfo: dc.b 255 ;Reserved
dc.b 0 ;Flags
dc.l 0 ;GelHead
dc.l 0 ;GelTail
dc.l NextLine ;NextLine
dc.l LastColor ;LastColor
dc.l CollHandler ;CollHandler
dc.w 0 ;LeftMost
dc.w 639 ;RightMost
dc.w 0 ;TopMost
dc.w 255 ;BottomMost
dc.l 0 ;FirstBlissObj
dc.l 0 ;LastBlissObj
NextLine: dc.w 0,0,0,0,0,0,0,0,0,0
LastColor: dc.l 0,0,0,0,0,0,0,0,0,0
CollHandler: dc.l 0,0,0,0,0,0,0,0
dc.l 0,0,0,0,0,0,0,0
;Sprite structure stuff
ds.l 0
DummyHead: ds.b 62
ds.l 0
;Batch 1
Sprite1: dc.l 0 ;NextVSprite
dc.l 0 ;PrevVSprite
dc.l 0 ;DrawPath
dc.l 0 ;ClearPath
dc.w 0,0 ;Old Y and X
dc.w 1 ;Flags
dc.w 0,0 ;Y and X
dc.w 8 ;Height
dc.w 1 ;Width
dc.w 2 ;Depth
dc.w 0 ;MeMask
dc.w 0 ;HitMask
dc.l DownSprImg ;ImageData
dc.l BorderLine1 ;BorderLine
dc.l CollMask1 ;CollMask
dc.l SpriteCols ;SprColors
dc.l 0 ;VSBob
dc.b 1 ;PlanePick
dc.b 0 ;PlaneOnOff
dc.b 0 ;Current X
dc.b 0 ; --"-- Y
dc.b 0 ;Destination X
dc.b 0 ;Destination Y
Sprite2: dc.l 0 ;NextVSprite
dc.l 0 ;PrevVSprite
dc.l 0 ;DrawPath
dc.l 0 ;ClearPath
dc.w 0,0 ;Old Y and X
dc.w 1 ;Flags
dc.w 0,0 ;Y and X
dc.w 8 ;Height
dc.w 1 ;Width
dc.w 2 ;Depth
dc.w 0 ;MeMask
dc.w 0 ;HitMask
dc.l DownSprImg ;ImageData
dc.l BorderLine2 ;BorderLine
dc.l CollMask2 ;CollMask
dc.l SpriteCols ;SprColors
dc.l 0 ;VSBob
dc.b 1 ;PlanePick
dc.b 0 ;PlaneOnOff
dc.b 0 ;Current X
dc.b 0 ; --"-- Y
dc.b 0 ;Destination X
dc.b 0 ;Destination Y
Sprite3: dc.l 0 ;NextVSprite
dc.l 0 ;PrevVSprite
dc.l 0 ;DrawPath
dc.l 0 ;ClearPath
dc.w 0,0 ;Old Y and X
dc.w 1 ;Flags
dc.w 0,0 ;Y and X
dc.w 8 ;Height
dc.w 1 ;Width
dc.w 2 ;Depth
dc.w 0 ;MeMask
dc.w 0 ;HitMask
dc.l DownSprImg ;ImageData
dc.l BorderLine3 ;BorderLine
dc.l CollMask3 ;CollMask
dc.l SpriteCols ;SprColors
dc.l 0 ;VSBob
dc.b 1 ;PlanePick
dc.b 0 ;PlaneOnOff
dc.b 0 ;Current X
dc.b 0 ; --"-- Y
dc.b 0 ;Destination X
dc.b 0 ;Destination Y
Sprite4: dc.l 0 ;NextVSprite
dc.l 0 ;PrevVSprite
dc.l 0 ;DrawPath
dc.l 0 ;ClearPath
dc.w 0,0 ;Old Y and X
dc.w 1 ;Flags
dc.w 0,0 ;Y and X
dc.w 8 ;Height
dc.w 1 ;Width
dc.w 2 ;Depth
dc.w 0 ;MeMask
dc.w 0 ;HitMask
dc.l DownSprImg ;ImageData
dc.l BorderLine4 ;BorderLine
dc.l CollMask4 ;CollMask
dc.l SpriteCols ;SprColors
dc.l 0 ;VSBob
dc.b 1 ;PlanePick
dc.b 0 ;PlaneOnOff
dc.b 0 ;Current X
dc.b 0 ; --"-- Y
dc.b 0 ;Destination X
dc.b 0 ;Destination Y
Sprite5: dc.l 0 ;NextVSprite
dc.l 0 ;PrevVSprite
dc.l 0 ;DrawPath
dc.l 0 ;ClearPath
dc.w 0,0 ;Old Y and X
dc.w 1 ;Flags
dc.w 0,0 ;Y and X
dc.w 8 ;Height
dc.w 1 ;Width
dc.w 2 ;Depth
dc.w 0 ;MeMask
dc.w 0 ;HitMask
dc.l DownSprImg ;ImageData
dc.l BorderLine5 ;BorderLine
dc.l CollMask5 ;CollMask
dc.l SpriteCols ;SprColors
dc.l 0 ;VSBob
dc.b 1 ;PlanePick
dc.b 0 ;PlaneOnOff
dc.b 0 ;Current X
dc.b 0 ; --"-- Y
dc.b 0 ;Destination X
dc.b 0 ;Destination Y
Sprite6: dc.l 0 ;NextVSprite
dc.l 0 ;PrevVSprite
dc.l 0 ;DrawPath
dc.l 0 ;ClearPath
dc.w 0,0 ;Old Y and X
dc.w 1 ;Flags
dc.w 0,0 ;Y and X
dc.w 8 ;Height
dc.w 1 ;Width
dc.w 2 ;Depth
dc.w 0 ;MeMask
dc.w 0 ;HitMask
dc.l DownSprImg ;ImageData
dc.l BorderLine6 ;BorderLine
dc.l CollMask6 ;CollMask
dc.l SpriteCols ;SprColors
dc.l 0 ;VSBob
dc.b 1 ;PlanePick
dc.b 0 ;PlaneOnOff
dc.b 0 ;Current X
dc.b 0 ; --"-- Y
dc.b 0 ;Destination X
dc.b 0 ;Destination Y
Sprite7: dc.l 0
dc.l 0
dc.l 0
dc.l 0
dc.w 0,0
dc.w 1
dc.w 0,0
dc.w 8
dc.w 1
dc.w 2
dc.w 0
dc.w 0
dc.l LeftSprImg
dc.l BorderLine7
dc.l CollMask7
dc.l SpriteCols
dc.l 0
dc.b 1
dc.b 0
dc.b 0 ;Current X
dc.b 0 ; --"-- Y
dc.b 0 ;Destination X
dc.b 0 ;Destination Y
Sprite8: dc.l 0
dc.l 0
dc.l 0
dc.l 0
dc.w 0,0
dc.w 1
dc.w 0,0
dc.w 8
dc.w 1
dc.w 2
dc.w 0
dc.w 0
dc.l LeftSprImg
dc.l BorderLine8
dc.l CollMask8
dc.l SpriteCols
dc.l 0
dc.b 1
dc.b 0
dc.b 0 ;Current X
dc.b 0 ; --"-- Y
dc.b 0 ;Destination X
dc.b 0 ;Destination Y
Sprite9: dc.l 0
dc.l 0
dc.l 0
dc.l 0
dc.w 0,0
dc.w 1
dc.w 0,0
dc.w 8
dc.w 1
dc.w 2
dc.w 0
dc.w 0
dc.l UpSprImg
dc.l BorderLine9
dc.l CollMask9
dc.l SpriteCols
dc.l 0
dc.b 1
dc.b 0
dc.b 0 ;Current X
dc.b 0 ; --"-- Y
dc.b 0 ;Destination X
dc.b 0 ;Destination Y
Sprite10: dc.l 0
dc.l 0
dc.l 0
dc.l 0
dc.w 0,0
dc.w 1
dc.w 0,0
dc.w 8
dc.w 1
dc.w 2
dc.w 0
dc.w 0
dc.l UpSprImg
dc.l BorderLine10
dc.l CollMask10
dc.l SpriteCols
dc.l 0
dc.b 1
dc.b 0
dc.b 0 ;Current X
dc.b 0 ; --"-- Y
dc.b 0 ;Destination X
dc.b 0 ;Destination Y
Sprite11: dc.l 0
dc.l 0
dc.l 0
dc.l 0
dc.w 0,0
dc.w 1
dc.w 0,0
dc.w 8
dc.w 1
dc.w 2
dc.w 0
dc.w 0
dc.l RightSprImg
dc.l BorderLine11
dc.l CollMask11
dc.l SpriteCols
dc.l 0
dc.b 1
dc.b 0
dc.b 0 ;Current X
dc.b 0 ; --"-- Y
dc.b 0 ;Destination X
dc.b 0 ;Destination Y
Sprite12: dc.l 0
dc.l 0
dc.l 0
dc.l 0
dc.w 0,0
dc.w 1
dc.w 0,0
dc.w 8
dc.w 1
dc.w 2
dc.w 0
dc.w 0
dc.l RightSprImg
dc.l BorderLine12
dc.l CollMask12
dc.l SpriteCols
dc.l 0
dc.b 1
dc.b 0
dc.b 0 ;Current X
dc.b 0 ; --"-- Y
dc.b 0 ;Destination X
dc.b 0 ;Destination Y
Sprite13: dc.l 0
dc.l 0
dc.l 0
dc.l 0
dc.w 0,0
dc.w 1
dc.w 0,0
dc.w 8
dc.w 1
dc.w 2
dc.w 0
dc.w 0
dc.l LeftSprImg
dc.l BorderLine13
dc.l CollMask13
dc.l SpriteCols
dc.l 0
dc.b 1
dc.b 0
dc.b 0 ;Current X
dc.b 0 ; --"-- Y
dc.b 0 ;Destination X
dc.b 0 ;Destination Y
Sprite14: dc.l 0
dc.l 0
dc.l 0
dc.l 0
dc.w 0,0
dc.w 1
dc.w 0,0
dc.w 8
dc.w 1
dc.w 2
dc.w 0
dc.w 0
dc.l LeftSprImg
dc.l BorderLine14
dc.l CollMask14
dc.l SpriteCols
dc.l 0
dc.b 1
dc.b 0
dc.b 0 ;Current X
dc.b 0 ; --"-- Y
dc.b 0 ;Destination X
dc.b 0 ;Destination Y
Sprite15: dc.l 0
dc.l 0
dc.l 0
dc.l 0
dc.w 0,0
dc.w 1
dc.w 0,0
dc.w 8
dc.w 1
dc.w 2
dc.w 0
dc.w 0
dc.l RightSprImg
dc.l BorderLine15
dc.l CollMask15
dc.l SpriteCols
dc.l 0
dc.b 1
dc.b 0
dc.b 0 ;Current X
dc.b 0 ; --"-- Y
dc.b 0 ;Destination X
dc.b 0 ;Destination Y
Sprite16: dc.l 0
dc.l 0
dc.l 0
dc.l 0
dc.w 0,0
dc.w 1
dc.w 0,0
dc.w 8
dc.w 1
dc.w 2
dc.w 0
dc.w 0
dc.l RightSprImg
dc.l BorderLine16
dc.l CollMask16
dc.l SpriteCols
dc.l 0
dc.b 1
dc.b 0
dc.b 0 ;Current X
dc.b 0 ; --"-- Y
dc.b 0 ;Destination X
dc.b 0 ;Destination Y
Sprite17: dc.l 0
dc.l 0
dc.l 0
dc.l 0
dc.w 0,0
dc.w 1
dc.w 0,0
dc.w 8
dc.w 1
dc.w 2
dc.w 0
dc.w 0
dc.l UpSprImg
dc.l BorderLine17
dc.l CollMask17
dc.l SpriteCols
dc.l 0
dc.b 1
dc.b 0
dc.b 0 ;Current X
dc.b 0 ; --"-- Y
dc.b 0 ;Destination X
dc.b 0 ;Destination Y
Sprite18: dc.l 0
dc.l 0
dc.l 0
dc.l 0
dc.w 0,0
dc.w 1
dc.w 0,0
dc.w 8
dc.w 1
dc.w 2
dc.w 0
dc.w 0
dc.l UpSprImg
dc.l BorderLine18
dc.l CollMask18
dc.l SpriteCols
dc.l 0
dc.b 1
dc.b 0
dc.b 0 ;Current X
dc.b 0 ; --"-- Y
dc.b 0 ;Destination X
dc.b 0 ;Destination Y
Sprite19: dc.l 0
dc.l 0
dc.l 0
dc.l 0
dc.w 0,0
dc.w 1
dc.w 0,0
dc.w 8
dc.w 1
dc.w 2
dc.w 0
dc.w 0
dc.l DownSprImg
dc.l BorderLine19
dc.l CollMask19
dc.l SpriteCols
dc.l 0
dc.b 1
dc.b 0
dc.b 0 ;Current X
dc.b 0 ; --"-- Y
dc.b 0 ;Destination X
dc.b 0 ;Destination Y
Sprite20: dc.l 0
dc.l 0
dc.l 0
dc.l 0
dc.w 0,0
dc.w 1
dc.w 0,0
dc.w 8
dc.w 1
dc.w 2
dc.w 0
dc.w 0
dc.l DownSprImg
dc.l BorderLine20
dc.l CollMask20
dc.l SpriteCols
dc.l 0
dc.b 1
dc.b 0
dc.b 0 ;Current X
dc.b 0 ; --"-- Y
dc.b 0 ;Destination X
dc.b 0 ;Destination Y
Sprite21: dc.l 0
dc.l 0
dc.l 0
dc.l 0
dc.w 0,0
dc.w 1
dc.w 0,0
dc.w 8
dc.w 1
dc.w 2
dc.w 0
dc.w 0
dc.l RightSprImg
dc.l BorderLine21
dc.l CollMask21
dc.l SpriteCols
dc.l 0
dc.b 1
dc.b 0
dc.b 0 ;Current X
dc.b 0 ; --"-- Y
dc.b 0 ;Destination X
dc.b 0 ;Destination Y
Sprite22: dc.l 0
dc.l 0
dc.l 0
dc.l 0
dc.w 0,0
dc.w 1
dc.w 0,0
dc.w 8
dc.w 1
dc.w 2
dc.w 0
dc.w 0
dc.l RightSprImg
dc.l BorderLine22
dc.l CollMask22
dc.l SpriteCols
dc.l 0
dc.b 1
dc.b 0
dc.b 0 ;Current X
dc.b 0 ; --"-- Y
dc.b 0 ;Destination X
dc.b 0 ;Destination Y
Sprite23: dc.l 0
dc.l 0
dc.l 0
dc.l 0
dc.w 0,0
dc.w 1
dc.w 0,0
dc.w 8
dc.w 1
dc.w 2
dc.w 0
dc.w 0
dc.l LeftSprImg
dc.l BorderLine23
dc.l CollMask23
dc.l SpriteCols
dc.l 0
dc.b 1
dc.b 0
dc.b 0 ;Current X
dc.b 0 ; --"-- Y
dc.b 0 ;Destination X
dc.b 0 ;Destination Y
Sprite24: dc.l 0
dc.l 0
dc.l 0
dc.l 0
dc.w 0,0
dc.w 1
dc.w 0,0
dc.w 8
dc.w 1
dc.w 2
dc.w 0
dc.w 0
dc.l LeftSprImg
dc.l BorderLine24
dc.l CollMask24
dc.l SpriteCols
dc.l 0
dc.b 1
dc.b 0
dc.b 0 ;Current X
dc.b 0 ; --"-- Y
dc.b 0 ;Destination X
dc.b 0 ;Destination Y
Sprite25: dc.l 0
dc.l 0
dc.l 0
dc.l 0
dc.w 0,0
dc.w 1
dc.w 0,0
dc.w 8
dc.w 1
dc.w 2
dc.w 0
dc.w 0
dc.l DownSprImg
dc.l BorderLine25
dc.l CollMask25
dc.l SpriteCols
dc.l 0
dc.b 1
dc.b 0
dc.b 0 ;Current X
dc.b 0 ; --"-- Y
dc.b 0 ;Destination X
dc.b 0 ;Destination Y
Sprite26: dc.l 0
dc.l 0
dc.l 0
dc.l 0
dc.w 0,0
dc.w 1
dc.w 0,0
dc.w 8
dc.w 1
dc.w 2
dc.w 0
dc.w 0
dc.l DownSprImg
dc.l BorderLine26
dc.l CollMask26
dc.l SpriteCols
dc.l 0
dc.b 1
dc.b 0
dc.b 0 ;Current X
dc.b 0 ; --"-- Y
dc.b 0 ;Destination X
dc.b 0 ;Destination Y
Sprite27: dc.l 0
dc.l 0
dc.l 0
dc.l 0
dc.w 0,0
dc.w 1
dc.w 0,0
dc.w 8
dc.w 1
dc.w 2
dc.w 0
dc.w 0
dc.l UpSprImg
dc.l BorderLine27
dc.l CollMask27
dc.l SpriteCols
dc.l 0
dc.b 1
dc.b 0
dc.b 0 ;Current X
dc.b 0 ; --"-- Y
dc.b 0 ;Destination X
dc.b 0 ;Destination Y
Sprite28: dc.l 0
dc.l 0
dc.l 0
dc.l 0
dc.w 0,0
dc.w 1
dc.w 0,0
dc.w 8
dc.w 1
dc.w 2
dc.w 0
dc.w 0
dc.l UpSprImg
dc.l BorderLine28
dc.l CollMask28
dc.l SpriteCols
dc.l 0
dc.b 1
dc.b 0
dc.b 0 ;Current X
dc.b 0 ; --"-- Y
dc.b 0 ;Destination X
dc.b 0 ;Destination Y
DummyTail: ds.b 62
;Sprite color map
ds.l 0
SpriteCols: dc.w $000,$fff,$00f
NewAreaInfo1: dc.l 0 ;VctrTbl
dc.l 0 ;VctrPtr
dc.l 0 ;FlagTbl
dc.l 0 ;FlagPtr
dc.w 0 ;Count
dc.w 0 ;MaxCount
dc.w 0 ;FirstX
dc.w 0 ;FirstY
ds.l 0
NewTmpRas1: dc.l 0 ;RasPtr
dc.l 0 ;Size
ds.l 0
NewScreen1:
dc.w 0,0 ;X,Y POS
Screen1MaxCol: dc.w 640 ;WIDTH (orig.704)
Screen1MaxRow: dc.w 256 ;HEIGHT
dc.w 4 ;DEPTH
dc.b 0,1 ;COLORS
dc.w $c000 ;VIEWMODES
dc.w $000F ;TYPE
dc.l Screen1Font ;FONT
dc.l TLName ;DEFAULT TITLE
dc.l 0 ;GADGETS
dc.l 0 ;CUSTOMBITMAP
ds.l 0
Screen1Font: dc.l Screen1FontN ;NAME
dc.w 8 ;SIZE
dc.b 0 ;STYLE
dc.b 0 ;FLAGS
ds.l 0
Screen1FontN: dc.b "topaz.font",0
ds.l 0
NewWindow1:
dc.w 0,11 ;X,Y POS
Win1MaxCol: dc.w 400 ;WIDTH (orig.704)
Win1MaxRow: dc.w 99 ;HEIGHT
dc.b 0,1 ;PENS
dc.l INTUITICKS+CLOSEWINDOW+GADGETUP+VANILLAKEY+MENUPICK+RAWKEY
dc.l $0008 ;FLAGS (orig. $100a)
dc.l 0,0 ;GADGETS, CHECKMARK
dc.l WindowTitle1 ;TITLE
SToW1: dc.l 0 ;SCREEN ADDRESS
dc.l 0 ;BITMAP
dc.w 400,99,400,99 ;MINIMUM SIZE
dc.w $000f ;TYPE
ds.l 0
WindowTitle1: dc.b "City map",0
ds.l 0
NewWindow2:
dc.w 0,0 ;X,Y POS
Win2MaxCol: dc.w 640 ;WIDTH (orig. 704)4)
Win2MaxRow: dc.w 256 ;HEIGHT (orig. 272)
dc.b 0,1 ;PENS
dc.l MENUPICK+VANILLAKEY+RAWKEY ;IDCMP FLAGS
dc.l $1900 ;FLAGS (orig $1800)
dc.l 0,0 ;GADGETS, CHECKMARK
dc.l 0 ;TITLE
SToW2: dc.l 0 ;SCREEN ADDRESS
dc.l 0 ;BITMAP
dc.w 640,256,640,256 ;MINIMUM SIZE
dc.w $000f ;TYPE
ds.l 0
NewWindow3:
dc.w 401,11 ;X,Y POS
Win3MaxCol: dc.w 239 ;WIDTH (orig.704)
Win3MaxRow: dc.w 245 ;HEIGHT
dc.b 0,1 ;PENS
dc.l INTUITICKS+CLOSEWINDOW+GADGETDOWN+GADGETUP+VANILLAKEY+MENUPICK ;IDCMP FLAGS
dc.l $100A ;FLAGS (orig. $100a)
dc.l ModeGad1,0 ;GADGETS, CHECKMARK
dc.l WindowTitle3 ;TITLE
SToW4: dc.l 0 ;SCREEN ADDRESS
dc.l 0 ;BITMAP
dc.w 239,245,239,245 ;MINIMUM SIZE
dc.w $000f ;TYPE
ds.l 0
WindowTitle3: dc.b "Variable editor",0
ds.l 0
NewAbWindow1:
dc.w 128,50 ;X,Y POS
dc.w 400 ;WIDTH (orig.704)
dc.w 100 ;HEIGHT
dc.b 1,2 ;PENS
dc.l GADGETUP+VANILLAKEY ;IDCMP FLAGS
dc.l wd_BORDERLESS ;FLAGS
dc.l MGad1,0 ;GADGETS, CHECKMARK
dc.l 0 ;TITLE
SToW8: dc.l 0 ;SCREEN ADDRESS
dc.l 0 ;BITMAP
dc.w 128,50,128,50 ;MINIMUM SIZE
dc.w $000f ;TYPE
ds.l 0
NewHelpWin1:
dc.w 10,6,520,250 ;POSITION, SIZE
dc.b 0,1 ;PENS
dc.l CLOSEWINDOW+GADGETUP+VANILLAKEY ;IDCMP FLAGS
dc.l $1006+wd_WINDOWCLOSE ;FLAGS (orig $1006)
dc.l MGad1,0 ;GADGETS, CHECKMARK
dc.l TLName ;TITLE
SToW7: dc.l 0 ;SCREEN ADDRESS
dc.l 0 ;BITMAP
dc.w 320,200,320,200 ;MINIMUM+MAX SIZE
dc.w $000f ;TYPE
ds.l 0
HelpWin1Txt1: dc.b 1,2 ;PENS
dc.w 0 ;MODE
dc.w 1,3 ;LEFT+TOPEDGE
dc.l 0 ;FONT
dc.l HWin1Text1 ;TEXT
dc.l HWin1Txt2 ;NEXTTEXT
ds.l 0
HWin1Text1: dc.b "Help:",0
ds.l 0
HWin1Txt2: dc.b 1,2 ;PENS
dc.w 0 ;MODE
dc.w 5,22 ;LEFT+TOPEDGE
dc.l 0 ;FONT
dc.l HWin1Text2 ;TEXT
dc.l 0 ;NEXTTEXT
ds.l 0
HWin1Text2: dc.b "Sorry, help is not availible yet.",0
ds.l 0
NewQuitWin1:
dc.w 0,0,320,75 ;POSITION, SIZE
dc.b 0,1 ;PENS
dc.l GADGETUP+VANILLAKEY ;IDCMP FLAGS
dc.l $1006 ;FLAGS (orig $1006)
dc.l QuitGad1,0 ;GADGETS, CHECKMARK
dc.l TLName ;TITLE
SToW3: dc.l 0 ;SCREEN ADDRESS
dc.l 0 ;BITMAP
dc.w 320,75,704,283 ;MINIMUM+MAX SIZE
dc.w $000f ;TYPE
ds.l 0
QuitWin1Txt1: dc.b 1,2 ;PENS
dc.w 0 ;MODE
dc.w 1,3 ;LEFT+TOPEDGE
dc.l 0 ;FONT
dc.l QuitWin1Text1 ;TEXT
dc.l QuitWin1Txt2 ;NEXTTEXT
ds.l 0
QuitWin1Text1: dc.b "Message:",0
ds.l 0
QuitWin1Txt2: dc.b 1,2 ;PENS
dc.w 0 ;MODE
dc.w 5,22 ;LEFT+TOPEDGE
dc.l 0 ;FONT
dc.l QuitWin1Text2 ;TEXT
dc.l 0 ;NEXTTEXT
ds.l 0
QuitWin1Text2: dc.b "Quit program?",0
ds.l 0
;QuitWin1Txt3: dc.b 1,2 ;PENS
; dc.w 0 ;MODE
; dc.w 1,31 ;LEFT+TOPEDGE
; dc.l 0 ;FONT
; dc.l QuitWin1Text3 ;TEXT
; dc.l 0 ;NEXTTEXT
; ds.l 0
;QuitWin1Text3: dc.b "",0
; ds.l 0
;Menus
Menu1: dc.l 0 ;NEXT MENU
dc.w 0,1 ;LEFT+TOP EDGE
dc.w 100,8 ;WIDTH+HEIGHT
dc.w $0001 ;FLAGS
dc.l Menu1Name ;NAME
dc.l Menu1Item1 ;ITEMS
dc.w 0,0 ;Some Jazz-music here...
dc.w 0,0,0 ;(with a good beat)
ds.l 0
Menu1Name: dc.b "Project",0
ds.l 0
Menu1Item1: dc.l Menu1Item2 ;NEXT ITEM
dc.w 1,1 ;LEFT+TOP EDGE
dc.w 120,8 ;WIDTH+HEIGHT
dc.w $0056 ;FLAGS
dc.l 0 ;MUTUAL EXCLUDE
dc.l Menu1I1 ;ITEMFILL (IMAGE,ITEXT,GFX)
dc.l 0 ;SELECTFILL
dc.b "M",0 ;COMMAND
dc.l 0 ;SubItem
dc.w $ffff ;NextSelect
ds.l 0
Menu1I1: dc.b 0,1 ;PENS
dc.w 0 ;MODE
dc.w 1,0 ;LEFT+TOPEDGE
dc.l 0 ;FONT
dc.l Menu1I1Text ;TEXT
dc.l 0 ;NEXTTEXT
ds.l 0
Menu1I1Text: dc.b "City map",0
ds.l 0
Menu1Item2: dc.l Menu1Item3
dc.w 1,15
dc.w 120,8
dc.w $0056
dc.l 0
dc.l Menu1I2
dc.l 0
dc.b "H",0
dc.l 0
dc.w $ffff
ds.l 0
Menu1I2: dc.b 0,1
dc.w 0
dc.w 1,0
dc.l 0
dc.l Menu1I2Text
dc.l 0
ds.l 0
Menu1I2Text: dc.b "Help",0
ds.l 0
Menu1Item3: dc.l Menu1Item4
dc.w 1,30
dc.w 120,8
dc.w $0056
dc.l 0
dc.l Menu1I3
dc.l 0
dc.b "L",0
dc.l 0
dc.w $ffff
ds.l 0
Menu1I3: dc.b 0,1
dc.w 0
dc.w 1,0
dc.l 0
dc.l Menu1I3Text
dc.l 0
ds.l 0
Menu1I3Text: dc.b "Load...",0
ds.l 0
Menu1Item4: dc.l Menu1Item5
dc.w 1,40
dc.w 120,8
dc.w $0056
dc.l 0
dc.l Menu1I4
dc.l 0
dc.b "S",0
dc.l 0
dc.w $ffff
ds.l 0
Menu1I4: dc.b 0,1
dc.w 0
dc.w 1,0
dc.l 0
dc.l Menu1I4Text
dc.l 0
ds.l 0
Menu1I4Text: dc.b "Save",0
ds.l 0
Menu1Item5: dc.l Menu1Item6
dc.w 1,50
dc.w 120,8
dc.w $0056
dc.l 0
dc.l Menu1I5
dc.l 0
dc.b "A",0
dc.l 0
dc.w $ffff
ds.l 0
Menu1I5: dc.b 0,1
dc.w 0
dc.w 1,0
dc.l 0
dc.l Menu1I5Text
dc.l 0
ds.l 0
Menu1I5Text: dc.b "Save as...",0
ds.l 0
Menu1Item6: dc.l Menu1Item7
dc.w 1,70
dc.w 120,8
dc.w $0056
dc.l 0
dc.l Menu1I6
dc.l 0
dc.b "?",0
dc.l 0
dc.w $ffff
ds.l 0
Menu1I6: dc.b 0,1
dc.w 0
dc.w 1,0
dc.l 0
dc.l Menu1I6Text
dc.l 0
ds.l 0
Menu1I6Text: dc.b "About...",0
ds.l 0
Menu1Item7: dc.l 0
dc.w 1,80
dc.w 120,9
dc.w $0056
dc.l 0
dc.l Menu1I7
dc.l 0
dc.b "Q",0
dc.l 0
dc.w $ffff
ds.l 0
Menu1I7: dc.b 0,1
dc.w 0
dc.w 1,0
dc.l 0
dc.l Menu1I7Text
dc.l 0
ds.l 0
Menu1I7Text: dc.b "Quit",0
ds.l 0
Menu9: dc.l 0 ;NEXT MENU
dc.w 0,1 ;LEFT+TOP EDGE
dc.w 100,8 ;WIDTH+HEIGHT
dc.w $0001 ;FLAGS
dc.l Menu9Name ;NAME
dc.l Menu9Item1 ;ITEMS
dc.w 0,0 ;Some Jazz-music here...
dc.w 0,0,0 ;(with a good beat)
ds.l 0
Menu9Name: dc.b "Variables",0
ds.l 0
Menu9Item1: dc.l Menu1Item2 ;NEXT ITEM
dc.w 1,1 ;LEFT+TOP EDGE
dc.w 120,8 ;WIDTH+HEIGHT
dc.w $0056 ;FLAGS
dc.l 0 ;MUTUAL EXCLUDE
dc.l Menu1I1 ;ITEMFILL (IMAGE,ITEXT,GFX)
dc.l 0 ;SELECTFILL
dc.b "M",0 ;COMMAND
dc.l 0 ;SubItem
dc.w $ffff ;NextSelect
ds.l 0
Menu9I1: dc.b 0,1 ;PENS
dc.w 0 ;MODE
dc.w 1,0 ;LEFT+TOPEDGE
dc.l 0 ;FONT
dc.l Menu1I1Text ;TEXT
dc.l 0 ;NEXTTEXT
ds.l 0
Menu9Item2: dc.l Menu9Item3
dc.w 1,15
dc.w 120,8
dc.w $0056
dc.l 0
dc.l Menu9I2
dc.l 0
dc.b "H",0
dc.l 0
dc.w $ffff
ds.l 0
Menu9I2: dc.b 0,1
dc.w 0
dc.w 1,0
dc.l 0
dc.l Menu1I2Text
dc.l 0
ds.l 0
Menu9Item3: dc.l Menu9Item4
dc.w 1,30
dc.w 120,8
dc.w $0056
dc.l 0
dc.l Menu9I3
dc.l 0
dc.b "L",0
dc.l 0
dc.w $ffff
ds.l 0
Menu9I3: dc.b 0,1
dc.w 0
dc.w 1,0
dc.l 0
dc.l Menu1I3Text
dc.l 0
ds.l 0
Menu9Item4: dc.l Menu9Item5
dc.w 1,40
dc.w 120,8
dc.w $0056
dc.l 0
dc.l Menu9I4
dc.l 0
dc.b "S",0
dc.l 0
dc.w $ffff
ds.l 0
Menu9I4: dc.b 0,1
dc.w 0
dc.w 1,0
dc.l 0
dc.l Menu1I4Text
dc.l 0
ds.l 0
Menu9Item5: dc.l Menu9Item6
dc.w 1,50
dc.w 120,8
dc.w $0056
dc.l 0
dc.l Menu9I5
dc.l 0
dc.b "A",0
dc.l 0
dc.w $ffff
ds.l 0
Menu9I5: dc.b 0,1
dc.w 0
dc.w 1,0
dc.l 0
dc.l Menu1I5Text
dc.l 0
ds.l 0
Menu9Item6: dc.l Menu9Item7
dc.w 1,70
dc.w 120,8
dc.w $0056
dc.l 0
dc.l Menu9I6
dc.l 0
dc.b "?",0
dc.l 0
dc.w $ffff
ds.l 0
Menu9I6: dc.b 0,1
dc.w 0
dc.w 1,0
dc.l 0
dc.l Menu1I6Text
dc.l 0
ds.l 0
Menu9Item7: dc.l 0
dc.w 1,80
dc.w 120,9
dc.w $0056
dc.l 0
dc.l Menu9I7
dc.l 0
dc.b "Q",0
dc.l 0
dc.w $ffff
ds.l 0
Menu9I7: dc.b 0,1
dc.w 0
dc.w 1,0
dc.l 0
dc.l Menu1I7Text
dc.l 0
ds.l 0
;Requester Structures
PositiveText1: dc.b "Yes",0
ds.l 0
NegativeText1: dc.b "No",0
ds.l 0
TLName: dc.b "Traffic-Lights",0
ds.l 0
;Gadget Structures.
InTime: dc.l OutTime ;Next Gadget
dc.w 10 ;"hit-box" left edge
dc.w 43 ;"hit-box" top edge
dc.w 35 ;"hit-box" Width
dc.w 9 ;"hit-box" Height
dc.w $0000 ;flags
dc.w $0a01 ;activation
dc.w $0004 ;gadget type
dc.l GadgetBorder ;gadget rendering
dc.l 0 ;select rendering
dc.l IT1Txt ;gadget text
dc.l 0 ;mutual exclude
dc.l IT1String ;special info
dc.w 1 ;gadget ID (user definable)
dc.l 0 ;ptr to general purpose user data
ds.l 0
IT1Txt: dc.b 1,2 ;PENS
dc.w 0 ;MODE
dc.w 0,10 ;LEFT+TOPEDGE
dc.l 0 ;FONT
dc.l IT1Text ;TEXT
dc.l 0 ;NEXTTEXT
ds.l 0
IT1Text: dc.b "Come",0
ds.l 0
IT1String: dc.l ITGad1Buf ;Gadget 1 Buffer
dc.l GadUnBuf ;Gadget 1 Undo Buffer
dc.w 1 ;Pos in Buffer
dc.w 3 ;Max. Chars in Buffer
dc.w 1 ;Buffer Pos. of 1st disp. char
dc.w 0 ;Intuition takes care of these.
dc.w 0
dc.w 0
dc.w 0
dc.w 0
dc.l 0
InCarTime: dc.l 1 ;Long int.
dc.l 0 ;AltKeyMap
ds.l 0
OutTime: dc.l XMax ;Next Gadget
dc.w 60 ;"hit-box" left edge
dc.w 43 ;"hit-box" top edge
dc.w 35 ;"hit-box" Width
dc.w 9 ;"hit-box" Height
dc.w $0000 ;flags
dc.w $0a01 ;activation
dc.w $0004 ;gadget type
dc.l GadgetBorder ;gadget rendering
dc.l 0 ;select rendering
dc.l OT1Txt ;gadget text
dc.l 0 ;mutual exclude
dc.l OT1String ;special info
dc.w 1 ;gadget ID (user definable)
dc.l 0 ;ptr to general purpose user data
ds.l 0
OT1Txt: dc.b 1,2 ;PENS
dc.w 0 ;MODE
dc.w 0,10 ;LEFT+TOPEDGE
dc.l 0 ;FONT
dc.l OT1Text ;TEXT
dc.l 0 ;NEXTTEXT
ds.l 0
OT1Text: dc.b " Go",0
ds.l 0
OT1String: dc.l OTGad1Buf ;Gadget 1 Buffer
dc.l GadUnBuf ;Gadget 1 Undo Buffer
dc.w 1 ;Pos in Buffer
dc.w 3 ;Max. Chars in Buffer
dc.w 1 ;Buffer Pos. of 1st disp. char
dc.w 0 ;Intuition takes care of these.
dc.w 0
dc.w 0
dc.w 0
dc.w 0
dc.l 0
OutCarTime: dc.l 1 ;Long int.
dc.l 0 ;AltKeyMap
ds.l 0
XMax: dc.l YMax ;Next Gadget
dc.w 110 ;"hit-box" left edge
dc.w 43 ;"hit-box" top edge
dc.w 35 ;"hit-box" Width
dc.w 9 ;"hit-box" Height
dc.w $0000 ;flags
dc.w $0a01 ;activation
dc.w $0004 ;gadget type
dc.l GadgetBorder ;gadget rendering
dc.l 0 ;select rendering
dc.l XM1Txt ;gadget text
dc.l 0 ;mutual exclude
dc.l XM1String ;special info
dc.w 1 ;gadget ID (user definable)
dc.l 0 ;ptr to general purpose user data
ds.l 0
XM1Txt: dc.b 1,2 ;PENS
dc.w 0 ;MODE
dc.w 0,10 ;LEFT+TOPEDGE
dc.l 0 ;FONT
dc.l XM1Text ;TEXT
dc.l 0 ;NEXTTEXT
ds.l 0
XM1Text: dc.b "X max",0
ds.l 0
XM1String: dc.l XMGad1Buf ;Gadget 1 Buffer
dc.l GadUnBuf ;Gadget 1 Undo Buffer
dc.w 1 ;Pos in Buffer
dc.w 3 ;Max. Chars in Buffer
dc.w 1 ;Buffer Pos. of 1st disp. char
dc.w 0 ;Intuition takes care of these.
dc.w 0
dc.w 0
dc.w 0
dc.w 0
dc.l 0
XMaxAmount: dc.l 1 ;Long int.
dc.l 0 ;AltKeyMap
ds.l 0
YMax: dc.l InCar1 ;Next Gadget
dc.w 160 ;"hit-box" left edge
dc.w 43 ;"hit-box" top edge
dc.w 35 ;"hit-box" Width
dc.w 9 ;"hit-box" Height
dc.w $0000 ;flags
dc.w $0a01 ;activation
dc.w $0004 ;gadget type
dc.l GadgetBorder ;gadget rendering
dc.l 0 ;select rendering
dc.l YM1Txt ;gadget text
dc.l 0 ;mutual exclude
dc.l YM1String ;special info
dc.w 1 ;gadget ID (user definable)
dc.l 0 ;ptr to general purpose user data
ds.l 0
YM1Txt: dc.b 1,2 ;PENS
dc.w 0 ;MODE
dc.w 0,10 ;LEFT+TOPEDGE
dc.l 0 ;FONT
dc.l YM1Text ;TEXT
dc.l 0 ;NEXTTEXT
ds.l 0
YM1Text: dc.b "Y max",0
ds.l 0
YM1String: dc.l YMGad1Buf ;Gadget 1 Buffer
dc.l GadUnBuf ;Gadget 1 Undo Buffer
dc.w 1 ;Pos in Buffer
dc.w 3 ;Max. Chars in Buffer
dc.w 1 ;Buffer Pos. of 1st disp. char
dc.w 0 ;Intuition takes care of these.
dc.w 0
dc.w 0
dc.w 0
dc.w 0
dc.l 0
YMaxAmount: dc.l 1 ;Long int.
dc.l 0 ;AltKeyMap
ds.l 0
InCar1: dc.l InCar2 ;Next Gadget
dc.w 10 ;"hit-box" left edge
dc.w 63 ;"hit-box" top edge
dc.w 35 ;"hit-box" Width
dc.w 9 ;"hit-box" Height
dc.w $0000 ;flags
dc.w $0a01 ;activation
dc.w $0004 ;gadget type
dc.l GadgetBorder ;gadget rendering
dc.l 0 ;select rendering
dc.l IC1Txt ;gadget text
dc.l 0 ;mutual exclude
dc.l IC1String ;special info
dc.w 1 ;gadget ID (user definable)
dc.l 0 ;ptr to general purpose user data
ds.l 0
IC1Txt: dc.b 1,2 ;PENS
dc.w 0 ;MODE
dc.w 0,10 ;LEFT+TOPEDGE
dc.l 0 ;FONT
dc.l IC1Text ;TEXT
dc.l 0 ;NEXTTEXT
ds.l 0
IC1Text: dc.b "No 1",0
ds.l 0
IC1String: dc.l ICGad1Buf ;Gadget 1 Buffer
dc.l GadUnBuf ;Gadget 1 Undo Buffer
dc.w 1 ;Pos in Buffer
dc.w 3 ;Max. Chars in Buffer
dc.w 1 ;Buffer Pos. of 1st disp. char
dc.w 0 ;Intuition takes care of these.
dc.w 0
dc.w 0
dc.w 0
dc.w 0
dc.l 0
In1: dc.l 12 ;Long int.
dc.l 0 ;AltKeyMap
ds.l 0
InCar2: dc.l InCar3 ;Next Gadget
dc.w 50 ;"hit-box" left edge
dc.w 63 ;"hit-box" top edge
dc.w 35 ;"hit-box" Width
dc.w 9 ;"hit-box" Height
dc.w $0000 ;flags
dc.w $0a01 ;activation
dc.w $0004 ;gadget type
dc.l GadgetBorder ;gadget rendering
dc.l 0 ;select rendering
dc.l IC2Txt ;gadget text
dc.l 0 ;mutual exclude
dc.l IC2String ;special info
dc.w 1 ;gadget ID (user definable)
dc.l 0 ;ptr to general purpose user data
ds.l 0
IC2Txt: dc.b 1,2 ;PENS
dc.w 0 ;MODE
dc.w 0,10 ;LEFT+TOPEDGE
dc.l 0 ;FONT
dc.l IC2Text ;TEXT
dc.l 0 ;NEXTTEXT
ds.l 0
IC2Text: dc.b "No 2",0
ds.l 0
IC2String: dc.l ICGad2Buf ;Gadget 1 Buffer
dc.l GadUnBuf ;Gadget 1 Undo Buffer
dc.w 1 ;Pos in Buffer
dc.w 3 ;Max. Chars in Buffer
dc.w 1 ;Buffer Pos. of 1st disp. char
dc.w 0 ;Intuition takes care of these.
dc.w 0
dc.w 0
dc.w 0
dc.w 0
dc.l 0
In2: dc.l 10 ;Long int.
dc.l 0 ;AltKeyMap
ds.l 0
InCar3: dc.l InCar4 ;Next Gadget
dc.w 90 ;"hit-box" left edge
dc.w 63 ;"hit-box" top edge
dc.w 35 ;"hit-box" Width
dc.w 9 ;"hit-box" Height
dc.w $0000 ;flags
dc.w $0a01 ;activation
dc.w $0004 ;gadget type
dc.l GadgetBorder ;gadget rendering
dc.l 0 ;select rendering
dc.l IC3Txt ;gadget text
dc.l 0 ;mutual exclude
dc.l IC3String ;special info
dc.w 1 ;gadget ID (user definable)
dc.l 0 ;ptr to general purpose user data
ds.l 0
IC3Txt: dc.b 1,2 ;PENS
dc.w 0 ;MODE
dc.w 0,10 ;LEFT+TOPEDGE
dc.l 0 ;FONT
dc.l IC3Text ;TEXT
dc.l 0 ;NEXTTEXT
ds.l 0
IC3Text: dc.b "No 3",0
ds.l 0
IC3String: dc.l ICGad3Buf ;Gadget 1 Buffer
dc.l GadUnBuf ;Gadget 1 Undo Buffer
dc.w 1 ;Pos in Buffer
dc.w 3 ;Max. Chars in Buffer
dc.w 1 ;Buffer Pos. of 1st disp. char
dc.w 0 ;Intuition takes care of these.
dc.w 0
dc.w 0
dc.w 0
dc.w 0
dc.l 0
In3: dc.l 10 ;Long int.
dc.l 0 ;AltKeyMap
ds.l 0
InCar4: dc.l InCar5 ;Next Gadget
dc.w 130 ;"hit-box" left edge
dc.w 63 ;"hit-box" top edge
dc.w 35 ;"hit-box" Width
dc.w 9 ;"hit-box" Height
dc.w $0000 ;flags
dc.w $0a01 ;activation
dc.w $0004 ;gadget type
dc.l GadgetBorder ;gadget rendering
dc.l 0 ;select rendering
dc.l IC4Txt ;gadget text
dc.l 0 ;mutual exclude
dc.l IC4String ;special info
dc.w 1 ;gadget ID (user definable)
dc.l 0 ;ptr to general purpose user data
ds.l 0
IC4Txt: dc.b 1,2 ;PENS
dc.w 0 ;MODE
dc.w 0,10 ;LEFT+TOPEDGE
dc.l 0 ;FONT
dc.l IC4Text ;TEXT
dc.l 0 ;NEXTTEXT
ds.l 0
IC4Text: dc.b "No 4",0
ds.l 0
IC4String: dc.l ICGad4Buf ;Gadget 1 Buffer
dc.l GadUnBuf ;Gadget 1 Undo Buffer
dc.w 1 ;Pos in Buffer
dc.w 3 ;Max. Chars in Buffer
dc.w 1 ;Buffer Pos. of 1st disp. char
dc.w 0 ;Intuition takes care of these.
dc.w 0
dc.w 0
dc.w 0
dc.w 0
dc.l 0
In4: dc.l 15 ;Long int.
dc.l 0 ;AltKeyMap
ds.l 0
InCar5: dc.l InCar6 ;Next Gadget
dc.w 170 ;"hit-box" left edge
dc.w 63 ;"hit-box" top edge
dc.w 35 ;"hit-box" Width
dc.w 9 ;"hit-box" Height
dc.w $0000 ;flags
dc.w $0a01 ;activation
dc.w $0004 ;gadget type
dc.l GadgetBorder ;gadget rendering
dc.l 0 ;select rendering
dc.l IC5Txt ;gadget text
dc.l 0 ;mutual exclude
dc.l IC5String ;special info
dc.w 1 ;gadget ID (user definable)
dc.l 0 ;ptr to general purpose user data
ds.l 0
IC5Txt: dc.b 1,2 ;PENS
dc.w 0 ;MODE
dc.w 0,10 ;LEFT+TOPEDGE
dc.l 0 ;FONT
dc.l IC5Text ;TEXT
dc.l 0 ;NEXTTEXT
ds.l 0
IC5Text: dc.b "No 5",0
ds.l 0
IC5String: dc.l ICGad5Buf ;Gadget 1 Buffer
dc.l GadUnBuf ;Gadget 1 Undo Buffer
dc.w 1 ;Pos in Buffer
dc.w 3 ;Max. Chars in Buffer
dc.w 1 ;Buffer Pos. of 1st disp. char
dc.w 0 ;Intuition takes care of these.
dc.w 0
dc.w 0
dc.w 0
dc.w 0
dc.l 0
In5: dc.l 5 ;Long int.
dc.l 0 ;AltKeyMap
ds.l 0
InCar6: dc.l InCar7 ;Next Gadget
dc.w 10 ;"hit-box" left edge
dc.w 83 ;"hit-box" top edge
dc.w 35 ;"hit-box" Width
dc.w 9 ;"hit-box" Height
dc.w $0000 ;flags
dc.w $0a01 ;activation
dc.w $0004 ;gadget type
dc.l GadgetBorder ;gadget rendering
dc.l 0 ;select rendering
dc.l IC6Txt ;gadget text
dc.l 0 ;mutual exclude
dc.l IC6String ;special info
dc.w 1 ;gadget ID (user definable)
dc.l 0 ;ptr to general purpose user data
ds.l 0
IC6Txt: dc.b 1,2 ;PENS
dc.w 0 ;MODE
dc.w 0,10 ;LEFT+TOPEDGE
dc.l 0 ;FONT
dc.l IC6Text ;TEXT
dc.l 0 ;NEXTTEXT
ds.l 0
IC6Text: dc.b "No 6",0
ds.l 0
IC6String: dc.l ICGad6Buf ;Gadget 1 Buffer
dc.l GadUnBuf ;Gadget 1 Undo Buffer
dc.w 1 ;Pos in Buffer
dc.w 3 ;Max. Chars in Buffer
dc.w 1 ;Buffer Pos. of 1st disp. char
dc.w 0 ;Intuition takes care of these.
dc.w 0
dc.w 0
dc.w 0
dc.w 0
dc.l 0
In6: dc.l 15 ;Long int.
dc.l 0 ;AltKeyMap
ds.l 0
InCar7: dc.l InCar8 ;Next Gadget
dc.w 50 ;"hit-box" left edge
dc.w 83 ;"hit-box" top edge
dc.w 35 ;"hit-box" Width
dc.w 9 ;"hit-box" Height
dc.w $0000 ;flags
dc.w $0a01 ;activation
dc.w $0004 ;gadget type
dc.l GadgetBorder ;gadget rendering
dc.l 0 ;select rendering
dc.l IC7Txt ;gadget text
dc.l 0 ;mutual exclude
dc.l IC7String ;special info
dc.w 1 ;gadget ID (user definable)
dc.l 0 ;ptr to general purpose user data
ds.l 0
IC7Txt: dc.b 1,2 ;PENS
dc.w 0 ;MODE
dc.w 0,10 ;LEFT+TOPEDGE
dc.l 0 ;FONT
dc.l IC7Text ;TEXT
dc.l 0 ;NEXTTEXT
ds.l 0
IC7Text: dc.b "No 7",0
ds.l 0
IC7String: dc.l ICGad7Buf ;Gadget 1 Buffer
dc.l GadUnBuf ;Gadget 1 Undo Buffer
dc.w 1 ;Pos in Buffer
dc.w 3 ;Max. Chars in Buffer
dc.w 1 ;Buffer Pos. of 1st disp. char
dc.w 0 ;Intuition takes care of these.
dc.w 0
dc.w 0
dc.w 0
dc.w 0
dc.l 0
In7: dc.l 18 ;Long int.
dc.l 0 ;AltKeyMap
ds.l 0
InCar8: dc.l Turn1 ;Next Gadget
dc.w 90 ;"hit-box" left edge
dc.w 83 ;"hit-box" top edge
dc.w 35 ;"hit-box" Width
dc.w 9 ;"hit-box" Height
dc.w $0000 ;flags
dc.w $0a01 ;activation
dc.w $0004 ;gadget type
dc.l GadgetBorder ;gadget rendering
dc.l 0 ;select rendering
dc.l IC8Txt ;gadget text
dc.l 0 ;mutual exclude
dc.l IC8String ;special info
dc.w 1 ;gadget ID (user definable)
dc.l 0 ;ptr to general purpose user data
ds.l 0
IC8Txt: dc.b 1,2 ;PENS
dc.w 0 ;MODE
dc.w 0,10 ;LEFT+TOPEDGE
dc.l 0 ;FONT
dc.l IC8Text ;TEXT
dc.l 0 ;NEXTTEXT
ds.l 0
IC8Text: dc.b "No 8",0
ds.l 0
IC8String: dc.l ICGad8Buf ;Gadget 1 Buffer
dc.l GadUnBuf ;Gadget 1 Undo Buffer
dc.w 1 ;Pos in Buffer
dc.w 3 ;Max. Chars in Buffer
dc.w 1 ;Buffer Pos. of 1st disp. char
dc.w 0 ;Intuition takes care of these.
dc.w 0
dc.w 0
dc.w 0
dc.w 0
dc.l 0
In8: dc.l 15 ;Long int.
dc.l 0 ;AltKeyMap
ds.l 0
Turn1: dc.l Turn2
dc.w 10
dc.w 113
dc.w 16
dc.w 9
dc.w $0000
dc.w $0a01
dc.w $0004
dc.l GadgetBorder2
dc.l 0
dc.l 0
dc.l 0
dc.l Turn1String
dc.w 1
dc.l 0
ds.l 0
Turn1String: dc.l TurnGad1Buf
dc.l GadUnBuf
dc.w 1
dc.w 3
dc.w 1
dc.w 0
dc.w 0
dc.w 0
dc.w 0
dc.w 0
dc.l 0
T1: dc.l 5
dc.l 0
ds.l 0
Turn2: dc.l Turn3
dc.w 35
dc.w 113
dc.w 20
dc.w 9
dc.w $0000
dc.w $0a01
dc.w $0004
dc.l GadgetBorder2
dc.l 0
dc.l 0
dc.l 0
dc.l Turn2String
dc.w 1
dc.l 0
ds.l 0
Turn2String: dc.l TurnGad2Buf
dc.l GadUnBuf
dc.w 1
dc.w 3
dc.w 1
dc.w 0
dc.w 0
dc.w 0
dc.w 0
dc.w 0
dc.l 0
T2: dc.l 10
dc.l 0
ds.l 0
Turn3: dc.l Turn4
dc.w 60
dc.w 113
dc.w 20
dc.w 9
dc.w $0000
dc.w $0a01
dc.w $0004
dc.l GadgetBorder2
dc.l 0
dc.l 0
dc.l 0
dc.l Turn3String
dc.w 1
dc.l 0
ds.l 0
Turn3String: dc.l TurnGad3Buf
dc.l GadUnBuf
dc.w 1
dc.w 3
dc.w 1
dc.w 0
dc.w 0
dc.w 0
dc.w 0
dc.w 0
dc.l 0
T3: dc.l 10
dc.l 0
ds.l 0
Turn4: dc.l Turn5
dc.w 150
dc.w 113
dc.w 20
dc.w 9
dc.w $0000
dc.w $0a01
dc.w $0004
dc.l GadgetBorder2
dc.l 0
dc.l 0
dc.l 0
dc.l Turn4String
dc.w 1
dc.l 0
ds.l 0
Turn4String: dc.l TurnGad4Buf
dc.l GadUnBuf
dc.w 1
dc.w 3
dc.w 1
dc.w 0
dc.w 0
dc.w 0
dc.w 0
dc.w 0
dc.l 0
T4: dc.l 15
dc.l 0
ds.l 0
Turn5: dc.l Turn6
dc.w 175
dc.w 113
dc.w 20
dc.w 9
dc.w $0000
dc.w $0a01
dc.w $0004
dc.l GadgetBorder2
dc.l 0
dc.l 0
dc.l 0
dc.l Turn5String
dc.w 1
dc.l 0
ds.l 0
Turn5String: dc.l TurnGad5Buf
dc.l GadUnBuf
dc.w 1
dc.w 3
dc.w 1
dc.w 0
dc.w 0
dc.w 0
dc.w 0
dc.w 0
dc.l 0
T5: dc.l 5
dc.l 0
ds.l 0
Turn6: dc.l Turn7
dc.w 200
dc.w 113
dc.w 20
dc.w 9
dc.w $0000
dc.w $0a01
dc.w $0004
dc.l GadgetBorder2
dc.l 0
dc.l 0
dc.l 0
dc.l Turn6String
dc.w 1
dc.l 0
ds.l 0
Turn6String: dc.l TurnGad6Buf
dc.l GadUnBuf
dc.w 1
dc.w 3
dc.w 1
dc.w 0
dc.w 0
dc.w 0
dc.w 0
dc.w 0
dc.l 0
T6: dc.l 15
dc.l 0
ds.l 0
Turn7: dc.l Turn8
dc.w 10
dc.w 123
dc.w 20
dc.w 9
dc.w $0000
dc.w $0a01
dc.w $0004
dc.l GadgetBorder2
dc.l 0
dc.l 0
dc.l 0
dc.l Turn7String
dc.w 1
dc.l 0
ds.l 0
Turn7String: dc.l TurnGad7Buf
dc.l GadUnBuf
dc.w 1
dc.w 3
dc.w 1
dc.w 0
dc.w 0
dc.w 0
dc.w 0
dc.w 0
dc.l 0
T7: dc.l 18
dc.l 0
ds.l 0
Turn8: dc.l Turn9
dc.w 35
dc.w 123
dc.w 20
dc.w 9
dc.w $0000
dc.w $0a01
dc.w $0004
dc.l GadgetBorder2
dc.l 0
dc.l 0
dc.l 0
dc.l Turn8String
dc.w 1
dc.l 0
ds.l 0
Turn8String: dc.l TurnGad8Buf
dc.l GadUnBuf
dc.w 1
dc.w 3
dc.w 1
dc.w 0
dc.w 0
dc.w 0
dc.w 0
dc.w 0
dc.l 0
T8: dc.l 15
dc.l 0
ds.l 0
Turn9: dc.l Turn10
dc.w 60
dc.w 123
dc.w 20
dc.w 9
dc.w $0000
dc.w $0a01
dc.w $0004
dc.l GadgetBorder2
dc.l 0
dc.l 0
dc.l 0
dc.l Turn9String
dc.w 1
dc.l 0
ds.l 0
Turn9String: dc.l TurnGad9Buf
dc.l GadUnBuf
dc.w 1
dc.w 3
dc.w 1
dc.w 0
dc.w 0
dc.w 0
dc.w 0
dc.w 0
dc.l 0
T9: dc.l 12
dc.l 0
ds.l 0
Turn10: dc.l Turn11
dc.w 150
dc.w 123
dc.w 20
dc.w 9
dc.w $0000
dc.w $0a01
dc.w $0004
dc.l GadgetBorder2
dc.l 0
dc.l 0
dc.l 0
dc.l Turn10String
dc.w 1
dc.l 0
ds.l 0
Turn10String: dc.l TurnGad10Buf
dc.l GadUnBuf
dc.w 1
dc.w 3
dc.w 1
dc.w 0
dc.w 0
dc.w 0
dc.w 0
dc.w 0
dc.l 0
T10: dc.l 10
dc.l 0
ds.l 0
Turn11: dc.l Turn12
dc.w 175
dc.w 123
dc.w 20
dc.w 9
dc.w $0000
dc.w $0a01
dc.w $0004
dc.l GadgetBorder2
dc.l 0
dc.l 0
dc.l 0
dc.l Turn11String
dc.w 1
dc.l 0
ds.l 0
Turn11String: dc.l TurnGad11Buf
dc.l GadUnBuf
dc.w 1
dc.w 3
dc.w 1
dc.w 0
dc.w 0
dc.w 0
dc.w 0
dc.w 0
dc.l 0
T11: dc.l 10
dc.l 0
ds.l 0
Turn12: dc.l Turn13
dc.w 200
dc.w 123
dc.w 20
dc.w 9
dc.w $0000
dc.w $0a01
dc.w $0004
dc.l GadgetBorder2
dc.l 0
dc.l 0
dc.l 0
dc.l Turn12String
dc.w 1
dc.l 0
ds.l 0
Turn12String: dc.l TurnGad12Buf
dc.l GadUnBuf
dc.w 1
dc.w 3
dc.w 1
dc.w 0
dc.w 0
dc.w 0
dc.w 0
dc.w 0
dc.l 0
T12: dc.l 15
dc.l 0
ds.l 0
Turn13: dc.l Turn14
dc.w 10
dc.w 133
dc.w 20
dc.w 9
dc.w $0000
dc.w $0a01
dc.w $0004
dc.l GadgetBorder2
dc.l 0
dc.l 0
dc.l 0
dc.l Turn13String
dc.w 1
dc.l 0
ds.l 0
Turn13String: dc.l TurnGad13Buf
dc.l GadUnBuf
dc.w 1
dc.w 3
dc.w 1
dc.w 0
dc.w 0
dc.w 0
dc.w 0
dc.w 0
dc.l 0
T13: dc.l 5
dc.l 0
ds.l 0
Turn14: dc.l Turn15
dc.w 35
dc.w 133
dc.w 20
dc.w 9
dc.w $0000
dc.w $0a01
dc.w $0004
dc.l GadgetBorder2
dc.l 0
dc.l 0
dc.l 0
dc.l Turn14String
dc.w 1
dc.l 0
ds.l 0
Turn14String: dc.l TurnGad14Buf
dc.l GadUnBuf
dc.w 1
dc.w 3
dc.w 1
dc.w 0
dc.w 0
dc.w 0
dc.w 0
dc.w 0
dc.l 0
T14: dc.l 15
dc.l 0
ds.l 0
Turn15: dc.l Turn16
dc.w 60
dc.w 133
dc.w 20
dc.w 9
dc.w $0000
dc.w $0a01
dc.w $0004
dc.l GadgetBorder2
dc.l 0
dc.l 0
dc.l 0
dc.l Turn15String
dc.w 1
dc.l 0
ds.l 0
Turn15String: dc.l TurnGad15Buf
dc.l GadUnBuf
dc.w 1
dc.w 3
dc.w 1
dc.w 0
dc.w 0
dc.w 0
dc.w 0
dc.w 0
dc.l 0
T15: dc.l 18
dc.l 0
ds.l 0
Turn16: dc.l Turn17
dc.w 150
dc.w 133
dc.w 20
dc.w 9
dc.w $0000
dc.w $0a01
dc.w $0004
dc.l GadgetBorder2
dc.l 0
dc.l 0
dc.l 0
dc.l Turn16String
dc.w 1
dc.l 0
ds.l 0
Turn16String: dc.l TurnGad16Buf
dc.l GadUnBuf
dc.w 1
dc.w 3
dc.w 1
dc.w 0
dc.w 0
dc.w 0
dc.w 0
dc.w 0
dc.l 0
T16: dc.l 15
dc.l 0
ds.l 0
Turn17: dc.l Turn18
dc.w 175
dc.w 133
dc.w 20
dc.w 9
dc.w $0000
dc.w $0a01
dc.w $0004
dc.l GadgetBorder2
dc.l 0
dc.l 0
dc.l 0
dc.l Turn17String
dc.w 1
dc.l 0
ds.l 0
Turn17String: dc.l TurnGad17Buf
dc.l GadUnBuf
dc.w 1
dc.w 3
dc.w 1
dc.w 0
dc.w 0
dc.w 0
dc.w 0
dc.w 0
dc.l 0
T17: dc.l 12
dc.l 0
ds.l 0
Turn18: dc.l Turn19
dc.w 200
dc.w 133
dc.w 20
dc.w 9
dc.w $0000
dc.w $0a01
dc.w $0004
dc.l GadgetBorder2
dc.l 0
dc.l 0
dc.l 0
dc.l Turn18String
dc.w 1
dc.l 0
ds.l 0
Turn18String: dc.l TurnGad18Buf
dc.l GadUnBuf
dc.w 1
dc.w 3
dc.w 1
dc.w 0
dc.w 0
dc.w 0
dc.w 0
dc.w 0
dc.l 0
T18: dc.l 10
dc.l 0
ds.l 0
Turn19: dc.l Turn20
dc.w 10
dc.w 143
dc.w 20
dc.w 9
dc.w $0000
dc.w $0a01
dc.w $0004
dc.l GadgetBorder2
dc.l 0
dc.l 0
dc.l 0
dc.l Turn19String
dc.w 1
dc.l 0
ds.l 0
Turn19String: dc.l TurnGad19Buf
dc.l GadUnBuf
dc.w 1
dc.w 3
dc.w 1
dc.w 0
dc.w 0
dc.w 0
dc.w 0
dc.w 0
dc.l 0
T19: dc.l 10
dc.l 0
ds.l 0
Turn20: dc.l Turn21
dc.w 35
dc.w 143
dc.w 20
dc.w 9
dc.w $0000
dc.w $0a01
dc.w $0004
dc.l GadgetBorder2
dc.l 0
dc.l 0
dc.l 0
dc.l Turn20String
dc.w 1
dc.l 0
ds.l 0
Turn20String: dc.l TurnGad20Buf
dc.l GadUnBuf
dc.w 1
dc.w 3
dc.w 1
dc.w 0
dc.w 0
dc.w 0
dc.w 0
dc.w 0
dc.l 0
T20: dc.l 15
dc.l 0
ds.l 0
Turn21: dc.l Turn22
dc.w 60
dc.w 143
dc.w 20
dc.w 9
dc.w $0000
dc.w $0a01
dc.w $0004
dc.l GadgetBorder2
dc.l 0
dc.l 0
dc.l 0
dc.l Turn21String
dc.w 1
dc.l 0
ds.l 0
Turn21String: dc.l TurnGad21Buf
dc.l GadUnBuf
dc.w 1
dc.w 3
dc.w 1
dc.w 0
dc.w 0
dc.w 0
dc.w 0
dc.w 0
dc.l 0
T21: dc.l 5
dc.l 0
ds.l 0
Turn22: dc.l Turn23
dc.w 150
dc.w 143
dc.w 20
dc.w 9
dc.w $0000
dc.w $0a01
dc.w $0004
dc.l GadgetBorder2
dc.l 0
dc.l 0
dc.l 0
dc.l Turn22String
dc.w 1
dc.l 0
ds.l 0
Turn22String: dc.l TurnGad22Buf
dc.l GadUnBuf
dc.w 1
dc.w 3
dc.w 1
dc.w 0
dc.w 0
dc.w 0
dc.w 0
dc.w 0
dc.l 0
T22: dc.l 15
dc.l 0
ds.l 0
Turn23: dc.l Turn24
dc.w 175
dc.w 143
dc.w 20
dc.w 9
dc.w $0000
dc.w $0a01
dc.w $0004
dc.l GadgetBorder2
dc.l 0
dc.l 0
dc.l 0
dc.l Turn23String
dc.w 1
dc.l 0
ds.l 0
Turn23String: dc.l TurnGad23Buf
dc.l GadUnBuf
dc.w 1
dc.w 3
dc.w 1
dc.w 0
dc.w 0
dc.w 0
dc.w 0
dc.w 0
dc.l 0
T23: dc.l 18
dc.l 0
ds.l 0
Turn24: dc.l Turn25
dc.w 200
dc.w 143
dc.w 20
dc.w 9
dc.w $0000
dc.w $0a01
dc.w $0004
dc.l GadgetBorder2
dc.l 0
dc.l 0
dc.l 0
dc.l Turn24String
dc.w 1
dc.l 0
ds.l 0
Turn24String: dc.l TurnGad24Buf
dc.l GadUnBuf
dc.w 1
dc.w 3
dc.w 1
dc.w 0
dc.w 0
dc.w 0
dc.w 0
dc.w 0
dc.l 0
T24: dc.l 15
dc.l 0
ds.l 0
Turn25: dc.l Turn26
dc.w 10
dc.w 163
dc.w 20
dc.w 9
dc.w $0000
dc.w $0a01
dc.w $0004
dc.l GadgetBorder2
dc.l 0
dc.l 0
dc.l 0
dc.l Turn25String
dc.w 1
dc.l 0
ds.l 0
Turn25String: dc.l TurnGad25Buf
dc.l GadUnBuf
dc.w 1
dc.w 3
dc.w 1
dc.w 0
dc.w 0
dc.w 0
dc.w 0
dc.w 0
dc.l 0
T25: dc.l 12
dc.l 0
ds.l 0
Turn26: dc.l Turn27
dc.w 35
dc.w 163
dc.w 20
dc.w 9
dc.w $0000
dc.w $0a01
dc.w $0004
dc.l GadgetBorder2
dc.l 0
dc.l 0
dc.l 0
dc.l Turn26String
dc.w 1
dc.l 0
ds.l 0
Turn26String: dc.l TurnGad26Buf
dc.l GadUnBuf
dc.w 1
dc.w 3
dc.w 1
dc.w 0
dc.w 0
dc.w 0
dc.w 0
dc.w 0
dc.l 0
T26: dc.l 10
dc.l 0
ds.l 0
Turn27: dc.l Turn28
dc.w 60
dc.w 163
dc.w 20
dc.w 9
dc.w $0000
dc.w $0a01
dc.w $0004
dc.l GadgetBorder2
dc.l 0
dc.l 0
dc.l 0
dc.l Turn27String
dc.w 1
dc.l 0
ds.l 0
Turn27String: dc.l TurnGad27Buf
dc.l GadUnBuf
dc.w 1
dc.w 3
dc.w 1
dc.w 0
dc.w 0
dc.w 0
dc.w 0
dc.w 0
dc.l 0
T27: dc.l 10
dc.l 0
ds.l 0
Turn28: dc.l Turn29
dc.w 150
dc.w 163
dc.w 20
dc.w 9
dc.w $0000
dc.w $0a01
dc.w $0004
dc.l GadgetBorder2
dc.l 0
dc.l 0
dc.l 0
dc.l Turn28String
dc.w 1
dc.l 0
ds.l 0
Turn28String: dc.l TurnGad28Buf
dc.l GadUnBuf
dc.w 1
dc.w 3
dc.w 1
dc.w 0
dc.w 0
dc.w 0
dc.w 0
dc.w 0
dc.l 0
T28: dc.l 15
dc.l 0
ds.l 0
Turn29: dc.l Turn30
dc.w 175
dc.w 163
dc.w 20
dc.w 9
dc.w $0000
dc.w $0a01
dc.w $0004
dc.l GadgetBorder2
dc.l 0
dc.l 0
dc.l 0
dc.l Turn29String
dc.w 1
dc.l 0
ds.l 0
Turn29String: dc.l TurnGad29Buf
dc.l GadUnBuf
dc.w 1
dc.w 3
dc.w 1
dc.w 0
dc.w 0
dc.w 0
dc.w 0
dc.w 0
dc.l 0
T29: dc.l 5
dc.l 0
ds.l 0
Turn30: dc.l Turn31
dc.w 200
dc.w 163
dc.w 20
dc.w 9
dc.w $0000
dc.w $0a01
dc.w $0004
dc.l GadgetBorder2
dc.l 0
dc.l 0
dc.l 0
dc.l Turn31String
dc.w 1
dc.l 0
ds.l 0
Turn30String: dc.l TurnGad30Buf
dc.l GadUnBuf
dc.w 1
dc.w 3
dc.w 1
dc.w 0
dc.w 0
dc.w 0
dc.w 0
dc.w 0
dc.l 0
T30: dc.l 15
dc.l 0
ds.l 0
Turn31: dc.l Turn32
dc.w 10
dc.w 173
dc.w 20
dc.w 9
dc.w $0000
dc.w $0a01
dc.w $0004
dc.l GadgetBorder2
dc.l 0
dc.l 0
dc.l 0
dc.l Turn31String
dc.w 1
dc.l 0
ds.l 0
Turn31String: dc.l TurnGad31Buf
dc.l GadUnBuf
dc.w 1
dc.w 3
dc.w 1
dc.w 0
dc.w 0
dc.w 0
dc.w 0
dc.w 0
dc.l 0
T31: dc.l 18
dc.l 0
ds.l 0
Turn32: dc.l Turn33
dc.w 35
dc.w 173
dc.w 20
dc.w 9
dc.w $0000
dc.w $0a01
dc.w $0004
dc.l GadgetBorder2
dc.l 0
dc.l 0
dc.l 0
dc.l Turn32String
dc.w 1
dc.l 0
ds.l 0
Turn32String: dc.l TurnGad32Buf
dc.l GadUnBuf
dc.w 1
dc.w 3
dc.w 1
dc.w 0
dc.w 0
dc.w 0
dc.w 0
dc.w 0
dc.l 0
T32: dc.l 15
dc.l 0
ds.l 0
Turn33: dc.l Turn34
dc.w 60
dc.w 173
dc.w 20
dc.w 9
dc.w $0000
dc.w $0a01
dc.w $0004
dc.l GadgetBorder2
dc.l 0
dc.l 0
dc.l 0
dc.l Turn33String
dc.w 1
dc.l 0
ds.l 0
Turn33String: dc.l TurnGad33Buf
dc.l GadUnBuf
dc.w 1
dc.w 3
dc.w 1
dc.w 0
dc.w 0
dc.w 0
dc.w 0
dc.w 0
dc.l 0
T33: dc.l 18
dc.l 0
ds.l 0
Turn34: dc.l Turn35
dc.w 150
dc.w 173
dc.w 20
dc.w 9
dc.w $0000
dc.w $0a01
dc.w $0004
dc.l GadgetBorder2
dc.l 0
dc.l 0
dc.l 0
dc.l Turn34String
dc.w 1
dc.l 0
ds.l 0
Turn34String: dc.l TurnGad34Buf
dc.l GadUnBuf
dc.w 1
dc.w 3
dc.w 1
dc.w 0
dc.w 0
dc.w 0
dc.w 0
dc.w 0
dc.l 0
T34: dc.l 15
dc.l 0
ds.l 0
Turn35: dc.l Turn36
dc.w 175
dc.w 173
dc.w 20
dc.w 9
dc.w $0000
dc.w $0a01
dc.w $0004
dc.l GadgetBorder2
dc.l 0
dc.l 0
dc.l 0
dc.l Turn35String
dc.w 1
dc.l 0
ds.l 0
Turn35String: dc.l TurnGad35Buf
dc.l GadUnBuf
dc.w 1
dc.w 3
dc.w 1
dc.w 0
dc.w 0
dc.w 0
dc.w 0
dc.w 0
dc.l 0
T35: dc.l 12
dc.l 0
ds.l 0
Turn36: dc.l Turn37
dc.w 200
dc.w 173
dc.w 20
dc.w 9
dc.w $0000
dc.w $0a01
dc.w $0004
dc.l GadgetBorder2
dc.l 0
dc.l 0
dc.l 0
dc.l Turn36String
dc.w 1
dc.l 0
ds.l 0
Turn36String: dc.l TurnGad36Buf
dc.l GadUnBuf
dc.w 1
dc.w 3
dc.w 1
dc.w 0
dc.w 0
dc.w 0
dc.w 0
dc.w 0
dc.l 0
T36: dc.l 10
dc.l 0
ds.l 0
Turn37: dc.l Turn38
dc.w 10
dc.w 183
dc.w 20
dc.w 9
dc.w $0000
dc.w $0a01
dc.w $0004
dc.l GadgetBorder2
dc.l 0
dc.l 0
dc.l 0
dc.l Turn37String
dc.w 1
dc.l 0
ds.l 0
Turn37String: dc.l TurnGad37Buf
dc.l GadUnBuf
dc.w 1
dc.w 3
dc.w 1
dc.w 0
dc.w 0
dc.w 0
dc.w 0
dc.w 0
dc.l 0
T37: dc.l 10
dc.l 0
ds.l 0
Turn38: dc.l Turn39
dc.w 35
dc.w 183
dc.w 20
dc.w 9
dc.w $0000
dc.w $0a01
dc.w $0004
dc.l GadgetBorder2
dc.l 0
dc.l 0
dc.l 0
dc.l Turn38String
dc.w 1
dc.l 0
ds.l 0
Turn38String: dc.l TurnGad38Buf
dc.l GadUnBuf
dc.w 1
dc.w 3
dc.w 1
dc.w 0
dc.w 0
dc.w 0
dc.w 0
dc.w 0
dc.l 0
T38: dc.l 15
dc.l 0
ds.l 0
Turn39: dc.l Turn40
dc.w 60
dc.w 183
dc.w 20
dc.w 9
dc.w $0000
dc.w $0a01
dc.w $0004
dc.l GadgetBorder2
dc.l 0
dc.l 0
dc.l 0
dc.l Turn39String
dc.w 1
dc.l 0
ds.l 0
Turn39String: dc.l TurnGad39Buf
dc.l GadUnBuf
dc.w 1
dc.w 3
dc.w 1
dc.w 0
dc.w 0
dc.w 0
dc.w 0
dc.w 0
dc.l 0
T39: dc.l 5
dc.l 0
ds.l 0
Turn40: dc.l Turn41
dc.w 150
dc.w 183
dc.w 20
dc.w 9
dc.w $0000
dc.w $0a01
dc.w $0004
dc.l GadgetBorder2
dc.l 0
dc.l 0
dc.l 0
dc.l Turn40String
dc.w 1
dc.l 0
ds.l 0
Turn40String: dc.l TurnGad40Buf
dc.l GadUnBuf
dc.w 1
dc.w 3
dc.w 1
dc.w 0
dc.w 0
dc.w 0
dc.w 0
dc.w 0
dc.l 0
T40: dc.l 15
dc.l 0
ds.l 0
Turn41: dc.l Turn42
dc.w 175
dc.w 183
dc.w 20
dc.w 9
dc.w $0000
dc.w $0a01
dc.w $0004
dc.l GadgetBorder2
dc.l 0
dc.l 0
dc.l 0
dc.l Turn41String
dc.w 1
dc.l 0
ds.l 0
Turn41String: dc.l TurnGad41Buf
dc.l GadUnBuf
dc.w 1
dc.w 3
dc.w 1
dc.w 0
dc.w 0
dc.w 0
dc.w 0
dc.w 0
dc.l 0
T41: dc.l 18
dc.l 0
ds.l 0
Turn42: dc.l Turn43
dc.w 200
dc.w 183
dc.w 20
dc.w 9
dc.w $0000
dc.w $0a01
dc.w $0004
dc.l GadgetBorder2
dc.l 0
dc.l 0
dc.l 0
dc.l Turn42String
dc.w 1
dc.l 0
ds.l 0
Turn42String: dc.l TurnGad42Buf
dc.l GadUnBuf
dc.w 1
dc.w 4
dc.w 1
dc.w 0
dc.w 0
dc.w 0
dc.w 0
dc.w 0
dc.l 0
T42: dc.l 15
dc.l 0
ds.l 0
Turn43: dc.l Turn44
dc.w 10
dc.w 193
dc.w 20
dc.w 9
dc.w $0000
dc.w $0a01
dc.w $0004
dc.l GadgetBorder2
dc.l 0
dc.l 0
dc.l 0
dc.l Turn43String
dc.w 1
dc.l 0
ds.l 0
Turn43String: dc.l TurnGad43Buf
dc.l GadUnBuf
dc.w 1
dc.w 3
dc.w 1
dc.w 0
dc.w 0
dc.w 0
dc.w 0
dc.w 0
dc.l 0
T43: dc.l 18
dc.l 0
ds.l 0
Turn44: dc.l Turn45
dc.w 35
dc.w 193
dc.w 20
dc.w 9
dc.w $0000
dc.w $0a01
dc.w $0004
dc.l GadgetBorder2
dc.l 0
dc.l 0
dc.l 0
dc.l Turn44String
dc.w 1
dc.l 0
ds.l 0
Turn44String: dc.l TurnGad44Buf
dc.l GadUnBuf
dc.w 1
dc.w 3
dc.w 1
dc.w 0
dc.w 0
dc.w 0
dc.w 0
dc.w 0
dc.l 0
T44: dc.l 15
dc.l 0
ds.l 0
Turn45: dc.l Turn46
dc.w 60
dc.w 193
dc.w 20
dc.w 9
dc.w $0000
dc.w $0a01
dc.w $0004
dc.l GadgetBorder2
dc.l 0
dc.l 0
dc.l 0
dc.l Turn45String
dc.w 1
dc.l 0
ds.l 0
Turn45String: dc.l TurnGad45Buf
dc.l GadUnBuf
dc.w 1
dc.w 3
dc.w 1
dc.w 0
dc.w 0
dc.w 0
dc.w 0
dc.w 0
dc.l 0
T45: dc.l 12
dc.l 0
ds.l 0
Turn46: dc.l Turn47
dc.w 150
dc.w 193
dc.w 20
dc.w 9
dc.w $0000
dc.w $0a01
dc.w $0004
dc.l GadgetBorder2
dc.l 0
dc.l 0
dc.l 0
dc.l Turn46String
dc.w 1
dc.l 0
ds.l 0
Turn46String: dc.l TurnGad46Buf
dc.l GadUnBuf
dc.w 1
dc.w 3
dc.w 1
dc.w 0
dc.w 0
dc.w 0
dc.w 0
dc.w 0
dc.l 0
T46: dc.l 10
dc.l 0
ds.l 0
Turn47: dc.l Turn48
dc.w 175
dc.w 193
dc.w 20
dc.w 9
dc.w $0000
dc.w $0a01
dc.w $0004
dc.l GadgetBorder2
dc.l 0
dc.l 0
dc.l 0
dc.l Turn47String
dc.w 1
dc.l 0
ds.l 0
Turn47String: dc.l TurnGad47Buf
dc.l GadUnBuf
dc.w 1
dc.w 3
dc.w 1
dc.w 0
dc.w 0
dc.w 0
dc.w 0
dc.w 0
dc.l 0
T47: dc.l 10
dc.l 0
ds.l 0
Turn48: dc.l 0
dc.w 200
dc.w 193
dc.w 20
dc.w 9
dc.w $0000
dc.w $0a01
dc.w $0004
dc.l GadgetBorder2
dc.l 0
dc.l 0
dc.l 0
dc.l Turn48String
dc.w 1
dc.l 0
ds.l 0
Turn48String: dc.l TurnGad48Buf
dc.l GadUnBuf
dc.w 1
dc.w 3
dc.w 1
dc.w 0
dc.w 0
dc.w 0
dc.w 0
dc.w 0
dc.l 0
T48: dc.l 15 ;Long int.
dc.l 0 ;AltKeyMap
ds.l 0
QuitGad1: dc.l QuitGad2 ;Next Gadget
dc.w -310 ;"hit-box" left edge
dc.w -15 ;"hit-box" top edge
dc.w 51 ;"hit-box" Width
dc.w 10 ;"hit-box" Height
QG1Flag: dc.w $0018 ;flags
dc.w $0001 ;activation
dc.w $0001 ;gadget type
dc.l QGadgetBorder1 ;gadget rendering
dc.l 0 ;select rendering
dc.l QGadTxt1 ;gadget text
dc.l 0 ;mutual exclude
dc.l 0 ;special info
dc.w 2 ;gadget ID (user definable)
dc.l 0 ;ptr to general purpose user data
ds.l 0
QGadTxt1: dc.b 1,2 ;PENS
dc.w 0 ;MODE
dc.w 13,1 ;LEFT+TOPEDGE
dc.l 0 ;FONT
dc.l PositiveText1 ;TEXT
dc.l 0 ;NEXTTEXT
ds.l 0
QuitGad2: dc.l 0 ;Next Gadget
dc.w -58 ;"hit-box" left edge
dc.w -15 ;"hit-box" top edge
dc.w 51 ;"hit-box" Width
dc.w 10 ;"hit-box" Height
QG2Flag: dc.w $0018 ;flags
dc.w $0001 ;activation
dc.w $0001 ;gadget type
dc.l QGadgetBorder1 ;gadget rendering
dc.l 0 ;select rendering
dc.l QGadTxt2 ;gadget text
dc.l 0 ;mutual exclude
dc.l 0 ;special info
dc.w 3 ;gadget ID (user definable)
dc.l 0 ;ptr to general purpose user data
ds.l 0
QGadTxt2: dc.b 1,2 ;PENS
dc.w 0 ;MODE
dc.w 17,1 ;LEFT+TOPEDGE
dc.l 0 ;FONT
dc.l NegativeText1 ;TEXT
dc.l 0 ;NEXTTEXT
ds.l 0
MGad1: dc.l MGad2 ;Next Gadget
dc.w 10 ;"hit-box" left edge
dc.w -15 ;"hit-box" top edge
dc.w 51 ;"hit-box" Width
dc.w 10 ;"hit-box" Height
G1Flag: dc.w $0008 ;flags
dc.w $0001 ;activation
dc.w $0001 ;Gadget type
dc.l QGadgetBorder1 ;gadget rendering
dc.l 0 ;select rendering
dc.l QGadTxt1 ;gadget text
dc.l 0
dc.l 0
dc.w 2 ;ID
dc.l 0
ds.l 0
MGad2: dc.l 0 ;Next Gadget
dc.w -60 ;"hit-box" left edge
dc.w -15 ;"hit-box" top edge
dc.w 51 ;"hit-box" Width
dc.w 10 ;"hit-box" Height
G2Flag: dc.w $0018 ;flags
dc.w $0001 ;activation
dc.w $0001 ;Gadget type
dc.l QGadgetBorder1 ;gadget rendering
dc.l 0 ;select rendering
dc.l QGadTxt2 ;gadget text
dc.l 0
dc.l 0
dc.w 3 ;ID
dc.l 0
ds.l 0
ModeGad1: dc.l ModeGad2 ;Next Gadget
dc.w 7 ;"hit-box" left edge
dc.w 230 ;"hit-box" top edge
dc.w 16 ;"hit-box" Width
dc.w 12 ;"hit-box" Height
dc.w $0006 ;flags
dc.w $0103 ;activation
dc.w $0001 ;gadget type
dc.l ModeGadImage1 ;gadget renderingg
dc.l ModeGadImage2 ;select rendering
dc.l ModeGadTxt1 ;gadget text
dc.l 0 ;mutual exclude
dc.l 0 ;special info
dc.w 10 ;gadget ID (user definable)
dc.l 0 ;ptr to general purpose user data
ds.l 0
ModeGadTxt1: dc.b 1,2 ;PENS
dc.w 0 ;MODE
dc.w 17,2 ;LEFT+TOPEDGE
dc.l 0 ;FONT
dc.l ModeGadText1 ;TEXT
dc.l 0 ;NEXTTEXT
ds.l 0
ModeGadText1: dc.b "Night",0
ds.l 0
ModeGad2: dc.l ModeGad3 ;Next Gadget
dc.w 67 ;"hit-box" left edge
dc.w 230 ;"hit-box" top edge
dc.w 16 ;"hit-box" Width
dc.w 12 ;"hit-box" Height
dc.w $0006 ;flags
dc.w $0103 ;activation
dc.w $0001 ;gadget type
dc.l ModeGadImage1 ;gadget renderingg
dc.l ModeGadImage2 ;select rendering
dc.l ModeGadTxt2 ;gadget text
dc.l 0 ;mutual exclude
dc.l 0 ;special info
dc.w 10 ;gadget ID (user definable)
dc.l 0 ;ptr to general purpose user data
ds.l 0
ModeGadTxt2: dc.b 1,2 ;PENS
dc.w 0 ;MODE
dc.w 17,2 ;LEFT+TOPEDGE
dc.l 0 ;FONT
dc.l ModeGadText2 ;TEXT
dc.l 0 ;NEXTTEXT
ds.l 0
ModeGadText2: dc.b "Day",0
ds.l 0
ModeGad3: dc.l Gadget1 ;Next Gadget
dc.w 112 ;"hit-box" left edge
dc.w 230 ;"hit-box" top edge
dc.w 16 ;"hit-box" Width
dc.w 12 ;"hit-box" Height
dc.w $0086 ;flags
dc.w $0103 ;activation
dc.w $0001 ;gadget type
dc.l ModeGadImage1 ;gadget renderingg
dc.l ModeGadImage2 ;select rendering
dc.l ModeGadTxt3 ;gadget text
dc.l 0 ;mutual exclude
dc.l 0 ;special info
dc.w 10 ;gadget ID (user definable)
dc.l 0 ;ptr to general purpose user data
ds.l 0
ModeGadTxt3: dc.b 1,2 ;PENS
dc.w 0 ;MODE
dc.w 17,2 ;LEFT+TOPEDGE
dc.l 0 ;FONT
dc.l ModeGadText3 ;TEXT
dc.l 0 ;NEXTTEXT
ds.l 0
ModeGadText3: dc.b "Heavy traffic",0
ds.l 0
Gadget1: dc.l Gadget2 ;Next Gadget
dc.w 30 ;"hit-box" left edge (orig. 200)
dc.w 23 ;"hit-box" top edge
dc.w 35 ;"hit-box" Width
dc.w 9 ;"hit-box" Height
dc.w $0000 ;flags
dc.w $0a01 ;activation
dc.w $0004 ;gadget type
dc.l GadgetBorder ;gadget rendering
dc.l 0 ;select rendering
dc.l GadTxt1 ;gadget text
dc.l 0 ;mutual exclude
dc.l StringInfo1 ;special info
dc.w 1 ;gadget ID (user definable)
dc.l 0 ;ptr to general purpose user data
ds.l 0
GadTxt1: dc.b 1,2 ;PENS
dc.w 0 ;MODE
dc.w 5,10 ;LEFT+TOPEDGE
dc.l 0 ;FONT
dc.l GadText1 ;TEXT
dc.l 0 ;NEXTTEXT
ds.l 0
GadText1: dc.b "Red",0
ds.l 0
StringInfo1: dc.l Gad1Buf ;Gadget 1 Buffer
dc.l GadUnBuf ;Gadget 1 Undo Buffer
dc.w 3 ;Pos in Buffer
dc.w 3 ;Max. Chars in Buffer
dc.w 0 ;Buffer Pos. of 1st disp. char
dc.w 0 ;Intuition takes care of these.
dc.w 0
dc.w 0
dc.w 0
dc.w 0
dc.l 0
RedLength: dc.l 20 ;Long int.
dc.l 0 ;AltKeyMap
ds.l 0
Gadget2: dc.l Gadget3 ;Next Gadget
dc.w 100 ;"hit-box" left edge
dc.w 23 ;"hit-box" top edge
dc.w 35 ;"hit-box" Width
dc.w 9 ;"hit-box" Height
dc.w $0000 ;flags
dc.w $0a01 ;activation
dc.w $0004 ;gadget type
dc.l GadgetBorder ;gadget rendering
dc.l 0 ;select rendering
dc.l GadTxt2 ;gadget text
dc.l 0 ;mutual exclude
dc.l StringInfo2 ;special info
dc.w 1 ;gadget ID (user definable)
dc.l 0 ;ptr to general purpose user data
ds.l 0
GadTxt2: dc.b 1,2 ;PENS
dc.w 0 ;MODE
dc.w -5,10 ;LEFT+TOPEDGE
dc.l 0 ;FONT
dc.l GadText2 ;TEXT
dc.l 0 ;NEXTTEXT
ds.l 0
GadText2: dc.b "Amber",0
ds.l 0
StringInfo2: dc.l Gad2Buf ;Gadget Buffer
dc.l GadUnBuf ;Gadget Undo Buffer
dc.w 3 ;Pos in Buffer
dc.w 3 ;Max. Chars in Buffer
dc.w 0 ;Buffer Pos. of 1st disp. char
dc.w 0 ;Intuition takes care of these.
dc.w 0
dc.w 0
dc.w 0
dc.w 0
dc.l 0
AmberLength: dc.l 0 ;Long int.
dc.l 0 ;AltKeyMap
ds.l 0
Gadget3: dc.l InTime ;Next Gadget
dc.w 170 ;"hit-box" left edge
dc.w 23 ;"hit-box" top edge
dc.w 35 ;"hit-box" Width
dc.w 9 ;"hit-box" Height
dc.w $0000 ;flags
dc.w $0a01 ;activation
dc.w $0004 ;gadget type
dc.l GadgetBorder ;gadget rendering
dc.l 0 ;select rendering
dc.l GadTxt3 ;gadget text
dc.l 0 ;mutual exclude
dc.l StringInfo3 ;special info
dc.w 1 ;gadget ID (user definable)
dc.l 0 ;ptr to general purpose user data
ds.l 0
GadTxt3: dc.b 1,2 ;PENS
dc.w 0 ;MODE
dc.w -2,10 ;LEFT+TOPEDGE
dc.l 0 ;FONT
dc.l GadText3 ;TEXT
dc.l 0 ;NEXTTEXT
ds.l 0
GadText3: dc.b "Green",0
ds.l 0
StringInfo3: dc.l Gad3Buf ;Gadget Buffer
dc.l GadUnBuf ;Gadget Undo Buffer
dc.w 3 ;Pos in Buffer
dc.w 3 ;Max. Chars in Buffer
dc.w 0 ;Buffer Pos. of 1st disp. char
dc.w 0 ;Intuition takes care of these.
dc.w 0
dc.w 0
dc.w 0
dc.w 0
dc.l 0
GreenLength: dc.l 30 ;Long int.
dc.l 0 ;AltKeyMap
ds.l 0
GadgetBorder: dc.w -1 ;Initial offsets from the origin
dc.w -1 ;LeftEdge and TopEdge
dc.b 1,2 ;Pens
dc.b 1 ;Draw Mode
dc.b 5 ;Line Count (XY)
dc.l BorderXY ;XY's
dc.l 0 ;Next Border
dc.b 0
ds.l 0
BorderXY: dc.w -1,-1
dc.w 36,-1
dc.w 36,9
dc.w -1,9
dc.w -1,-1
dc.b 0
ds.l 0
GadgetBorder2: dc.w -1 ;Initial offsets from the origin
dc.w -1 ;LeftEdge and TopEdge
dc.b 1,2 ;Pens
dc.b 1 ;Draw Mode
dc.b 5 ;Line Count (XY)
dc.l BorderXY2 ;XY's
dc.l 0 ;Next Border
dc.b 0
ds.l 0
BorderXY2: dc.w -1,-1
dc.w 22,-1
dc.w 22,9
dc.w -1,9
dc.w -1,-1
dc.b 0
ds.l 0
CityMap1: dc.w 5 ;Initial offsets from the origin
dc.w 11 ;LeftEdge and TopEdge
dc.b 1,2 ;Pens
dc.b 1 ;Draw Mode
dc.b 5 ;Line Count (XY)
dc.l CityXY1 ;XY's
dc.l CityMap2 ;Next Border
dc.b 0
ds.l 0
CityMap2: dc.w 360 ;Initial offsets from the origin
dc.w 11 ;LeftEdge and TopEdge
dc.b 1,2 ;Pens
dc.b 1 ;Draw Mode
dc.b 5 ;Line Count (XY)
dc.l CityXY1 ;XY's
dc.l CityMap3 ;Next Border
dc.b 0
ds.l 0
CityMap3: dc.w 360 ;Initial offsets from the origin
dc.w 87 ;LeftEdge and TopEdge
dc.b 1,2 ;Pens
dc.b 1 ;Draw Mode
dc.b 5 ;Line Count (XY)
dc.l CityXY1 ;XY's
dc.l CityMap4 ;Next Border
dc.b 0
ds.l 0
CityMap4: dc.w 5 ;Initial offsets from the origin
dc.w 87 ;LeftEdge and TopEdge
dc.b 1,2 ;Pens
dc.b 1 ;Draw Mode
dc.b 5 ;Line Count (XY)
dc.l CityXY1 ;XY's
dc.l CityMap5 ;Next Border
dc.b 0
ds.l 0
CityMap5: dc.w 100 ;Initial offsets from the origin
dc.w 87 ;LeftEdge and TopEdge
dc.b 1,2 ;Pens
dc.b 1 ;Draw Mode
dc.b 5 ;Line Count (XY)
dc.l CityXY2 ;XY's
dc.l CityMap6 ;Next Border
dc.b 0
ds.l 0
CityMap6: dc.w 100 ;Initial offsets from the origin
dc.w 11 ;LeftEdge and TopEdge
dc.b 1,2 ;Pens
dc.b 1 ;Draw Mode
dc.b 5 ;Line Count (XY)
dc.l CityXY2 ;XY's
dc.l CityMap7 ;Next Border
dc.b 0
ds.l 0
CityMap7: dc.w 100 ;Initial offsets from the origin
dc.w 38 ;LeftEdge and TopEdge
dc.b 1,2 ;Pens
dc.b 1 ;Draw Mode
dc.b 5 ;Line Count (XY)
dc.l CityXY3 ;XY's
dc.l CityMap8 ;Next Border
dc.b 0
ds.l 0
CityMap8: dc.w 5 ;Initial offsets from the origin
dc.w 38 ;LeftEdge and TopEdge
dc.b 1,2 ;Pens
dc.b 1 ;Draw Mode
dc.b 5 ;Line Count (XY)
dc.l CityXY4 ;XY's
dc.l CityMap9 ;Next Border
dc.b 0
ds.l 0
CityMap9: dc.w 360 ;Initial offsets from the origin
dc.w 38 ;LeftEdge and TopEdge
dc.b 1,2 ;Pens
dc.b 1 ;Draw Mode
dc.b 5 ;Line Count (XY)
dc.l CityXY4 ;XY's
dc.l 0 ;Next Border
dc.b 0
ds.l 0
CityXY1: dc.w 1,1
dc.w 33,1
dc.w 33,9
dc.w 1,9
dc.w 1,1
dc.b 0
ds.l 0
CityXY2: dc.w 1,1
dc.w 200,1
dc.w 200,9
dc.w 1,9
dc.w 1,1
dc.b 0
ds.l 0
CityXY3: dc.w 1,1
dc.w 200,1
dc.w 200,30
dc.w 1,30
dc.w 1,1
dc.b 0
ds.l 0
CityXY4: dc.w 1,1
dc.w 33,1
dc.w 33,30
dc.w 1,30
dc.w 1,1
dc.b 0
ds.l 0
QGadgetBorder1: dc.w -1 ;Initial offsets from the origin
dc.w -1 ;LeftEdge and TopEdge
dc.b 1,2 ;Pens
dc.b 1 ;Draw Mode
dc.b 5 ;Line Count (XY)
dc.l QBorderXY1 ;XY's
dc.l QGadgetBorder2 ;Next Border
dc.b 0
ds.l 0
QBorderXY1: dc.w 0,0
dc.w 52,0
dc.w 52,11
dc.w 0,11
dc.w 0,0
dc.b 0
ds.l 0
QGadgetBorder2: dc.w -2 ;Initial offsets from the origin
dc.w -3 ;LeftEdge and TopEdge
dc.b 3,1 ;Pens
dc.b 1 ;Draw Mode
dc.b 5 ;Line Count (XY)
dc.l QBorderXY2 ;XY's
dc.l QGadgetBorder3 ;Next Border
dc.b 0
ds.l 0
QBorderXY2: dc.w 0,0
dc.w 54,0
dc.w 54,15
dc.w 0,15
dc.w 0,0
dc.b 0
ds.l 0
QGadgetBorder3: dc.w -3 ;Initial offsets from the origin
dc.w -4 ;LeftEdge and TopEdge
dc.b 3,1 ;Pens
dc.b 1 ;Draw Mode
dc.b 5 ;Line Count (XY)
dc.l QBorderXY3 ;XY's
dc.l 0 ;Next Border
dc.b 0
ds.l 0
QBorderXY3: dc.w 0,0
dc.w 56,0
dc.w 56,17
dc.w 0,17
dc.w 0,0
dc.b 0
ds.l 0
PGadgetBorder1: dc.w -1 ;Initial offsets from the origin
dc.w -1 ;LeftEdge and TopEdge
dc.b 1,2 ;Pens
dc.b 1 ;Draw Mode
dc.b 5 ;Line Count (XY)
dc.l PBorderXY1 ;XY's
dc.l 0 ;Next Border
dc.b 0
ds.l 0
PBorderXY1: dc.w -1,-1
dc.w 25,-1
dc.w 25,9
dc.w -1,9
dc.w -1,-1
dc.b 0
ds.l 0
PGadgetBorder2: dc.w -1 ;Initial offsets from the origin
dc.w -1 ;LeftEdge and TopEdge
dc.b 1,2 ;Pens
dc.b 1 ;Draw Mode
dc.b 5 ;Line Count (XY)
dc.l PBorderXY2 ;XY's
dc.l 0 ;Next Border
dc.b 0
ds.l 0
PBorderXY2: dc.w -1,-1
dc.w 33,-1
dc.w 33,9
dc.w -1,9
dc.w -1,-1
dc.b 0
ds.l 0
AbBorder1: dc.w 2 ;Initial offsets from the origin
dc.w 1 ;LeftEdge and TopEdge
dc.b 1,2 ;Pens
dc.b 1 ;Draw Mode
dc.b 9 ;Line Count (XY)
dc.l AbBorderXY ;XY's
dc.l 0 ;Next Border
dc.b 0
ds.l 0
AbBorderXY: dc.w 0,0
dc.w 395,0
dc.w 395,77
dc.w 331,77
dc.w 331,97
dc.w 64,97
dc.w 64,77
dc.w 0,77
dc.w 0,0
dc.b 0
ds.l 0
;Gadget buffers
ds.l 0
PGad1Buf: dc.b "1",0,0,0
PGad2Buf: dc.b "1",0,0,0
PGadUnBuf: dc.b 0,0,0,0
Gad1Buf: dc.b "30",0,0,0
ds.l 0
Gad2Buf: dc.b "0",0,0,0,0
ds.l 0
Gad3Buf: dc.b "20",0,0,0
ds.l 0
ITGad1Buf: dc.b "1",0,0
ds.l 0
OTGad1Buf: dc.b "1",0,0
ds.l 0
XMGad1Buf: dc.b "30",0
ds.l 0
YMGad1Buf: dc.b "20",0
ds.l 0
ICGad1Buf: dc.b "12",0
ds.l 0
ICGad2Buf: dc.b "10",0
ds.l 0
ICGad3Buf: dc.b "10",0
ds.l 0
ICGad4Buf: dc.b "15",0
ds.l 0
ICGad5Buf: dc.b "05",0,0
ds.l 0
ICGad6Buf: dc.b "15",0
ds.l 0
ICGad7Buf: dc.b "18",0
ds.l 0
ICGad8Buf: dc.b "15",0
ds.l 0
TurnGad1Buf: dc.b "05",0
ds.l 0
TurnGad2Buf: dc.b "40",0
ds.l 0
TurnGad3Buf: dc.b "55",0
ds.l 0
TurnGad4Buf: dc.b "05",0
ds.l 0
TurnGad5Buf: dc.b "65",0,0
ds.l 0
TurnGad6Buf: dc.b "30",0
ds.l 0
TurnGad7Buf: dc.b "40",0
ds.l 0
TurnGad8Buf: dc.b "40",0
ds.l 0
TurnGad9Buf: dc.b "20",0
ds.l 0
TurnGad10Buf: dc.b "40",0
ds.l 0
TurnGad11Buf: dc.b "35",0
ds.l 0
TurnGad12Buf: dc.b "25",0
ds.l 0
TurnGad13Buf: dc.b "30",0,0
ds.l 0
TurnGad14Buf: dc.b "50",0
ds.l 0
TurnGad15Buf: dc.b "20",0
ds.l 0
TurnGad16Buf: dc.b "20",0
ds.l 0
TurnGad17Buf: dc.b "60",0
ds.l 0
TurnGad18Buf: dc.b "20",0
ds.l 0
TurnGad19Buf: dc.b "10",0
ds.l 0
TurnGad20Buf: dc.b "50",0
ds.l 0
TurnGad21Buf: dc.b "40",0
ds.l 0
TurnGad22Buf: dc.b "20",0,0
ds.l 0
TurnGad23Buf: dc.b "70",0
ds.l 0
TurnGad24Buf: dc.b "10",0
ds.l 0
TurnGad25Buf: dc.b "05",0
ds.l 0
TurnGad26Buf: dc.b "80",0
ds.l 0
TurnGad27Buf: dc.b "15",0
ds.l 0
TurnGad28Buf: dc.b "15",0
ds.l 0
TurnGad29Buf: dc.b "70",0
ds.l 0
TurnGad30Buf: dc.b "15",0,0
ds.l 0
TurnGad31Buf: dc.b "35",0
ds.l 0
TurnGad32Buf: dc.b "50",0
ds.l 0
TurnGad33Buf: dc.b "15",0
ds.l 0
TurnGad34Buf: dc.b "20",0
ds.l 0
TurnGad35Buf: dc.b "30",0
ds.l 0
TurnGad36Buf: dc.b "50",0
ds.l 0
TurnGad37Buf: dc.b "10",0
ds.l 0
TurnGad38Buf: dc.b "50",0,0
ds.l 0
TurnGad39Buf: dc.b "35",0
ds.l 0
TurnGad40Buf: dc.b "15",0
ds.l 0
TurnGad41Buf: dc.b "60",0
ds.l 0
TurnGad42Buf: dc.b "25",0
ds.l 0
TurnGad43Buf: dc.b "15",0
ds.l 0
TurnGad44Buf: dc.b "40",0
ds.l 0
TurnGad45Buf: dc.b "45",0
ds.l 0
TurnGad46Buf: dc.b "45",0
ds.l 0
TurnGad47Buf: dc.b "30",0,0
ds.l 0
TurnGad48Buf: dc.b "25",0
ds.l 0
GadUnBuf: ds.b 30
ds.l 0
FRDir: dc.b "SYS:",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
dc.b 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
dc.b 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
dc.b 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
dc.b 0,0,0,0,0,0,0,0,0,0
ds.l 0
FRFile: dc.b "Traffic-Lights.DAT",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
ds.l 0
FRPathName: dc.b 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
dc.b 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
dc.b 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
dc.b 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
dc.b 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
dc.b 0,0,0,0,0,0,0,0,0,0,0
ds.l 0
FileRequest1: dc.w $2 ;MUST BE REQVERSION !!!
FRTitle: dc.l 0 ;frq_Title
dc.l FRDir ;frq_dir
dc.l FRFile ;frq_File
dc.l FRPathName ;frq_PathName
dc.l 0 ;frq_Window
dc.w 0 ;frq_MaxExtndSelect
dc.w 0,0 ;frq_NumLines,NumColumns
dc.w 0 ;frq_DevColumns
dc.l FRQLOADINGB+FRQABSOLUTEXYB ;frq_Flags
dc.w 2,1 ;frq_DirNamesColor,FileNamesColor
dc.w 3,4 ;frq_DeviceNamesColor,FontNamesColor
dc.w 0 ;frq_FontSizesColor
dc.w 0,0 ;frq_DetailColor,BlockColor
dc.w 0,0 ;frq_GadgetTextColor,TextMessageColor
dc.w 0,0 ;frq_StringNameColor,StringGadgetColor
dc.w 0,0 ;frq_BoxBorderColor,GadgetBoxColor
dc.b 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ;frq_RFU_Stuff
dc.b 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
dc.b 0,0,0,0,0,0,0,0,0,0,0,0 ;frq_DateStamp
dc.w 128,6 ;frq_WindowLeftEdge,WindowTopEdge
dc.w 0,0 ;frq_FontYSize,FontStyle
dc.l 0 ;frq_ExtendSelect
dc.b 0,0,0,0,0,0,0,0,0,0 ;frq_Hide
dc.b 0,0,0,0,0,0,0,0,0,0
dc.b 0,0,0,0,0,0,0,0,0,0,0,0
dc.b 0,0,0,0,0,0,0,0,0,0 ;frq_Show
dc.b 0,0,0,0,0,0,0,0,0,0
dc.b 0,0,0,0,0,0,0,0,0,0,0,0
dc.w 0,0 ;frq_FileBufferPos,FileDispPos
dc.w 0,0 ;frq_DirBufferPos,DirDispPos
dc.w 0,0 ;frq_HideBufferPos,HideDispPos
dc.w 0,0 ;frq_ShowBufferPos,ShowPispPos
dc.l 0,0 ;frq_Memory,Memory2
dc.l 0 ;frq_Lock
dc.l 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ;frq_PrivateDirBuffer
dc.l 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
dc.l 0 ;frq_FileInfoBlock
dc.w 0 ;frq_NumEntries
dc.w 0 ;NumHiddenEntries
dc.w 0 ;frq_FileStartNumber
dc.w 0 ;frq_DevicesStartNumber
ds.l 0
AmountTxt1: dc.b 1,0 ;PENS
dc.w 0 ;MODE
dc.w 40,13 ;LEFT+TOPEDGE
dc.l 0 ;FONT
dc.l PutChData ;TEXT
dc.l 0 ;NEXTTEXT
ds.l 0
AmountTxt2: dc.b 1,0 ;PENS
dc.w 0 ;MODE
dc.w 302,13 ;LEFT+TOPEDGE
dc.l 0 ;FONT
dc.l PutChData ;TEXT
dc.l 0 ;NEXTTEXT
ds.l 0
AmountTxt3: dc.b 1,0 ;PENS
dc.w 0 ;MODE
dc.w 360,23 ;LEFT+TOPEDGE
dc.l 0 ;FONT
dc.l PutChData ;TEXT
dc.l 0 ;NEXTTEXT
ds.l 0
AmountTxt4: dc.b 1,0 ;PENS
dc.w 0 ;MODE
dc.w 360,71 ;LEFT+TOPEDGE
dc.l 0 ;FONT
dc.l PutChData ;TEXT
dc.l 0 ;NEXTTEXT
ds.l 0
AmountTxt5: dc.b 1,0 ;PENS
dc.w 0 ;MODE
dc.w 338,89 ;LEFT+TOPEDGE
dc.l 0 ;FONT
dc.l PutChData ;TEXT
dc.l 0 ;NEXTTEXT
ds.l 0
AmountTxt6: dc.b 1,0 ;PENS
dc.w 0 ;MODE
dc.w 79,89 ;LEFT+TOPEDGE
dc.l 0 ;FONT
dc.l PutChData ;TEXT
dc.l 0 ;NEXTTEXT
ds.l 0
AmountTxt7: dc.b 1,0 ;PENS
dc.w 0 ;MODE
dc.w 20,80 ;LEFT+TOPEDGE
dc.l 0 ;FONT
dc.l PutChData ;TEXT
dc.l 0 ;NEXTTEXT
ds.l 0
AmountTxt8: dc.b 1,0 ;PENS
dc.w 0 ;MODE
dc.w 20,31 ;LEFT+TOPEDGE
dc.l 0 ;FONT
dc.l PutChData ;TEXT
dc.l 0 ;NEXTTEXT
ds.l 0
AmountTxt9: dc.b 1,0 ;PENS
dc.w 0 ;MODE
dc.w 101,23 ;LEFT+TOPEDGE
dc.l 0 ;FONT
dc.l PutChData ;TEXT
dc.l 0 ;NEXTTEXT
ds.l 0
AmountTxt10: dc.b 1,0 ;PENS
dc.w 0 ;MODE
dc.w 282,31 ;LEFT+TOPEDGE
dc.l 0 ;FONT
dc.l PutChData ;TEXT
dc.l 0 ;NEXTTEXT
ds.l 0
AmountTxt11: dc.b 1,0 ;PENS
dc.w 0 ;MODE
dc.w 302,61 ;LEFT+TOPEDGE
dc.l 0 ;FONT
dc.l PutChData ;TEXT
dc.l 0 ;NEXTTEXT
ds.l 0
AmountTxt12: dc.b 1,0 ;PENS
dc.w 0 ;MODE
dc.w 339,42 ;LEFT+TOPEDGE
dc.l 0 ;FONT
dc.l PutChData ;TEXT
dc.l 0 ;NEXTTEXT
ds.l 0
AmountTxt13: dc.b 1,0 ;PENS
dc.w 0 ;MODE
dc.w 282,80 ;LEFT+TOPEDGE
dc.l 0 ;FONT
dc.l PutChData ;TEXT
dc.l 0 ;NEXTTEXT
ds.l 0
AmountTxt14: dc.b 1,0 ;PENS
dc.w 0 ;MODE
dc.w 101,71 ;LEFT+TOPEDGE
dc.l 0 ;FONT
dc.l PutChData ;TEXT
dc.l 0 ;NEXTTEXT
ds.l 0
AmountTxt15: dc.b 1,0 ;PENS
dc.w 0 ;MODE
dc.w 40,61 ;LEFT+TOPEDGE
dc.l 0 ;FONT
dc.l PutChData ;TEXT
dc.l 0 ;NEXTTEXT
ds.l 0
AmountTxt16: dc.b 1,0 ;PENS
dc.w 0 ;MODE
dc.w 78,42 ;LEFT+TOPEDGE
dc.l 0 ;FONT
dc.l PutChData ;TEXT
dc.l 0 ;NEXTTEXT
ds.l 0
AboutTxt1: dc.b 3,1 ;PENS
dc.w 0 ;MODE
dc.w 10,10 ;LEFT+TOPEDGE
dc.l 0 ;FONT
dc.l AboutText1 ;TEXT
dc.l AboutTxt2 ;NEXTTEXT
ds.l 0
AboutTxt2: dc.b 3,2 ;PENS
dc.w 4 ;MODE
dc.w 10,20 ;LEFT+TOPEDGE
dc.l 0 ;FONT
dc.l AboutText2 ;TEXT
dc.l AboutTxt3 ;NEXTTEXT
ds.l 0
AboutTxt3: dc.b 3,1 ;PENS
dc.w 4 ;MODE
dc.w 10,30 ;LEFT+TOPEDGE
dc.l 0 ;FONT
dc.l AboutText3 ;TEXT
dc.l AboutTxt4 ;NEXTTEXT
ds.l 0
AboutTxt4: dc.b 1,1 ;PENS
dc.w 4 ;MODE
dc.w 10,50 ;LEFT+TOPEDGE
dc.l 0 ;FONT
dc.l AboutText4 ;TEXT
dc.l AboutTxt5 ;NEXTTEXT
ds.l 0
AboutTxt5: dc.b 1,1 ;PENS
dc.w 4 ;MODE
dc.w 10,60 ;LEFT+TOPEDGE
dc.l 0 ;FONT
dc.l AboutText5 ;TEXT
dc.l AboutTxt6 ;NEXTTEXT
ds.l 0
AboutTxt6: dc.b 1,1 ;PENS
dc.w 4 ;MODE
dc.w 10,69 ;LEFT+TOPEDGE
dc.l 0 ;FONT
dc.l AboutText6 ;TEXT
dc.l AboutTxt7 ;NEXTTEXT
ds.l 0
AboutTxt7: dc.b 1,1 ;PENS
dc.w 4 ;MODE
dc.w 10,78 ;LEFT+TOPEDGE
dc.l 0 ;FONT
dc.l AboutText7 ;TEXT
dc.l 0 ;NEXTTEXT
ds.l 0
MapTxt1: dc.b 1,12 ;PENS
dc.w 4 ;MODE
dc.w 11,101 ;LEFT+TOPEDGE
dc.l 0 ;FONT
dc.l MapText1 ;TEXT
dc.l MapTxt2 ;NEXTTEXT
MapTxt2: dc.b 1,12 ;PENS
dc.w 4 ;MODE
dc.w 11,111 ;LEFT+TOPEDGE
dc.l 0 ;FONT
dc.l MapText2 ;TEXT
dc.l MapTxt3 ;NEXTTEXT
MapTxt3: dc.b 1,12 ;PENS
dc.w 4 ;MODE
dc.w 11,11 ;LEFT+TOPEDGE
dc.l 0 ;FONT
dc.l MapText3 ;TEXT
dc.l MapTxt4 ;NEXTTEXT
MapTxt4: dc.b 1,12 ;PENS
dc.w 4 ;MODE
dc.w 11,11 ;LEFT+TOPEDGE
dc.l 0 ;FONT
dc.l MapText4 ;TEXT
dc.l MapTxt5 ;NEXTTEXT
MapTxt5: dc.b 1,12 ;PENS
dc.w 4 ;MODE
dc.w 101,111 ;LEFT+TOPEDGE
dc.l 0 ;FONT
dc.l MapText5 ;TEXT
dc.l MapTxt6 ;NEXTTEXT
MapTxt6: dc.b 1,12 ;PENS
dc.w 4 ;MODE
dc.w 101,121 ;LEFT+TOPEDGE
dc.l 0 ;FONT
dc.l MapText6 ;TEXT
dc.l MapTxt7 ;NEXTTEXT
MapTxt7: dc.b 1,12 ;PENS
dc.w 4 ;MODE
dc.w 101,131 ;LEFT+TOPEDGE
dc.l 0 ;FONT
dc.l MapText7 ;TEXT
dc.l MapTxt8 ;NEXTTEXT
MapTxt8: dc.b 1,12 ;PENS
dc.w 4 ;MODE
dc.w 101,141 ;LEFT+TOPEDGE
dc.l 0 ;FONT
dc.l MapText8 ;TEXT
dc.l 0 ;NEXTTEXT
ds.l 0
MapText1: dc.b "Junction 1",0
ds.l 0
MapText2: dc.b "Junction 2",0
ds.l 0
MapText3: dc.b "Junction 3",0
ds.l 0
MapText4: dc.b "Junction 4",0
ds.l 0
MapText5: dc.b "West",0
ds.l 0
MapText6: dc.b "North",0
ds.l 0
MapText7: dc.b "East",0
ds.l 0
MapText8: dc.b "South",0
AboutText1: dc.b " Traffic-Lights v.0.94",0
ds.l 0
AboutText2: dc.b " by",0
ds.l 0
AboutText3: dc.b " Tomi Blinnikka",0
ds.l 0
AboutText4: dc.b " (C)opyright 1991. Address :",0,0
ds.l 0
AboutText5: dc.b " Syystie 10",0
ds.l 0
AboutText6: dc.b " 00780 Helsinki",0
ds.l 0
AboutText7: dc.b " Phone: 90-351 1462/90-345 4588",0
ds.l 0
Help1Txt1: dc.b 1,2 ;PENS
dc.w 4 ;MODE
dc.w 11,11 ;LEFT+TOPEDGE
dc.l 0 ;FONT
dc.l Help1Text1 ;TEXT
dc.l Help1Txt2 ;NEXTTEXT
ds.l 0
Help1Txt2: dc.b 1,12 ;PENS
dc.w 4 ;MODE
dc.w 11,21 ;LEFT+TOPEDGE
dc.l 0 ;FONT
dc.l Help1Text2 ;TEXT
dc.l Help1Txt3 ;NEXTTEXT
ds.l 0
Help1Txt3: dc.b 1,12 ;PENS
dc.w 4 ;MODE
dc.w 11,31 ;LEFT+TOPEDGE
dc.l 0 ;FONT
dc.l Help1Text3 ;TEXT
dc.l Help1Txt4 ;NEXTTEXT
ds.l 0
Help1Txt4: dc.b 1,12 ;PENS
dc.w 4 ;MODE
dc.w 11,41 ;LEFT+TOPEDGE
dc.l 0 ;FONT
dc.l Help1Text4 ;TEXT
dc.l Help1Txt5 ;NEXTTEXT
ds.l 0
Help1Txt5: dc.b 1,12 ;PENS
dc.w 4 ;MODE
dc.w 11,51 ;LEFT+TOPEDGE
dc.l 0 ;FONT
dc.l Help1Text5 ;TEXT
dc.l Help1Txt6 ;NEXTTEXT
ds.l 0
Help1Txt6: dc.b 1,12 ;PENS
dc.w 4 ;MODE
dc.w 11,61 ;LEFT+TOPEDGE
dc.l 0 ;FONT
dc.l Help1Text6 ;TEXT
dc.l Help1Txt7 ;NEXTTEXT
ds.l 0
Help1Txt7: dc.b 1,12 ;PENS
dc.w 4 ;MODE
dc.w 11,71 ;LEFT+TOPEDGE
dc.l 0 ;FONT
dc.l Help1Text7 ;TEXT
dc.l Help1Txt8 ;NEXTTEXT
ds.l 0
Help1Txt8: dc.b 1,12 ;PENS
dc.w 4 ;MODE
dc.w 11,81 ;LEFT+TOPEDGE
dc.l 0 ;FONT
dc.l Help1Text8 ;TEXT
dc.l HelpTxt99 ;NEXTTEXT
ds.l 0
HelpTxt99: dc.b 1,12 ;PENS
dc.w 4 ;MODE
dc.w 100,200 ;LEFT+TOPEDGE
dc.l 0 ;FONT
dc.l HelpText99 ;TEXT
dc.l 0 ;NEXTTEXT
ds.l 0
Help2Txt1: dc.b 1,12 ;PENS
dc.w 4 ;MODE
dc.w 11,11 ;LEFT+TOPEDGE
dc.l 0 ;FONT
dc.l Help2Text1 ;TEXT
dc.l Help1Txt2 ;NEXTTEXT
ds.l 0
Help2Txt2: dc.b 1,12 ;PENS
dc.w 4 ;MODE
dc.w 11,21 ;LEFT+TOPEDGE
dc.l 0 ;FONT
dc.l Help2Text2 ;TEXT
dc.l Help2Txt3 ;NEXTTEXT
ds.l 0
Help2Txt3: dc.b 1,12 ;PENS
dc.w 4 ;MODE
dc.w 11,31 ;LEFT+TOPEDGE
dc.l 0 ;FONT
dc.l Help2Text3 ;TEXT
dc.l Help2Txt4 ;NEXTTEXT
ds.l 0
Help2Txt4: dc.b 1,12 ;PENS
dc.w 4 ;MODE
dc.w 11,41 ;LEFT+TOPEDGE
dc.l 0 ;FONT
dc.l Help2Text4 ;TEXT
dc.l Help2Txt5 ;NEXTTEXT
ds.l 0
Help2Txt5: dc.b 1,12 ;PENS
dc.w 4 ;MODE
dc.w 11,51 ;LEFT+TOPEDGE
dc.l 0 ;FONT
dc.l Help2Text5 ;TEXT
dc.l Help2Txt6 ;NEXTTEXT
ds.l 0
Help2Txt6: dc.b 1,12 ;PENS
dc.w 4 ;MODE
dc.w 11,61 ;LEFT+TOPEDGE
dc.l 0 ;FONT
dc.l Help2Text6 ;TEXT
dc.l Help2Txt7 ;NEXTTEXT
ds.l 0
Help2Txt7: dc.b 1,12 ;PENS
dc.w 4 ;MODE
dc.w 11,71 ;LEFT+TOPEDGE
dc.l 0 ;FONT
dc.l Help2Text7 ;TEXT
dc.l Help2Txt8 ;NEXTTEXT
ds.l 0
Help2Txt8: dc.b 1,12 ;PENS
dc.w 4 ;MODE
dc.w 11,81 ;LEFT+TOPEDGE
dc.l 0 ;FONT
dc.l Help2Text8 ;TEXT
dc.l Help2Txt9 ;NEXTTEXT
ds.l 0
Help2Txt9: dc.b 1,12 ;PENS
dc.w 4 ;MODE
dc.w 11,91 ;LEFT+TOPEDGE
dc.l 0 ;FONT
dc.l Help2Text10 ;TEXT
dc.l Help2Txt10 ;NEXTTEXT
ds.l 0
Help2Txt10: dc.b 1,12 ;PENS
dc.w 4 ;MODE
dc.w 11,101 ;LEFT+TOPEDGE
dc.l 0 ;FONT
dc.l Help2Text10 ;TEXT
dc.l HelpTxt99 ;NEXTTEXT
ds.l 0
Help3Txt1: dc.b 1,12 ;PENS
dc.w 4 ;MODE
dc.w 11,11 ;LEFT+TOPEDGE
dc.l 0 ;FONT
dc.l Help3Text1 ;TEXT
dc.l Help3Txt2 ;NEXTTEXT
ds.l 0
Help3Txt2: dc.b 1,12 ;PENS
dc.w 4 ;MODE
dc.w 11,21 ;LEFT+TOPEDGE
dc.l 0 ;FONT
dc.l Help3Text2 ;TEXT
dc.l Help3Txt3 ;NEXTTEXT
ds.l 0
Help3Txt3: dc.b 1,12 ;PENS
dc.w 4 ;MODE
dc.w 11,31 ;LEFT+TOPEDGE
dc.l 0 ;FONT
dc.l Help3Text3 ;TEXT
dc.l Help3Txt4 ;NEXTTEXT
ds.l 0
Help3Txt4: dc.b 1,12 ;PENS
dc.w 4 ;MODE
dc.w 11,41 ;LEFT+TOPEDGE
dc.l 0 ;FONT
dc.l Help3Text4 ;TEXT
dc.l Help3Txt5 ;NEXTTEXT
ds.l 0
Help3Txt5: dc.b 1,12 ;PENS
dc.w 4 ;MODE
dc.w 11,51 ;LEFT+TOPEDGE
dc.l 0 ;FONT
dc.l Help3Text5 ;TEXT
dc.l Help3Txt6 ;NEXTTEXT
ds.l 0
Help3Txt6: dc.b 1,12 ;PENS
dc.w 4 ;MODE
dc.w 11,61 ;LEFT+TOPEDGE
dc.l 0 ;FONT
dc.l Help3Text6 ;TEXT
dc.l Help3Txt7 ;NEXTTEXT
ds.l 0
Help3Txt7: dc.b 1,12 ;PENS
dc.w 4 ;MODE
dc.w 11,71 ;LEFT+TOPEDGE
dc.l 0 ;FONT
dc.l Help3Text7 ;TEXT
dc.l Help3Txt8 ;NEXTTEXT
ds.l 0
Help3Txt8: dc.b 1,12 ;PENS
dc.w 4 ;MODE
dc.w 11,81 ;LEFT+TOPEDGE
dc.l 0 ;FONT
dc.l Help3Text8 ;TEXT
dc.l Help3Txt9 ;NEXTTEXT
ds.l 0
Help3Txt9: dc.b 1,12 ;PENS
dc.w 4 ;MODE
dc.w 11,91 ;LEFT+TOPEDGE
dc.l 0 ;FONT
dc.l Help3Text10 ;TEXT
dc.l Help3Txt10 ;NEXTTEXT
ds.l 0
Help3Txt10: dc.b 1,12 ;PENS
dc.w 4 ;MODE
dc.w 11,101 ;LEFT+TOPEDGE
dc.l 0 ;FONT
dc.l Help3Text10 ;TEXT
dc.l Help3Txt11 ;NEXTTEXT
ds.l 0
Help3Txt11: dc.b 1,12 ;PENS
dc.w 4 ;MODE
dc.w 11,111 ;LEFT+TOPEDGE
dc.l 0 ;FONT
dc.l Help3Text11 ;TEXT
dc.l Help3Txt12 ;NEXTTEXT
ds.l 0
Help3Txt12: dc.b 1,12 ;PENS
dc.w 4 ;MODE
dc.w 11,121 ;LEFT+TOPEDGE
dc.l 0 ;FONT
dc.l Help3Text12 ;TEXT
dc.l Help3Txt13 ;NEXTTEXT
ds.l 0
Help3Txt13: dc.b 1,12 ;PENS
dc.w 4 ;MODE
dc.w 11,131 ;LEFT+TOPEDGE
dc.l 0 ;FONT
dc.l Help3Text13 ;TEXT
dc.l Help3Txt14 ;NEXTTEXT
ds.l 0
Help3Txt14: dc.b 1,12 ;PENS
dc.w 4 ;MODE
dc.w 11,141 ;LEFT+TOPEDGE
dc.l 0 ;FONT
dc.l Help3Text14 ;TEXT
dc.l Help3Txt15 ;NEXTTEXT
ds.l 0
Help3Txt15: dc.b 1,12 ;PENS
dc.w 4 ;MODE
dc.w 11,151 ;LEFT+TOPEDGE
dc.l 0 ;FONT
dc.l Help3Text15 ;TEXT
dc.l Help3Txt16 ;NEXTTEXT
ds.l 0
Help3Txt16: dc.b 1,12 ;PENS
dc.w 4 ;MODE
dc.w 11,161 ;LEFT+TOPEDGE
dc.l 0 ;FONT
dc.l Help3Text16 ;TEXT
dc.l Help3Txt17 ;NEXTTEXT
ds.l 0
Help3Txt17: dc.b 1,12 ;PENS
dc.w 4 ;MODE
dc.w 11,171 ;LEFT+TOPEDGE
dc.l 0 ;FONT
dc.l Help3Text17 ;TEXT
dc.l Help3Txt18 ;NEXTTEXT
ds.l 0
Help3Txt18: dc.b 1,12 ;PENS
dc.w 4 ;MODE
dc.w 11,181 ;LEFT+TOPEDGE
dc.l 0 ;FONT
dc.l Help3Text18 ;TEXT
dc.l Help3Txt19 ;NEXTTEXT
ds.l 0
Help3Txt19: dc.b 1,12 ;PENS
dc.w 4 ;MODE
dc.w 11,191 ;LEFT+TOPEDGE
dc.l 0 ;FONT
dc.l Help3Text19 ;TEXT
dc.l 0 ;NEXTTEXT
ds.l 0
Help1Text1: dc.b "Traffic-Lights help:",0
ds.l 0
Help1Text2: dc.b "In the MAIN screen: Choose action from menus.",0
ds.l 0
Help1Text3: dc.b "Options: City Map - The simulation itself",0
ds.l 0
Help1Text4: dc.b " Help - This text. On 'HELP'-key also",0,0
ds.l 0
Help1Text5: dc.b " Load - Load existing situation",0
ds.l 0
Help1Text6: dc.b " Save(as) - Save current situation",0
ds.l 0
Help1Text7: dc.b " About - Copyright notice and",0
ds.l 0
Help1Text8: dc.b " version information",0
ds.l 0
Help1Text9: dc.b " Quit - Quit program",0
ds.l 0
HelpText99: dc.b "PRESS 'Y' FOR MORE. YES OR NO TO QUIT.",0
ds.l 0
Help2Text1: dc.b "Traffic-Lights help:",0
ds.l 0
Help2Text2: dc.b "In the MAP window.",0
ds.l 0
Help2Text3: dc.b "Keys: Escape - Quit variable ed and map",0
ds.l 0
Help2Text4: dc.b "In the VARIABLE EDITOR window.",0
ds.l 0
Help2Text5: dc.b "Menus: Help - This text. On 'HELP'-key also",0,0
ds.l 0
Help2Text6: dc.b " Load - Load settings",0
ds.l 0
Help2Text7: dc.b " Save(as) - Save settings",0
ds.l 0
Help2Text8: dc.b " About - Copyright notice and",0
ds.l 0
Help2Text9: dc.b " version information",0
ds.l 0
Help2Text10: dc.b " Quit - Quit variable ed and map",0
ds.l 0
Help2Text11: dc.b "Keys: Escape - Quit variable ed and map",0
ds.l 0
Help3Text1: dc.b "Traffic-Lights help:",0
ds.l 0
Help3Text2: dc.b "In the VARIABLE EDITOR.",0
ds.l 0
Help3Text3: dc.b "Gadgets (the little boxes):",0
ds.l 0
Help3Text4: dc.b "'Red', 'Amber' and 'Green' are the lengths",0,0
ds.l 0
Help3Text5: dc.b "for the corresponding traffic-lights. These",0
ds.l 0
Help3Text6: dc.b "are for the horizontal direction.",0
ds.l 0
Help3Text7: dc.b "'In' and 'Out' equal the time between vehicles",0
ds.l 0
Help3Text8: dc.b "arriving and leaving.",0
ds.l 0
Help3Text9: dc.b "'Max X' and 'Max Y' are the maximum amount of",0
ds.l 0
Help3Text10: dc.b "vehicles on that axis.",0
ds.l 0
Help3Text11: dc.b "The next 8 gadgets tell the possibility of a",0
ds.l 0
Help3Text12: dc.b "vehicle to arrive to the corresponding road.",0
ds.l 0
Help3Text13: dc.b "Roads are numbered clockwise, starting with",0
ds.l 0
Help3Text14: dc.b "number 1 in the top lefthand corner.",0
ds.l 0
Help3Text15: dc.b "The 4 big groups of gadgets tell the possibilities",0
ds.l 0
Help3Text16: dc.b "of the vehicles turning or going straight.",0
ds.l 0
Help3Text17: dc.b "The three buttons tell what 'time' it is.",0
ds.l 0
Help3Text18: dc.b "Night means light traffic, day is medium traffic",0
ds.l 0
Help3Text19: dc.b "and then heavy traffic is heavy traffic.",0
ds.l 0
GadImage1: dc.w 0,0 ;Left,Top
dc.w 16,11 ;Sizes
dc.w 1 ;Depth
GI1: dc.l 0 ;Image data
dc.b 1,0 ;PlanePick,PlaneOnOff
dc.l 0 ;Next image
ds.l 0
GadImage2: dc.w 0,0 ;Left,Top
dc.w 16,11 ;Sizes
dc.w 1 ;Depth
GI2: dc.l 0 ;Image data
dc.b 1,0 ;PlanePick,PlaneOnOff
dc.l 0 ;Next image
ds.l 0
GadImg1: dc.w $1f80,$30c0,$6060,$c030,$c030,$c030,$c030,$c030,$6060,$30c0,$1f80
GadImg2: dc.w $1f80,$30c0,$6660,$cf30,$cf30,$cf30,$cf30,$cf30,$6660,$30c0,$1f80
ds.l 0
dc.l 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
dc.l 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
dc.l 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
dc.l 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
dc.l 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
dc.l 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
dc.l 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
dc.l 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
dc.l 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
dc.l 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
dc.l 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
dc.l 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
dc.l 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
FString: dc.b "%d",0
ds.l 0
DStream: dc.b 0,0,0
ds.l 0
PutChData: dc.b 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
; M,a,x,., ,l,e,f,t, ,m,a,r,g,i,n, ,?,?,.,0
ds.l 0
PutChProc: move.b d0,(a3)+
rts
FString2: dc.b "%ld",0
ds.l 0
DStream2: dc.b 0,0,0,0,0,0
ds.l 0
PutChData2: dc.b 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
; M,a,x,., ,l,e,f,t, ,m,a,r,g,i,n, ,?,?,.,0
ds.l 0
PutChProc2: move.b d0,(a3)+
rts
RandomTxt1: dc.b 1,12 ;PENS
dc.w 4 ;MODE
dc.w 11,11 ;LEFT+TOPEDGE
dc.l 0 ;FONT
dc.l PutChData2 ;TEXT
dc.l 0 ;NEXTTEXT
ds.l 0
ModeGadImage1: dc.w 0,0 ;Left,Top
dc.w 16,11 ;Sizes
dc.w 1 ;Depth
MoGI1: dc.l ModeGadImg1 ;Image data
dc.b 1,0 ;PlanePick,PlaneOnOff
dc.l 0 ;Next image
ds.l 0
ModeGadImage2: dc.w 0,0 ;Left,Top
dc.w 16,11 ;Sizes
dc.w 1 ;Depth
dc.l ModeGadImg2 ;Image data
dc.b 1,0 ;PlanePick,PlaneOnOff
dc.l 0 ;Next image
ds.l 0
section TLChipstuff,DATA,CHIP
ModeGadImg1: dc.w $1f80,$30c0,$6060,$c030,$c030,$c030,$c030,$c030,$6060,$30c0,$1f80
ModeGadImg2: dc.w $1f80,$30c0,$6660,$cf30,$cf30,$cf30,$cf30,$cf30,$6660,$30c0,$1f80
;Batch1 - Income 1
BorderLine1: ds.w 2
CollMask1: ds.w 32
BorderLine2: ds.w 2
CollMask2: ds.w 32
BorderLine3: ds.w 2
CollMask3: ds.w 32
;Batch2 - Income 2
BorderLine4: ds.w 2
CollMask4: ds.w 32
BorderLine5: ds.w 2
CollMask5: ds.w 32
BorderLine6: ds.w 2
CollMask6: ds.w 32
;Batch3 - Income 3
BorderLine7: ds.w 2
CollMask7: ds.w 32
BorderLine8: ds.w 2
CollMask8: ds.w 32
BorderLine9: ds.w 2
CollMask9: ds.w 32
;Batch4
BorderLine10: ds.w 2
CollMask10: ds.w 32
BorderLine11: ds.w 2
CollMask11: ds.w 32
BorderLine12: ds.w 2
CollMask12: ds.w 32
;Batch5
BorderLine13: ds.w 2
CollMask13: ds.w 32
BorderLine14: ds.w 2
CollMask14: ds.w 32
BorderLine15: ds.w 2
CollMask15: ds.w 32
;Batch6
BorderLine16: ds.w 2
CollMask16: ds.w 32
BorderLine17: ds.w 2
CollMask17: ds.w 32
BorderLine18: ds.w 2
CollMask18: ds.w 32
;Batch7
BorderLine19: ds.w 2
CollMask19: ds.w 32
BorderLine20: ds.w 2
CollMask20: ds.w 32
BorderLine21: ds.w 2
CollMask21: ds.w 32
;Batch8
BorderLine22: ds.w 2
CollMask22: ds.w 32
BorderLine23: ds.w 2
CollMask23: ds.w 32
BorderLine24: ds.w 2
CollMask24: ds.w 32
;Batch9 - Juctions
BorderLine25: ds.w 2
CollMask25: ds.w 32
BorderLine26: ds.w 2
CollMask26: ds.w 32
BorderLine27: ds.w 2
CollMask27: ds.w 32
;Batch10 - Junctions
BorderLine28: ds.w 2
CollMask28: ds.w 32
BorderLine29: ds.w 2
CollMask29: ds.w 32
BorderLine30: ds.w 2
CollMask30: ds.w 32
;Batch11 - Junctions
BorderLine31: ds.w 2
CollMask31: ds.w 32
BorderLine32: ds.w 2
CollMask32: ds.w 32
BorderLine33: ds.w 2
CollMask33: ds.w 32
;Batch12
BorderLine34: ds.w 2
CollMask34: ds.w 32
BorderLine35: ds.w 2
CollMask35: ds.w 32
BorderLine36: ds.w 2
CollMask36: ds.w 32
;Batch13
BorderLine37: ds.w 2
CollMask37: ds.w 32
BorderLine38: ds.w 2
CollMask38: ds.w 32
BorderLine39: ds.w 2
CollMask39: ds.w 32
;Batch14
BorderLine40: ds.w 2
CollMask40: ds.w 32
BorderLine41: ds.w 2
CollMask41: ds.w 32
BorderLine42: ds.w 2
CollMask42: ds.w 32
;Batch15
BorderLine43: ds.w 2
CollMask43: ds.w 32
BorderLine44: ds.w 2
CollMask44: ds.w 32
BorderLine45: ds.w 2
CollMask45: ds.w 32
;Batch16
BorderLine46: ds.w 2
CollMask46: ds.w 32
BorderLine47: ds.w 2
CollMask47: ds.w 32
BorderLine48: ds.w 2
CollMask48: ds.w 32
UpSprImg: dc.w %0000000000000000,%0111111111000000
dc.w %1011111110100000,%0100000001000000
dc.w %1111111111100000,%0011111110000000
dc.w %1011111110100000,%0100000001000000
dc.w %0010000010000000,%0101111101000000
dc.w %1010000010100000,%0101111101000000
dc.w %1111111111100000,%0000000000000000
dc.w %1010000010100000,%0101111101000000
DownSprImg: dc.w %0000010100000101,%0000001011111010
dc.w %0000011111111111,%0000000000000000
dc.w %0000010100000101,%0000001011111010
dc.w %0000000100000100,%0000001011111010
dc.w %0000010111111101,%0000001000000010
dc.w %0000011111111111,%0000000111111100
dc.w %0000010111111101,%0000001111111110
dc.w %0000000000000000,%0000001111111110
RightSprImg: dc.w %0011100111000000,%0000000000000000
dc.w %0001000010000000,%1110111101100000
dc.w %0111111111000000,%1100000011100000
dc.w %0001000111000000,%1110111011100000
dc.w %0111111111000000,%1100000011100000
dc.w %0001000010000000,%1110111101100000
dc.w %0011100111000000,%0000000000000000
dc.w %0000000000000000,%0000000000000000
LeftSprImg: dc.w %0000001110011100,%0000000000000000
dc.w %0000000100001000,%0000011011110111
dc.w %0000001111111110,%0000011100000011
dc.w %0000001110001000,%0000011101110111
dc.w %0000001111111110,%0000011100000011
dc.w %0000000100001000,%0000011011110111
dc.w %0000001110011100,%0000000000000000
dc.w %0000000000000000,%0000000000000000
END