mirror of
https://github.com/bobbimanners/emailler.git
synced 2024-05-28 20:41:33 +00:00
Loading settings from SETMAC.CFG works now!
This commit is contained in:
parent
b783dae5bd
commit
3a645dcb46
|
@ -162,7 +162,7 @@ Main1: cld
|
||||||
hasc "Uthernet-II SETMAC Utility"
|
hasc "Uthernet-II SETMAC Utility"
|
||||||
.byte $8D,$00 ; CR, done
|
.byte $8D,$00 ; CR, done
|
||||||
jsr loadsettings
|
jsr loadsettings
|
||||||
lda #5 ; Slot 5 TODO: This is hardcoded for now
|
lda UWSlot ; Load UW slot number
|
||||||
jsr setmac
|
jsr setmac
|
||||||
|
|
||||||
; wait for keyboard
|
; wait for keyboard
|
||||||
|
@ -191,36 +191,104 @@ Main1: cld
|
||||||
.byte $CA ; READ
|
.byte $CA ; READ
|
||||||
.word PL_RDCFG ; 22 bytes -> CfgBuf
|
.word PL_RDCFG ; 22 bytes -> CfgBuf
|
||||||
bcs CantRead
|
bcs CantRead
|
||||||
lda CfgBuf
|
lda CfgBuf ; Slot number char
|
||||||
;;
|
sec
|
||||||
|
sbc #'0' ; TODO NO VALIDATION!
|
||||||
|
sta UWSlot
|
||||||
|
jsr parsemac
|
||||||
jsr iprint
|
jsr iprint
|
||||||
.byte $8D ; CR
|
.byte $8D ; CR
|
||||||
hasc "Read file!"
|
hasc "Settings from SETMAC.CFG"
|
||||||
.byte $8D,$00 ; CR, done
|
.byte $8D,$00 ; CR, done
|
||||||
;;
|
|
||||||
jsr PRODOS
|
jsr PRODOS
|
||||||
.byte $CC ; CLOSE
|
.byte $CC ; CLOSE
|
||||||
.word PL_CLOSE
|
.word PL_CLOSE
|
||||||
rts
|
rts
|
||||||
CantRead:
|
CantRead:
|
||||||
jsr iprint
|
|
||||||
.byte $8D ; CR
|
|
||||||
hasc "CantRead"
|
|
||||||
.byte $8D,$00 ; CR, done
|
|
||||||
jsr PRODOS
|
jsr PRODOS
|
||||||
.byte $CC ; CLOSE
|
.byte $CC ; CLOSE
|
||||||
.word PL_CLOSE
|
.word PL_CLOSE
|
||||||
bcs CantOpen
|
|
||||||
CantOpen:
|
CantOpen:
|
||||||
jsr iprint
|
jsr iprint
|
||||||
.byte $8D ; CR
|
.byte $8D ; CR
|
||||||
hasc "CantOpen"
|
hasc "Can't Read SETMAC.CFG"
|
||||||
|
.byte $8D ; CR
|
||||||
|
hasc "Using default settings"
|
||||||
.byte $8D,$00 ; CR, done
|
.byte $8D,$00 ; CR, done
|
||||||
|
lda #$05 ; Default slot 5
|
||||||
|
sta UWSlot
|
||||||
|
rts
|
||||||
|
.endproc
|
||||||
|
.proc parsemac
|
||||||
|
; Parse the ASCII MAC in CfgBuf 's xx:xx:xx:xx:xx:xx',
|
||||||
|
; convert it to six bytes and put it in MACBuf
|
||||||
|
ldx #$02 ; Source index
|
||||||
|
ldy #$00 ; Dest index
|
||||||
|
: lda CfgBuf,x
|
||||||
|
jsr decodeHex
|
||||||
|
asl
|
||||||
|
asl
|
||||||
|
asl
|
||||||
|
asl
|
||||||
|
sta temp
|
||||||
|
inx
|
||||||
|
lda CfgBuf,x
|
||||||
|
jsr decodeHex
|
||||||
|
clc
|
||||||
|
adc temp
|
||||||
|
sta MACBuf,y
|
||||||
|
iny
|
||||||
|
inx ; Extra to skip ':'
|
||||||
|
inx
|
||||||
|
cpy #$06 ; Done all bytes?
|
||||||
|
bne :-
|
||||||
|
rts
|
||||||
|
temp: .byte $00
|
||||||
|
.endproc
|
||||||
|
.proc decodeHex
|
||||||
|
; Decode a single hex character in A
|
||||||
|
; Hex char may be '0'-'9', 'a'-'f', 'A'-'F'
|
||||||
|
cmp #('f'+1)
|
||||||
|
bcc :+
|
||||||
|
jmp bad ; char > 'f'
|
||||||
|
: cmp #'a' ; char <= 'f'
|
||||||
|
bcc :+
|
||||||
|
sec ; 'a' <= char <= 'f'
|
||||||
|
sbc #('a'-10)
|
||||||
|
rts
|
||||||
|
: cmp #('F'+1)
|
||||||
|
bcc :+
|
||||||
|
jmp bad ; 'F' < char < 'a'
|
||||||
|
: cmp #'A'
|
||||||
|
bcc :+
|
||||||
|
sec ; 'A' <= char <= 'F'
|
||||||
|
sbc #('A'-10)
|
||||||
|
rts
|
||||||
|
: cmp #('9'+1)
|
||||||
|
bcc :+
|
||||||
|
jmp bad ; '9' < char < 'A'
|
||||||
|
: cmp #'0'
|
||||||
|
bcc bad
|
||||||
|
sec ; '0' <= char <= '9'
|
||||||
|
sbc #'0'
|
||||||
|
rts
|
||||||
|
bad: lda #$00
|
||||||
rts
|
rts
|
||||||
.endproc
|
.endproc
|
||||||
.proc setmac
|
.proc setmac
|
||||||
; Set the MAC address on the Uthernet-II
|
; Set the MAC address on the Uthernet-II
|
||||||
; Expects slot number in A
|
; Expects slot number in A
|
||||||
|
pha
|
||||||
|
jsr iprint
|
||||||
|
.byte $8D ; CR
|
||||||
|
hasc "Slot "
|
||||||
|
.byte $00
|
||||||
|
pla
|
||||||
|
pha
|
||||||
|
jsr PrDec
|
||||||
|
jsr iprint
|
||||||
|
.byte $8D,$00 ; CR, done
|
||||||
|
pla
|
||||||
asl
|
asl
|
||||||
asl
|
asl
|
||||||
asl
|
asl
|
||||||
|
@ -240,9 +308,9 @@ CantOpen:
|
||||||
sta IOMINUSONE,y ; Set low byte
|
sta IOMINUSONE,y ; Set low byte
|
||||||
ldx #$00
|
ldx #$00
|
||||||
iny ; $d8
|
iny ; $d8
|
||||||
: lda mac,x ; Load byte of MAC
|
: lda MACBuf,x ; Load byte of MAC
|
||||||
jsr PrHex
|
jsr PrHex
|
||||||
lda mac,x ; Load byte of MAC again
|
lda MACBuf,x ; Load byte of MAC again
|
||||||
sta IOMINUSONE,y ; Set and autoinc
|
sta IOMINUSONE,y ; Set and autoinc
|
||||||
inx
|
inx
|
||||||
cpx #6
|
cpx #6
|
||||||
|
@ -258,7 +326,6 @@ CantOpen:
|
||||||
iny ; $d8
|
iny ; $d8
|
||||||
sta IOMINUSONE,y ; Set and autoinc
|
sta IOMINUSONE,y ; Set and autoinc
|
||||||
rts
|
rts
|
||||||
mac: .byte $00,$08,$0d,$00,$de,$ad ; TODO: Hardcoded for now
|
|
||||||
.endproc
|
.endproc
|
||||||
; This starts the process of finding & launching next system file
|
; This starts the process of finding & launching next system file
|
||||||
; unfortunately it also uses block reads and can't be run from an AppleShare
|
; unfortunately it also uses block reads and can't be run from an AppleShare
|
||||||
|
@ -549,5 +616,7 @@ MyName: .byte $0D,"SETMAC.SYSTEM"
|
||||||
CfgName: .byte $0A,"SETMAC.CFG"
|
CfgName: .byte $0A,"SETMAC.CFG"
|
||||||
CfgBuf: .byte $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
|
CfgBuf: .byte $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
|
||||||
; slt spc m1h m1l : m2h m2l : m3h m3l : m4h m4l : m5h m5l : m6h m6l
|
; slt spc m1h m1l : m2h m2l : m3h m3l : m4h m4l : m5h m5l : m6h m6l
|
||||||
|
UWSlot: .byte $00
|
||||||
|
MACBuf: .byte $00,$08,$0d,$10,$20,$30 ; Fallback value
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user