mirror of
https://github.com/callapple/GBBS.git
synced 2026-04-19 17:16:40 +00:00
caf6ddd745
All files refreshed. Config now shows uppercase when using a ][+ Minor bug fixes in logon.seg.s Newer XDOS external with bug fixes
190 lines
2.1 KiB
ArmAsm
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
|