Data update
This commit is contained in:
parent
07c7092a52
commit
61b93a2cd1
313 changed files with 6160 additions and 346 deletions
65
Task/Execute-Brain-/Commodore-BASIC/execute-brain-.basic
Normal file
65
Task/Execute-Brain-/Commodore-BASIC/execute-brain-.basic
Normal file
|
|
@ -0,0 +1,65 @@
|
|||
100 REM BRAINF*CK FOR COMMODORE BASIC
|
||||
110 DB=0:REM SET TO 1 FOR DEBUGGING
|
||||
120 P$=""
|
||||
130 READ C$
|
||||
140 P$=P$+C$
|
||||
150 IF LEN(C$)<>0 THEN 130
|
||||
160 REM PAIR UP BRACKETS INTO B%
|
||||
170 DIM B%(LEN(P$))
|
||||
180 REM TRACK OPEN BRACKETS IN O%
|
||||
190 DIM O%(INT(LEN(P$)/2)):O=0
|
||||
200 FOR I=1 TO LEN(P$)
|
||||
210 : I$=MID$(P$,I,1)
|
||||
220 : IF I$="[" THEN O%(O)=I:O=O+1
|
||||
230 : IF I$<>"]" THEN 270
|
||||
240 : IF O=0 THEN PRINT "UNMATCHED BRACKET AT"I". ABORTING.":END
|
||||
250 : O=O-1:M=O%(O)
|
||||
260 : B%(I)=M:B%(M)=I
|
||||
270 NEXT I
|
||||
280 IF O THEN PRINT "UNMATCHED BRACKETS AT EOF. ABORTING.":END
|
||||
290 REM SET MS TO NUMBER OF MEMORY CELLS NEEDED.
|
||||
300 REM THE BF SPEC REQUIRES 30000, WHICH WILL WORK ON C64 OR 48K+ PET.
|
||||
310 AN UNEXPANDED VIC-20 WILL HANDLE 1000, A C-16 9000. THE DEMO ONLY NEEDS 4.
|
||||
320 MS=4:DIM M%(MS/2-1):MP=0
|
||||
330 REM FUNCTION TO READ BYTE AT CELL N
|
||||
340 DEF FNMP(N)=INT(M%(INT(N/2)) / (1+255*(N AND 1))) AND 255
|
||||
350 FOR I=1 TO LEN(P$)
|
||||
360 : IF MP<0 OR MP>=MS THEN PRINT "ERROR: MP OUT OF RANGE AT"I:END
|
||||
370 : IF DB THEN PRINT "IP:"I"("I$") MP: "MP"("FNMP(MP)")"
|
||||
380 : I$=MID$(P$,I,1)
|
||||
390 : IF I$<>"[" THEN 420
|
||||
400 : IF FNMP(MP)=0 THEN I=B%(I)
|
||||
410 : GOTO 530
|
||||
420 : IF I$<>"]" THEN 450
|
||||
430 : IF FNMP(MP) THEN I=B%(I)
|
||||
440 : GOTO 530
|
||||
450 : IF I$="<" THEN MP=MP-1:GOTO 530
|
||||
460 : IF I$=">" THEN MP=MP+1:GOTO 530
|
||||
470 : IF I$="-" THEN V=FNMP(MP)-1:GOTO 560
|
||||
480 : IF I$="+" THEN V=FNMP(MP)+1:GOTO 560
|
||||
490 : IF I$="." THEN PRINTCHR$(FNMP(MP));:GOTO 530
|
||||
500 : IF I$<>"," THEN 530
|
||||
510 : GET K$:IF K$="" THEN 510
|
||||
520 : V=ASC(K$):GOTO 560
|
||||
530 NEXT I
|
||||
540 END
|
||||
550 REM UPDATE CELL AT MP WITH VALUE IN V
|
||||
560 M=INT(MP/2):O=M%(M):V=V AND 255
|
||||
570 N0=(O AND -256)+V
|
||||
580 N1=(V*256+(O AND 255))
|
||||
590 M%(M) = (MP AND 1)*N1 - ((MP AND 1)=0)*N0
|
||||
600 GOTO 530
|
||||
610 REM HELLO, WORLD PROGRAM
|
||||
620 DATA "+++++++++[>++++++++<-]>."
|
||||
630 DATA "---."
|
||||
640 DATA "+++++++..+++."
|
||||
650 DATA ">>++++[<+++++++++++>-]<."
|
||||
660 DATA ">++++[<--->-]<."
|
||||
670 DATA "<++++++++."
|
||||
680 DATA "--------."
|
||||
690 DATA "+++."
|
||||
700 DATA "------."
|
||||
710 DATA "--------."
|
||||
720 DATA ">>[++][<+++++++>-]<+."
|
||||
730 DATA ">++++++++++."
|
||||
740 DATA ""
|
||||
73
Task/Execute-Brain-/TRS-80-BASIC/execute-brain-.basic
Normal file
73
Task/Execute-Brain-/TRS-80-BASIC/execute-brain-.basic
Normal file
|
|
@ -0,0 +1,73 @@
|
|||
100 REM BRAINF*CK FOR TRS-80 LEVEL II BASIC
|
||||
103 DB=0:REM SET TO 1 FOR DEBUGGING
|
||||
105 REM FIRST MAKE SURE WE HAVE ENOUGH STRING HEAP FOR PROGRAM
|
||||
110 READ C$:C=LEN(C$):IF C>M THEN M=C
|
||||
120 PS=PS+C
|
||||
130 IF C THEN 110
|
||||
135 REM ALLOCATE THE HEAP
|
||||
140 CLEAR 2*(PS+M)
|
||||
145 REM RE-READ PROGRAM, REMEMBERING IT THIS TIME
|
||||
150 RESTORE
|
||||
160 P$=""
|
||||
170 READ C$
|
||||
180 P$=P$+C$
|
||||
190 IF LEN(C$)<>0 THEN 170
|
||||
195 REM PAIR UP BRACKETS INTO B%
|
||||
200 DIM B%(LEN(P$))
|
||||
205 REM TRACK OPEN BRACKETS IN O%
|
||||
210 DIM O%(INT(LEN(P$)/2)):O=0
|
||||
220 FOR I=1 TO LEN(P$)
|
||||
230 : I$=MID$(P$,I,1)
|
||||
240 : IF I$="(" OR I$="[" THEN O%(O)=I:O=O+1
|
||||
250 : IF I$<>")" AND I$<>"]" THEN 290
|
||||
260 : IF O=0 THEN PRINT "UNMATCHED BRACKET AT"I". ABORTING.":END
|
||||
270 : O=O-1:M=O%(O)
|
||||
280 : B%(I)=M:B%(M)=I
|
||||
290 NEXT I
|
||||
300 IF O THEN PRINT "UNMATCHED BRACKETS AT EOF. ABORTING.":END
|
||||
303 REM SET MS TO NUMBER OF MEMORY CELLS NEEDED
|
||||
305 REM THE BF SPEC REQUIRES 30000, WHICH DOES WORK ON A SYSTEM WITH 48K RAM.
|
||||
307 REM THE DEMO HELLO-WORLD PROGRAM ONLY REQUIRES 4 CELLS.
|
||||
310 MS=4:DIM M%(MS/2-1):MP=0
|
||||
313 REM FUNCTION TO READ BYTE AT CELL N
|
||||
315 DEF FNMP(N)=INT(M%(INT(N/2)) / (1+255*(N AND 1))) AND 255
|
||||
320 FOR I=1 TO LEN(P$)
|
||||
323 : IF MP<0 OR MP>=MS THEN PRINT "ERROR: MP OUT OF RANGE AT"I:END
|
||||
327 : IF DB THEN PRINT "IP:"I"("I$") MP:"MP"("FNMP(MP)")"
|
||||
330 : I$=MID$(P$,I,1)
|
||||
340 : IF I$<>"(" AND I$<>"[" THEN 370
|
||||
350 : IF FNMP(MP)=0 THEN I=B%(I)
|
||||
360 : GOTO 480
|
||||
370 : IF I$<>")" AND I$<>"]" THEN 400
|
||||
380 : IF FNMP(MP) THEN I=B%(I)
|
||||
390 : GOTO 480
|
||||
400 : IF I$="<" THEN MP=MP-1:GOTO 480
|
||||
410 : IF I$=">" THEN MP=MP+1:GOTO 480
|
||||
420 : IF I$="-" THEN V=FNMP(MP)-1:GOTO 500
|
||||
430 : IF I$="+" THEN V=FNMP(MP)+1:GOTO 500
|
||||
440 : IF I$="." THEN ?CHR$(FNMP(MP));:GOTO 480
|
||||
450 : IF I$<>"," THEN 480
|
||||
460 : K$=INKEY$:IF K$="" THEN 460
|
||||
470 : V=ASC(K$):GOTO 500
|
||||
480 NEXT I
|
||||
490 END
|
||||
495 REM UPDATE CELL AT MP WITH VALUE IN V
|
||||
500 M=INT(MP/2):O=M%(M):V=V AND 255
|
||||
510 N0=(O AND -256)+V
|
||||
520 N1=(V*256+(O AND 255))
|
||||
530 M%(M) = (MP AND 1)*N1 - ((MP AND 1)=0)*N0
|
||||
540 GOTO 480
|
||||
545 REM HELLO, WORLD PROGRAM
|
||||
570 DATA "+++++++++[>++++++++<-]>."
|
||||
580 DATA "<+++++[>+++++<-]>++++."
|
||||
590 DATA "+++++++..+++."
|
||||
600 DATA ">>++++[<+++++++++++>-]<."
|
||||
610 DATA ">++++[<--->-]<."
|
||||
620 DATA "<++++++++."
|
||||
630 DATA "--------."
|
||||
640 DATA "+++."
|
||||
650 DATA "------."
|
||||
660 DATA "--------."
|
||||
670 DATA ">>[++][<+++++++>-]<+."
|
||||
680 DATA ">++++++++++."
|
||||
690 DATA ""
|
||||
Loading…
Add table
Add a link
Reference in a new issue