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

Subversion Repositories thor

[/] [thor/] [trunk/] [FT64/] [software/] [boot/] [boottc.asm] - Blame information for rev 45

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 45 robfinch
; N4V128Sys bootrom - (C) 2017 Robert Finch, Waterloo
2
;
3
; This file is part of N4V128Sys
4
;
5
; how to build:
6
; 1. assemble using "A64 +gF .\boot\boot.asm"
7
; 2. copy boot.ve0 to the correct directory if not already there
8
;
9
;------------------------------------------------------------------------------
10
;
11
; system memory map
12
;
13
;
14
; 00000000 +----------------+
15
;          |                |
16
;          |                |
17
;          |                |
18
;          |                |
19
;          :  dram memory   : 512 MB
20
;          |                |
21
;          |                |
22
;          |                |
23
;          |                |
24
; 20000000 +----------------+
25
;          |                |
26
;          :     unused     :
27
;          |                |
28
; FF400000 +----------------+
29
;          |   scratchpad   | 8 kB
30
; FF402000 +----------------+
31
;          |     unused     |
32
; FFD00000 +----------------+
33
;          |                |
34
;          :    I/O area    : 1.0 M
35
;          |                |
36
; FFE00000 +----------------+
37
;          |                |
38
;          :     unused     :
39
;          |                |
40
; FFFC0000 +----------------+
41
;          |                |
42
;          :    boot rom    :
43
;          |                |
44
; FFFFFFFF +----------------+
45
;
46
;
47
;
48
LEDS            equ             $FFDC0600
49
BUTTONS         equ             $FFDC0600
50
SCRATCHPAD      equ             $FF400000
51
AVIC            equ             $FFDCC000
52
TC1                     equ             $FFD0DF00
53
 
54
WHITE           equ             $7FFF
55
MEDBLUE         equ             $000F
56
fgcolor         equ             SCRATCHPAD
57
bkcolor         equ             fgcolor + 4
58
_randStream     equ             SCRATCHPAD + 16
59
_DBGCursorCol   equ     _randStream + 8
60
_DBGCursorRow   equ     _DBGCursorCol + 4
61
_DBGAttr        equ             _DBGCursorRow + 4
62
milliseconds    equ             _DBGAttr + 4
63
 
64
; Help the assembler out by telling it how many bits are required for code
65
; addresses
66
                code    18 bits
67
                org             $FFFC0000               ; start of ROM memory space
68
                jmp             brkrout                 ; jump to the exception handler
69
                org             $FFFC0100               ; The PC is set here on reset
70
                jmp             start                   ; Comment out this jump to test i-cache
71
test_icache:
72
        ; This seems stupid but maybe necessary. Writes to r0 always cause it to
73
        ; be loaded with the value zero regardless of the value written. Readback
74
        ; should then always be a zero. The only case it might not be is at power
75
        ; on. At power on the reg should be zero, but let's not assume that and
76
        ; write a zero to it.
77
                and             r0,r0,#0                ; cannot use LDI which does an or operation
78
                ; set trap vector
79
                ldi             r1,#$FFFC0000
80
                csrrw   r0,#$30,r1
81
                ldi             r31,#$FF400FF8  ; set stack pointer
82
                sei             #0
83
        ; Seed random number generator
84
                ldi             r6,#$FFDC0000
85
                sh              r0,$0C04[r6]                    ; select stream #0
86
                ldi             r1,#$88888888
87
                sh              r1,$0C08[r6]                    ; set initial m_z
88
                ldi             r1,#$01234567
89
                sh              r1,$0C0C[r6]                    ; set initial m_w
90
.st4:
91
        ; Get a random number
92
                sh              r0,$FFDC0C04    ; set the stream
93
                nop                                             ; delay a wee bit
94
                lhu             r1,$FFDC0C00    ; get a number
95
                sh              r0,$FFDC0C00    ; generate next number
96
 
97
        ; convert to random address
98
                shl             r1,r1,#2
99
                and             r1,r1,#$1FFC
100
                add             r1,r1,#$FF401000        ; scratchram address
101
 
102
        ; Fill an area with test code
103
                ldi             r2,#15                  ; number of ops - 1
104
                ldi             r3,#.st2                ; address of test routine copy
105
.st3:
106
                lhu             r4,[r3+r2*4]    ; move from boot rom to
107
                sh              r4,[r1+r2*4]    ; scratch ram
108
                sub             r2,r2,#1
109
                bge             r2,r0,.st3
110
 
111
        ; Now jump to the test code
112
                cache   #3,[r1]                 ; invalidate the cache
113
                jal             r29,[r1]
114
                ldi             r2,#14                  ; this is the value that should be returned
115
                cmp             r1,r1,r2
116
                bne             r1,r0,.st5
117
                bra             .st4
118
 
119
        ; Display fail code
120
.st5:
121
                ldi             r1,#$FA
