OpenCores
URL https://opencores.org/ocsvn/socgen/socgen/trunk

Subversion Repositories socgen

[/] [socgen/] [trunk/] [Projects/] [opencores.org/] [Mos6502/] [sw/] [kim_1/] [kim_1.asm] - Blame information for rev 131

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 131 jt_eaton
 
2
 
3
          include  ../io_module/io_module.asm
4
 
5
 
6
 
7
 
8
 
9
str_1          = $ff00
10
top            = $ff10
11
 
12
 
13
                 * = $10
14
inl            db  0            ;
15
inh            db  0            ;
16
pointl         db  0            ;
17
pointh         db  0            ;
18
chksum         db  0            ;
19
chkhi          db  0            ;
20
eal            db  0            ;
21
eah            db  0            ;
22
sbd            db  0            ;
23
 
24
 
25
 
26
             * = $c000  ; assemble start
27
               code
28
 
29
.vec               jmp  .nmi_vec
30
                   jmp  .irq_vec
31
 
32
 
33
 
34
.start             jsr .init
35
                   ldx #$fe
36
.dloop             jsr .delay
37
                   dex
38
                   bne .dloop
39
                   jsr .crlf
40
                   ldx #$04
41
                   jsr .prtst
42
                   jmp .show1
43
 
44
.space             jsr .open
45
.show              jsr .crlf
46
.show1             jsr .prtpnt
47
                   jsr .outsp
48
                   ldy #$00
49
                   lda (pointl),y
50
                   sta io_base+io_gpio_0
51
                   jsr .prtbyt
52
                   jsr .outsp
53
                   jmp .clear
54
 
55
.clear             lda #$00
56
                   sta inl
57
                   sta inh
58
.read              jsr .getch
59
                   cmp #$0d
60
                   beq .scan
61
                   jsr .outch
62
                   jsr .pack
63
                   jmp .scan
64
 
65
.scan              cmp #$20
66
                   beq .space
67
                   cmp #$0d
68
                   beq .rtrn
69
                   cmp #$2f
70
                   beq .feed
71
                   cmp #$2e
72
                   beq .modify
73
                   cmp #$51
74
                   beq .dumpv
75
                   cmp #$4C
76
                   beq .loadv
77
 
78
                   jmp .read
79
 
80
.rtrn              jsr .incpt
81
                   jmp .show
82
 
83
 
84
.dumpv             jmp .dump
85
.loadv             jmp .load
86
 
87
.feed              sec
88
                   lda  pointl
89
                   sbc #$01
90
                   sta  pointl
91
                   bcs .feed1
92
                   dec  pointh
93
.feed1             jmp .show
94
 
95
 
96
 
97
.modify            ldy #$00
98
                   lda inl
99
                   sta (pointl),y
100
                   jmp .rtrn
101
 
102
 
103
 
104
 
105
.load              jsr .getch
106
                   cmp #$3b
107
                   bne .load
108
.loads             lda #$00
109
                   sta chksum
110
                   sta chkhi
111
                   jsr .getbyt
112
                   tax
113
                   jsr .chk
114
                   jsr .getbyt
115
                   sta pointh
116
                   jsr .chk
117
                   jsr .getbyt
118
                   sta pointl
119
                   jsr .chk
120
                   txa
121
                   beq .load3
122
.load2            jsr .getbyt
123
                  sta (pointl),y
124
                  jsr .chk
125
                  jsr .incpt
126
                  dex
127
                  bne .load2
128
                  inx
129
.load3            jsr .getbyt
130
                  cmp chkhi
131
                  bne .loade1
132
                  jsr .getbyt
133
                  cmp chksum
134
                 bne .loader
135
                 txa
136
                 bne .load
137
.load7           ldx #$0c
138
.load8           lda #$27
139
                 sta sbd
140
                 jsr .prtst
141
                 jmp .start
142
.loade1          jsr .getbyt
143
.loader          ldx #$11
144
                 bne .load8
145
 
146
 
147
 
148
 
149
 
150
 
151
 
152
 
153
.dump               clc
154
                    lda inl
155
                    adc pointl
156
                    sta eal
157
                    lda inh
158
                    adc pointh
159
                    sta eah
160
 
161
                    lda #$00
162
                    sta inl
163
                    sta inh
164
.dump0              lda #$00
165
                    sta chkhi
166
                    sta chksum
167
.dump1              jsr .crlf
168
 
