-
Notifications
You must be signed in to change notification settings - Fork 0
/
Technical_info.txt
91 lines (64 loc) · 3.2 KB
/
Technical_info.txt
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
BASICloader Technical info
(c) 2017
In development, don't use it yet
== Memory maps ==
The old 8-bit machines typically rely on the programmer to manage the memory
map. Neither BASICloader nor the program emitted by it can ensure that your
memory map is laid out sensibly, with no overlaps.
You will need to study the memory map of the target machine precisely.
For the coco and dragon targets, you must consider what will be the minimum
amount of RAM for your target machine.
Generally, you should only be using BASICloader on machine language blobs
that you have created yourself.
== The --verify option ==
A program that is created with the -y or --verify option will read every
memory location after writing it. This can be useful to detect when memory
writes are failing for some reason (such as having an insufficient amount
of RAM).
However, all of the target machines use memory mapping to allocate memory
areas to, for example, the operating system and BASIC interpreter. While
the BASIC program is running, these things will be mapped in and so the
verification process will fail if you are writing into those areas.
Yet, if your machine language program correctly swaps the memory map around
once it starts, it would have worked just fine, even though the verification
process would have failed.
Please use the --verify option only if you are quite sure of what you are
doing.
== The Coco 3 ==
The Color Computer 3 can have up to 512 kilobytes of RAM. However, BASICloader
will only construct the machine language program and execute it within the
first 64 kilobytes. If your code needs more than that, it will have to do its
own memory management once the machine language blob is being executed.
BASICloader only works within the first 64 kilobytes of RAM. RAM extender
type hardware is not supported directly.
== Emitted instructions ==
For the coco with Extended Color BASIC
* the emitted program will contain a CLEAR command
For the dragon:
* the emitted program will contain a CLEAR command
For the c64 target:
* the emitted program will adjust the MEMSIZE variable
The emitted program will also include:
* (for coco) an EXEC command
* (for dragon) an EXEC command
* (for c64) a SYS command
== Concerning the Dragon and PRG file formats ==
The RS-DOS, Dragon DOS, and Commodore 64 PRG file formats specify a start
location. RS-DOS and Dragon DOS file formats also specify an exec location.
BASICloader will read and use these.
== Concerning the PRG file format ==
Most machine language programs on the Commodore 64 are in fact hybrids of
BASIC and machine language. They are intended to be run like this:
LOAD "*",8,1
RUN
These files cannot be used with BASICloader, since they would overwrite
the loader program.
== Use of the output with VICE ==
Use the --case lower option to generate lowercase output. You can then
paste the output directly into the VICE emulation window, or inspect it
from the emulated Commodore 64 as a raw text file if you use the "File
system directory" feature with "Enable IEC Device" switched on.
== Use of the output with petcat ==
petcat requires lowercase input, so use the --case lower option. The
README.txt file contains the appropriate commands to build and run a
.D64 disk image.