Papa_robot_code

10 Followers
14 Following
81 Posts
Using the 1000 characters limit to code for #atari8bitbot #zxspectrumbot
#atari8bitbot
5 DIM O(6),XS(6),YS(6):PI=3.141592653589793
10 GR.7+16:SE.0,7,4:SE.2,0,14:SE.1,3,4:SE.4,0,14:W=159:H=95
15 FOR I=1 TO 6:READ V:O(I)=V:NEXT I
20 C.1:F.Y=0 TO H/5:PL.0,Y:DR.W,Y:N.Y
30 F.Y=2/5*H TO 3/5*H:PL.0,Y:DR.W,Y:N.Y
40 F.Y=4/5*H TO H:PL.0,Y:DR.W,Y:N.Y
50 C.2:F.Y=0 TO H/2:PL.0,Y:DR.Y,Y:N.Y
60 F.Y=H/2 TO H:PL.0,Y:DR.H-Y,Y:N.Y
64 C.3:X=W/8:Y=H/2:EXEC STAR
70 DO
80 C.2:TEXT 60,10,"free!!"
90 PAUSE 50
100 C.2:TEXT 60,10,"peace!"
110 PAUSE 50
120 LOOP
200 PROC STAR
220 TH=PI
225 FOR RS=2 TO 10
230 FOR JS=1 TO 6
240 TH=TH+2/5*PI
250 XS(JS)=RS*SIN(TH)+X:YS(JS)=RS*COS(TH)+Y
260 NEXT JS
270 FOR IS=1 TO 5
280 PLOT XS(O(IS)),YS(O(IS))
290 DRAWTO XS(O(IS+1)),YS(O(IS+1))
300 NEXT IS
310 NEXT RS
400 ENDPROC
500 DATA 1,3,5,2,4,1
10 GR.0: SE. 1,1,14:SE. 2,0,0
15 XMAX=39:YMAX=24:NBALLS=7
17 REM #Atari8bitbot
18 POKE 752,1
20 DIM x(NBALLS):DIM y(NBALLS):DIM dx(NBALLS):DIM dy(NBALLS):DIM cx(NBALLS):DIM cy(NBALLS):DIM CH(NBALLS)
25 FOR i=1 TO NBALLS
30 x(i)=RAND(XMAX)
40 y(i)=RAND(YMAX)
50 IF(RAND(2)=1):dx(i)=1:ELSE:dx(i)=-1:ENDIF
60 IF(RAND(2)=1):dy(i)=1:ELSE:dy(i)=-1:ENDIF
70 cx(i)=x(i)
80 cy(i)=y(i)
90 NEXT i
95 GOSUB 400
100 DO
110 FOR i=1 TO NBALLS
120 POS. cx(i),cy(i)
130 IF CH(i)=ASC("."):PRINT ".";:ELSE:PRINT " ";:ENDIF
140 x(i)=x(i)+dx(i)
150 y(i)=y(i)+dy(i)
160 IF x(i)<=0: x(i)=0:dx(i)=-dx(i) :ENDIF
170 IF y(i)<=0: y(i)=0:dy(i)=-dy(i) :ENDIF
180 IF x(i)>=XMAX: x(i)=XMAX-2:dx(i)=-dx(i) :ENDIF
190 IF y(i)>=YMAX: y(i)=YMAX-2:dy(i)=-dy(i) :ENDIF
200 cx(i)=x(i):cy(i)=y(i)
210 LOCATE x(i),y(i),CH:CH(i)=CH
230 POS. x(i),y(i): PRINT CHR$(20);: REM o
240 NEXT i
260 LOOP
400 FOR i=1 TO 100
410 POS. RAND(XMAX),RAND(YMAX): PRINT ".";
420 NEXT i
430 RETURN

#atari8bitbot {A}SAVMSC = $58
MAXLEN = 100
STRP = $C0
OFFSET = $C2
ASC = $C4

START
LDA #0
JSR $EF9C
LDA SAVMSC
STA ASC
LDA SAVMSC+1
STA ASC+1

LDA #40
STA OFFSET
LDX #STR&255
LDY #STR/256
JSR PRINT

LDA #80
STA OFFSET
LDX #STR1&255
LDY #STR1/256
JSR PRINT

PAUSE JMP PAUSE

PRINT CLC
LDA SAVMSC
ADC OFFSET
STA ASC
STX STRP
STY STRP+1
LDY #0

PRN LDA (STRP),Y
CMP #$9B
BEQ PRE
SBC #31
STA (ASC),Y
INY
CPY #MAXLEN
BNE PRN
PRE RTS

STR
.BYTE $7C," THIS COMPUTER CAN'T RUN WIN11 ",$7C,$9B
STR1
.BYTE $7C," LEARN 6502 ASSEMBLER ",$7C,$9B