mirror of
https://github.com/mgcaret/davex-mg-utils.git
synced 2024-12-22 00:29:15 +00:00
104 lines
2.8 KiB
ArmAsm
104 lines
2.8 KiB
ArmAsm
|
; %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
|
||
|
|
||
|
prbyte = $fdda
|
||
|
;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
|