122
                sb              r1,$FFDC0600
123
                bra             .st5
124
 
125
; Test code accumulates for 16 instructions, sum should be 14
126
 
127
.st2:
128
                ldi             r1,#0
129
                add             r1,r1,#1
130
                add             r1,r1,#1
131
                add             r1,r1,#1
132
                add             r1,r1,#1
133
                add             r1,r1,#1
134
                add             r1,r1,#1
135
                add             r1,r1,#1
136
                add             r1,r1,#1
137
                add             r1,r1,#1
138
                add             r1,r1,#1
139
                add             r1,r1,#1
140
                add             r1,r1,#1
141
                add             r1,r1,#1
142
                add             r1,r1,#1
143
                ret
144
 
145
start:
146
        ; This seems stupid but maybe necessary. Writes to r0 always cause it to
147
        ; be loaded with the value zero regardless of the value written. Readback
148
        ; should then always be a zero. The only case it might not be is at power
149
        ; on. At power on the reg should be zero, but let's not assume that and
150
        ; write a zero to it.
151
                and             r0,r0,#0                ; cannot use LDI which does an or operation
152
                bra             .st1
153
.st2:
154
                ldi             r2,#$AA
155
                sb              r2,LEDS                 ; write to LEDs
156
                bra             .st2
157
 
158
        ; First thing to do, LED status indicates core at least hit the reset
159
        ; vector.
160
.st1:
161
                ldi             r2,#$FF
162
                sb              r2,LEDS                 ; write to LEDs
163
 
164
                ; set trap vector
165
                ldi             r1,#$FFFC0000
166
                csrrw   r0,#$30,r1
167
                ldi             r31,#$FF401FF8  ; set stack pointer
168
 
169
                ; Enable interrupts
170
                sei             #0
171
 
172
                ldi             r1,#$00000              ; turn on SMT use $10000
173
                csrrs   r0,#0,r1
174
                add             r0,r0,#0                ; fetch adjustment ramp
175
                add             r0,r0,#0
176
                add             r0,r0,#0
177
                add             r0,r0,#0
178
                add             r0,r0,#0
179
                add             r0,r0,#0
180
                add             r0,r0,#0
181
                add             r0,r0,#0
182
                add             r0,r0,#0
183
                add             r0,r0,#0
184
                csrrd   r1,#$044,r0             ; which thread is running ?
185
                bfextu  r1,r1,#24,#24
186
                bne             r1,r0,.st2
187
 
188
                call    calltest3
189
 
190
;               ldi             r1,#16
191
;               vmov    vl,r1
192
;               ldi             r1,#$FFFF
193
;               vmov    vm0,r1
194
;               sync
195
;               lv              v1,vec1data
196
;               lv              v2,vec2data
197
;               vadd    v3,v1,v2,vm0
198
 
199
                ldi             r1,#MEDBLUE
200
                sh              r1,bkcolor              ; set text background color
201
                ldi             r1,#WHITE
202
                sh              r1,fgcolor              ; set foreground color
203
 
204
        ldi             r1,#$AAAA5555   ; pick some data to write
205
        ldi             r3,#0
206
        ldi             r4,#start1
207
start1:
208
        shr             r2,r1,#12
209
        sb              r2,LEDS                 ; write to LEDs
210
        add             r1,r1,#1
211
        add             r3,r3,#1
212
        cmp             r2,r3,#10       ; stop after a few cycles
213
;       bne             r2,r0,r4
214
 
215
        ; Initialize PRNG
216
                sw              r0,_randStream
217
                ldi             r6,#$FFDC0000
218
                sh              r0,$0C04[r6]                    ; select stream #0
219
                ldi             r1,#$88888888
220
                sh              r1,$0C08[r6]                    ; set initial m_z
221
                ldi             r1,#$01234567
222
                sh              r1,$0C0C[r6]                    ; set initial m_w
223
 
224
                ldi             r2,#6
225
                sb              r2,LEDS                 ; write to LEDs
226
                jal             r29,clearTxtScreen
227
                ldi             r4,#$0025
228
                sb              r4,LEDS
229
                jmp             _BIOSMain
230
start3:
231
                bra             start3
232
 
233
brkrout:
234
;               sub             sp,sp,#16
235
;               sw              r1,[sp]                 ; save off r1
236
;               sw              r23,8[sp]               ; save off assembler's working reg
237
                add             r0,r0,#0
238
        ; Set the interrupt level back to the interrupting level
239
        ; to allow nesting higher priority interrupts
240
                csrrd   r1,#$044,r0
241
                bfextu  r1,r1,#40,#42
242
                ;sei            r1
243
                lh              r1,milliseconds
244
                add             r1,r1,#1
245
                sh              r1,milliseconds
246
                ldi             r1,#$20000              ; sequence number reset bit
247
                csrrs   r0,#0,r1                ; pulse sn reset bit
