avatar_erikarn

PCW8256 CPM 1.15 - printer port hw setup?

Started by erikarn, 01:50, 23 March 23

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

erikarn

hi!

i'm disassembling the CP/M 1.15 XBIOS and assigning labels/descriptions to stuff.

I've found what looks like the standalone centronics port driver but there's a function thats writing to the status port at 0x84.
Anyone know what's up with that? I checked John's PCW hardware pdf but it doesn't describe what writing to 0x84 does.
Here's what z80dasm gives me, with relevant bits generated from the sym files I'm writing. 

I'd appreciate some info if anyone has any, thanks!


-adrian

;
; Write the given config byte to the standalone centronics printer port.
;
; This writes the byte in A to the standalone centronics
; printer port config port (0x84), rather than the data port
; (0x85.)
;
XBIOS_internal_standalone_cen_config:
        out (087h),a            ;3dae  d3 87          . .
        out (084h),a            ;3db0  d3 84          . .
        out (087h),a            ;3db2  d3 87          . .
        ret                    ;3db4  c9              .
;
; Write the given byte to the standalone centronics port.
;
; This will wait until the port is ready, and then
; send the byte in A.
;
; Corrupts: C.
;
XBIOS_internal_standalone_cen_wait_write_byte:
        call XBIOS_internal_standalone_cen_is_printer_ready    ;3db5  cd c4 3d        . . =
        jr nc,XBIOS_internal_standalone_cen_wait_write_byte    ;3db8  30 fb          0 .
        ld a,c                  ;3dba  79              y
        out (087h),a            ;3dbb  d3 87          . .
        di                      ;3dbd  f3              .
        out (085h),a            ;3dbe  d3 85          . .
        out (087h),a            ;3dc0  d3 87          . .
        ei                      ;3dc2  fb              .
        ret                    ;3dc3  c9              .
;
; Check if the standalone printer port is ready.
;
; This returns Z=true if the port is ready, Z=false otherwise.
; Corrupts: A.
;
XBIOS_internal_standalone_cen_is_printer_ready:
        in a,(084h)            ;3dc4  db 84          . .
        and 001h                ;3dc6  e6 01          . .
        sub 001h                ;3dc8  d6 01          . .
        ret                    ;3dca  c9              .


erikarn

(And if anyone would like to help me populate the symbol/block files for the CPM 1.15 xbios, please do say hi :-) )

JohnElliott

I think this might need schematics to see what hardware is actually in one of these standalone parallel ports, and how it's hooked up to the PCW.

There's a picture of the Cirtech parallel port at https://www.habisoft.com/pcwwiki/lib/exe/detail.php?id=en%3Ahardware%3Aperifericos%3Aparallel_printer_port&media=hardware:cirtechparallelport_pcb_top.jpg which seems to imply that it's built around a Z80-DART. That's a start, but it's not clear just from looking at the picture what PCW ports map to what registers on the DART.

JohnElliott

I wondered if the PcW10 schematics would provide some help, since the PcW10 has a parallel port built-in. But looking at the motherboard picture at https://www.cpcwiki.eu/index.php/File:PcW10_3500-016P-3_PCB_Top.jpg I don't see anything that might be a parallel port controller -- it looks as if it's all included in the main ASIC, which is a different chip from the one in earlier PCWs (their ASICs are all part number 40028, but on the PcW10 it's part number 41530). So it's probably not worth trying to get hold of PcW10 schematics or actual hardware with that aim in mind.

Powered by SMFPacks Menu Editor Mod