mirror of
https://github.com/callapple/LLUCE.git
synced 2024-06-20 15:29:29 +00:00
119 lines
3.3 KiB
ArmAsm
119 lines
3.3 KiB
ArmAsm
LST RTN
|
|
TTL 'LLUCE - Apple //Gs Clock'
|
|
PAG
|
|
XC ; Uses 65816 Codes
|
|
|
|
ReadTimeHex = $D03
|
|
Tool_Entry = $E10000
|
|
|
|
CLOCKDVR DB 0
|
|
CLKMODE DB 0
|
|
|
|
GETDATE JMP G_DATE
|
|
GETTIME JMP G_TIME
|
|
SETDATE JMP S_DATE
|
|
|
|
*-------------------------------
|
|
* Get The Date In Prodos Format
|
|
*-------------------------------
|
|
|
|
G_DATE JSR MLI
|
|
DB Gettime
|
|
DA 0
|
|
LDX DATE
|
|
LDA DATE+1
|
|
S_DATE RTS
|
|
|
|
*-------------------------------
|
|
* Get The Current Time
|
|
*-------------------------------
|
|
|
|
G_TIME CLC
|
|
XCE
|
|
REP %00110000
|
|
PHA
|
|
PHA
|
|
PHA
|
|
PHA
|
|
LDX #ReadTimeHex
|
|
JSL Tool_Entry
|
|
SEC
|
|
XCE
|
|
LDA #' ' ; Clear AM/PM
|
|
STA :TIMESTR+9
|
|
STA :TIMESTR+10
|
|
PLA ; Seconds
|
|
JSR :BINDEC8
|
|
STA :TIMESTR+6
|
|
STX :TIMESTR+7
|
|
PLA ; Minutes
|
|
JSR :BINDEC8
|
|
STA :TIMESTR+3
|
|
STX :TIMESTR+4
|
|
LDA #<:TIMESTR
|
|
STA :TIMELOC+1
|
|
PLA ; Hours
|
|
LDY #8
|
|
BIT CLKMODE
|
|
BPL :RTNTIME
|
|
|
|
LDY #11
|
|
LDX #'A' ; Default To Am
|
|
CMP #12+1 ; Is It After Noon?
|
|
BLT :AM ; Nope
|
|
SBC #12 ; Subtract For PM
|
|
LDX #'P'
|
|
:AM STX :TIMESTR+9
|
|
LDX #'M'
|
|
STX :TIMESTR+10
|
|
CMP #0 ; If 0, Actually 12
|
|
BNE :RTNTIME
|
|
|
|
LDA #12
|
|
:RTNTIME JSR :BINDEC8
|
|
CMP #'0' ; Hour Less Than 10?
|
|
BNE :DOIT ; Nope
|
|
|
|
LDA #' ' ; Make It A Space
|
|
DEY ; String Length Is 1 Less
|
|
INC :TIMELOC+1 ; String Start Is 1 More
|
|
:DOIT STA :TIMESTR
|
|
STX :TIMESTR+1
|
|
PLA ; Year
|
|
PLA ; Date
|
|
PLA ; Month
|
|
PLA ; Reserved
|
|
PLA ; Dayofweek
|
|
STA CLOCKDVR
|
|
:TIMELOC LDX #<:TIMESTR
|
|
LDA #>:TIMESTR
|
|
RTS
|
|
|
|
*-------------------------------
|
|
* Translate A Binary To Text [0-99]
|
|
*-------------------------------
|
|
|
|
:BINDEC8 CMP #60
|
|
BLT :INRNG
|
|
LDA #59
|
|
:INRNG LDX #0
|
|
:CNTDN CMP #10
|
|
BLT :MKASC
|
|
SBC #10
|
|
INX
|
|
BNE :CNTDN
|
|
|
|
:MKASC ADC #'0'
|
|
PHA
|
|
TXA
|
|
ADC #'0'
|
|
PLX
|
|
RTS
|
|
|
|
*-------------------------------
|
|
* '01234567890
|
|
:TIMESTR ASC '12:00:00 '
|
|
DS \
|
|
LST OFF
|
|
|