Jump to content
  • entries
  • comments
  • views

An Early Atari Computer Technical Demo



As originally conceived, Atari computers were going to be a platform where the technical secrets were held closely, allowing Atari to reap easy profits by providing software that third parties would be hard to match. At least, that was the theory. But the technical secrets were not going to remain secret forever, and as Atari was slow to provide the software to drive sales of the computers, it made more and more sense to abandon that strategy and open the platform to more developers. Atari eventually did this in late 1981, publishing the technical notes and then more broadly with the publication of De Re Atari in 1982, a more approachable presentation of the material.

But before the technical notes became widely available, Atari used the popular computer magazines of the day to publish some of the technical information. Chris Crawford and Lane Winner at Atari wrote two articles in late 1980, one for Byte magazine and one for Compute!, which explained display lists and player/missile graphics respectively. Both appeared in the January 1981 issues of the magazines, and were later endlessly rehashed in books and magazines over the years.

The Byte magazine article, An Introduction to Atari Graphics describes some of the functionality of display lists and then proceeds to use a modified display list and a modified character set to generate a Byte magazine splash page. Interestingly, the page references the August 1980 issue, perhaps publication was delayed for unknown reasons. In any event, it's probably the first published article on display lists, and is quite interesting both for what it reveals and what it does not. It shows the 14 graphics modes, revealing that there are modes that aren't available from the GRAPHICS command. Since it modifies an existing display list, it omits mentioning details important to writing a display list from scratch. Nonetheless, there was enough information here to help software authors start producing better graphics on the computers.


Listing 2 from the article, which produced the above screen:

​0 IF FRE(0)<5825 THEN PRINT "NOT ENOUGH MEMORY!":END20 RAMTOP=PEEK(106):POKE 106,RAMTOP-16:GRAPHICS 030 DIM SML$(32):SML$(1,32)="  the small systems      journal     "40 DIM MGH$(41):MGH$(1,41)="@@@A@McGRAW@HILL@@@@@@@@PUBLICATION"50 GRAPHICS 7+16:COLOR 2:POKE 765,255 POKE 708,128:POKE 709,40:POKE 710,128:POKE 712,12860 START=PEEK(560)+PEEK(561)*256+470 POKE START+10,280 FOR X=0 TO 3:POKE START+46+X,6:NEXT X90 FOR X=0 TO 3:POKE START+50+X,7:NEXT X95 POKE START+54,65:POKE START+55,PEEK(560):POKE START+56,PEEK(561)110 A=0:READ B,C:IF B>-1 THEN GOSUB 800:GOTO 110120 READ A,B,C:IF A>-1 THEN GOSUB 800:GOTO 120200 CHBAS=RAMTOP-4:ADDR=CHBAS*256210 FOR X=0 TO 1023:POKE ADDR+X,PEEK(57344+X):NEXT X220 POKE 756,CHBAS+2230 FOR X=0 TO 255:POKE ADDR+512+X,PEEK(ADDR+256+X):NEXT X240 FOR X=0 TO 7:POKE ADDR+512+X,0:NEXT X250 FOR X=0 TO 7:READ A:POKE ADDR+99*8+X,A:NEXT X290 POKE 755,0:POKE 87,0300 POSITION 4,9:? #6;"AUGUST 1980  Volume 5, Number 8";310 MEMST=PEEK(START)+PEEK(START+1)*256:CHRPOS=MEMST+46*40320 FOR X=1 TO LEN(SML$):POKE CHRPOS+X-1,ASC(SML$(X,X))+128:NEXT X330 CHRPOS=CHRPOS+60340 FOR X=1 TO LEN(MGH$):POKE CHRPOS+X-1,ASC(MGH$(X,X))-64:NEXT X350 POKE 708,200360 GOTO 360800 ON A+1 GOTO 810,820,830810 PLOT B,C:RETURN820 DRAWTO B,C:RETURN830 POSITION B,C:XIO 18,#6,0,0,"S:":RETURN900 DATA 111,20,111,21,110,21,109,21,108,22,107,23,107,24905 DATA 106,25,106,26,107,27,107,28,108,29,109,30,110,30,111,30910 DATA 111,31,110,31,109,31,108,32,107,33,107,34,106,35915 DATA 106,36,107,37,107,38,108,39,109,40,110,40,111,40,111,41920 DATA -1,-1,1,97,41,2,96,40,1,96,40,2,96,21925 DATA 2,97,20,0,93,21,1,92,21,1,91,21,1,90,22,1,89,23,1,89,24930 DATA 1,88,25,1,88,40,1,87,41,1,80,41,2,79,40,0,79,40935 DATA 2,79,25,0,79,25,2,78,24,0,78,24,2,78,23,0,78,23,2,77,22940 DATA 0,77,22,2,76,21,1,74,21,1,74,20,1,93,20,0,71,20945 DATA 1,71,36,1,70,20,1,70,36,1,69,33,1,69,36,1,68,34,1,68,36950 DATA 1,67,34,1,67,40,1,66,41,1,59,41,2,58,40,0,58,40955 DATA 2,58,36,1,54,36,2,54,34,1,64,33,1,63,32,1,63,21,1,62,20960 DATA 1,55,20,2,54,21,0,54,21,2,54,33,0,51,21965 DATA 1,51,29,0,51,32,1,51,40,1,50,41,1,50,32,0,50,29,1,50,20970 DATA 1,49,20,1,49,22,0,49,28,1,49,33,0,49,39975 DATA 1,49,41,1,48,41,1,48,40,0,48,32,1,48,29,0,48,21,1,48,20980 DATA 1,46,22,0,46,28,0,46,33,0,46,39,1,45,38,1,45,33985 DATA 0,45,28,1,45,23,0,47,41,1,36,41,2,35,40,0,35,40,2,35,21990 DATA 1,36,20,1,49,20,-1,0,0999 DATA 0,60,96,96,96,60,0,0


Recommended Comments

Of course non-Atari developers reverse-engineered Atari software early on, so the lack of documentation didn't completely lock out the programmers. My point here is to spotlight the earliest efforts to document the hardware better which helped launch so much good software that was missing in the early days of the computer.

Share this comment

Link to comment
Add a comment...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Create New...