248
                add             r0,r0,#0                ; now a ramp of instructions
249
                add             r0,r0,#0                ; that don't depend on sequence
250
                add             r0,r0,#0                ; number to operate properly
251
                add             r0,r0,#0
252
                add             r0,r0,#0
253
                add             r0,r0,#0
254
                add             r0,r0,#0
255
                add             r0,r0,#0
256
                add             r0,r0,#0
257
                add             r0,r0,#0
258
                add             r0,r0,#0
259
                add             r0,r0,#0
260
                add             r0,r0,#0
261
                add             r0,r0,#0
262
;               lw              r1,[sp]                 ; get r1 back
263
;               lw              r23,8[sp]
264
;               add             sp,sp,#16
265
                rti
266
 
267
calltest:
268
        sw              r1,$FF400000            ; 1
269
        add             r1,r1,#2                        ; 2
270
        lw              r1,$FF400000            ; 3
271
        ret
272
 
273
calltest1:
274
        sub             sp,sp,#8
275
        sw              lr,[sp]
276
        call    calltest
277
        lw              lr,[sp]
278
        add             sp,sp,#8
279
        ret
280
 
281
calltest2:
282
        sub             sp,sp,#8
283
        sw              lr,[sp]
284
        call    calltest1
285
        lw              lr,[sp]
286
        add             sp,sp,#8
287
        ret
288
 
289
calltest3:
290
        sub             sp,sp,#8
291
        sw              lr,[sp]
292
        call    calltest2
293
        lw              lr,[sp]
294
        add             sp,sp,#8
295
        ret
296
 
297
;------------------------------------------------------------------------------
298
; Set400x300 video mode.
299
;------------------------------------------------------------------------------
300
 
301
_Set400x300:
302
                sub             sp,sp,#8
303
                sw              r6,[sp]
304
                ldi             r6,#AVIC
305
                ldi             r1,#$0190012C   ; 400x300
306
                sh              r1,$7E8[r6]
307
                ldi             r1,#$00320001   ; 50 strips per line
308
                sh              r1,$7F0[r6]             ; set lowres = divide by 2
309
                lw              r6,[sp]
310
                add             sp,sp,#8
311
                ret
312
 
313
;------------------------------------------------------------------------------
314
; Get a random number, and generate the next number.
315
;
316
; Parameters:
317
;       r18 = random stream number.
318
; Returns:
319
;       r1 = random 32 bit number.
320
;------------------------------------------------------------------------------
321
 
322
_GetRand:
323
                sh              r18,$FFDC0C04   ; set the stream
324
                nop                                             ; delay a wee bit
325
                lhu             r1,$FFDC0C00    ; get a number
326
                sh              r0,$FFDC0C00    ; generate next number
327
                ret
328
 
329
;------------------------------------------------------------------------------
330
; Fill the display memory with bands of color.
331
;------------------------------------------------------------------------------
332
 
333
_ColorBandMemory2:
334
                push    r1
335
                push    r2
336
                push    r6
337
                ldi             r2,#7
338
                sb              r2,LEDS                 ; write to LEDs
339
                ldi             r6,#$100000
340
                mov             r18,r0
341
                call    _GetRand
342
.0002:
343
                sc              r1,[r6]
344
                sb              r1,LEDS
345
                add             r6,r6,#2
346
                and             r2,r6,#$3FF
347
                bne             r2,r0,.0001
348
                mov             r18,r0
349
                call    _GetRand
350
.0001:
351
                cmpu    r2,r6,#$200000
352
                blt             r2,r0,.0002
353
                ldi             r2,#8
354
                sb              r2,LEDS                 ; write to LEDs
355
                pop             r6
356
                pop             r2
357
                pop             r1
358
                ret
359
 
360
;------------------------------------------------------------------------------
361
; Copy font to AVIC ram
362
;
363
;------------------------------------------------------------------------------
364
 
365
_BootCopyFont:
366
                sub             $sp,$sp,#24
367
                sw              $r2,[$sp]
368
                sw              $r3,8[$sp]
369
                sw              $r6,16[$sp]
370
                ldi             r1,#$0004
371
                sb              r1,LEDS
372
                ldi             r6,#AVIC
373
 
374
                ; Setup font table
375
                ldi             r1,#$1FFFEFF0
376
                sh              r1,$6F0[r6]                     ; set font table address
377
                sh              r0,$6F4[r6]                     ; set font id (0)
378
                ldi             r1,#%10000111000001110000000000000000   ; set font fixed, width, height = 8
379
                sh              r1,$1FFFEFFC
380
                ldi             r1,#$1FFFF000           ; set bitmap address (directly follows font table)
381
                sh              r1,$1FFFEFF4
382
 
383
                ldi             r6,#font8
384
                ldi             r2,#127                         ; 128 chars @ 8 bytes per char
385
.0001:
386
                lw              r3,[r6+r2*8]
387
                sw              r3,[r1+r2*8]
