mirror of https://github.com/A2osX/A2osX.git
Time API : Work In Progress,used in SHELL For Testing
Kernel : Dual Bank implemented
This commit is contained in:
parent
af6d616a9b
commit
6fea4ec153
|
@ -110,7 +110,6 @@ MemMgr.XHiMem .EQ $C000
|
|||
A2osX.SYSCALL .EQ $BE00
|
||||
A2osX.LIBCALL .EQ $BE03
|
||||
A2osX.MLICALL .EQ $BE06
|
||||
A2osX.ROMCALL .EQ $BE09
|
||||
*--------------------------------------
|
||||
pCodeJmp .EQ $BE10
|
||||
pLibJmp .EQ $BE13
|
||||
|
@ -173,6 +172,11 @@ SYS.PStr2StrArrayYA .EQ $1A
|
|||
SYS.LoadDrvYA .EQ $20
|
||||
SYS.LoadLibYA .EQ $22
|
||||
SYS.UnloadLibA .EQ $24
|
||||
|
||||
SYS.TimeYA .EQ $28
|
||||
SYS.CTime2Time .EQ $2A
|
||||
SYS.PTime2Time .EQ $2C
|
||||
SYS.StrFTime .EQ $2E
|
||||
*--------------------------------------
|
||||
|
||||
SYS.ExpandPStrYA .EQ $32
|
||||
|
@ -290,9 +294,9 @@ SYS.FEOF .EQ $EE
|
|||
SYS.REMOVE .EQ $F0
|
||||
SYS.RENAME .EQ $F2
|
||||
SYS.OPENDIRYA .EQ $F4
|
||||
SYS.READDIRYA .EQ $F6
|
||||
SYS.READDIRA .EQ $F6
|
||||
|
||||
SYS.CLOSEDIRYA .EQ $F8
|
||||
SYS.CLOSEDIRA .EQ $F8
|
||||
SYS.MKDIRYA .EQ $FA
|
||||
SYS.MKNOD .EQ $FC
|
||||
SYS.MKFIFO .EQ $FE
|
||||
|
|
|
@ -25,7 +25,7 @@ SET80DISP .EQ $C00D W
|
|||
CLRALTCHAR .EQ $C00E W
|
||||
SETALTCHAR .EQ $C00F W
|
||||
KBDSTROBE .EQ $C010 W
|
||||
RDBNK2 .EQ $C011 R
|
||||
RDLCBNK2 .EQ $C011 R
|
||||
RDLCRAM .EQ $C012 R
|
||||
RDREADAUX .EQ $C013 R
|
||||
RDWRITEAUX .EQ $C014 R
|
||||
|
@ -91,5 +91,7 @@ RRAMBNK1 .EQ $C088 R
|
|||
RROMWRAMBNK1 .EQ $C089 RR
|
||||
RROMBNK1 .EQ $C08A R
|
||||
RRAMWRAMBNK1 .EQ $C08B RR
|
||||
*--------------------------------------
|
||||
CLRC8ROM .EQ $CFFF R, Release C800-CFFF Rom Space for all cards
|
||||
MAN
|
||||
SAVE INC/IO.I
|
||||
|
|
|
@ -365,22 +365,37 @@ Cmd.Exec.SETVAR tax
|
|||
>SYSCALL SYS.COutA
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
Cmd.Exec.DATE >SYSCALL SYS.MLIGetTime
|
||||
Cmd.Exec.DATE >LDYA L.TIME
|
||||
>SYSCALL SYS.TimeYA
|
||||
|
||||
>PUSHWI TmpBuffer256
|
||||
>PUSHW L.FMT.DATE
|
||||
>PUSHW L.TIME
|
||||
>SYSCALL SYS.StrFTime
|
||||
|
||||
>LDYAI TmpBuffer256
|
||||
>SYSCALL SYS.PSTROutYA
|
||||
bcs .9
|
||||
>PUSHW DATELO
|
||||
>LIBCALL hLIBSTR,LIBSTR.PRINTDATE
|
||||
|
||||
lda #13
|
||||
>SYSCALL SYS.COutA
|
||||
clc
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
Cmd.Exec.TIME >SYSCALL SYS.MLIGetTime
|
||||
Cmd.Exec.TIME >LDYA L.TIME
|
||||
>SYSCALL SYS.TimeYA
|
||||
|
||||
>PUSHWI TmpBuffer256
|
||||
>PUSHW L.FMT.TIME
|
||||
>PUSHW L.TIME
|
||||
|
||||
>SYSCALL SYS.StrFTime
|
||||
|
||||
>LDYAI TmpBuffer256
|
||||
>SYSCALL SYS.PSTROutYA
|
||||
bcs .9
|
||||
>PUSHW TIMELO
|
||||
>LIBCALL hLIBSTR,LIBSTR.PRINTTIME
|
||||
|
||||
lda #13
|
||||
>SYSCALL SYS.COutA
|
||||
clc
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
Cmd.Exec.ECHO lda ARGS
|
||||
|
|
|
@ -38,12 +38,14 @@ CS.START cld
|
|||
.DA CS.DOEVENT
|
||||
.DA CS.QUIT
|
||||
*--------------------------------------
|
||||
L.LIBSTR .DA LIBSTR
|
||||
L.MSG.GREETINGS .DA MSG.GREETINGS
|
||||
L.MSG.ERROR .DA MSG.ERROR
|
||||
L.ENV.PATH .DA ENV.PATH
|
||||
L.CMD .DA CMD
|
||||
L.ARGS .DA ARGS
|
||||
L.TIME .DA TIME
|
||||
L.FMT.DATE .DA FMT.DATE
|
||||
L.FMT.TIME .DA FMT.TIME
|
||||
L.CMDS .DA CMDS
|
||||
J.INTCMDS .DA Cmd.Exec.CD
|
||||
.DA Cmd.Exec.DATE
|
||||
|
@ -57,11 +59,7 @@ J.INTCMDS .DA Cmd.Exec.CD
|
|||
.DA Cmd.Exec.TYPE
|
||||
.DA 0
|
||||
*--------------------------------------
|
||||
CS.INIT >LDYA L.LIBSTR
|
||||
>SYSCALL SYS.LoadLibYA
|
||||
bcs .9
|
||||
sta hLIBSTR
|
||||
>SYSCALL SYS.GetArgC
|
||||
CS.INIT >SYSCALL SYS.GetArgC
|
||||
cmp #1
|
||||
|
||||
beq CS.INIT.INTERACTIVE no arg, continue starting interactive
|
||||
|
@ -321,12 +319,8 @@ CS.QUIT jsr HIS.Quit
|
|||
|
||||
.1 ldy #hInputBuffer
|
||||
lda (pData),y
|
||||
beq .2
|
||||
>SYSCALL SYS.FreeMemA
|
||||
|
||||
.2 lda hLIBSTR
|
||||
beq .8
|
||||
>SYSCALL SYS.UnloadLibA
|
||||
>SYSCALL SYS.FreeMemA
|
||||
|
||||
.8 clc
|
||||
rts
|
||||
|
@ -442,14 +436,15 @@ CMDS >PSTRING "CD"
|
|||
>PSTRING "TYPE"
|
||||
.HS 00
|
||||
*--------------------------------------
|
||||
LIBSTR >PSTRING "libstr.o"
|
||||
MSG.GREETINGS >PSTRING "\nA2osX-Shell on Dev=%h\n\n"
|
||||
MSG.ERROR >PSTRING "[%h]\n"
|
||||
FMT.DATE >PSTRING "%Y/%m/%d"
|
||||
FMT.TIME >PSTRING "%H:%M:%S"
|
||||
EscChars >PSTRING "DBAC"
|
||||
EscAscii .HS 04080A0B15
|
||||
CMD .BS 256
|
||||
ARGS .BS 256
|
||||
hLIBSTR .BS 1
|
||||
TIME .BS S.TIME
|
||||
hNEWPATH .BS 1
|
||||
hCmdLine .BS 1
|
||||
Cmd.Exec.Mode .BS 1
|
||||
|
|
|
@ -257,6 +257,17 @@ S.CLOSEDIRA.1 ldy #S.DIR.PRODOS.REF
|
|||
clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
S.MKDIRYA jsr S.PFTCHECKPATHYA
|
||||
>STYA MLICALL.PARAMS+1
|
||||
lda #$C3
|
||||
sta MLICALL.PARAMS+3 Access
|
||||
lda #$0F
|
||||
sta MLICALL.PARAMS+4 type=Directory
|
||||
lda #$0D Storage=Linked List
|
||||
sta MLICALL.PARAMS+7
|
||||
>MLICALL MLICREATE
|
||||
rts
|
||||
*--------------------------------------
|
||||
hONLINE .BS 1
|
||||
hDIRENT .BS 1
|
||||
BufSize .BS 2
|
||||
|
|
|
@ -293,17 +293,6 @@ S.RENAME jsr S.PFTCHECKPATHYA
|
|||
>MLICALL MLIRENAME
|
||||
rts
|
||||
*--------------------------------------
|
||||
S.MKDIRYA jsr S.PFTCHECKPATHYA
|
||||
>STYA MLICALL.PARAMS+1
|
||||
lda #$C3
|
||||
sta MLICALL.PARAMS+3 Access
|
||||
lda #$0F
|
||||
sta MLICALL.PARAMS+4 type=Directory
|
||||
lda #$0D Storage=Linked List
|
||||
sta MLICALL.PARAMS+7
|
||||
>MLICALL MLICREATE
|
||||
rts
|
||||
*--------------------------------------
|
||||
FIL.SetupPrt1A jsr S.GetMemPtrA
|
||||
>STYA ZPQuickPtr1
|
||||
ldy #S.FILE.PRODOS.REF
|
||||
|
|
|
@ -27,9 +27,6 @@ A2osX.GP.Start jmp A2osX.SYSCALL1
|
|||
*--------------------------------------
|
||||
jmp A2osX.MLICALL1
|
||||
*--------------------------------------
|
||||
jmp A2osX.ROMCALL1
|
||||
*--------------------------------------
|
||||
jmp BrkHandler
|
||||
.BS $BE10-*
|
||||
*--------------------------------------
|
||||
jmp (pCode) pCodeJmp
|
||||
|
@ -41,13 +38,15 @@ A2osX.GP.Start jmp A2osX.SYSCALL1
|
|||
GO.Reset jsr GO.AUXLC
|
||||
jmp S.KernelRun
|
||||
*--------------------------------------
|
||||
A2osX.SYSCALL1 bit KERNEL.SYSCALL.FLAGS,x
|
||||
A2osX.SYSCALL1 phx
|
||||
bit KERNEL.SYSCALL.FLAGS,x
|
||||
bmi .2
|
||||
bit RRAMWRAMBNK1
|
||||
bit RRAMWRAMBNK1
|
||||
jmp (KERNEL.SYSCALL,x)
|
||||
.2 bit RRAMWRAMBNK2
|
||||
bit RRAMWRAMBNK2
|
||||
ldx #RRAMWRAMBNK1
|
||||
.HS 2C
|
||||
.2 ldx #RRAMWRAMBNK2
|
||||
bit $C000,x
|
||||
bit $C000,x
|
||||
plx
|
||||
jmp (KERNEL.SYSCALL,x)
|
||||
*--------------------------------------
|
||||
A2osX.LIBCALL1 pha
|
||||
|
@ -68,51 +67,57 @@ A2osX.MLICALL1 jsr GO.MAINLC
|
|||
jsr GO.AUXLC
|
||||
rts
|
||||
*--------------------------------------
|
||||
A2osX.ROMCALL1 plx
|
||||
stx .1+1
|
||||
plx
|
||||
stx .1+2
|
||||
ldx RROMBNK1
|
||||
jsr .1
|
||||
ldx RRAMWRAMBNK1
|
||||
ldx RRAMWRAMBNK1
|
||||
rts
|
||||
.1 jmp $FFFF
|
||||
*--------------------------------------
|
||||
GO.MAINLC php
|
||||
GO.MAINLC asl RDLCBNK2 We re coming from AUXLC, saving bank...
|
||||
ror A2osX.SaveLCBNK
|
||||
|
||||
php
|
||||
clc
|
||||
.HS 2C bit abs
|
||||
|
||||
GO.AUXLC php
|
||||
sec
|
||||
|
||||
sei
|
||||
|
||||
sta A2osX.SaveA
|
||||
pla keep P in A for later
|
||||
stx A2osX.SaveX
|
||||
sty A2osX.SaveY
|
||||
plx
|
||||
|
||||
pla Restore P in A for later
|
||||
|
||||
plx Get PC and add 1 for return
|
||||
ply
|
||||
inx
|
||||
bne .1
|
||||
iny
|
||||
|
||||
.1 stx GO.EXIT.JMP+1
|
||||
sty GO.EXIT.JMP+2
|
||||
|
||||
ldx RRAMWRAMBNK1
|
||||
ldx RRAMWRAMBNK1
|
||||
|
||||
ldy pStack
|
||||
bcs GO.AUXLC1
|
||||
|
||||
GO.MAINLC1 tsx
|
||||
bcs .2 if CS, go AUXLC
|
||||
|
||||
bit RRAMWRAMBNK1 Go MAINLC (ProDOS), always BNK1
|
||||
bit RRAMWRAMBNK1
|
||||
|
||||
tsx
|
||||
stx A2osX.SaveSX
|
||||
ldx A2osX.SaveSM
|
||||
txs
|
||||
stx CLRALTZP
|
||||
sta CLRALTZP
|
||||
bra GO.EXIT
|
||||
*--------------------------------------
|
||||
GO.AUXLC1 stx SETALTZP
|
||||
|
||||
.2 bit A2osX.SaveLCBNK Go AUXLC....Previous Go MAINLC Coming from BNK2 ?
|
||||
bmi .3
|
||||
ldx #RRAMWRAMBNK1
|
||||
.HS 2C bit abs
|
||||
.3 ldx #RRAMWRAMBNK2
|
||||
|
||||
bit $C000,x
|
||||
bit $C000,x
|
||||
|
||||
sta SETALTZP
|
||||
tsx
|
||||
stx A2osX.SaveSM
|
||||
ldx A2osX.SaveSX
|
||||
|
@ -126,6 +131,7 @@ GO.EXIT sty pStack
|
|||
plp
|
||||
GO.EXIT.JMP jmp $FFFF
|
||||
*--------------------------------------
|
||||
A2osX.SaveLCBNK .BS 1
|
||||
A2osX.SaveA .BS 1
|
||||
A2osX.SaveX .BS 1
|
||||
A2osX.SaveY .BS 1
|
||||
|
@ -141,8 +147,6 @@ A2osX.GP.End .EQ *
|
|||
.DO A2osX.GP.End>$BEDF
|
||||
ERROR:GP too big
|
||||
.FIN
|
||||
*--------------------------------------
|
||||
.BS A2osX.GP.START+$100-*
|
||||
*--------------------------------------
|
||||
MAN
|
||||
SAVE SYS/KERNEL.S.GP
|
||||
|
|
|
@ -29,10 +29,10 @@ KERNEL.SYSCALL .DA S.GetMem $00
|
|||
.DA S.LoadLibYA
|
||||
.DA S.UnloadLibA
|
||||
.DA 0
|
||||
.DA 0
|
||||
.DA 0
|
||||
.DA 0
|
||||
.DA 0
|
||||
.DA S.TimeYA
|
||||
.DA S.CTime2Time
|
||||
.DA S.PTime2Time
|
||||
.DA S.StrFTime
|
||||
*--------------------------------------
|
||||
.DA 0 $30
|
||||
.DA S.ExpandPStrYA
|
||||
|
@ -133,21 +133,21 @@ KERNEL.SYSCALL .DA S.GetMem $00
|
|||
.DA S.DecOutA
|
||||
.DA S.DecOutYA
|
||||
*--------------------------------------
|
||||
.DA 0 $E0
|
||||
.DA 0
|
||||
.DA 0
|
||||
.DA 0
|
||||
.DA 0
|
||||
.DA 0
|
||||
.DA 0
|
||||
.DA 0
|
||||
.DA S.FOPEN $E0
|
||||
.DA S.FCLOSEA
|
||||
.DA S.FREAD
|
||||
.DA S.FWRITE
|
||||
.DA S.FFLUSHA
|
||||
.DA S.FSEEK
|
||||
.DA S.FTELLA
|
||||
.DA S.FEOFA
|
||||
*--------------------------------------
|
||||
.DA 0 $F0
|
||||
.DA 0
|
||||
.DA 0
|
||||
.DA 0
|
||||
.DA 0
|
||||
.DA 0
|
||||
.DA S.REMOVEYA $F0
|
||||
.DA S.RENAME
|
||||
.DA S.OPENDIRYA
|
||||
.DA S.READDIRA
|
||||
.DA S.CLOSEDIRA
|
||||
.DA S.MKDIRYA
|
||||
.DA 0
|
||||
.DA 0
|
||||
*--------------------------------------
|
||||
|
|
|
@ -12,6 +12,75 @@ CENTURY0 .EQ 19
|
|||
YEAR0 .EQ 70
|
||||
DAY0 .EQ 4 day 0 was a thursday
|
||||
*--------------------------------------
|
||||
* S.TimeYA get System Time
|
||||
* In :
|
||||
* Y,A = PTR to S.TIME
|
||||
* Out :
|
||||
* S.TIME filled with ProDOS MLI date/time
|
||||
*--------------------------------------
|
||||
S.TimeYA >STYA ZPQuickPtr2
|
||||
>MLICALL MLIGETTIME
|
||||
>LDYAI DATELO
|
||||
>STYA ZPQuickPtr1
|
||||
bra S.PTime2Time.1
|
||||
*--------------------------------------
|
||||
* In :
|
||||
* PULLW = Src PDATE/TIME (DWORD)
|
||||
* PULLW = Dst PTR To S.TIME
|
||||
*--------------------------------------
|
||||
S.PTime2Time >PULLW ZPQuickPtr1
|
||||
>PULLW ZPQuickPtr2
|
||||
|
||||
S.PTime2Time.1 lda (ZPQuickPtr1) Get Year
|
||||
lsr C is high bit of month
|
||||
ldy #S.TIME.YEAR
|
||||
sta (ZPQuickPtr2),y set year
|
||||
pha save it for century adjust
|
||||
|
||||
ldy #1
|
||||
lda (ZPQuickPtr1),y Get Month/day
|
||||
pha save Day
|
||||
ror
|
||||
lsr
|
||||
lsr
|
||||
lsr
|
||||
lsr
|
||||
ldy #S.TIME.MONTH
|
||||
sta (ZPQuickPtr2),y set month
|
||||
|
||||
pla get back day
|
||||
and #$1F
|
||||
iny
|
||||
sta (ZPQuickPtr2),y set day
|
||||
|
||||
pla get back year
|
||||
|
||||
cmp #70 if before 70's CC
|
||||
lda #19
|
||||
adc #0 set date before 1970 -> 20xx
|
||||
sta (ZPQuickPtr2) set Century
|
||||
|
||||
ldy #3
|
||||
lda (ZPQuickPtr1),y Get Min
|
||||
tax
|
||||
dey
|
||||
lda (ZPQuickPtr1),y Get Hour
|
||||
|
||||
ldy #S.TIME.HOUR
|
||||
sta (ZPQuickPtr2),y set hour
|
||||
iny
|
||||
txa
|
||||
sta (ZPQuickPtr2),y set min
|
||||
iny
|
||||
lda #0
|
||||
sta (ZPQuickPtr2),y set seconds (ProDOS does not provide it)
|
||||
|
||||
S.ComputeWDAY
|
||||
|
||||
|
||||
clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
* S.CTime2Time
|
||||
* In :
|
||||
* PULLW = Src CTIME DWORD
|
||||
|
@ -201,75 +270,6 @@ S.CTime.Mod .BS 1
|
|||
S.CTime.Century .BS 1
|
||||
S.CTime.Year .BS 1
|
||||
*--------------------------------------
|
||||
* S.TimeYA get System Time
|
||||
* In :
|
||||
* Y,A = PTR to S.TIME
|
||||
* Out :
|
||||
* S.TIME filled with ProDOS MLI date/time
|
||||
*--------------------------------------
|
||||
S.TimeYA >STYA ZPQuickPtr2
|
||||
>MLICALL MLIGETTIME
|
||||
>LDYAI DATELO
|
||||
>STYA ZPQuickPtr1
|
||||
bra S.PTime2Time.1
|
||||
*--------------------------------------
|
||||
* In :
|
||||
* PULLW = Src PDATE/TIME (DWORD)
|
||||
* PULLW = Dst PTR To S.TIME
|
||||
*--------------------------------------
|
||||
S.PTime2Time >PULLW ZPQuickPtr1
|
||||
>PULLW ZPQuickPtr2
|
||||
|
||||
S.PTime2Time.1 lda (ZPQuickPtr1) Get Year
|
||||
lsr C is high bit of month
|
||||
ldy #S.TIME.YEAR
|
||||
sta (ZPQuickPtr2),y set year
|
||||
pla save it for century adjust
|
||||
|
||||
ldy #1
|
||||
lda (ZPQuickPtr1),y Get Month/day
|
||||
pha save Day
|
||||
ror
|
||||
lsr
|
||||
lsr
|
||||
lsr
|
||||
lsr
|
||||
ldy #S.TIME.MONTH
|
||||
sta (ZPQuickPtr2),y set month
|
||||
|
||||
pla get back day
|
||||
and #$1F
|
||||
iny
|
||||
sta (ZPQuickPtr2),y set day
|
||||
|
||||
pla get back year
|
||||
|
||||
cmp #70 if before 70's CC
|
||||
lda #19
|
||||
adc #0 set date before 1970 -> 20xx
|
||||
sta (ZPQuickPtr2) set Century
|
||||
|
||||
ldy #3
|
||||
lda (ZPQuickPtr1),y Get Min
|
||||
tax
|
||||
dey
|
||||
lda (ZPQuickPtr1),y Get Hour
|
||||
|
||||
ldy #S.TIME.HOUR
|
||||
sta (ZPQuickPtr2),y set hour
|
||||
iny
|
||||
txa
|
||||
sta (ZPQuickPtr2),y set min
|
||||
iny
|
||||
lda #0
|
||||
sta (ZPQuickPtr2),y set seconds (ProDOS does not provide it)
|
||||
|
||||
S.ComputeWDAY
|
||||
|
||||
|
||||
clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
* S.StrFTime
|
||||
* In :
|
||||
* PULLW = Src PTR To S.TIME
|
||||
|
@ -293,15 +293,21 @@ S.ComputeWDAY
|
|||
*--------------------------------------
|
||||
S.StrFTime >PULLW ZPQuickPtr1
|
||||
>PULLW ZPQuickPtr2
|
||||
>PULLW S.StrFTime.addChar+1
|
||||
>PULLW ZPQuickPtr3
|
||||
|
||||
ldy #0
|
||||
lda #0
|
||||
sta (ZPQuickPtr3) Reset target PSTR length
|
||||
|
||||
tay
|
||||
|
||||
.1 iny
|
||||
lda (ZPQuickPtr2),y
|
||||
cmp #'%'
|
||||
beq .2
|
||||
|
||||
phy
|
||||
jsr S.StrFTime.addChar
|
||||
ply
|
||||
.10 tya
|
||||
cmp (ZPQuickPtr2)
|
||||
bne .1
|
||||
|
@ -312,7 +318,7 @@ S.StrFTime >PULLW ZPQuickPtr1
|
|||
beq .8
|
||||
|
||||
iny
|
||||
ldx #S.StrFTime.jmp-S.StrFTime.Table
|
||||
ldx #S.StrFTime.JMPL-S.StrFTime.Table
|
||||
|
||||
.3 lda (ZPQuickPtr2),y
|
||||
cmp S.StrFTime.Table-1,x
|
||||
|
@ -330,8 +336,7 @@ S.StrFTime >PULLW ZPQuickPtr1
|
|||
ply
|
||||
bra .10
|
||||
|
||||
.8 rts
|
||||
|
||||
.8 rts
|
||||
*--------------------------------------
|
||||
S.StrFTime.A
|
||||
S.StrFTime.AA
|
||||
|
@ -341,27 +346,33 @@ S.StrFTime.D ldy #S.TIME.DAY
|
|||
bra S.StrFTime.addDecPtr1Y
|
||||
S.StrFTime.HH ldy #S.TIME.HOUR
|
||||
bra S.StrFTime.addDecPtr1Y
|
||||
S.StrFTime.II
|
||||
S.StrFTime.II ldy #S.TIME.HOUR
|
||||
lda (ZPQuickPtr1),y
|
||||
cmp #12
|
||||
bcc .1
|
||||
sbc #12
|
||||
.1 bra S.StrFTime.addDecA
|
||||
S.StrFTime.M ldy #S.TIME.MONTH
|
||||
bra S.StrFTime.addDecPtr1Y
|
||||
S.StrFTime.MM ldy #S.TIME.MINUTE
|
||||
bra S.StrFTime.addDecPtr1Y
|
||||
S.StrFTime.P
|
||||
S.StrFTime.P ldy #S.TIME.HOUR
|
||||
lda (ZPQuickPtr1),y
|
||||
cmp #12
|
||||
bcc .1
|
||||
lda #'p'
|
||||
.HS 2C bit abs
|
||||
.1 lda #'a'
|
||||
jsr S.StrFTime.addChar
|
||||
lda #'m'
|
||||
bra S.StrFTime.addChar
|
||||
S.StrFTime.SS ldy #S.TIME.SECOND
|
||||
bra S.StrFTime.addDecPtr1Y
|
||||
S.StrFTime.W
|
||||
S.StrFTime.W ldy #S.TIME.WDAY
|
||||
bra S.StrFTime.addDecPtr1Y
|
||||
S.StrFTime.YY ldy #S.TIME.CENTURY
|
||||
jsr S.StrFTime.addDecPtr1Y
|
||||
S.StrFTime.Y ldy #S.TIME.YEAR
|
||||
bra S.StrFTime.addDecPtr1Y
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
*--------------------------------------
|
||||
S.StrFTime.addDecPtr1Y
|
||||
lda (ZPQuickPtr1),y
|
||||
|
@ -376,42 +387,47 @@ S.StrFTime.addDecA
|
|||
pla
|
||||
and #$0f
|
||||
ora #$30
|
||||
*--------------------------------------
|
||||
S.StrFTime.addChar
|
||||
sta $ffff
|
||||
inc S.StrFTime.addChar+1
|
||||
bne .1
|
||||
inc S.StrFTime.addChar+2
|
||||
.1 rts
|
||||
pha
|
||||
lda (ZPQuickPtr3)
|
||||
inc
|
||||
sta (ZPQuickPtr3)
|
||||
tay
|
||||
pla
|
||||
sta (ZPQuickPtr3),y
|
||||
rts
|
||||
*--------------------------------------
|
||||
S.StrFTime.Table .AS "aAbBdHImMpSwyY"
|
||||
S.StrFTime.JMPL .HS #S.StrFTime.A
|
||||
.HS #S.StrFTime.AA
|
||||
.HS #S.StrFTime.B
|
||||
.HS #S.StrFTime.BB
|
||||
.HS #S.StrFTime.D
|
||||
.HS #S.StrFTime.HH
|
||||
.HS #S.StrFTime.II
|
||||
.HS #S.StrFTime.M
|
||||
.HS #S.StrFTime.MM
|
||||
.HS #S.StrFTime.P
|
||||
.HS #S.StrFTime.SS
|
||||
.HS #S.StrFTime.W
|
||||
.HS #S.StrFTime.Y
|
||||
.HS #S.StrFTime.YY
|
||||
S.StrFTime.JMPH .HS /S.StrFTime.A
|
||||
.HS /S.StrFTime.AA
|
||||
.HS /S.StrFTime.B
|
||||
.HS /S.StrFTime.BB
|
||||
.HS /S.StrFTime.D
|
||||
.HS /S.StrFTime.HH
|
||||
.HS /S.StrFTime.II
|
||||
.HS /S.StrFTime.M
|
||||
.HS /S.StrFTime.MM
|
||||
.HS /S.StrFTime.P
|
||||
.HS /S.StrFTime.SS
|
||||
.HS /S.StrFTime.W
|
||||
.HS /S.StrFTime.Y
|
||||
.HS /S.StrFTime.YY
|
||||
S.StrFTime.JMPL .DA #S.StrFTime.A
|
||||
.DA #S.StrFTime.AA
|
||||
.DA #S.StrFTime.B
|
||||
.DA #S.StrFTime.BB
|
||||
.DA #S.StrFTime.D
|
||||
.DA #S.StrFTime.HH
|
||||
.DA #S.StrFTime.II
|
||||
.DA #S.StrFTime.M
|
||||
.DA #S.StrFTime.MM
|
||||
.DA #S.StrFTime.P
|
||||
.DA #S.StrFTime.SS
|
||||
.DA #S.StrFTime.W
|
||||
.DA #S.StrFTime.Y
|
||||
.DA #S.StrFTime.YY
|
||||
*--------------------------------------
|
||||
S.StrFTime.JMPH .DA /S.StrFTime.A
|
||||
.DA /S.StrFTime.AA
|
||||
.DA /S.StrFTime.B
|
||||
.DA /S.StrFTime.BB
|
||||
.DA /S.StrFTime.D
|
||||
.DA /S.StrFTime.HH
|
||||
.DA /S.StrFTime.II
|
||||
.DA /S.StrFTime.M
|
||||
.DA /S.StrFTime.MM
|
||||
.DA /S.StrFTime.P
|
||||
.DA /S.StrFTime.SS
|
||||
.DA /S.StrFTime.W
|
||||
.DA /S.StrFTime.Y
|
||||
.DA /S.StrFTime.YY
|
||||
*--------------------------------------
|
||||
S.StrFTime.SDAY >PSTRING "Mon"
|
||||
>PSTRING "Tue"
|
||||
|
@ -420,6 +436,7 @@ S.StrFTime.SDAY >PSTRING "Mon"
|
|||
>PSTRING "Fri"
|
||||
>PSTRING "Sat"
|
||||
>PSTRING "Sun"
|
||||
*--------------------------------------
|
||||
S.StrFTime.LDAY >PSTRING "Monday"
|
||||
>PSTRING "Tuesday"
|
||||
>PSTRING "Wednesday"
|
||||
|
@ -427,6 +444,7 @@ S.StrFTime.LDAY >PSTRING "Monday"
|
|||
>PSTRING "Friday"
|
||||
>PSTRING "Saturday"
|
||||
>PSTRING "Sunday"
|
||||
*--------------------------------------
|
||||
S.StrFTime.SMON >PSTRING "Jan"
|
||||
>PSTRING "Feb"
|
||||
>PSTRING "Mar"
|
||||
|
@ -439,6 +457,7 @@ S.StrFTime.SMON >PSTRING "Jan"
|
|||
>PSTRING "Oct"
|
||||
>PSTRING "Nov"
|
||||
>PSTRING "Dec"
|
||||
*--------------------------------------
|
||||
S.StrFTime.LMON >PSTRING "January"
|
||||
>PSTRING "February"
|
||||
>PSTRING "March"
|
||||
|
|
Loading…
Reference in New Issue