-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathCONFIG.ASM
executable file
·223 lines (213 loc) · 3.6 KB
/
CONFIG.ASM
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
;=============================================================================
;SETTINGS MENU
;=============================================================================
MSETTINGS
jsr SETTINGS_drawscreen
MSET0
jsr GETIN
beq MSET0
cmp #$31
bne MSET_0a
jmp SET_IP
MSET_0a
cmp #$32
bne MSET_0b
jmp SET_NETMASK
MSET_0b
cmp #$33
bne MSET_0c
jmp SET_GATEWAY
MSET_0c
cmp #$34
bne MSET_0d
jmp SET_MAC
MSET_0d
cmp #$35
bne MSET_0e
jmp SET_SCFG
MSET_0e
cmp #$36
bne MSET_0f
jmp SET_LCFG
MSET_0f
cmp #$37
beq MSETX ;exit, keeping IRQ
jmp MSETTINGS
MSETX
jmp MENU
SETTINGS_drawscreen
jsr draw_header
jsr prns
dc.b " settings",CRLF
dc.b " 1. ",5,"cHANGE ip",CRLF
dc.b " ",158,"2. ",5,"cHANGE nETMASK",CRLF
dc.b " ",158,"3. ",5,"cHANGE gATEWAY",CRLF
dc.b " ",158,"4. ",5,"cHANGE mac",CRLF
dc.b " ",158,"5. ",5,"sAVE CONFIG",CRLF
dc.b " ",158,"6. ",5,"lOAD CONFIG",CRLF
dc.b " ",158,"7. ",5,"qUIT TO MAIN",CRLF
dc.b " ",158,"SELECT:",5,0
rts
SET_IP
jsr $e544
PRINT "eNTER NEW ip",CRLF
jsr getip
;verify
PRINT CRLF
lda #<gotip
ldx #>gotip
jsr printip
PRINT ", "
jsr yesno
beq SET_IP
cmp #$01
beq SET_IP_a
jmp SET_IP_x
SET_IP_a
;copy gotip into pingip
lda gotip
sta CARD_IP
lda gotip+1
sta CARD_IP+1
lda gotip+2
sta CARD_IP+2
lda gotip+3
sta CARD_IP+3
SET_IP_x
jmp MSETTINGS
SET_NETMASK
jsr $e544
PRINT "eNTER NEW NETMASK",CRLF
jsr getip
;verify
PRINT CRLF
lda #<gotip
ldx #>gotip
jsr printip
PRINT ", "
jsr yesno
beq SET_NETMASK
cmp #$01
beq SET_NETMASK_a
jmp SET_NETMASK_x
SET_NETMASK_a
;copy gotip into pingip
lda gotip
sta CARD_MASK
lda gotip+1
sta CARD_MASK+1
lda gotip+2
sta CARD_MASK+2
lda gotip+3
sta CARD_MASK+3
SET_NETMASK_x
jmp MSETTINGS
SET_GATEWAY
jsr $e544
PRINT "eNTER NEW GATEWAY",13
jsr getip
;verify
PRINT 13
lda #<gotip
ldx #>gotip
jsr printip
PRINT ", "
jsr yesno
beq SET_GATEWAY
cmp #$01
beq SET_GATEWAY_a
jmp SET_GATEWAY_x
SET_GATEWAY_a
;copy gotip into pingip
lda gotip
sta CARD_GATE
lda gotip+1
sta CARD_GATE+1
lda gotip+2
sta CARD_GATE+2
lda gotip+3
sta CARD_GATE+3
SET_GATEWAY_x
jmp MSETTINGS
SET_MAC
jsr $e544
PRINT "eNTER NEW mac",CRLF
jsr getmac
;verify
PRINT CRLF
lda #<gotmac
ldx #>gotmac
jsr printmac
PRINT ", "
jsr yesno
beq SET_MAC
cmp #$01
beq SET_MAC_a
jmp SET_MAC_x
SET_MAC_a
lda gotmac
sta CARD_MAC
lda gotmac+1
sta CARD_MAC+1
lda gotmac+2
sta CARD_MAC+2
lda gotmac+3
sta CARD_MAC+3
lda gotmac+4
sta CARD_MAC+4
lda gotmac+5
sta CARD_MAC+5
SET_MAC_x
jmp MSETTINGS
SET_LCFG
jsr LOAD_CONFIG
jmp MSETTINGS
SET_SCFG
jsr SAVE_CONFIG
jmp MSETTINGS
;=============================================================================
;CONFIG file format:
; byte description
; 0-1 nulled load address
; 2 flag for config loaded
; 3 card type 1=eth64 2=rr-net
; 4 0=dhcp, 1=static
; 5-10 MAC Address
; 11-14 IP Address
; 15-18 NetMask
; 19-22 Gateway
; 23-26 DNS Server
LOAD_CONFIG
lda #$06
ldx #<CFGNAME
ldy #>CFGNAME
jsr SETNAM
lda #$08
ldx $BA
ldy #$00
jsr SETLFS
lda #$00
ldx #<CONFIGURATION
ldy #>CONFIGURATION
jsr LOAD
rts
SAVE_CONFIG
lda #$08
ldx #<SAVECFGNAM
ldy #>SAVECFGNAM
jsr SETNAM
lda #$08
ldx $BA
ldy #$00
jsr SETLFS
lda #$67
lda #<CONFIGURATION
sta $67
lda #>CONFIGURATION
sta $68
ldx #<CONFIG_END
ldy #>CONFIG_END
jsr SAVE
rts
SAVECFGNAM dc.b "@:"
CFGNAME dc.b "NETCFG"