388
                sub             r2,r2,#1
389
                bne             r2,r0,.0001
390
                ldi             r1,#$0005
391
                sb              r1,LEDS
392
                lw              $r2,[$sp]
393
                lw              $r3,8[$sp]
394
                lw              $r6,16[$sp]
395
                ret             #24
396
 
397
;------------------------------------------------------------------------------
398
;------------------------------------------------------------------------------
399
 
400
 
401
;------------------------------------------------------------------------------
402
; DispChar:
403
;
404
; Display character at cursor position. The current foreground color and
405
; background color are used.
406
;
407
; Parameters:
408
;       r18                     character to display
409
; Returns:
410
;       
411
; Registers Affected:
412
;       
413
;------------------------------------------------------------------------------
414
 
415
_DispChar:
416
                sub             $sp,$sp,#32
417
                sw              $r2,[$sp]
418
                sw              $r3,8[$sp]
419
                sw              $r6,16[$sp]
420
                sw              $r29,24[$sp]
421
 
422
                ldi             r6,#AVIC
423
                ldi             r4,#1016
424
.0001:
425
                                                                        ; wait for character que to empty
426
                lhu             r2,$6E8[r6]                     ; read character queue index into r2
427
                bgtu    r2,r4,.0001                     ; allow up 24 entries to be in progress
428
 
429
                lh              r3,fgcolor
430
                sh              r3,$6E0[r6]
431
                ldi             r3,#12                          ; 12 = set pen color
432
                sh              r3,$6E4[r6]
433
                sh              r0,$6E8[r6]                     ; queue
434
 
435
                lh              r3,bkcolor
436
                sh              r3,$6E0[r6]
437
                ldi             r3,#13                          ; 13 = set fill color
438
                sh              r3,$6E4[r6]
439
                sh              r0,$6E8[r6]                     ; queue
440
 
441
                lhu             r3,_DBGCursorCol
442
                shl             r3,r3,#19                       ; multiply by eight and convert to fixed (multiply by 65536)
443
                sh              r3,$6E0[r6]
444
                ldi             r3,#16                          ; 16 = set X0 pos
445
                sh              r3,$6E4[r6]
446
                sh              r0,$6E8[r6]                     ; queue
447
 
448
                lhu             r3,_DBGCursorRow
449
                shl             r3,r3,#19
450
                sh              r3,$6E0[r6]
451
                ldi             r3,#17                          ; 17 = set Y0 pos
452
                sh              r3,$6E4[r6]
453
                sh              r0,$6E8[r6]                     ; queue
454
 
455
                sh              r18,$6E0[r6]            ; data = character code
456
                ldi             r3,#0                           ; 0 = draw character
457
                sh              r3,$6E4[r6]
458
                sh              r0,$6E8[r6]                     ; queue
459
 
460
                call    _SyncCursorPos
461
                lw              $r2,[$sp]
462
                lw              $r3,8[$sp]
463
                lw              $r6,16[$sp]
464
                lw              $r29,24[$sp]
465
                ret             #32
466
 
467
;----------------------------------------------------------------------------
468
;----------------------------------------------------------------------------
469
_SyncCursorPos:
470
                sub             $sp,$sp,#24
471
                sw              $r2,[$sp]
472
                sw              $r3,8[$sp]
473
                sw              $r6,16[$sp]
474
                ldi             r6,#AVIC
475
                lhu             r2,_DBGCursorCol
476
                lhu             r3,_DBGCursorRow
477
                shl             r3,r3,#3
478
                add             r3,r3,#28
479
                shl             r3,r3,#16
480
                shl             r2,r2,#3
481
                add             r2,r2,#256
482
                or              r2,r2,r3
483
                sh              r2,$408[r6]                     ;
484
                lw              $r2,[$sp]
485
                lw              $r3,8[$sp]
486
                lw              $r6,16[$sp]
487
                ret             #24
488
 
489
;----------------------------------------------------------------------------
490
;----------------------------------------------------------------------------
491
_EnableCursor:
492
                push    r2
493
                push    r3
494
                push    r6
495
 
496
                ldi             r6,#AVIC
497
                ldi             r2,#$FFFFFFFF
498
                sh              r2,$7B0[a6]             ; enable sprite #0
499
                pop             r6
500
                pop             r3
501
                pop             r2
502
                ret
503
 
504
;----------------------------------------------------------------------------
505
; Setup the sprite color palette. The palette is loaded with random colors.
506
;----------------------------------------------------------------------------
507
 
508
_SetCursorPalette:
509
                sub             sp,sp,#24
510
                sw              r2,[sp]
511
                sw              r6,8[sp]
512
                sw              r7,16[sp]
513
                ldi             r6,#AVIC
514
                ldi             r2,#WHITE
515
                sh              r2,4[r6]                                ; palette entry #1
516
                ldi             r2,#%111110000000000    ; RED
