Home  Search  Games  Tapes  Covers  Cheats  Maps  Software  New Stuff 
 Hall Of Fame  HVTC  Game Endings  Solutions  Remakes  Publications  Magazines  Effects  Top List 
 Members  Groups  Features  Plus/4 Encyclopedia  Hardware  Tools  Options  Forum 
Release Date:
Machine:PAL & NTSC
Code Type:Machine code
Re-released by:Fantastic Italian Research Enterprise (FIRE)
Re-released by:Z., Valentino (SVS)
Notes:O.S. extension that allows the user to easily draw 3D figures + other graphics effects.
Download from Plus/4 World
Plus/4 World
Download from
Download from
  Demos pack:
Download from Plus/4 World
Plus/4 World
Download from
User Rating: 8/10 (4 votes)
Graphics Screenshot

Appeared On Compilations
Club Info 76

Package Documentation
"GRAPHICS" package info (3D graph on Plus4!)
Version: 2.1

by S\_/S of Plus/4 [FIRE] crew

This package was not coded by me. I only "discovered" it after many years and now I'm reverse-engineering it, because it doesn't have any info or instructions. Any contributions from you are welcome!

Files of the package:

graphics.ldrfirst loader
gloader1.ldrrelocator and object loader

Coordinates system

The screen is viewed as a 320*200 (HiRes). When in Multicolor mode, the resolution is half, being each point two pixel long, but coordinates data must be supplied as 320*200.

Contrary to standard O.S., the numbers of coordinates go from -160 to +160 (HiRes) on horizontal, and from -100 to +100 in vertical. This means that point 0,0 is situated in the center of screen.

Positive values are right side in horizontal, and top side in vertical. Thus the bottom right point will be +160,-100.

Being a 3D package, there is of course the 3rd dimension coordinate. It goes from 0 (no depth) to 32767 ($7FFF). Values over 3000 could be not visible (too far, then too small).


Available user RAM memory is half of normal, about 30Kb. BASIC lines will be located from $8000 and up. Memory under $8000 is not available.

Keywords (for BASIC lines)

Each new command has the arrow symbol as the first character. This is necessary because some new keywords have the same name as standard keywords. New keywords do not work in immediate mode, only in running mode.


When it is allowed to specify one of the 16 base-colors (0-15), its bright is always set to 7 (lightest).

<-CIRCLEx,y,z,hr,vrDraws an ellipse (or a circle)x,y,z = coordinates of centerhr = horizontal radiusvr = vertical radius
<-COLORcSets foreground color for next operationc = color number (0...3)  
<-CLEAR Erases the graphic screenGraphic area still remain set  
<-GRAFb,fGoes to HiRes screenb = background color (0...15)f = foreground color (0...15) 
<-INVmSets invert mode (when overwriting a previous draw /character, color is inverted) (XOR)m = 0 or even then cancels invert mode

m = 1 or odd then starts invert mode
<-DRAWx,y,z,x1,y1,z1Draws a linex,y,z = start coordinatesx1,y1,z1 = end coordinates$ instead of any parameter = assumes current position
<-PLOTx,y,z,Draws a pointx,y,z = coordinates  
<-TEXTb,fGoes to text screenb = background color (0...15)f = foreground color (0...15) 
<-MGRAFb,c1,c2,c3Goes to Multicolor screenb = background color (0...15)c1 = 1st color

c2 = 2nd color

c3 = 3rd color
<-VISTAx,ySet the Point of View for 3D graphics (source point of graphic projection)x,y = start coordinates  
<-VISTAno parameter???   

[math function]
(n)Retrieves result of <-VISTA functionn = 0 : horizontal

1 : vertical
<-ARCx,y,z,hr,vr, sa, ea, snDraws a polygonx,y,z = center coordinateshr = horizontal radius length

vr = vertical radius length
sa, ea = start/end angle of the arc sector (*)
[2*P/360*x] (x = degree).
x negative stands for (clockwise angle)
sa = 2*P/x (x specifies the number of sides of the polygon)
If x=20 you obtain the same resolution than <-CIRCLE
<-GRDUMPa, bPrints the graphics screena must be 0 or 1
b must be 0-40
<-VCHARx,y,rf,tsPrints vertical text on graphic screenx,y = coordinates (of 40x25 grid);

st = text string
rf = reverse /charset flag:0 = set#1 normal

1 = set#1 reverse

2 = set#2 normal

3 = set#2 reverse

(*) Angle origin coordinates for arc sectors start from a point nn pixels right from the center, when nn is the lengths of horizontal radius), in the same vertical coordinate.

For example: <-ARC 20,30,Z,100,50... arc sector starts from 120,30 (20+100,30), except if you set a different start angle (as "sa" parameter).

Image Gallery
Below are a few sample images created with this package. Look what only a few lines of code can do!

Copyright © Plus/4 World Team, 2001-2018