mirror of https://github.com/GnoConsortium/gno.git
This is asm version 1.1 of date(1), also by Phil Vandry. There are still
no GNO v2.0.6 specific changes.
This commit is contained in:
parent
98f457ebec
commit
027b934919
|
@ -4,6 +4,7 @@
|
||||||
|
|
||||||
mcopy date.mac
|
mcopy date.mac
|
||||||
keep date
|
keep date
|
||||||
|
copy 13/asmdefs/gno/e16.ioctl
|
||||||
|
|
||||||
cline gequ 0
|
cline gequ 0
|
||||||
|
|
||||||
|
@ -34,7 +35,7 @@ lpp20 lda [cline],y
|
||||||
and #$ff
|
and #$ff
|
||||||
cmp #'V'
|
cmp #'V'
|
||||||
beq showvers
|
beq showvers
|
||||||
cmp #'u'
|
cmp #'c'
|
||||||
beq updateflag
|
beq updateflag
|
||||||
showusg ~ErrWriteCString #usage
|
showusg ~ErrWriteCString #usage
|
||||||
bra getoutPASS
|
bra getoutPASS
|
||||||
|
@ -46,7 +47,31 @@ ok anop
|
||||||
jsr handle
|
jsr handle
|
||||||
lda #15 ; SIGTERM
|
lda #15 ; SIGTERM
|
||||||
jsr handle
|
jsr handle
|
||||||
refresh pha
|
|
||||||
|
pha
|
||||||
|
pea 2 ; stdout
|
||||||
|
pea TIOCGETP|-16
|
||||||
|
pea TIOCGETP
|
||||||
|
pea sgttyb|-16
|
||||||
|
pea sgttyb
|
||||||
|
pea errno|-16
|
||||||
|
pea errno
|
||||||
|
ldx #$2603
|
||||||
|
jsl $e10008
|
||||||
|
pla
|
||||||
|
|
||||||
|
lda sgttyb+4
|
||||||
|
sta oldflags
|
||||||
|
and #$ffef
|
||||||
|
sta sgttyb+4
|
||||||
|
|
||||||
|
jsr csetp
|
||||||
|
|
||||||
|
lda oldflags
|
||||||
|
sta sgttyb+4
|
||||||
|
|
||||||
|
refresh anop
|
||||||
|
pha
|
||||||
pha
|
pha
|
||||||
pha
|
pha
|
||||||
pha
|
pha
|
||||||
|
@ -94,18 +119,34 @@ refresh pha
|
||||||
sta weekday
|
sta weekday
|
||||||
lda weekdays-2,x
|
lda weekdays-2,x
|
||||||
sta weekday+1
|
sta weekday+1
|
||||||
~WriteString #ramit
|
WriteGS ramit
|
||||||
lda uflag
|
lda uflag
|
||||||
beq exitall
|
beq exitall
|
||||||
pea 0
|
|
||||||
pea 1
|
pea 1
|
||||||
case on
|
case on
|
||||||
jsl sleep
|
jsl sleep
|
||||||
case off
|
case off
|
||||||
brl refresh
|
brl refresh
|
||||||
exitall ~WriteString #justnewl
|
exitall WriteGS justnewl
|
||||||
|
jsr csetp
|
||||||
getout QuitGS qtrec
|
getout QuitGS qtrec
|
||||||
|
|
||||||
|
csetp anop
|
||||||
|
pha
|
||||||
|
pea 2
|
||||||
|
pea TIOCSETP|-16
|
||||||
|
pea TIOCSETP
|
||||||
|
pea sgttyb|-16
|
||||||
|
pea sgttyb
|
||||||
|
pea errno|-16
|
||||||
|
pea errno
|
||||||
|
ldx #$2603
|
||||||
|
jsl $e10008
|
||||||
|
pla
|
||||||
|
rts
|
||||||
|
|
||||||
|
uflag ds 2
|
||||||
|
|
||||||
handler anop
|
handler anop
|
||||||
phb
|
phb
|
||||||
plx
|
plx
|
||||||
|
@ -181,7 +222,15 @@ qtrec dc i'2'
|
||||||
dc a4'0'
|
dc a4'0'
|
||||||
dc i'$4000'
|
dc i'$4000'
|
||||||
|
|
||||||
ramit dc i1'strend-strbeg'
|
ramit dc i'4'
|
||||||
|
dc i'2'
|
||||||
|
dc a4'strbeg'
|
||||||
|
dc i4'strend-strbeg'
|
||||||
|
ds 4
|
||||||
|
|
||||||
|
sgttyb ds 6
|
||||||
|
oldflags ds 2
|
||||||
|
|
||||||
strbeg anop
|
strbeg anop
|
||||||
|
|
||||||
weekday dc c'xxx '
|
weekday dc c'xxx '
|
||||||
|
@ -196,13 +245,19 @@ year dc c'xxxx'
|
||||||
|
|
||||||
strend anop
|
strend anop
|
||||||
|
|
||||||
justnewl dc h'01 0a'
|
justnewl dc i'4'
|
||||||
|
dc i'2'
|
||||||
|
dc a4'justnewl1'
|
||||||
|
dc i4'1'
|
||||||
|
ds 4
|
||||||
|
justnewl1 dc h'0a'
|
||||||
|
|
||||||
weekdays dc c'SunMonTueWedThuFriSat'
|
weekdays dc c'SunMonTueWedThuFriSat'
|
||||||
months dc c'JanFebMarAprMayJunJulAugSepOctNovDec'
|
months dc c'JanFebMarAprMayJunJulAugSepOctNovDec'
|
||||||
|
|
||||||
versstr dc c'date utility, asm version 1.0'
|
versstr dc c'date utility, asm version 1.1'
|
||||||
dc h'0d 0a'
|
dc h'0d 0a'
|
||||||
usage dc c'usage: date [-uV]',h'0d 0a'
|
usage dc c'usage: date [-cV]',h'0d 0a'
|
||||||
dc h'0'
|
dc h'0'
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -210,10 +265,6 @@ errno data
|
||||||
ds 2
|
ds 2
|
||||||
end
|
end
|
||||||
|
|
||||||
uflag data
|
|
||||||
ds 2
|
|
||||||
end
|
|
||||||
|
|
||||||
copy modsleep.asm
|
copy modsleep.asm
|
||||||
|
|
||||||
dpstk data ~Direct
|
dpstk data ~Direct
|
||||||
|
|
|
@ -0,0 +1,173 @@
|
||||||
|
macro
|
||||||
|
&l ~Int2Dec &p1,&p2,&p3,&p4
|
||||||
|
&l ph2 &p1
|
||||||
|
ph4 &p2
|
||||||
|
ph2 &p3
|
||||||
|
ph2 &p4
|
||||||
|
ldx #$260B
|
||||||
|
jsl $E10000
|
||||||
|
mend
|
||||||
|
macro
|
||||||
|
&l ~ReadTimeHex
|
||||||
|
&l ldx #$0D03
|
||||||
|
jsl $E10000
|
||||||
|
mend
|
||||||
|
macro
|
||||||
|
&l long &a,&b
|
||||||
|
lclb &i
|
||||||
|
lclb &m
|
||||||
|
&a amid &a,1,1
|
||||||
|
&m setb ("&a"="M").or.("&a"="m")
|
||||||
|
&i setb ("&a"="I").or.("&a"="i")
|
||||||
|
aif c:&b=0,.a
|
||||||
|
&b amid &b,1,1
|
||||||
|
&m setb ("&b"="M").or.("&b"="m").or.&m
|
||||||
|
&i setb ("&b"="I").or.("&b"="i").or.&i
|
||||||
|
.a
|
||||||
|
&l rep #&m*32+&i*16
|
||||||
|
aif .not.&m,.b
|
||||||
|
longa on
|
||||||
|
.b
|
||||||
|
aif .not.&i,.c
|
||||||
|
longi on
|
||||||
|
.c
|
||||||
|
mend
|
||||||
|
macro
|
||||||
|
&l ph2 &n1
|
||||||
|
aif "&n1"="*",.f
|
||||||
|
lclc &c
|
||||||
|
&l anop
|
||||||
|
&c amid &n1,1,1
|
||||||
|
aif "&c"="#",.d
|
||||||
|
aif s:longa=1,.a
|
||||||
|
rep #%00100000
|
||||||
|
.a
|
||||||
|
aif "&c"<>"{",.b
|
||||||
|
&c amid &n1,l:&n1,1
|
||||||
|
aif "&c"<>"}",.g
|
||||||
|
&n1 amid &n1,2,l:&n1-2
|
||||||
|
lda (&n1)
|
||||||
|
pha
|
||||||
|
ago .e
|
||||||
|
.b
|
||||||
|
aif "&c"="<",.c
|
||||||
|
lda &n1
|
||||||
|
pha
|
||||||
|
ago .e
|
||||||
|
.c
|
||||||
|
pei &n1
|
||||||
|
ago .e
|
||||||
|
.d
|
||||||
|
&n1 amid &n1,2,l:&n1-1
|
||||||
|
pea &n1
|
||||||
|
ago .f
|
||||||
|
.e
|
||||||
|
aif s:longa=1,.f
|
||||||
|
sep #%00100000
|
||||||
|
.f
|
||||||
|
mexit
|
||||||
|
.g
|
||||||
|
mnote "Missing closing '}'",16
|
||||||
|
mend
|
||||||
|
macro
|
||||||
|
&l ph4 &n1
|
||||||
|
aif "&n1"="*",.f
|
||||||
|
lclc &c
|
||||||
|
&l anop
|
||||||
|
&c amid &n1,1,1
|
||||||
|
aif "&c"="#",.d
|
||||||
|
aif s:longa=1,.a
|
||||||
|
rep #%00100000
|
||||||
|
.a
|
||||||
|
aif "&c"<>"{",.b
|
||||||
|
&c amid &n1,l:&n1,1
|
||||||
|
aif "&c"<>"}",.g
|
||||||
|
&n1 amid &n1,2,l:&n1-2
|
||||||
|
ldy #2
|
||||||
|
lda (&n1),y
|
||||||
|
pha
|
||||||
|
lda (&n1)
|
||||||
|
pha
|
||||||
|
ago .e
|
||||||
|
.b
|
||||||
|
aif "&c"<>"[",.c
|
||||||
|
ldy #2
|
||||||
|
lda &n1,y
|
||||||
|
pha
|
||||||
|
lda &n1
|
||||||
|
pha
|
||||||
|
ago .e
|
||||||
|
.c
|
||||||
|
aif "&c"<>"<",.c1
|
||||||
|
pei &n1+2
|
||||||
|
pei &n1
|
||||||
|
ago .e
|
||||||
|
.c1
|
||||||
|
lda &n1+2
|
||||||
|
pha
|
||||||
|
lda &n1
|
||||||
|
pha
|
||||||
|
ago .e
|
||||||
|
.d
|
||||||
|
&n1 amid &n1,2,l:&n1-1
|
||||||
|
pea +(&n1)|-16
|
||||||
|
pea &n1
|
||||||
|
ago .f
|
||||||
|
.e
|
||||||
|
aif s:longa=1,.f
|
||||||
|
sep #%00100000
|
||||||
|
.f
|
||||||
|
mexit
|
||||||
|
.g
|
||||||
|
mnote "Missing closing '}'",16
|
||||||
|
mend
|
||||||
|
macro
|
||||||
|
&l short &a,&b
|
||||||
|
lclb &i
|
||||||
|
lclb &m
|
||||||
|
&a amid &a,1,1
|
||||||
|
&m setb ("&a"="M").or.("&a"="m")
|
||||||
|
&i setb ("&a"="I").or.("&a"="i")
|
||||||
|
aif c:&b=0,.a
|
||||||
|
&b amid &b,1,1
|
||||||
|
&m setb ("&b"="M").or.("&b"="m").or.&m
|
||||||
|
&i setb ("&b"="I").or.("&b"="i").or.&i
|
||||||
|
.a
|
||||||
|
&l sep #&m*32+&i*16
|
||||||
|
aif .not.&m,.b
|
||||||
|
longa off
|
||||||
|
.b
|
||||||
|
aif .not.&i,.c
|
||||||
|
longi off
|
||||||
|
.c
|
||||||
|
mend
|
||||||
|
macro
|
||||||
|
&l quitgs &p
|
||||||
|
&l jsl $E100A8
|
||||||
|
dc i2'$2029'
|
||||||
|
dc i4'&p'
|
||||||
|
mend
|
||||||
|
macro
|
||||||
|
&l writegs &p
|
||||||
|
&l jsl $E100A8
|
||||||
|
dc i2'$2013'
|
||||||
|
dc i4'&p'
|
||||||
|
mend
|
||||||
|
macro
|
||||||
|
&l ~ErrWriteCString &p1
|
||||||
|
&l ph4 &p1
|
||||||
|
ldx #$210C
|
||||||
|
jsl $E10000
|
||||||
|
mend
|
||||||
|
macro
|
||||||
|
&l ~WriteCString &p1
|
||||||
|
&l ph4 &p1
|
||||||
|
ldx #$200C
|
||||||
|
jsl $E10000
|
||||||
|
mend
|
||||||
|
macro
|
||||||
|
&l ~WriteString &p1
|
||||||
|
&l ph4 &p1
|
||||||
|
ldx #$1C0C
|
||||||
|
jsl $E10000
|
||||||
|
mend
|
Loading…
Reference in New Issue