169
                    lda pointl
170
                    cmp eal
171
                    lda pointh
172
                    sbc eah
173
                    bcc .dump4
174
 
175
                    jsr .crlf
176
 
177
                    jmp .clear
178
 
179
 
180
 
181
.dump4              lda #$10
182
                    tax
183
                    jsr .prtpnt
184
                    jsr .outsp
185
                    jsr .outsp
186
 
187
.dump2              ldy #$00
188
                    lda (pointl),y
189
                    sta io_base+io_gpio_0
190
                    jsr .prtbyt
191
                    jsr .outsp
192
 
193
                    jsr .incpt
194
                    dex
195
                    bne .dump2
196
 
197
                    inc inl
198
                    bne .dump3
199
                    inc inh
200
.dump3              jmp .dump0
201
 
202
 
203
 
204
 
205
 
206
 
207
 
208
 
209
 
210
 
211
.prtpnt           lda  pointh
212
                  jsr .prtbyt
213
                  jsr .chk
214
                  lda  pointl
215
                  jsr .prtbyt
216
                  jsr .chk
217
                  rts
218
 
219
 
220
 
221
.chk              clc
222
                  adc chksum
223
                  lda chkhi
224
                  adc #$00
225
                  sta chkhi
226
                  rts
227
 
228
 
229
 
230
 
231
.crlf             ldx #$01
232
.prtst            lda top,x
233
                  jsr .outch
234
                  dex
235
                  bpl .prtst
236
.prt1             rts
237
 
238
 
239
 
240
 
241
.incpt             inc pointl
242
                   bne .incpt2
243
                   inc pointh
244
.incpt2            rts
245
 
246
 
247
 
248
 
249
.getch             lda io_base+io_pic_int
250
                   and #$04
251
                   beq .getch
252
                   lda io_base+io_uart_rcv
253
                   rts
254
 
255
 
256
 
257
.getbyt            jsr   .getch
258
                   jsr   .pack
259
                   jsr   .getch
260
                   jsr   .pack
261
                   lda    inl
262
                   rts
263
 
264
 
265
 
266
 
267
.pack              cmp #$30
268
                   bmi .updat2
269
                   cmp #$47
270
                   bpl .updat2
271
.hexnum            cmp #$40
272
                   bmi .update
273
.hexalp            clc
274
                   adc #$09
275
.update            rol a
276
                   rol a
277
                   rol a
278
                   rol a
279
                   ldy #$04
280
.updat1            rol a
281
                   rol inl
282
                   rol inh
283
                   dey
284
                   bne .updat1
285
                   lda #$00
286
.updat2            rts
287
 
288
 
289
.open              lda inl
290
                   sta pointl
291
                   lda inh
292
                   sta pointh
293
                   rts
294
 
295
 
296
 
297
.init              lda #$c0
298
                   sta io_base+io_uart_cnt
299
                   ldx #$00
300
                   ldy #$00
301
                   lda #$fa
302
                   sta pointl
303
                   lda #$ff
304
                   sta pointh
305
                   lda #$00
306
                   sta eal
307
                   sta eah
308
                   rts
309
 
310
 
311
 
312
 
313
.outsp             lda #$20
314
.outch             pha
315
.outchl            lda io_base+io_pic_int
316
                   and #$08
317
                   beq .outchl
318
                   pla
319
                   sta io_base+io_uart_xmt
320
                   rts
321
 
322
 
323
 
324
.prtbyt            pha
325
                   lsr a
326
                   lsr a
327
                   lsr a
328
                   lsr a
329
                   jsr  .hexta
330
                   pla
331
.hexta             and #$0f
332
                   cmp #$0a
333
                   clc
334
                   bmi .hexta1
335
                   adc #$07
336
.hexta1            adc #$30
337
                   jmp .outch
338
 
339
 
340
 
341
 
342
.delay             lda #$ff
343
                   clc
344
                   adc #$01
345
                   bne .delay
346
                   rts
347
 
348
 
349
 
350
.irq_vec           pha
351
                   pla
352
                   rti
353
 
354
.nmi_vec           pha
355
                   pla
356
                   rti
357
 
358
 
359
             * = $c3fa  ; vectors
360
 
361
 
362
     dw .nmi_vec               ;
363
     dw .start                 ;
364
     dw .irq_vec               ;
365
 
366
 code
367
 
368
 
369
 
370
 
371
 
372
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.