Hi All,
I've been digging into assembly language programming on the M100 and the
documentation is fragmented, to say the least and so progress is stilted
a bit. I've made significant progress on the programming toolchain -
CP/M is great for this. It gives a rational file system, ed, asm, load,
ddt, a way to run the app, a way to display the source, listings, etc.
VEDIT is available as a visual editor, but editing on a host and running
on CP/M is workable and fast. I've also gotten MAC, RMAC, and LINK
working which is nice.
CP/M provides functions that are callable in assembly code and I've made
good progress on how to make CP/M work for simple I/O and File I/O. But,
the M100 has features, like the LCD, the serial and parallel ports, etc.
that make it unique. Is the assembly language CP/M programmer left on
their own to interface with these devices or are they given access to
something akin to BIOS (maybe the ROM functions) to make it easier?
Say that I want to place a pixel, or draw a line, or whatnot. Does CP/M
have any machine level routines to call, or what? Can I call the ROM
routines from CP/M? I saw some trampoline code on the wiki, some
language saying that it was tricky to do, a pointer to some old docs,
etc. Is that the way forward - call the main rom from CP/M as described
in
https://bitchin100.com/wiki/index.php?title=Calling_the_Main_ROM_from_Option_ROM,
or, is it a matter of programming the ports?
On the one hand, my questions are simple - how do I put a pixel on the
screen at a give location and erase it when I want to? With minimal
fuss. On the other hand, I'm curious about how CP/M and the M100 coexist
and what overlap exists between the two when CP/M is active.
Thanks,
Will
- [M100] CP/M and stuff like the LCD screen Will Senn
-