Sanyo MBC-XXXX CP/M models
Re: Sanyo MBC-XXXX CP/M models
The initial support for the Sanyo MBC-200/1200 is ready, it includes appmake support for the floppy disk formats and bit-banging sound.
The graphics support is partial but satisfactory (especially because of the high resolution!)
The graphics support is partial but satisfactory (especially because of the high resolution!)
You do not have the required permissions to view the files attached to this post.
Re: Sanyo MBC-XXXX CP/M models
Thank you Stefano for your work on that target, high-res targets are always interesting.
Two issues:
1. Am I doing anything wrong here?
2. The link on the platform list pointing to the MBC-200/1200 page is broken. If it does not have its own page, then let it point to the CPM page.
Two issues:
1. Am I doing anything wrong here?
Code: Select all
zcc +cpm -subtype=mbc200 -pragma-redirect:fputc_cons=fputc_cons_generic -o PT.COM plottest.c -create-app -D__MBC200__
error: file open: mbc200.lib
Re: Sanyo MBC-XXXX CP/M models
You've been too quick, I haven't written it yet !
This target has still a relevant issue because of problems in getting the terminal talkback mechanism work correctly.
I suspect this depends on the emulation accuracy, but I can't be 100% sure.
At the moment the graphics code is based on the terminal ESCape sequences (pixel plotting, line drawing).
I couldn't reliably read the graphics memory, so plot detection, fill or XOR operations are missing ATM.
Moreover putsprite and the filled area (stencil) routines rely on the slow generic code, while this target allows interesting and funny tricks, in theory.
The library should be in, I could have missed something in the Makefile.. please try building it yourself:
https://github.com/z88dk/z88dk/blob/439 ... file#L1079
Go in {z88dk}/libsrc and type "make mbc200.lib", then move the lib file into {z88dk}/lib/clibs.
EDIT: It shout be simpler now, Dom fixed it
This target has still a relevant issue because of problems in getting the terminal talkback mechanism work correctly.
I suspect this depends on the emulation accuracy, but I can't be 100% sure.
At the moment the graphics code is based on the terminal ESCape sequences (pixel plotting, line drawing).
I couldn't reliably read the graphics memory, so plot detection, fill or XOR operations are missing ATM.
Moreover putsprite and the filled area (stencil) routines rely on the slow generic code, while this target allows interesting and funny tricks, in theory.
The library should be in, I could have missed something in the Makefile.. please try building it yourself:
https://github.com/z88dk/z88dk/blob/439 ... file#L1079
Go in {z88dk}/libsrc and type "make mbc200.lib", then move the lib file into {z88dk}/lib/clibs.
EDIT: It shout be simpler now, Dom fixed it
Re: Sanyo MBC-XXXX CP/M models
I wrote the missing Wiki page, hope it helps
Re: Sanyo MBC-XXXX CP/M models
Considering the current emulation limits (not confirmed by comparing with the real machine) it is probably convenient to stub a one - way text library to support the z88dk generic terminal, etc
Re: Sanyo MBC-XXXX CP/M models
So, CP/M machines by default have support for --generic-console - it assumes there's an ADM3 console and uses bdos to print to the screen (so might go slightly wonky on the bottom row depending on the bios) along with a backbuffer for vpeeking.
It's preferable to write a specific implementation since that way you can have colours and other attributes, but it's better than nothing!
It's preferable to write a specific implementation since that way you can have colours and other attributes, but it's better than nothing!
Re: Sanyo MBC-XXXX CP/M models
I'd really like to do so but I could find a reliable way to access to the video memory directly.
All the video stuff is in charge to a twin z80 CPU and something gets garbled. I'm not even sure the output way is 100% stable, even if the normal console operation runs perfectly.
The ESC codes are Sanyo proprietary, but they include cursor positioning and many other features, so I though to shortcut to what I'm sure to be in working order.
All the video stuff is in charge to a twin z80 CPU and something gets garbled. I'm not even sure the output way is 100% stable, even if the normal console operation runs perfectly.
The ESC codes are Sanyo proprietary, but they include cursor positioning and many other features, so I though to shortcut to what I'm sure to be in working order.
Re: Sanyo MBC-XXXX CP/M models
What's the best way to alter the existing --generic-console library ?
I tried to simply rewrite the functions but they collide with the existing library, I suppose the console code is built on the fly:
duplicate definition: generic_console_ADM3::generic_console_printc
error: duplicate definition: generic_console_set_attribute::generic_console_set_attribute
I tried to simply rewrite the functions but they collide with the existing library, I suppose the console code is built on the fly:
duplicate definition: generic_console_ADM3::generic_console_printc
error: duplicate definition: generic_console_set_attribute::generic_console_set_attribute
Re: Sanyo MBC-XXXX CP/M models
If you put the mbc200 code into the mbc200 library then it won't clash as the machine library ends up being searched for symbols before cpm_clib.lib.
That's what I did for the x820 - you might not have implemented all the functions or be missing the CAPS defc?
That's what I did for the x820 - you might not have implemented all the functions or be missing the CAPS defc?
Re: Sanyo MBC-XXXX CP/M models
> ..you might not have implemented all the functions or be missing the CAPS defc?
As usual, you are right.
This technique has only one possible positive aspect, the code gets probably portable on other, never emulated SANYO models.
On the MBC-200/1200 series the attributes work only in 33 rows mode (IOCTL can set 40 or 33 rows mode, the latter is the default one).
As usual, you are right.
This technique has only one possible positive aspect, the code gets probably portable on other, never emulated SANYO models.
On the MBC-200/1200 series the attributes work only in 33 rows mode (IOCTL can set 40 or 33 rows mode, the latter is the default one).
You do not have the required permissions to view the files attached to this post.
Re: Sanyo MBC-XXXX CP/M models
Cool, you can actually have a bit more fun by doing a couple of things:
1. Add @stdio/ansicore.lst to the cpm.lst file
2. Compile with -pragma-define:CLIB_ANSITERMINAL_BRIDGE=1
Then vt100 should mostly work as well
1. Add @stdio/ansicore.lst to the cpm.lst file
2. Compile with -pragma-define:CLIB_ANSITERMINAL_BRIDGE=1
Then vt100 should mostly work as well
Re: Sanyo MBC-XXXX CP/M models
I try immediately
I suppose the direct ansi VT implementation is still preferable, right?
I suppose the direct ansi VT implementation is still preferable, right?
Re: Sanyo MBC-XXXX CP/M models
I wrote the bridge to save the effort of having to write the same hardware bashing code multiple times for the same target. Gencon also supports more screen modes than vt. The only things that gencon doesn't have is "reset all attributes" and sub-byte fonts (eg 80 columns in 256px).
Looking at various projects, it looks like gencon is probably used more than vt these days, so imo it makes sense to focus on gencon and use vt if compatibility is needed when porting from "bigger" platforms
I raised https://github.com/z88dk/z88dk/issues/1707 a couple of years ago to support sub-byte fonts
Looking at various projects, it looks like gencon is probably used more than vt these days, so imo it makes sense to focus on gencon and use vt if compatibility is needed when porting from "bigger" platforms
I raised https://github.com/z88dk/z88dk/issues/1707 a couple of years ago to support sub-byte fonts
Re: Sanyo MBC-XXXX CP/M models
It's very comfortable indeed.
I must have messed with the underlined text attribute, bit 7 in CAPS, which is tempting me to provide both the implementations (there's very little code in this case) .
I should also change the calls to mbc_send in the terminal code (OUTing to the 2nd CPU directly) and call the BIOS instead. Having chosen to remap the terminal sequences and losing the compatibility with the other Sanyo models is stupid.
I must have messed with the underlined text attribute, bit 7 in CAPS, which is tempting me to provide both the implementations (there's very little code in this case) .
I should also change the calls to mbc_send in the terminal code (OUTing to the 2nd CPU directly) and call the BIOS instead. Having chosen to remap the terminal sequences and losing the compatibility with the other Sanyo models is stupid.
Re: Sanyo MBC-XXXX CP/M models
I think it is in a consistent status, now.
Considering that mbc_send() has its own advantages in terms of speed and control over BIOS or BDOS, I decided not to change it.
It is rather convenient to replace it with a function calling the BIOS on the other Sanyo systems.
I can't wait to move on and try the Visual 1050 graphics
Considering that mbc_send() has its own advantages in terms of speed and control over BIOS or BDOS, I decided not to change it.
It is rather convenient to replace it with a function calling the BIOS on the other Sanyo systems.
I can't wait to move on and try the Visual 1050 graphics
You do not have the required permissions to view the files attached to this post.