mirror of
https://github.com/cc65/cc65.git
synced 2025-04-06 20:37:16 +00:00
Completing OSI documentation.
This commit is contained in:
parent
88249a2125
commit
da8ec4f7b1
@ -513,6 +513,75 @@ directory notePad. Look at the eight file-positions on each page until you see
|
||||
The output is shown in a GEOS dialog box; click <bf/OK/ when you have finished
|
||||
reading it.
|
||||
|
||||
<sect1>Ohio Scientific Challenger 1P<p>
|
||||
Available at <url url="http://www.pcjs.org/docs/c1pjs/" name="C1Pjs">:
|
||||
|
||||
Emulates the Ohio Scientific Challenger 1P computer in different configurations.
|
||||
The 32 kb RAM machine that must be used with the default compiler settings is
|
||||
<url url="http://www.pcjs.org/devices/c1p/machine/32kb/" name="here">.
|
||||
|
||||
In addition the srec_cat program from the
|
||||
<url url="http://srecord.sourceforge.net/" name="SRecord">
|
||||
tool collection must be installed. Some Linux distributions also provide the
|
||||
srecord package that can be installed directly from the distribution's
|
||||
repository.
|
||||
|
||||
The osic1p runtime library directly returns to the boot prompt when the
|
||||
main() program exits. Therefore the C file in the tutorial must be slightly
|
||||
modified in order to see the results on the screen. Otherwise the program
|
||||
would print the text string and then jump to the boot prompt, making it
|
||||
impossible to see the results of running the tutorial program.
|
||||
|
||||
In addition to that the cc65 target does not yet have support for stdio
|
||||
functions. Only the functions from the conio library are available.
|
||||
|
||||
Therefore modify the main() function in hello.c as follows:
|
||||
|
||||
<tscreen>
|
||||
#include <conio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
extern const char text[]; /* In text.s */
|
||||
|
||||
int main (void)
|
||||
{
|
||||
clrscr();
|
||||
cprintf ("%s\r\nPress <RETURN>\r\n", text);
|
||||
cgetc();
|
||||
return EXIT_SUCCESS;
|
||||
}
|
||||
</tscreen>
|
||||
|
||||
Compile the tutorial with
|
||||
|
||||
<tscreen><verb>
|
||||
cl65 -O -t osic1p hello.c text.s
|
||||
</verb></tscreen>
|
||||
|
||||
Convert the executable file into a text file that can be loaded via
|
||||
the Ohio Scientific 65V PROM monitor at start address 0x200:
|
||||
|
||||
<tscreen><verb>
|
||||
srec_cat hello -binary -offset 0x200 -o hello.c1p -Ohio_Scientific -execution-start-address=0x200
|
||||
</verb></tscreen>
|
||||
|
||||
Open the URL <url url="http://www.pcjs.org/devices/c1p/machine/32kb/" name="http://www.pcjs.org/devices/c1p/machine/32kb/">
|
||||
in your browser and wait until the emulator is loaded. Click on the BREAK
|
||||
button to display the boot prompt, then press the M key to enter the
|
||||
65V PROM monitor. Press the "Choose File" button and select the hello.c1p
|
||||
that was created as the output of the above invocation of the srec_cat
|
||||
command. Press the "Load" button. You should see the following text on the
|
||||
screen:
|
||||
|
||||
<tscreen><verb>
|
||||
Hello world!
|
||||
Press <RETURN>
|
||||
</verb></tscreen>
|
||||
|
||||
After hitting the RETURN key you should see the boot prompt again.
|
||||
|
||||
The program can also be uploaded over the serial port to a real Challenger 1P
|
||||
computer.
|
||||
|
||||
<sect1>Contributions wanted<p>
|
||||
|
||||
|
30
doc/osi.sgml
30
doc/osi.sgml
@ -79,7 +79,7 @@ Special locations:
|
||||
<tag/Video RAM/
|
||||
The 1 kB video RAM is located at $D000. On the monitor only a subset
|
||||
of the available video RAM is visible. The address of the upper left corner
|
||||
of the visible area is $dollar;D085 and corresponds to conio cursor
|
||||
of the visible area is $D085 and corresponds to conio cursor
|
||||
position (0, 0).
|
||||
|
||||
</descrip><p>
|
||||
@ -91,12 +91,38 @@ Example for building a program with start address $0300, stack size
|
||||
cl65 --start-addr 0x300 -Wl -D,__HIMEM__=$2000,-D,__STACKSIZE__=$0300 -t osic1p hello.c
|
||||
</tscreen>
|
||||
|
||||
<sect>Linker configurations<p>
|
||||
|
||||
The ld65 linker comes with a default config file "osic1p.cfg" for the Ohio Scientific
|
||||
Challenger 1P, which is implicitly used via <tt/-t osic1p/. The
|
||||
osic1p package comes with additional secondary linker config files, which are
|
||||
used via <tt/-t osic1p -C <configfile>/.
|
||||
|
||||
<sect1>default config file (<tt/osic1p.cfg/)<p>
|
||||
|
||||
The default configuration is tailored to C programs.
|
||||
|
||||
<sect1><tt/osic1p-asm.cfg/<p>
|
||||
|
||||
This configuration is made for assembler programmers who don't need a special
|
||||
setup.
|
||||
|
||||
To use this config file, assemble with <tt/-t osic1p/ and link with
|
||||
<tt/-C osic1p-asm.cfg/. The former will make sure that correct runtime library
|
||||
is used, while the latter supplies the actual config. When using <tt/cl65/,
|
||||
use both command line options.
|
||||
|
||||
Sample command line for <tt/cl65/:
|
||||
|
||||
<tscreen><verb>
|
||||
cl65 -o program -t osic1p -C osic1p-asm.cfg source.s
|
||||
</verb></tscreen>
|
||||
|
||||
<sect>Platform-specific header files<p>
|
||||
|
||||
Programs containing Ohio Scientific-specific code may use the <tt/osic1p.h/
|
||||
header file.
|
||||
|
||||
|
||||
<sect1>Ohio Scientific-specific functions<p>
|
||||
|
||||
There are currently no special Ohio Scientific functions.
|
||||
|
Loading…
x
Reference in New Issue
Block a user