Page 1 of 1

ZX Printer Output

Posted: Thu May 18, 2023 3:29 pm
by butchi
Hi,
The ZX81 emulator's 'ZX Printer' output is a BMP image.
Is there any chance that output can be Standard ASCII, instead of an image?
THX!

Re: ZX Printer Output

Posted: Thu May 18, 2023 10:19 pm
by XavSnap
Hi,

Use the Centronics feature, or MAj+F11 in the 'files' menu in my second favorite emulator.

Re: ZX Printer Output

Posted: Sun Jun 11, 2023 12:24 pm
by Fruitcake
butchi wrote: Thu May 18, 2023 3:29 pm Hi,
The ZX81 emulator's 'ZX Printer' output is a BMP image.
Is there any chance that output can be Standard ASCII, instead of an image?
THX!
Although this sounds like it should be simple, there are a number of difficulties.

EightyOne could intercept the bytes in the ZX Printer Buffer as they are about to be used by the printer routines in the ROM. It would extract them and convert to ASCII, before appending them to a file. But this means EightyOne would have to be aware of the location of the printer buffer and hence whether running as a ZX81 or Spectrum as the locations are different. If running as a 128K Spectrum then the ZX Printer buffer is only valid in 48 BASIC mode and so EightyOne would have to take this into account also. It would also need to be sure the original ROMs were being used and not a custom ROM which might not use the printer buffer (or at least not at the standard location for it). Even if using a standard ZX81 and Spectrum configuration is being used, a custom printer routine might use its own printer buffer and EightyOne would have no knowledge of. Finally, there are the various clone models - do these all support the ZX Printer and if so are their printer buffers at the same locations or would EightyOne have to have specific knowledge about the various clones....

Perhaps a simpler (but not so nice from a user perspective) solution would be to create a program that takes the printer BMP and OCRs it to extract the text...

Re: ZX Printer Output

Posted: Sun Jun 11, 2023 12:52 pm
by 1024MAK
Although the Spectrum has a fixed memory area for the printer buffer, various programs use the printer buffer to store code or data that is nothing to do with printing…
The 128K BASIC uses the memory area where the printer buffer is supposed to be for extra system variables.

I don’t know if it was ever done, but machine code programs can bypass the ROM printing routines (and hence the printer buffer) and use the IN and OUT instructions to send data to the printer directly.

The Lambda 8300 and clones that are the same, just with a different name, are compatible with the ZX Printer and have the buffer in the same place in RAM. As these store the pixel information in the ULA for display, I’m not sure how they get the pixel information for the printer…

Mark

Re: ZX Printer Output

Posted: Wed Jun 21, 2023 2:26 pm
by mrtinb
1024MAK wrote: Sun Jun 11, 2023 12:52 pm The Lambda 8300 and clones that are the same, just with a different name, are compatible with the ZX Printer and have the buffer in the same place in RAM. As these store the pixel information in the ULA for display, I’m not sure how they get the pixel information for the printer…
On the Lambda 8300, there is a special I/O port, where you can request bit patterns from the charset inside the ULA. This is quite different from the ZX81.

Re: ZX Printer Output

Posted: Wed Jun 21, 2023 4:08 pm
by 1024MAK
Ah, interesting to know. Thank you.

Mark