517
                sh              r2,8[r6]                                ; palette entry #2
518
                ldi             r7,#12
519
.0001:
520
                mov             r18,r0
521
                call    _GetRand
522
                and             r1,r1,#$7FFF
523
                sh              r1,[r6+r7]
524
                add             r7,r7,#4
525
                cmp             r2,r7,#$400
526
                blt             r2,r0,.0001
527
                lw              r2,[sp]
528
                lw              r6,8[sp]
529
                lw              r7,16[sp]
530
                add             sp,sp,#24
531
                ret
532
 
533
;----------------------------------------------------------------------------
534
; Establish a default image for all the sprites.
535
;----------------------------------------------------------------------------
536
 
537
_SetCursorImage:
538
                push    r2
539
                push    r3
540
                push    r4
541
                push    r5
542
                push    r6
543
                push    r7
544
 
545
                ldi             r6,#AVIC
546
                ldi             r7,#$400
547
.0002:
548
                ldi             r2,#$1FFEE000
549
                sh              r2,[r6+r7]              ; sprite image address
550
                add             r7,r7,#4                ; advance to next field
551
                ldi             r2,#30*32                       ; number of pixels
552
                sh              r2,[r6+r7]              ;
553
                add             r7,r7,#12               ; next sprite
554
                cmp             r2,r7,#$600
555
                bne             r2,r0,.0002
556
 
557
                ldi             r2,#$1FFEE000
558
                ldi             r3,#_XImage
559
                ldi             r5,#30
560
.0001:
561
                lw              r4,8[r3]        ; swap the order of the words around
562
                sw              r4,[r2]
563
                lw              r4,[r3]
564
                sw              r4,8[r2]
565
                add             r3,r3,#16
566
                add             r2,r2,#16
567
                sub             r5,r5,#1
568
                bne             r5,r0,.0001
569
 
570
                pop             r7
571
                pop             r6
572
                pop             r5
573
                pop             r4
574
                pop             r3
575
                pop             r2
576
                ret
577
 
578
        align   8
579
_CursorBoxImage:
580
        dw              $1111111111000000,$00
581
        dw              $1000000001000000,$00
582
        dw              $1000000001000000,$00
583
        dw              $1000000001000000,$00
584
        dw              $1000000001000000,$00
585
        dw              $1000000001000000,$00
586
        dw              $1000000001000000,$00
587
        dw              $1000000001000000,$00
588
        dw              $1000110001000000,$00
589
        dw              $1111111111000000,$00
590
 
591
; Higher order word appears later in memory but is displayed first. So the
592
; order of these words are swapped around above. To make it convenient to
593
; define the sprite image.
594
 
595
_XImage:
596
        dw              $1122222222222222,$2222222222222211
597
        dw              $2110000000000000,$0000000000000112
598
        dw              $2011000000000000,$0000000000001102
599
        dw              $2001100000000000,$0000000000011002
600
        dw              $2000110000000000,$0000000000110002
601
        dw              $2000011000000000,$0000000001100002
602
        dw              $2000001100000000,$0000000011000002
603
        dw              $2000000110000000,$0000000110000002
604
        dw              $2000000011000000,$0000001100000002
605
        dw              $2000000001100000,$0000011000000002
606
        dw              $2000000000110000,$0000110000000002
607
        dw              $2000000000011009,$0901100000000002
608
        dw              $2000000000001100,$0011000000000002
609
        dw              $2000000000000110,$0110000000000002
610
        dw              $2000000000000011,$1100000000000002
611
        dw              $2000000000000011,$1100000000000002
612
        dw              $2000000000000110,$0110000000000002
613
        dw              $2000000000001100,$0011000000000002
614
        dw              $2000000000011009,$0901100000000002
615
        dw              $2000000000110000,$0000110000000002
616
        dw              $2000000001100000,$0000011000000002
617
        dw              $2000000011000000,$0000001100000002
618
        dw              $2000000110000000,$0000000110000002
619
        dw              $2000001100000000,$0000000011000002
620
        dw              $2000011000000000,$0000000001100002
621
        dw              $2000110000000000,$0000000000110002
622
        dw              $2001100000000000,$0000000000011002
623
        dw              $2011000000000000,$0000000000001102
624
        dw              $2110000000000000,$0000000000000112
625
        dw              $1122222222222222,$2222222222222211
626
 
627
;----------------------------------------------------------------------------
628
;----------------------------------------------------------------------------
629
_RandomizeSpritePositions2:
630
                push    r1
631
                push    r6
632
                push    r7
633
                ldi             r6,#AVIC
634
                ldi             r7,#$408
635
.0001:
636
                mov             r18,r0
637
                call    _GetRand
638
                and             r1,r1,#$00FF00FF
639
                add             r1,r1,#$000E0080        ; add +28 to y and +256 to x
640
                sh              r1,[r6+r7]
641
                add             r7,r7,#$10                      ; advance to next sprite
