|
4 | 4 |
|
5 | 5 | ## Introduction |
6 | 6 |
|
7 | | -Orix is designed to work with ORICHD (telestrat) and Twilighte card (atmos). See : http://orix.oric.org |
| 7 | +Orix is designed to work with ORICHD (telestrat) and Twilighte board (atmos). See : http://orix.oric.org |
8 | 8 |
|
9 | | -Some code is done by Fabrice Broche (60%) and Jede (40%). Anyway, all minitel and FDC routines had been removed |
| 9 | +Some code is done by Fabrice Broche (50%) and Jede (50%). Anyway, all minitel and FDC routines had been removed |
10 | 10 |
|
11 | 11 | Assembler : ca65 |
12 | 12 | CPU : 6502 & 65C02 (but 65C02 not tested) |
13 | 13 |
|
| 14 | +# How to compile |
| 15 | + |
| 16 | +Bank 8 (extended) is managed with bpm tool |
| 17 | + |
| 18 | +make |
| 19 | + |
| 20 | +Or for local development |
| 21 | + |
| 22 | +sh run.sh |
| 23 | + |
14 | 24 | ## How to use it ? |
15 | 25 |
|
16 | 26 | This kernel is a set of primitives to displays string, open/close/write files ... |
17 | 27 |
|
18 | 28 | You need at least "shell" bank to use this kernel |
19 | 29 |
|
20 | | -## Build option |
| 30 | +## Documentation |
| 31 | + |
| 32 | +[Kernel Primitives Documentation](https://orix-software.github.io/developer_manual/kernel/primitives/) |
21 | 33 |
|
22 | 34 | ### Root file on sdcard |
23 | 35 |
|
24 | 36 | Pass to ca65 command line : -DWITH_SDCARD_FOR_ROOT=1 |
25 | 37 | or else it will reads en usb key |
26 | 38 |
|
27 | | -here is the list of available "compile option" |
28 | | - |
29 | | -* CPU_65C02 |
30 | | -* WITH_MULTITASKING |
31 | | -* WITH_ACIA |
32 | | -* WITH_DEBUG : In that case, somes primitives send their debug to printer with a help of kdebug ROM. |
33 | | -* WITH_TWILIGHTE_BOARD |
34 | | - |
35 | 39 | ## How does it starts |
36 | 40 |
|
37 | 41 | * Kernel tries to start binary set in his rom label 'str_binary_to_start' |
38 | 42 | * it allocates a process struct (first malloc) |
39 | 43 | * and register it in processlist |
40 | 44 |
|
41 | | - |
42 | | -## generate .inc |
43 | | - |
44 | | -MEMORY { |
45 | | - #... |
46 | | - |
47 | | - KRNL1: file = "kernel.rom", start = $C000, size = $3FFF; |
48 | | - KRNL2: file = "kernel2.rom", start =$C000, size = $3FFF; |
49 | | - INCL: file="kernel2.inc", start=$0000, size = $FFFF; |
50 | | -} |
51 | | -SEGMENTS { |
52 | | - # ... |
53 | | - KERNEL: load = KRNL1, type = ro, define = yes, optional = yes; |
54 | | - EXTEND: load = KRNL2, type = ro, define = yes, optional = yes; |
55 | | - INCLUDE: load = INCL, optional = yes; |
56 | | -} |
57 | | - |
58 | | - |
59 | | - |
60 | | - |
61 | | -.feature org_per_seg |
62 | | -.pushseg |
63 | | - .segment "EXTEND" |
64 | | - .org $C000 ; |
65 | | - |
66 | | - |
67 | | - ; .segment "KERNEL" |
68 | | - ; .org $C000 |
69 | | - |
70 | | - |
71 | | -.popseg |
72 | | -Macro |
73 | | - |
74 | | - |
75 | | -.macro addsym symbole |
76 | | - .pushseg |
77 | | - .segment "INCLUDE" |
78 | | - .byte .sprintf("%s = $%x", .string(symbole), symbole) |
79 | | - .popseg |
80 | | -.endmacro |
81 | | - |
82 | | -Et enfin, pour ajouter un symbole dans le fichier .inc: |
83 | | - |
84 | | -.proc xvalue_routine |
85 | | - lda #$00 |
86 | | - .... |
87 | | -.endproc |
88 | | - |
89 | | -addsym xvalue_routine |
0 commit comments