I'm about half way through a cross platform dotnet GUI app

I'm about half way through a cross platform dotnet GUI app
It's perfect, thanks! A NABU CP/M disk image is now included in my game package.
I'm currently working on the HCCA side of things - just working through a bit of a brain blockage around buffers, multiple protocols and zero-copy semantics.DJ Sures wrote: ↑Thu Jan 05, 2023 8:38 pmThe only trouble I'm having is still being able to import z80.h and use _zpoke, and zpeek for my custom interrupt for the RX buffer in nabulib. The baud rate is so friggin fast on this nabu that an interrupt alone isn't enough - it needs a pretty big buffer. My telnet vt100 emulation, for example, requires at least a 512-byte buffer at 115,200 baud. We'd be fine if this were a 9600 or 19.2k baud system. But 115.2 is too much for that little z80
I'm not sure how I managed to miss that key table in the docs. I'll add in decoding for the joystick as well.The joystick is connected to the keyboard. So the keyboard raises an interrupt, and the value can be read. I also use my Show Scancode Viewer to see what it does. It's in the Internet Adapter under Utilities in the Nabu Channel list
Will that be something I can get access to in a nightly build?I think originally you were using +z80 which is a newlib target, the +cpm that you've switched to is a classic target and it seems that I've not allowed classic access to those functions.
Your effort is appreciatedLots for me to do it seems!
Hmm, I don't see it yet in the DJ Playground, despite having cleared the PAK cache in the NABU internet adapter.
That's odd - changing the screen mode should do a clg() in anycase. I'll see if I can reproduce it.1. When using the generic console in text mode 0 only, clg() *must* be called at least once, otherwiese the screen will be broken. I don't know if that's normal, at least I haven't seen that on other TMS9918 targets.
I suspect this is the same problem as we had on the Einstein where we use different addresses for the character set so it's "broken" on exit?2. When exiting from Deepspace to CP/M, I switch back to mode 0, but from then on the characters are broken.
This has been added under arch/z80.h1) z80.h
Good! The port handles the interrupts (see: https://github.com/z88dk/z88dk/blob/mas ... t_init.asm) so there's no need to set the table.2) im2.h
- (Implicit definition of function 'im2_init' it will return an int. error: undefined symbol: _im2_init)
Code: Select all
void setup_interrupts() __naked
{
__asm
di
ld a,i
ld h,a
ld l,0
ld de, _hcca_rx_isr
ld (hl),e
inc l
ld (hl),d
inc l
ld de, _hcca_tx_isr
ld (hl),e
inc l
ld (hl),d
ei
ret
__endasm;
}
So, there's two compilers as well as two libraries. Only sdcc supports inline, so add -compiler=sdcc to your compile command line.3) inline