642
                cmp             r1,r7,#$5F8
643
                blt             r1,r0,.0001
644
                pop             r7
645
                pop             r6
646
                pop             r1
647
                ret
648
 
649
;----------------------------------------------------------------------------
650
;----------------------------------------------------------------------------
651
clearTxtScreen:
652
                ldi             r4,#$0024
653
                sb              r4,LEDS
654
                ldi             r1,#$FFD00000   ; text screen address
655
                ldi             r2,#24          ; number of chars 2480 (80x31)
656
                ldi             r3,#%000010000_111111111_0000100000
657
.cts1:
658
                sh              r3,[r1]
659
                add             r1,r1,#4
660
                sub             r2,r2,#1
661
                bne             r2,r0,.cts1
662
                ret
663
 
664
;===============================================================================
665
;===============================================================================
666
;===============================================================================
667
;===============================================================================
668
        align   16
669
font8:
670
        db      $00,$00,$00,$00,$00,$00,$00,$00 ; $00
671
        db      $00,$00,$00,$00,$00,$00,$00,$00 ;
672
        db      $00,$00,$00,$00,$00,$00,$00,$00 ;
673
        db      $00,$00,$00,$00,$00,$00,$00,$00 ;
674
        db      $00,$00,$00,$00,$00,$00,$00,$00 ; $04
675
        db      $00,$00,$00,$00,$00,$00,$00,$00 ;
676
        db      $00,$00,$00,$00,$00,$00,$00,$00 ;
677
        db      $00,$00,$00,$00,$00,$00,$00,$00 ;
678
        db      $00,$00,$00,$00,$00,$00,$00,$00 ; $08
679
        db      $00,$00,$00,$00,$00,$00,$00,$00 ;
680
        db      $00,$00,$00,$00,$00,$00,$00,$00 ;
681
        db      $00,$00,$00,$00,$00,$00,$00,$00 ;
682
        db      $00,$00,$00,$00,$00,$00,$00,$00 ; $0C
683
        db      $00,$00,$00,$00,$00,$00,$00,$00 ;
684
        db      $00,$00,$00,$00,$00,$00,$00,$00 ;
685
        db      $00,$00,$00,$00,$00,$00,$00,$00 ;
686
        db      $00,$00,$00,$00,$00,$00,$00,$00 ; $10
687
        db      $00,$00,$00,$00,$00,$00,$00,$00 ;
688
        db      $00,$00,$00,$00,$00,$00,$00,$00 ;
689
        db      $00,$00,$00,$00,$00,$00,$00,$00 ;
690
        db      $00,$00,$00,$00,$00,$00,$00,$00 ; $14
691
        db      $00,$00,$00,$00,$00,$00,$00,$00 ;
692
        db      $00,$00,$00,$00,$00,$00,$00,$00 ;
693
        db      $00,$00,$00,$00,$00,$00,$00,$00 ;
694
        db      $00,$00,$00,$00,$00,$00,$00,$00 ; $18
695
        db      $00,$00,$00,$00,$00,$00,$00,$00 ;
696
        db      $00,$00,$00,$00,$00,$00,$00,$00 ;
697
        db      $00,$00,$00,$00,$00,$00,$00,$00 ;
698
        db      $00,$00,$00,$00,$00,$00,$00,$00 ; $1C
699
        db      $00,$00,$00,$00,$00,$00,$00,$00 ;
700
        db      $00,$00,$00,$00,$00,$00,$00,$00 ;
701
        db      $00,$00,$00,$00,$00,$00,$00,$00 ;
702
        db      $00,$00,$00,$00,$00,$00,$00,$00 ; SPACE
703
        db      $18,$18,$18,$18,$18,$00,$18,$00 ; !
704
        db      $6C,$6C,$00,$00,$00,$00,$00,$00 ; "
705
        db      $6C,$6C,$FE,$6C,$FE,$6C,$6C,$00 ; #
706
        db      $18,$3E,$60,$3C,$06,$7C,$18,$00 ; $
707
        db      $00,$66,$AC,$D8,$36,$6A,$CC,$00 ; %
708
        db      $38,$6C,$68,$76,$DC,$CE,$7B,$00 ; &
709
        db      $18,$18,$30,$00,$00,$00,$00,$00 ; '
710
        db      $0C,$18,$30,$30,$30,$18,$0C,$00 ; (
711
        db      $30,$18,$0C,$0C,$0C,$18,$30,$00 ; )
712
        db      $00,$66,$3C,$FF,$3C,$66,$00,$00 ; *
713
        db      $00,$18,$18,$7E,$18,$18,$00,$00 ; +
714
        db      $00,$00,$00,$00,$00,$18,$18,$30 ; ,
715
        db      $00,$00,$00,$7E,$00,$00,$00,$00 ; -
716
        db      $00,$00,$00,$00,$00,$18,$18,$00 ; .
