wudsn-ide/com.wudsn.ide.ref/HEX/Atari8/MADS/GOS/Applications/clock.s
2018-12-30 16:52:33 +01:00

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