Files
paulhlee1967 caf6ddd745 Refresh all Files
All files refreshed.  Config now shows uppercase when using a ][+

Minor bug fixes in logon.seg.s

Newer XDOS external with bug fixes
2023-01-09 11:13:29 -08:00

190 lines
2.1 KiB
ArmAsm

*-------------------------------
* No Slot Clock - 24 hr
*-------------------------------
* Revised Date: 08/02/87
*-------------------------------
lst off
rel
dsk rel/noslot
ZBUF EQU $41
PTR EQU $42
YEAR EQU $44
MONTH EQU $45
DATE EQU $46
DAY EQU $47
HOURS EQU $48
MINUTES EQU $49
SECONDS EQU $4A
MSECONDS EQU $4B
TEMP EQU $2F0
noslot ent
org $0d00
db 0
:MODE db 0 ;24 hour format
:GETDATE JMP :FMTDATE
:GETTIME JMP :FMTTIME
:SETCLK RTS
*
* FORMAT NO-SLOT CLOCK DATE
*
:FMTDATE JSR :RDCLOCK
LDA MONTH
ASL
ASL
ASL
ASL
ASL
ROL YEAR
ORA DATE
TAX
LDA YEAR
PHA
JSR :ZRECALL
PLA
:SETRTN RTS
*
* FORMAT NO-SLOT CLOCK TIME
*
:FMTTIME JSR :RDCLOCK
LDY HOURS
BIT :MODE
BPL :FMT24
LDA #'M'
STA :TIME+10
LDX #'A'
SED
SEC
TYA
SBC #$12
CLD
BCC :SETHOUR
TAY
BNE :NOTNOON
LDY #$12
:NOTNOON LDX #'P'
:SETHOUR STX :TIME+9
TYA
BNE :FMT24
LDY #$12
:FMT24 TYA
LDY #$00
LDX #$00
:FMT PHA
AND #$F0
LSR
LSR
LSR
LSR
CLC
ADC #$30
STA :TIME,Y
INY
PLA
AND #$0F
ADC #$30
STA :TIME,Y
INY
INY
INX
LDA HOURS,X
CPX #$03
BNE :FMT
JSR :ZRECALL
*
LDX #<:TIME
LDA #>:TIME
RTS
*
* RECALL PG ZERO BUFFER (ACCESS VIA JMP)
*
:ZRECALL LDY #$0A
:ZRECALL1 LDA TEMP,Y
STA PTR,Y
DEY
BNE :ZRECALL1
RTS
*
* READ THE NO-SLOT CLOCK AND RETRIEVE DATE/TIME
*
:RDCLOCK LDY #$0A
:STORBUF LDA ZBUF,Y
STA TEMP,Y
DEY
BNE :STORBUF
PHP
SEI
LDA $C015
PHA
STA $C007
LDA $C804
LDA #<:RECSEQ
STA PTR
LDA #>:RECSEQ
STA PTR+1
LDY #$07
:RECOG1 LDA (PTR),Y
SEC
ROR
:RECOG2 PHA
LDA #$00
ROL
TAX
LDA $C800,X
PLA
LSR
BNE :RECOG2
DEY
BPL :RECOG1
LDX #$07
:NEXTREAD LDY #$07
:READBIT LDA $C804
ROR
ROR YEAR,X
DEY
BPL :READBIT
CPX #$03
BPL :STORDATE
LDA YEAR,X
PHA
AND #$0F
STA YEAR,X
PLA
AND #$F0
LSR
LSR
LSR
LSR
TAY
BEQ :STORDATE
LDA #$00
:ADDTENS ADC #$0A
DEY
BNE :ADDTENS
:STOR5 ADC YEAR,X
STA YEAR,X
:STORDATE DEX
BPL :NEXTREAD
PLA
ROL
BCS :RDEND
STA $C006
PLP
:RDEND RTS
*
* DEFINE RECOGNITION SEQUENCE FOR NO-SLOT CLOCK
*
:RECSEQ dfb $5C,$A3,$3A,$C5,$5C,$A3,$3A,$C5
*
* TIME OUTPUT BUFFER
*
:TIME dfb $30,$30,$3A
dfb $30,$30,$3A
dfb $30,$30,$20,$20,$20