C64 (like) Basic

Download

Current master version on github
https://github.com/paulrho/ijk64/raw/master/C64.jar

Run

From Command Prompt or Terminal...
java -jar C64.jar -c -2
(Centered and double pixel size)

Use

Load a directory listing from the (cloud) web... (currently shared)
HELP
LOAD"%"
LIST
LOAD"%GENES2016"
RUN



Tips

For CTRL key use Tab
For C=   key use Left-Ctrl
For RUN/STOP key use Shift-Esc

Run with proxy:
java -Dhttp.proxyHost=111.222.111.123 -Dhttp.proxyPort=8080 -jar C64.jar
Run faster (initially runs slower, then runs nearly twice as fast)
java -server -jar C64.jar

Details

C64 paradigm:

Transcending the C64 paradigm:

New fixes & features

with 3.4.0.b1897

wiki



Basic programs

current "$" listing

(from within jar)
REM PROGRAM = $.BASIC                                       
17   "GENESDT"             :PRG                             
20   "G20"                 :PRG                             
21   "G2010B"              :PRG                             
10   "TRYALL"              :PRG                             
2 MANY BLOCKS FREE                                          

current "$$" listing

(from web)
REM PROGRAM = HTTP://WWW.FUTEX.COM.AU/BASIC/$.TXT           
28   ":GENES2016"          :PRG                             
20   ":PEOPLE10-1"         :PRG                             
36   ":STANDEW-39"         :PRG                             
1    "--------------------":PRG                             
1    ":PI"                 :PRG                             
10   ":GRETAGAME2"         :PRG                             
10   ":GRETAMULT2"         :PRG                             
10   ":MINEPLOT"           :PRG                             
10   ":BTEST5F"            :PRG                             
10   ":PISTONS"            :PRG                             
1    "--------------------":PRG                             
1    ":TESTS/$"            :DIR                             
1    "====================":PRG                             
2    "PIBACK4.PNG"         :NOLOAD                          
2    "PIBACK4B.PNG"        :NOLOAD                          
2    "C64.JAR" V3.4.0.B1524:NOLOAD                          
2 MANY BLOCKS FREE                                    

current "%" listing

(from cloud)
LOAD"%"
                                                            
READY.                                                      
LIST
                                                            
REM PROGRAM = HTTP://WWW.FUTEX.COM.AU/BASIC/DIR.PHP         
%AN40F11        11318 2016-03-22 00.47                      
%AUTEST1000       881 2016-03-29 21.48  
%BTEST5F         3769 2016-03-22 07.37  
%FLASHWORD4      7672 2016-03-22 07.22  
%GENES2016      28277 2016-03-27 21.06  
%GRETAGAME2      4015 2016-03-22 07.38  
%GRETAMULT2      3437 2016-03-22 07.38  
%GTESTCASE2       382 2016-03-22 07.00  
%MINEPLOT        5291 2016-03-22 07.37  
%MP2             6592 2016-03-22 00.56  
%PATIENCE        9277 2016-03-28 19.36  
%PEOPLE10-1     20656 2016-03-22 07.02  
%PI               345 2016-03-25 23.15  
%PIB              355 2016-03-26 00.53  
%PISTONS         2334 2016-03-22 07.37  
%PRGBUGS          113 2016-03-22 09.06  
%README           609 2016-03-22 07.41  
%REVERSI         7531 2016-03-31 21.33  
%SATEL250       24524 2016-03-22 10.15  
%STANDREW-39    36574 2016-03-22 07.37  
%TAROT          24479 2016-04-02 16.07  
%TIME1            268 2016-03-22 15.52                      
%TRYALL          2045 2016-03-22 00.35                      
                                                            
READY.

Syntax

Accepted commands

