IV. SAMPLE PROGRAM

This assembly language program illustrates the use of players, missiles, and display lists. The diagram on the next page shows what the display looks like and which objects are used. The comments in the program listing describe how it works.

0000	  10 	TITLE "ATARI 800 CHECKERS DISPLAY BY C. SHAW 3/31/80"

	  20 ;COPYRIGHT ATARI 1980
	  40 ;
	  50 ; THIS IS AN EXAMPLE OF A DISPLAY LIST WHICH USES CHARACTER DISPLAY MAPPING TO
	  60 ;PRODUCED THE CHECKERS AND THE TOP AND BOTTOM BORDERS OF THE BOARD
	  70 ;PLAYERS ARE USED FOR THE RED SQUARES.   THIS GIVES 6 COLORS WITHOUT
	  80 ;CHANGING THE COLOR REGISTERS
	  90 ;MISSILES ARE USED FOR THE LEFT AND RIGHT BORDERS
	0100 ;THE PROGRAM STARTS AT THE LOCATION SPECIFIED BY PMB
	0110 ;A FEW TRICKS ARE USED TO SAVE RAM BUT FURTHER OPTIMIZATION IS POSSIBLE
	0120 ;THIS IS A RAM BASED PROGRAM WHICH RUNS WITH THE ASSEMBLER CARTRIDGE, NOT A
	0130 ;ROM CARTRIDGE
	0140 ;
	0150 ;COLLEEN (ATARI 800) EQUATES
	0160 ;
D409	0170 CHBASE = $D409
D400	0180 DMACTL = $D400
022F	0190 SDMCTL = $022F
D000	0200 HPOSP0 = $D000
D008	0210 SIZEP0 = $D008
02C0	0220 PCOLR0 = $02C0
0230	0230 SDLSTL = $0230
0231	0240 SDLSTH = $0231
D01D	0250 GRACTL = $D01D
D407	0260 PMBASE = $D407
026F	0270 GPRIOR = $026F
0280	0200 VDSLST = $280
D40E	0290 NMIEN  = $D40E
	0300 ;
	0310 ;DISPLAY LIST EQUATES 
	0320 ;
0080	0330 INT    = $80	;DISPLAY LIST INTERRUPT (BIT 7 OF NMI STATUS)
0041	0340 JMPWT  = $41	;JUMP AND WAIT UNTIL END OF NEXT VERTICAL BLANK (3 BYTES)
0040	0350 RELOAD = $48	;RELOAD MEM SCAN COUNTER (3 BYTES)
0020	0360 VSC    = $20	;VERTICAL SCROLL ENABLE
0010	0370 HSC    = $10	;HORIZONTAL SCROLL ENABLE
0001	0380 JUMP   =   1	;JUMP INSTRUCTION (3 BYTES)
0000	0390 BLANK1 =   0	;1 BLANK TV LINE
0010	0400 BLANK2 = $10	;2 BLANK LINES
0020	0410 BLANK3 = $20	;3
0030	0420 BLANK4 = $30	;4
0040	0430 BLANK5 = $40	;5
0050	0440 BLANK6 = $50	;6
0060	0450 BLANK7 = $60	;7
0070	0460 BLANK8 = $70	;8 BLANK TV LINES

 

<this page is a work in progress. It's fairly lengthy to type in and not likely to be very useful, and so is a low-priority item.>

Checkers display