KDS5000 Shape Defns, Opcodes and Tags

45
0
  • Squishy Plushie's avatar Artist
    Squishy Pl...
  • DDG Model
    Krea 2 Turbo
  • Access
    Public
  • Created
    8h ago
  • Try (1)

Prompt

A wireframe elevation drawing of a fitted kitchen, with dimensions.

More about KDS5000 Shape Defns, Opcodes and Tags

(See the description of the other KDS5000 drawings if you need context). The KDS5000 (Kitchen Design System) CAD application for the Apple ][ held the data for the user's designed kitchen in a special format Buf in the ::MEMDMP:: (Memory Dump) Seg : the sequential bytestring of kitchen units, followed by the fixed size array of coordinates of those units. The latter contained the X, Y, Z, and rotation of each chosen unit, along with the bounding box for collision detection. The sequential bytestring had the following opcode-like format :
$00_$EF : Use Library Shape N (the Library Shapes were stored in a Seg on Disk Volume 1)
$F0 : Move the "pen" to X,Y,Z (coordinates held in the following three bytes: see below for format)
$F1 : Move the "pen" while down (i.e. "draw" to X,Y,Z)
$F2 : Draw a "cuboid" (six adjoined polygons) from the current pen position to X,Y,Z
$F3 : Draw a "left hinged door" with profile texture, to X,Y,Z
$F4 : Draw a "right hinged door" with profile texture, to X,Y,Z
$F5 : Draw a "user choosable" door (user selects left or right hinged) to X,Y,Z
$F6 : *** Note to me : Check source notes and review (lol)
$F7 :
...
$FD : Immediate Operate on Register One or Register Two (takes 1 byte function code and two bytes immediate data (LSB, MSB)
$FE : Operate on Register One or Register Two (takes 1 byte function code and 1 byte Param)
$FF : Return to item that called this one

Param Format :
The Param byte (X,Y,Z or Operate) took the following format :
3 bits Mode :
0 : Endpoint
1 : Endpoint * Register One
2 : Positive Distance
3 : + Distance * Register One
4 : + Distance * Register Two
5 : Negative Distance
6 : - Distance * Register One
7 : - Distance * Register Two

5 bits Variable :
0: Zero
1 : Use Register One
2 : Use Register Two
3 : use the variable specified in the corresponding field of the Unit Record
4 : Prompt the User for the value
5_30 : Use the appropriate Manufacturer Dimension (from ::MANUFS::)
31 : Spare

An "Update" application was run by the kitchen manufacturer to create this data, i.e. the Manufacturer Dimensions (Cupboard Width, Plinth Height, etc) and the Shape Definitions, producing a "Catalogue Disk" for that kitchen manufacturer, representing their printed catalogue and price list.

Comments


Loading Dream Comments...

Discover more dreams from this artist