717
        db      $03,$06,$0C,$18,$30,$60,$C0,$00 ; /
718
        db      $3C,$66,$6E,$7E,$76,$66,$3C,$00 ; 0
719
        db      $18,$38,$78,$18,$18,$18,$18,$00 ; 1
720
        db      $3C,$66,$06,$0C,$18,$30,$7E,$00 ; 2
721
        db      $3C,$66,$06,$1C,$06,$66,$3C,$00 ; 3
722
        db      $1C,$3C,$6C,$CC,$FE,$0C,$0C,$00 ; 4
723
        db      $7E,$60,$7C,$06,$06,$66,$3C,$00 ; 5
724
        db      $1C,$30,$60,$7C,$66,$66,$3C,$00 ; 6
725
        db      $7E,$06,$06,$0C,$18,$18,$18,$00 ; 7
726
        db      $3C,$66,$66,$3C,$66,$66,$3C,$00 ; 8
727
        db      $3C,$66,$66,$3E,$06,$0C,$38,$00 ; 9
728
        db      $00,$18,$18,$00,$00,$18,$18,$00 ; :
729
        db      $00,$18,$18,$00,$00,$18,$18,$30 ; ;
730
        db      $00,$06,$18,$60,$18,$06,$00,$00 ; <
731
        db      $00,$00,$7E,$00,$7E,$00,$00,$00 ; =
732
        db      $00,$60,$18,$06,$18,$60,$00,$00 ; >
733
        db      $3C,$66,$06,$0C,$18,$00,$18,$00 ; ?
734
        db      $7C,$C6,$DE,$D6,$DE,$C0,$78,$00 ; @
735
        db      $3C,$66,$66,$7E,$66,$66,$66,$00 ; A
736
        db      $7C,$66,$66,$7C,$66,$66,$7C,$00 ; B
737
        db      $1E,$30,$60,$60,$60,$30,$1E,$00 ; C
738
        db      $78,$6C,$66,$66,$66,$6C,$78,$00 ; D
739
        db      $7E,$60,$60,$78,$60,$60,$7E,$00 ; E
740
        db      $7E,$60,$60,$78,$60,$60,$60,$00 ; F
741
        db      $3C,$66,$60,$6E,$66,$66,$3E,$00 ; G
742
        db      $66,$66,$66,$7E,$66,$66,$66,$00 ; H
743
        db      $3C,$18,$18,$18,$18,$18,$3C,$00 ; I
744
        db      $06,$06,$06,$06,$06,$66,$3C,$00 ; J
745
        db      $C6,$CC,$D8,$F0,$D8,$CC,$C6,$00 ; K
746
        db      $60,$60,$60,$60,$60,$60,$7E,$00 ; L
747
        db      $C6,$EE,$FE,$D6,$C6,$C6,$C6,$00 ; M
748
        db      $C6,$E6,$F6,$DE,$CE,$C6,$C6,$00 ; N
749
        db      $3C,$66,$66,$66,$66,$66,$3C,$00 ; O
750
        db      $7C,$66,$66,$7C,$60,$60,$60,$00 ; P
751
        db      $78,$CC,$CC,$CC,$CC,$DC,$7E,$00 ; Q
752
        db      $7C,$66,$66,$7C,$6C,$66,$66,$00 ; R
753
        db      $3C,$66,$70,$3C,$0E,$66,$3C,$00 ; S
754
        db      $7E,$18,$18,$18,$18,$18,$18,$00 ; T
755
        db      $66,$66,$66,$66,$66,$66,$3C,$00 ; U
756
        db      $66,$66,$66,$66,$3C,$3C,$18,$00 ; V
757
        db      $C6,$C6,$C6,$D6,$FE,$EE,$C6,$00 ; W
758
        db      $C3,$66,$3C,$18,$3C,$66,$C3,$00 ; X
759
        db      $C3,$66,$3C,$18,$18,$18,$18,$00 ; Y
760
        db      $FE,$0C,$18,$30,$60,$C0,$FE,$00 ; Z
761
        db      $3C,$30,$30,$30,$30,$30,$3C,$00 ; [
762
        db      $C0,$60,$30,$18,$0C,$06,$03,$00 ; \
763
        db      $3C,$0C,$0C,$0C,$0C,$0C,$3C,$00 ; ]
764
        db      $10,$38,$6C,$C6,$00,$00,$00,$00 ; ^
765
        db      $00,$00,$00,$00,$00,$00,$00,$FE ; _
