Re: Data Becker CBM-8000 hi-res graphics

From: David Holz <>
Date: Tue, 5 Sep 2017 14:32:16 -0700
Message-ID: <>
Ok, here's what I have of the jump table so far:

L9000 jmp initialize
9003 jmp graphicsOff
9006 jmp clearScreen
9009 jmp noninvertedScreen
900c jmp invertScreen
900f jmp ?graphicsOff 2?
9012 jmp ?toggle bank?

9015 jmp setWindow ; minx, maxx, miny, maxy
9018 jmp setPan ; dx, dy
901b jmp setScale ; x, y
901e jmp drawPoint ; x, y
9021 jmp erasePoint ; x, y
9024 jmp movePen ; x, y
9027 jmp lineTo  ; destx, desty
902a jmp eraseTo  ; destx, desty
902d jmp drawLine ; srcx, srcy, destx, desty
9030 jmp eraseLine ; srcx, srcy, destx, desty

; These enable clipping the 4 borders of the window independently
9033 jmp enableLeftClip
9036 jmp disableLeftClip
9039 jmp enableRightClip
903c jmp disableRightClip
903f jmp enableBottomClip
9042 jmp disableBottomClip
9045 jmp enableTopClip
9048 jmp disableTopClip

; Some interactive crosshair-drawing mode
904b jmp L97ca
904e jmp L97f5
9051 jmp L99a7
9054 jmp L9805

; Stuff that hits the IEEE bus
9057 jmp L9d68
905a jmp L9d7d
905d jmp L9d9c
9060 jmp L9dc5
9063 jmp L9d62

9066 jmp drawLineAgain  ; no parameters, presumably to flash the last line

If clipping is disabled, the coordinates will wrap around the window. 

The suspected block characters actually are the key codes from $97,
dispatching to movement commands.

The biggest thing that I don't know is how it receives its parameters. 
What it does is bump up the Start Of BASIC Variables pointer at $2a by
12, and reads two 6-byte floating point numbers from that area (doing
that twice for routines that take 4 inputs).  I don't know how BASIC
feeds into that.

The location at $e882 is the low byte of the port address, $e888 is the
high byte, and $e88a reads/writes from that configured address.  The top
two bits of e888 are somehow special.  Bit 6 determines invert/noninvert
screen, bit 7 is set to 0 when doing graphicsOff/?graphicsOff2?, and bit
7 is toggled in ?toggle bank?.

       Message was sent through the cbm-hackers mailing list
Received on 2017-09-05 22:00:03

Archive generated by hypermail 2.2.0.