areavercommanddescription
flow2.0FOR..TO..STEP
flow2.0NEXT
flow2.0IF..THEN/GOTO
flow2.0GOTO/GO TO
flow2.0GOSUB
flow2.0ON..GOTO/GOSUB
flow2.0RETURN
flow2.0END
io2.0GET#5
io2.0PRINT#
io2.0PRINT
io2.0OPEN
io2.0INPUT/#1
io2.0INPUT#
io2.0CLOSE
var2.0LET
var2.0DEF FN
var2.0DIM
var2.0DATA
var2.0READ
var2.0RESTORE
var2.0pi
var2.0TIinterger time in 60ths of second
var2.0TI$HHMMSS
var2.0STFile I/O status
sys2.0POKE
sys2.0PEEK
sys2.0SYS
control2.0LISTlist current program
control2.0RUNrun current program
control2.0LOAD
control2.0SAVE
control2.0VERIFYN/A
control2.0CLR
control2.0NEW
control2.0CONT
control2.0STOP
control *7.0SLOWN/A
control *7.0FASTN/A
control2.0WAITNot defined / Not implemented (yet)
ext:metaijkMETA-VERBOSE
ext:metaijkMETA-SCALE
ext:metaijkMETA-SCALEY
ext:metaijkMETA-ROWS
ext:metaijkMETA-COLS
ext:metaijkMETA-BGTRANS
ext:metaijkMETA-CHARSET
ext:metaijkMETA-DUMPSTATE
ext:metaijkMETA-TIMING
ext:metaijkEXIT
ext:expandijkHELP
ext:expandijkLABEL
ext:graphicshbSCREEN
ext:graphicshbBEGINFRAME
ext:graphicshbENDFRAME
ext:graphicshbANTIALIAS
ext:graphicshbCLS
ext:graphicshbLSET
ext:graphicshbFSET
ext:graphicshbPSET
ext:graphicshbALERT
ext:graphicshbRECT
ext:graphicshbLINE
ext:graphicshbCIRCLE
ext:graphicshbGPRINT
ext:graphicshbFILES
ext:graphicshbIMAGELOAD
ext:graphicshbDRAWIMAGE
ext:graphicshbDESTROYIMAGE
ext:graphicshbSLEEP* also works without starting graphics mode
func/trig2.0SIN(
exp:func ASIN(
func/trig2.0COS(
exp:func ACOS(
func/trig2.0TAN(
func/trig2.0ATN(
exp:func SILLY(test func
func2.0SGN(
func2.0INT(
func2.0ABS(
func2.0RND(
func2.0EXP(
func2.0LOG(
func2.0SQRT(/SQR(
func2.0POS(
func2.0PEEK(
func2.0FRE(0 = actual free, 1 = free (of total) 2,3,4
func/str2.0VAL(
func/str2.0TAB(
func/str2.0SPC(
func/str2.0LEN(
func/str2.0ASC(
func/str2.0CHR$(
func/str2.0STR$(
func/str2.0LEFT$(
func/str2.0RIGHT$(
exp:func PCASC(
exp:func PCCHR$(
exp:func PETCONVERT(
exp:func PETUNCONVERT(
exp:func7.0INSTR(
exp:func metaRDS(used internally
exp:func EVAL$(evaluates a run time string
exp:op ,internal pri:1
exp:op ===internal pri:2
logic2.0ORpri:3
exp:func/logic XORpri:4
logic2.0ANDpri:5
logic2.0NOTpri:6 right->left
op2.0>pri:7
op2.0<pri:7
op2.0pri:7
op2.0pri:7
op2.0!=pri:7
op2.0<>pri:7
op2.0=pri:7
op2.0==pri:7
op2.0+pri:8
op2.0-pri:8
op %mod, Not implemented (yet)
op2.0*pri:9
op2.0/pri:9
op2.0-(ve)pri:10 right->left *newly updated precedence
op2.0^pri:11
op2.0(pri:12
op2.0)pri:12

Code

Java, on github: https://github.com/paulrho/ijk64.

Code Architecture

To Do

* 160 isn't a reversed block (I think) =FIXED!- changed test case
* string after data token space = FIXED
* doesn't allow input"string";i$ - FIXED
* things ending in SPC() (or TAB()?)-FIXED
  is same as ;-FIXED
* ; then space then : or EOL-FIXED
* poke1024,160 : wont show unless space over it! (default color black!) -> see clear screen set colour
. let - done

-----
* when clear screen - should set colour to cursor colour (?)
* doesn't allow input c : (treats as string)
* exact 40 chars with ; - note sure this is an issue
* DATA/READ cant read data unless run already (should force a caching somehow)
* space between func name and ( (should be allowed but isnt')

** Feature completions:
*implement:
. go
. usr
. cmd

** Feature Expansions:
* required feature:  copy paste part of screen and full log
* required 128 expansions:
  * print using
  * else
  * begin
  * bend

* implement:
. Implement:
. Graphics: GRAPHIC, SCNCLR, COLOR, BOX, CIRCLE, DRAW, PAINT, LOCATE, SCALE; CHAR
. RCLR(), RDOT(), RGR()
. Sprites & Shapes: SSHAPE, GSHAPE, SPRSAV, SPRDEF, SPRITE, SPRCOL, MOVSPR, RSPCOL(), RSPPOS(), RSPR()
. COLINT, RBUMP()
. Inputs: KEY, RJOY(), RPOT(), RPEN()
. Music & Sound: TEMPO, TUNE, FILTER

Raspberry Pi


Unix, linux from the beginning:
Terminal (is the unix shell)
default userid is "pi"
# and everything after in shell is a comment
root is the master user with all permissions
sudo su   #will start shell as root user
sudo ..a command.. # will run that command only as root 

Updating the software

sudo apt-get update       #updates the software list
sudo apt-get upgrade      #updates the actual software
sudo apt-get dist-upgrade #updates major versions
sudo rpi-update           #updates the firmware

To get this configuration LOAD"%PI":RUN

References

Genes

A whole discussion unto itself.....

For another page.