766
        db      $18,$18,$0C,$00,$00,$00,$00,$00 ; `
767
        db      $00,$00,$3C,$06,$3E,$66,$3E,$00 ; a
768
        db      $60,$60,$7C,$66,$66,$66,$7C,$00 ; b
769
        db      $00,$00,$3C,$60,$60,$60,$3C,$00 ; c
770
        db      $06,$06,$3E,$66,$66,$66,$3E,$00 ; d
771
        db      $00,$00,$3C,$66,$7E,$60,$3C,$00 ; e
772
        db      $1C,$30,$7C,$30,$30,$30,$30,$00 ; f
773
        db      $00,$00,$3E,$66,$66,$3E,$06,$3C ; g
774
        db      $60,$60,$7C,$66,$66,$66,$66,$00 ; h
775
        db      $18,$00,$18,$18,$18,$18,$0C,$00 ; i
776
        db      $0C,$00,$0C,$0C,$0C,$0C,$0C,$78 ; j
777
        db      $60,$60,$66,$6C,$78,$6C,$66,$00 ; k
778
        db      $18,$18,$18,$18,$18,$18,$0C,$00 ; l
779
        db      $00,$00,$EC,$FE,$D6,$C6,$C6,$00 ; m
780
        db      $00,$00,$7C,$66,$66,$66,$66,$00 ; n
781
        db      $00,$00,$3C,$66,$66,$66,$3C,$00 ; o
782
        db      $00,$00,$7C,$66,$66,$7C,$60,$60 ; p
783
        db      $00,$00,$3E,$66,$66,$3E,$06,$06 ; q
784
        db      $00,$00,$7C,$66,$60,$60,$60,$00 ; r
785
        db      $00,$00,$3C,$60,$3C,$06,$7C,$00 ; s
786
        db      $30,$30,$7C,$30,$30,$30,$1C,$00 ; t
787
        db      $00,$00,$66,$66,$66,$66,$3E,$00 ; u
788
        db      $00,$00,$66,$66,$66,$3C,$18,$00 ; v
789
        db      $00,$00,$C6,$C6,$D6,$FE,$6C,$00 ; w
790
        db      $00,$00,$C6,$6C,$38,$6C,$C6,$00 ; x
791
        db      $00,$00,$66,$66,$66,$3C,$18,$30 ; y
792
        db      $00,$00,$7E,$0C,$18,$30,$7E,$00 ; z
793
        db      $0E,$18,$18,$70,$18,$18,$0E,$00 ; {
794
        db      $18,$18,$18,$18,$18,$18,$18,$00 ; |
795
        db      $70,$18,$18,$0E,$18,$18,$70,$00 ; }
796
        db      $72,$9C,$00,$00,$00,$00,$00,$00 ; ~
797
        db      $FE,$FE,$FE,$FE,$FE,$FE,$FE,$00 ;
798
 
799
        align   8
800
tblvect:
801
        dw      0
802
        dw      1
803
        dw      2
804
        dw      3
805
        dw      4
806
        dw      5
807
        dw      6
808
        dw      7
809
        dw      8
810
        dw      9
811
        dw      10
812
        dw      11
813
        dw      12
814
        dw      13
815
        dw      14
816
        dw      15
817
 
818
vec1data:
819
        dw      1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
820
vec2data:
821
        dw      2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
822
 
823
.include "c:\Cores5\FT64\trunk\software\boot\BIOSMain.s"
824
.include "c:\Cores5\FT64\trunk\software\boot\FloatTest.s"
825
.include "c:\Cores5\FT64\trunk\software\boot\ramtest.s"
826
.include "c:\Cores5\FT64\trunk\software\c64libc\source\stdio.s"
827
.include "c:\Cores5\FT64\trunk\software\c64libc\source\ctype.s"
828
.include "c:\Cores5\FT64\trunk\software\c64libc\source\string.s"
829
.include "c:\Cores5\FT64\trunk\software\c64libc\source\DSD9\io.s"
830
.include "c:\Cores5\FT64\trunk\software\c64libc\source\prtflt.s"
831
.include "c:\Cores5\FT64\trunk\software\c64libc\source\libquadmath\log10q.s"
832
.include "c:\Cores5\FT64\trunk\software\FMTK\source\kernel\LockSemaphore.s"
833
.include "c:\Cores5\FT64\trunk\software\FMTK\source\kernel\UnlockSemaphore.s"
834
.include "c:\Cores5\FT64\trunk\software\FMTK\source\kernel\console.s"
835
.include "c:\Cores5\FT64\trunk\software\FMTK\source\kernel\PIC.s"
836
.include "c:\Cores5\FT64\trunk\software\FMTK\source\kernel\FMTKc.s"
837
.include "c:\Cores5\FT64\trunk\software\FMTK\source\kernel\FMTKmsg.s"
838
.include "c:\Cores5\FT64\trunk\software\FMTK\source\kernel\TCB.s"
839
.include "c:\Cores5\FT64\trunk\software\FMTK\source\kernel\IOFocusc.s"
840
.include "c:\Cores5\FT64\trunk\software\bootrom\source\video.asm"
841
.include "c:\Cores5\FT64\trunk\software\bootrom\source\TinyBasicDSD9.asm"
842
 
843
 

powered by: WebSVN 2.1.0

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