home *** CD-ROM | disk | FTP | other *** search
- ; !EasiTrack.Source
- ; by Nicholas Marriott
- ; © NSoft 1995
-
- ; r11 = playing indicator, 1=playing, 0=not loaded, -1=paused
-
- #name !RunImage
- #base &8000
-
- #set StackSize = 512
-
- .Code_Start
- adr r13,Stack_End
-
- bl Initialise
- bl Poll
- bl Finalise
- swi XOS_Exit
-
- .Stack_Start
- dbb StackSize,0
- align
- .Stack_End
-
- .Initialise
- stmfd r13!,{r0-r12,r14}
-
- mov r0,#200
- ldr r1,TASK
- adr r2,TaskName
- swi XWimp_Initialise
- str r1,TaskHandle
-
- mov r0,#14
- mov r2,#%000000100010
- swi XWimpExt_Initialise
-
- mov r1,#%101
- adr r0,Code_End
- str r1,[r0]
- adr r1,Code_End+64
- adr r2,Code_End+2048
- adr r3,Code_End+64+2048+1024
- mvn r4,#0
- adr r5,TemplateFile
- mov r6,#1
- swi XWimpExt_LoadTemplates
-
- adr r12,Poll_Block
- ldr r0,Code_End
- str r0,[r12]
- mov r1,r12
- swi XWimp_GetWindowState
- swi XWimp_OpenWindow
-
- bl Stop_Tune
-
- ldmfd r13!,{r0-r12,pc}
-
- .TASK
- dcb "TASK"
- .TaskName
- dcb "EasiTrack",0
- .TemplateFile
- dcb "<EasiTrack$Dir>.Templates",0
- align
- .TaskHandle
- dcd 0
- .IconbarIcon
- dcd 0
- .IconbarSprite
- dcb "!easitrack",0
- .BlankString
- dcb 0
- align
-
- .Finalise
- stmfd r13!,{r0-r12,r14}
-
- swi XTracker_Stop
- mvn r0,#0
- mov r1,#0
- mov r2,#0
- mov r3,#0
- mov r4,#0
- swi XDSym_Load
-
- adr r0,Kill_Symphony
- swi XOS_CLI
-
- adr r0,Kill_Tracker
- swi XOS_CLI
-
- ldr r0,TaskHandle
- swi XWimpExt_CloseDown
-
- ldr r0,TaskHandle
- ldr r1,TASK
- swi XWimp_CloseDown
-
- ldmfd r13!,{r0-r12,pc}
-
- .Poll
- stmfd r13!,{r0-r12,r14}
-
- mov r11,#0
- adr r12,Poll_Block
-
- .Poll_Loop
- swi XWimpExt_PrePoll
-
- mov r0,#0
- mov r1,r12
- swi XWimp_Poll
- mov r9,r0
-
- ldr r0,TaskHandle
- mov r1,r12
- mov r2,r9
- swi XWimpExt_Action
-
- cmp r9,#0
- cmpeq r11,#1
- bleq Update_Tune
-
- cmp r9,#3
- moveq r1,r12
- swieq XWimp_CloseWindow
- beq Poll_End
-
- cmp r9,#2
- moveq r1,r12
- swieq XWimp_OpenWindow
-
- cmp r9,#1
- moveq r1,r12
- swieq XWimpExt_AutoRedraw
-
- cmp r9,#6
- bleq Mouse_Click
-
- cmp r9,#17
- bleq User_Message
- cmp r9,#18
- bleq User_Message
-
- b Poll_Loop
-
- .Poll_End
- ldmfd r13!,{r0-r12,pc}
-
- .Poll_Block
- dbb 256,0
- align
-
- .User_Message
- stmfd r13!,{r1-r2r14}
-
- ldr r1,[r12,#16]
-
- cmp r1,#3
- bleq Load_Tune
-
- cmp r1,#0
- ldmeqfd r13!,{r1-r2,r14}
- beq Poll_End
-
- ldmfd r13!,{r1-r2,pc}
-
- .Stop_Tune
- stmfd r13!,{r0-r10,r14}
-
- swi XTracker_Stop
- mvn r0,#0
- mov r1,#0
- mov r2,#0
- mov r3,#0
- mov r4,#0
- swi XDSym_Load
-
- mov r11,#0
-
- mov r0,#0
- str r0,Tune_Type
-
- ldr r10,Code_End
-
- mov r0,#1
- mov r2,r10
- mov r3,#2
- adr r4,Blank_String
- swi XWimpExt_SetIconString
-
- mov r2,r10
- mov r3,#0
- adr r4,Blank_String
- swi XWimpExt_SetIconString
-
- mov r2,r10
- mov r3,#15
- adr r4,Blank_String
- swi XWimpExt_SetIconString
-
- mov r2,r10
- mov r3,#4
- adr r4,Blank_String
- swi XWimpExt_SetIconString
-
- mov r2,r10
- mov r3,#7
- adr r4,Blank_String
- swi XWimpExt_SetIconString
-
- mov r2,r10
- mov r3,#11
- adr r4,Blank_String
- swi XWimpExt_SetIconString
-
- mov r2,r10
- mov r3,#9
- adr r4,Blank_String
- swi XWimpExt_SetIconString
-
- mov r2,r10
- mov r3,#13
- adr r4,Blank_String
- swi XWimpExt_SetIconString
-
- ldr r10,Code_End
-
- mov r2,r10
- mov r3,#17
- mov r4,#1
- swi XWimpExt_ShadeIcon
-
- mov r2,r10
- mov r3,#18
- mov r4,#1
- swi XWimpExt_ShadeIcon
-
- mov r2,r10
- mov r3,#19
- mov r4,#1
- swi XWimpExt_ShadeIcon
-
- mov r2,r10
- mov r3,#20
- mov r4,#1
- swi XWimpExt_ShadeIcon
-
- mov r2,r10
- mov r3,#21
- mov r4,#1
- swi XWimpExt_ShadeIcon
-
- ldmfd r13!,{r0-r10,pc}
-
- .Kill_Symphony
- dcb "RMKill DSymphonyPlayer",0
- .Kill_Tracker
- dcb "RMKill TrackerModule",0
- .Load_Symphony
- dcb "RMLoad <EasiTrack$Dir>.DSymPlay",0
- .Load_Tracker1
- dcb "If ",34,"<RISCOS>",34,"=",34,"350",34," Then RMEnsure TrackerModule 4.09 Run <EasiTrack$Dir>.Tracker409",0
- .Load_Tracker2
- dcb "If ",34,"<RISCOS>",34,"<",34,"350",34," Then RMEnsure TrackerModule 4.06 Run <EasiTrack$Dir>.Tracker406",0
- align
-
- .Load_Tune
- stmfd r13!,{r0-r10,r14}
-
- swi XTracker_Stop
- mvn r0,#0
- mov r1,#0
- mov r2,#0
- mov r3,#0
- mov r4,#0
- swi XDSym_Load
-
- ldr r10,Code_End
-
- ldr r0,[r12,#40]
- str r0,Tune_Type
-
- mov r0,#1
- mov r2,r10
- mov r3,#2
- add r4,r12,#44
- swi XWimpExt_SetIconString
-
- bl Find_Type
- mov r4,r0
- mov r2,r10
- mov r3,#4
- swi XWimpExt_SetIconString
-
- mov r0,#17
- add r1,r12,#44
- swi XOS_File
- mov r0,r4
- adr r1,Buffer
- mov r2,#128
- swi XOS_ConvertInteger4
- mov r4,r0
- mov r2,r10
- mov r3,#7
- swi XWimpExt_SetIconString
-
- mov r11,#1
-
- ldr r0,Tune_Type
- ldr r1,Type_10B
- cmp r0,r1
- bleq Symphony_Load
- blne Tracker_Load
-
- bl UnShade
- ldr r10,Code_End
- mov r2,r10
- mov r3,#19
- mov r4,#1
- swi XWimpExt_ShadeIcon
-
- ldmfd r13!,{r0-r10,pc}
-
- .Tracker_Load
- stmfd r13!,{r0-r10,r14}
-
- adr r0,Load_Tracker1
- swi XOS_CLI
- adr r0,Load_Tracker2
- swi XOS_CLI
-
- add r0,r12,#44
- swi XTracker_Load
-
- swi XTracker_Play
-
- swi XTracker_TuneInfo
- mov r2,r10
- mov r4,r3
- mov r3,#0
- swi XWimpExt_SetIconString
-
- swi XTracker_TuneInfo
- mov r2,r10
- mov r3,#15
- cmp r4,#0
- adreq r4,Bad_Author
- swi XWimpExt_SetIconString
-
- swi XTracker_TuneInfo
- adr r1,Buffer
- mov r2,#128
- swi XOS_ConvertInteger4
- mov r4,r0
- mov r2,r10
- mov r3,#11
- swi XWimpExt_SetIconString
-
- swi XTracker_TuneInfo
- mov r0,r1
- adr r1,Buffer
- mov r2,#128
- swi XOS_ConvertInteger4
- mov r4,r0
- mov r2,r10
- mov r3,#9
- swi XWimpExt_SetIconString
-
- ldmfd r13!,{r0-r10,pc}
-
- .Symphony_Load
- stmfd r13!,{r0-r10,r14}
-
- adr r0,Load_Symphony
- swi XOS_CLI
-
- add r0,r12,#44
- mov r1.#0
- mov r2,#0
- mov r3,#0
- mov r4,#0
- swi XDSym_Load
-
- swi XDSym_RestartSong
-
- mov r2,r10
- mov r3,#0
- adr r4,Blank_String
- swi XWimpExt_SetIconString
-
- mov r2,r10
- mov r3,#15
- adr r4,Bad_Author
- swi XWimpExt_SetIconString
-
- swi XDSym_TuneInfo
- adr r1,Buffer
- mov r2,#128
- swi XOS_ConvertInteger4
- mov r4,r0
- mov r2,r10
- mov r3,#11
- swi XWimpExt_SetIconString
-
- mvn r0,#0
- swi XDSym_Voices
- adr r1,Buffer
- mov r2,#128
- swi XOS_ConvertInteger4
- mov r4,r0
- mov r2,r10
- mov r3,#9
- swi XWimpExt_SetIconString
-
- ldmfd r13!,{r0-r10,pc}
-
- .Find_Type
- stmfd r13!,{r1-r2,r14}
-
- ldr r2,Tune_Type
-
- ldr r1,Type_CB6
- cmp r2,r1
- adreq r0,Type_CB6+4
- ldmeqfd r13!,{r1-r2,pc}
-
- ldr r1,Type_001
- cmp r2,r1
- adreq r0,Type_001+4
- ldmeqfd r13!,{r1-r2,pc}
-
- ldr r1,Type_CC5
- cmp r2,r1
- adreq r0,Type_CC5+4
- ldmeqfd r13!,{r1-r2,pc}
-
- ldr r1,Type_365
- cmp r2,r1
- adreq r0,Type_365+4
- ldmeqfd r13!,{r1-r2,pc}
-
- ldr r1,Type_10B
- cmp r2,r1
- adreq r0,Type_10B+4
-
- ldmfd r13!,{r1-r2,pc}
-
- .Update_Tune
- stmfd r13!,{r0-r3,r10,r14}
-
- ldr r10,Code_End
-
- ldr r0,Tune_Type
- ldr r1,Type_10B
- cmp r0,r1
- swine XTracker_ReadPos
- mvneq r0,#0
- mvneq r1,#0
- swieq XDSym_SongPos
- adr r1,Buffer
- mov r2,#128
- swi XOS_ConvertInteger1
- mov r4,r0
- mov r2,r10
- mov r3,#13
- swi XWimpExt_SetIconString
-
- ldmfd r13!,{r0-r3,r10,pc}
-
- .UnShade
- stmfd r13!,{r0-r12,r14}
-
- ldr r10,Code_End
-
- mov r2,r10
- mov r3,#17
- mov r4,#0
- swi XWimpExt_ShadeIcon
-
- mov r2,r10
- mov r3,#18
- mov r4,#0
- swi XWimpExt_ShadeIcon
-
- mov r2,r10
- mov r3,#19
- mov r4,#0
- swi XWimpExt_ShadeIcon
-
- mov r2,r10
- mov r3,#20
- mov r4,#0
- swi XWimpExt_ShadeIcon
-
- mov r2,r10
- mov r3,#21
- mov r4,#0
- swi XWimpExt_ShadeIcon
-
- ldmfd r13!,{r0-r12,pc}
-
- .Next_Tune
- stmfd r13!,{r0-r2,r14}
-
- ldr r0,Tune_Type
- ldr r1,Type_10B
- cmp r0,r1
- swine XTracker_ReadPos
- addne r0,r0,#1
- movne r1,#0
- swine XTracker_SetPos
- mvneq r0,#0
- mvneq r1,#0
- swieq XDSym_SongPos
- addeq r0,r0,#1
- mvneq r1,#0
- swieq XDSym_SongPos
- swieq XDSym_FlushOutput
-
- ldmfd r13!,{r0-r2,pc}
-
- .Prev_Tune
- stmfd r13!,{r0-r2,r14}
-
- ldr r0,Tune_Type
- ldr r1,Type_10B
- cmp r0,r1
- swine XTracker_ReadPos
- subne r0,r0,#1
- movne r1,#0
- swine XTracker_SetPos
- mvneq r0,#0
- swieq XDSym_SongPos
- subeq r0,r0,#1
- moveq r1,#0
- swieq XDSym_SongPos
- swieq XDSym_FlushOutput
-
- ldmfd r13!,{r0-r2,pc}
-
- .Pause_Tune
- stmfd r13!,{r0-r4,r10,r14}
-
- mvn r11,#0
-
- ldr r0,Tune_Type
- ldr r1,Type_10B
- cmp r0,r1
- swine XTracker_Pause
- swieq XDSym_Pause
-
- bl UnShade
- ldr r10,Code_End
-
- mov r2,r10
- mov r3,#17
- mov r4,#1
- swi XWimpExt_ShadeIcon
-
- mov r2,r10
- mov r3,#18
- mov r4,#1
- swi XWimpExt_ShadeIcon
-
- mov r2,r10
- mov r3,#20
- mov r4,#1
- swi XWimpExt_ShadeIcon
-
- ldmfd r13!,{r0-r4,r10,pc}
-
- .Play_Tune
- stmfd r13!,{r0-r1,r14}
-
- mov r11,#1
-
- ldr r0,Tune_Type
- ldr r1,Type_10B
- cmp r0,r1
- swine XTracker_Play
- mvneq r0,#0
- mvneq r1,#0
- swieq XDSym_PlaySingle
-
- bl UnShade
- ldr r10,Code_End
- mov r2,r10
- mov r3,#19
- mov r4,#1
- swi XWimpExt_ShadeIcon
-
- ldmfd r13!,{r0-r1,pc}
-
- .Mouse_Click
- stmfd r13!,{r0-r12,r14}
-
- ldr r9,[r12,#12]
- cmn r9,#2
- bleq Iconbar_Remove
- ldmeqfd r13!,{r0-r12,pc}
- ldr r10,Code_End
- cmp r9,r10
- ldmnefd r13!,{r0-r12,pc}
-
- ldr r9,[r12,#8]
- cmp r9,#%010
- ldreq r2,Code_End+4
- moveq r3,#128
- moveq r4,#128
- swieq XWimpExt_OpenDialogue
- ldmeqfd r13!,{r0-r12,pc}
-
- ldr r9,[r12,#16]
-
- cmp r9,#17
- bleq Next_Tune
-
- cmp r9,#18
- bleq Prev_Tune
-
- cmp r9,#19
- bleq Play_Tune
-
- cmp r9,#20
- bleq Pause_Tune
-
- cmp r9,#21
- bleq Stop_Tune
-
- cmp r9,#22
- bleq Iconbar_Create
-
- cmp r9,#23
- ldmeqfd r13!,{r0-r12,r14}
- beq Poll_End
-
- cmp r9,#24
- mvneq r0,#0
- swieq XSound_Speaker
- rsbeq r0,r0,#3
- swieq XSound_Speaker
-
- ldmfd r13!,{r0-r12,pc}
-
- .Iconbar_Create
- stmfd r13!,{r0-r12,r14}
-
- ldr r10,Code_End
- str r10,[r12]
- mov r1,r12
- swi XWimp_CloseWindow
-
- mvn r2,#1
- adr r3,IconbarSprite
- mov r5,#3
- swi XWimpExt_IconBarSprite
- str r0,IconbarIcon
-
- ldmfd r13!,{r0-r12,pc}
-
- .Iconbar_Remove
- stmfd r13!,{r0-r12,r14}
-
- adr r12,Poll_Block
- ldr r0,Code_End
- str r0,[r12]
- mov r1,r12
- swi XWimp_GetWindowState
- swi XWimp_OpenWindow
-
- mvn r0,#1
- str r0,[r12]
- ldr r0,IconbarIcon
- str r0,[r12,#4]
- mov r1,r12
- swi XWimp_DeleteIcon
-
- ldmfd r13!,{r0-r12,pc}
-
- .Tune_Type
- dcd 0
- align
-
- .Type_CB6
- dcd &CB6
- dcb "&CB6 (STModule)",0
- align
- .Type_001
- dcd &001
- dcb "&001 (STracker)",0
- align
- .Type_CC5
- dcd &CC5
- dcb "&CC5 (TeqMusic)",0
- align
- .Type_10B
- dcd &10B
- dcb "&10B (Symphony)",0
- align
- .Type_365
- dcd &365
- dcb "&365 (CocoTrak)",0
- align
- .Type_XXX
- dcd &000
- dcb "&000 (--------)",0
- align
-
- .Blank_String
- dcb 0
- align
-
- .Bad_Author
- dcb "Not applicable (STracker/Symphony)",0
- align
-
- .Buffer
- dbb 128,0
- align
-
- dcb 10,10,"EasiTrack by Nicholas Marriott. © NSoft 1995"
- dcb 10,10,"Written with Zap and assembled with extASM."
- dcb 10,10,"No support for Coconizer or DTTracker yet!"
- dcb 10,10,"Nicholas Marriott,",10,"1 Parkmore,"
- dcb 10,"Magherafelt",10,"Co. Derry,",10,"N. Ireland,"
- dcb 10,"BT45 6EZ."
- dcb 10,10
- align
- .Code_End
-