2017-09-30 06:49:09 +00:00
|
|
|
; %help
|
|
|
|
; afp.timezone - Set workstation AFP timezone.
|
|
|
|
;
|
|
|
|
; usage: afp.timezone w/e <0-24>
|
|
|
|
;
|
|
|
|
; Adjusts workstation time zone west or east relative to AFP server.
|
|
|
|
;
|
|
|
|
; %hend
|
|
|
|
|
|
|
|
.pc02
|
|
|
|
.include "davex-mg.inc"
|
|
|
|
|
|
|
|
sptr = xczpage
|
|
|
|
|
2018-05-07 22:23:29 +00:00
|
|
|
;prbyte = $fdda
|
2017-09-30 06:49:09 +00:00
|
|
|
;cout = $fded
|
|
|
|
|
|
|
|
pfxbuf = filebuff2
|
|
|
|
|
|
|
|
DX_start dx_mg_auto_origin ; load address
|
|
|
|
DX_info $01,$12,dx_cc_iie_or_iigs,$00
|
|
|
|
DX_ptab
|
|
|
|
DX_parm $00,t_string ; +/-
|
|
|
|
DX_parm $00,t_int1 ; hours
|
|
|
|
DX_end_ptab
|
|
|
|
DX_desc "Set AFP time zone."
|
|
|
|
DX_main
|
|
|
|
cli ; appletalk requires interrupts
|
|
|
|
;bra :+ ; DELETEME
|
|
|
|
ATcall inforeq
|
|
|
|
bcc :+
|
|
|
|
jmp noatalk
|
|
|
|
: lda #$01 ; second parm
|
|
|
|
jsr xgetparm_n ; davex ensures this is here
|
|
|
|
cpy #24
|
|
|
|
bcs badparms
|
|
|
|
sty timeflag
|
|
|
|
lda #$00
|
|
|
|
jsr xgetparm_n ; zero length if not specified
|
|
|
|
sta sptr+1
|
|
|
|
sty sptr
|
|
|
|
ldy #$00
|
|
|
|
lda (sptr),y
|
|
|
|
beq badparms
|
|
|
|
; next two commented out, user might say west or east instead of w or e
|
|
|
|
;cmp #$01
|
|
|
|
;bne badparms
|
|
|
|
iny
|
|
|
|
lda (sptr),y
|
|
|
|
and #$5f ; upper case and strip high bit
|
|
|
|
cmp #'W'
|
|
|
|
beq dowest
|
|
|
|
cmp #'E'
|
|
|
|
beq doit
|
|
|
|
jsr cout
|
|
|
|
; fall through if not +
|
|
|
|
badparms: lda #$01
|
|
|
|
jsr xredirect
|
|
|
|
jsr xmess
|
|
|
|
asc_hi "Bad parameter(s)!"
|
|
|
|
.byte $00
|
|
|
|
bra exiterr
|
|
|
|
;
|
|
|
|
dowest: lda #$80
|
|
|
|
ora timeflag
|
|
|
|
sta timeflag
|
|
|
|
doit:
|
|
|
|
;lda timeflag
|
|
|
|
;jsr prbyte
|
|
|
|
;lda #$8d
|
|
|
|
;jsr cout
|
|
|
|
ATcall tzreq
|
|
|
|
bcs tzerr
|
|
|
|
rts ; buhbye
|
|
|
|
;
|
|
|
|
tzerr: lda #$01
|
|
|
|
jsr xredirect
|
|
|
|
jsr xmess
|
|
|
|
asc_hi "Set time zone failed!"
|
|
|
|
.byte $00
|
|
|
|
bra exiterr
|
|
|
|
noatalk: lda #$01
|
|
|
|
jsr xredirect
|
|
|
|
jsr xmess
|
|
|
|
asc_hi "AppleTalk offline!"
|
|
|
|
.byte $00
|
|
|
|
exiterr: lda #$ff
|
|
|
|
jsr xredirect
|
|
|
|
jmp xerr
|
|
|
|
;
|
|
|
|
inforeq: .byte 0,2 ; sync GetInfo
|
|
|
|
.word $0000 ; result code
|
|
|
|
.dword $00000000 ; completion address
|
|
|
|
thisnet: .word $0000 ; this network #
|
|
|
|
abridge: .byte $00 ; local bridge
|
|
|
|
hwid: .byte $00 ; hardware ID, IIgs only
|
|
|
|
romver: .word $00 ; ROM version, IIgs only
|
|
|
|
nodenum: .byte $00 ; node number
|
|
|
|
;
|
|
|
|
tzreq: .byte 0,$30 ; sync FITimeZone
|
|
|
|
.word $0000 ; result
|
|
|
|
timeflag: .byte $00 ; time flag (b6-0=hours,b7=1 subtract)
|
|
|
|
DX_end
|