BASIC LOADER ETC: 1 DIM A(254) 3 POKE 16392,PEEK(16394)-1 4 POKE 16394,PEEK(16395)+(PEEK(16394)=0) 10 LET AD=-510+PEEK(16392)+256+PEEK(16393) 15 GOTO 500 20 FOR i=1 TO 12 30 PRINT," " ; , tabs to 9 then 7 spaces 40 NEXT i 45 PRINT "GGGGGGGGGGGGGGG" ; 15 grey squares 50 LET X=USR(AD) 60 LET S=S+1000-X*20 70 PRINT"SCORE=",S 80 IF X=0 THEN GOTO 6 100 STOP 900 INPUT i ; loader of assembler 910 INPUT X 915 IF (i AND 7)=0 THEN CLS 920 PRINT i,X 930 POKE AD+i,X 940 LET i=i+1 950 GOTO 910 ;******************info*********************** ; zpace.asm ; relocatable code 2 byte numbers and addresses combined ; passes z80-asm tests ; ; uses frame display call and assumes display set up by BASIC (see above) ; each branch takes circa 1400 cycles which fits in fly-back period ; so no flicker in TV display. ; ; ; display vertical 12 x horizontal 15 set up by BASIC print of spaces ; info stored in video memory starting at (64,12) ; ; Addresses: 0 ........14 NL ; 16........30 NL ; ; 176......190 NL ; ; address (1 byte) stored for you, bomb, laser and some info about SI's ; ; SI initially 5x10 at top, number in (64,30), ; top left position Smin in e' ; move 1 SI line at a time: zig-zag from bottom up ; line count in h' (-5 initially, bottom) ; no of goes in d' (=0 initially) ; bottom line (176,..,190) is you (in c', initially 183) ; laser fired from you on bottom line (max 1) in l' ; bomb dropped from SI (always 1 in action) in b' ; ; on screen: SI are "S", bomb is "*", laser is "." ;