Hi,
EDIT
I like this mixed method, as seems simple to follow,
* save vars, supervisor mode.
* link flipper routine as single item in interrupt polled list.
* once display of image area is finished, game engine can be executed.
* In case of needing QDOS, interrupt, sys.sysvars shall be recovered to initial QL state.
Also not all graphics need be interlaced. H/W flipping could also be useful for smooth sequence animations, flip can be done every second or so, or on user interaction, while we can draw in the inactive screen.
Does the ported game engine for Level 9 adventures require QDOS?
I believe yes and quite often, this is a guide by the author on porting.
https://github.com/SinclairQL/level9/bl ... orting.txt
Most I/O functions work on QL as generic, because they have equivalent in C68 `libc_a'.
You may try running QDOS binary here, with `knork1_dat', it works.
https://github.com/SinclairQL/level9/bl ... dos/level9
(NOTE need dataspace 48400, and set executable header)
For Atari GEMDOS/MS-DOS, also work as generic, they both borrow from CP/M, and they have same file I/O, floppy format, and probably many underlying structures identical.
Graphics is different, I think we probably need to implement these.
Code: Select all
void os_graphics(int mode)
{
}
void os_cleargraphics(void)
{
}
void os_setcolour(int colour, int index)
{
}
void os_drawline(int x1, int y1, int x2, int y2, int colour1, int colour2)
{
}
void os_fill(int x, int y, int colour1, int colour2)
{
}
void os_show_bitmap(int pic, int x, int y)
{
}
Game graphics is enabled by typing #graphics at the `level9' prompt.
Text mode by #text.
As there is not a really big difference among Atari/DOS/Amiga ports, code is almost same size for them.
For black standard `QL' code size seems fairly big, because code is too complex for it.
Built w/ `bitmaps.o'
file size: 79810 bytes
data space: 47936 bytes
Built w/o `bitmaps.o'
file size: 58416,
data space: 48400 bytes
Tomas