mirror of
https://github.com/peterdell/wudsn-ide.git
synced 2024-12-21 18:29:40 +00:00
97 lines
2.1 KiB
ArmAsm
97 lines
2.1 KiB
ArmAsm
;@com.wudsn.ide.asm.outputfileextension=.rom
|
|
|
|
// Atari 8-bit GOS clock process
|
|
// Stand-alone relocatable MADS binary
|
|
//
|
|
|
|
icl '../Includes/guidef.s'
|
|
icl '../Includes/macros.s'
|
|
|
|
.reloc
|
|
|
|
.byte 'Clock'
|
|
.byte 0,0,0,0,0,0,0,0,0,0,0
|
|
AppFlags
|
|
.byte 128 ; service
|
|
CodeBank
|
|
.byte 2
|
|
PID
|
|
.byte 0
|
|
|
|
.byte 0 ; # of shared PZ locations
|
|
|
|
|
|
mva #Desk.RegisterMenulet MessageBuffer ; set up menulet
|
|
mva CodeBank MessageBuffer+1
|
|
mwa #MenuletMain MessageBuffer+2
|
|
jsr SendMsgDeskMgr
|
|
|
|
MainLoop
|
|
ldxy #MessageBuffer
|
|
lda #ProcessID.Any ; see if we have a message
|
|
SysCall Kernel.MessageSleepReceive
|
|
jmp MainLoop
|
|
|
|
|
|
; ----------------------------------------------------------------------------
|
|
; Send message to the desktop manager
|
|
; ----------------------------------------------------------------------------
|
|
|
|
.local SendMsgDeskMgr
|
|
lda #ProcessID.DesktopManager ; receiver ID
|
|
ldxy #MessageBuffer
|
|
SysCall Kernel.MessageSend ; send message
|
|
rts
|
|
.endl
|
|
|
|
; ----------------------------------------------------------------------------
|
|
; Sleep on message from desktop manager
|
|
; ----------------------------------------------------------------------------
|
|
|
|
.local SleepMsgDeskMgr
|
|
lda #ProcessID.DesktopManager ; sender ID
|
|
ldxy #MessageBuffer
|
|
SysCall Kernel.MessageSleepReceive ; sleep on response from desktop manager only
|
|
rts
|
|
.endl
|
|
|
|
|
|
|
|
.local SetDateAndTime
|
|
rts
|
|
.endl
|
|
|
|
.local SetPreferences
|
|
rts
|
|
.endl
|
|
|
|
|
|
; ----------------------------------------------------------------------------------------------------
|
|
; Application menulet
|
|
; ----------------------------------------------------------------------------------------------------
|
|
|
|
MenuletMain
|
|
.byte 1 ; only one item
|
|
MenuMain1 dta MenuItem [0] (1+4, txtMenuMain, MenuMain, 0)
|
|
|
|
|
|
txtMenuMain
|
|
.byte '00:00',0
|
|
|
|
MenuMain
|
|
.byte 2
|
|
.word 0,0
|
|
MenuMain1 dta MenuItem [0] (1, txtMenuMain1, SetDateAndTime, 0)
|
|
MenuMain2 dta MenuItem [0] (1, txtMenuMain2, SetPreferences, 0)
|
|
|
|
txtMenuMain1 .byte 'Set Date && Time...',0
|
|
txtMenuMain2 .byte 'Preferences...',0
|
|
|
|
MessageBuffer
|
|
.rept MessageSize
|
|
.byte 0
|
|
.endr
|
|
|
|
blk update address
|
|
|
|
|