mirror of
https://github.com/GnoConsortium/gno.git
synced 2024-12-22 14:30:29 +00:00
027b934919
no GNO v2.0.6 specific changes.
275 lines
3.0 KiB
NASM
275 lines
3.0 KiB
NASM
* asm version of date utility
|
|
|
|
* Phillip Vandry, May 1993
|
|
|
|
mcopy date.mac
|
|
keep date
|
|
copy 13/asmdefs/gno/e16.ioctl
|
|
|
|
cline gequ 0
|
|
|
|
main start
|
|
phk
|
|
plb
|
|
sty cline
|
|
stx cline+2
|
|
stz uflag
|
|
ldy #8
|
|
lpp15 lda [cline],y
|
|
and #$ff
|
|
beq ok
|
|
iny
|
|
cmp #$20
|
|
bne lpp15
|
|
lpp20 lda [cline],y
|
|
and #$ff
|
|
beq ok
|
|
iny
|
|
cmp #$20
|
|
beq lpp20
|
|
cmp #$22
|
|
beq lpp20
|
|
cmp #'-'
|
|
bne showusg
|
|
lda [cline],y
|
|
and #$ff
|
|
cmp #'V'
|
|
beq showvers
|
|
cmp #'c'
|
|
beq updateflag
|
|
showusg ~ErrWriteCString #usage
|
|
bra getoutPASS
|
|
showvers ~WriteCString #versstr
|
|
getoutPASS brl getout
|
|
updateflag inc uflag
|
|
ok anop
|
|
lda #2 ; SIGINT
|
|
jsr handle
|
|
lda #15 ; SIGTERM
|
|
jsr handle
|
|
|
|
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
|
|
~ReadTimeHex
|
|
lda #year+3
|
|
sta cline
|
|
lda 4,s
|
|
and #$ff
|
|
clc
|
|
adc #1900
|
|
ldx #4
|
|
jsr insert
|
|
lda 1,s
|
|
and #$ff
|
|
ldx #2
|
|
jsr insert
|
|
jsr unpad
|
|
pla
|
|
xba
|
|
and #$ff
|
|
ldx #2
|
|
jsr insert
|
|
jsr unpad
|
|
pla
|
|
and #$ff
|
|
ldx #2
|
|
jsr insert
|
|
jsr unpad
|
|
lda 1,s
|
|
and #$ff
|
|
inc a
|
|
ldx #2
|
|
jsr insert
|
|
phk
|
|
plb
|
|
pla
|
|
jsr lookup
|
|
lda months,x
|
|
sta month
|
|
lda months+1,x
|
|
sta month+1
|
|
pla
|
|
jsr lookup
|
|
lda weekdays-3,x
|
|
sta weekday
|
|
lda weekdays-2,x
|
|
sta weekday+1
|
|
WriteGS ramit
|
|
lda uflag
|
|
beq exitall
|
|
pea 1
|
|
case on
|
|
jsl sleep
|
|
case off
|
|
brl refresh
|
|
exitall WriteGS justnewl
|
|
jsr csetp
|
|
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
|
|
phb
|
|
plx
|
|
ply
|
|
pla
|
|
pla
|
|
phy
|
|
phx
|
|
plb
|
|
lda #1
|
|
case on
|
|
sta >ringring
|
|
case off
|
|
lda #0
|
|
sta >uflag
|
|
rtl
|
|
|
|
handle anop
|
|
pha
|
|
pha
|
|
pha
|
|
pea handler|-16
|
|
pea handler
|
|
pea errno|-16
|
|
pea errno
|
|
ldx #$1603
|
|
jsl $e10008
|
|
pla
|
|
pla
|
|
rts
|
|
|
|
lookup xba
|
|
and #$ff
|
|
pha
|
|
asl a
|
|
asl a
|
|
sec
|
|
sbc 1,s
|
|
tax
|
|
pla
|
|
rts
|
|
|
|
unpad ldx cline
|
|
phk
|
|
plb
|
|
short m
|
|
lda |0,x
|
|
cmp #$20
|
|
bne allok
|
|
lda #'0'
|
|
sta |0,x
|
|
allok long m
|
|
rts
|
|
|
|
insert pha ; thenum
|
|
pea 0
|
|
plb
|
|
phk
|
|
lda cline
|
|
dec a
|
|
dec a
|
|
dec a
|
|
sta cline
|
|
pha
|
|
phx
|
|
pea 0
|
|
~Int2Dec *,*,*,*
|
|
rts
|
|
|
|
string anop
|
|
|
|
qtrec dc i'2'
|
|
dc a4'0'
|
|
dc i'$4000'
|
|
|
|
ramit dc i'4'
|
|
dc i'2'
|
|
dc a4'strbeg'
|
|
dc i4'strend-strbeg'
|
|
ds 4
|
|
|
|
sgttyb ds 6
|
|
oldflags ds 2
|
|
|
|
strbeg anop
|
|
|
|
weekday dc c'xxx '
|
|
month dc c'xxx '
|
|
day dc c'xx '
|
|
hour dc c'xx:'
|
|
minute dc c'xx:'
|
|
second dc c'xx '
|
|
year dc c'xxxx'
|
|
|
|
dc h'0d'
|
|
|
|
strend anop
|
|
|
|
justnewl dc i'4'
|
|
dc i'2'
|
|
dc a4'justnewl1'
|
|
dc i4'1'
|
|
ds 4
|
|
justnewl1 dc h'0a'
|
|
|
|
weekdays dc c'SunMonTueWedThuFriSat'
|
|
months dc c'JanFebMarAprMayJunJulAugSepOctNovDec'
|
|
|
|
versstr dc c'date utility, asm version 1.1'
|
|
dc h'0d 0a'
|
|
usage dc c'usage: date [-cV]',h'0d 0a'
|
|
dc h'0'
|
|
end
|
|
|
|
errno data
|
|
ds 2
|
|
end
|
|
|
|
copy modsleep.asm
|
|
|
|
dpstk data ~Direct
|
|
kind $12
|
|
ds 512
|
|
end
|
|
|