Git Product home page Git Product logo

ijk64's Introduction

ijk64

C64 like (approximate) emulator in pure java - experimental but extensible

Now with just-in-time-compile which gets 50x+ speed increase on mp2.basic (heavy maths)

More information - see https://futex.com.au/basic

$ cd basic
$ java -jar ../jar/ijk64.jar

-or- download C64.jar

  • standalone (no other files required)
$ java -jar C64.jar

Run (default) Oracle java 8 on raspberry pi (when using graphics mode)

Load files from cloud

   READY.
   DIR"%"
   ..
   LOAD"%mp2"
   ..
   RUN

Mastodon

ijk64's People

Contributors

paulrho avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Forkers

itbhp

ijk64's Issues

Column align mode

Make a mode (?) that allows LISTed programs (as they are now) to embed "forbidden" spaces in listing such that all the line#s align and text is wrapped offset from the edge. When moving the cursor around, or inserting/deleting in line, these spaces remain, and text is scrolled across these:

10 PRINT"HELLO":REM THIS
     IS A LONG LINE WRAPPED
^^^

Allow GOSUB from DIRECT

This requires a change in paradigm for the DIRECT/PROGRAM mode internal implementation. But is well overdue.

Add double/float pixel graphics option

with anti-alias switched on, this could allow for smoother dot-by-dot plotting
switch on with ANTIALIAS 2 (sets extra render hints too)
and also calls to LINE, PSET, CIRCLE will then also flip to using draw(Shape .. double)
also (maybe) allow draw to have ANY number of points after it !?!?
Also, think about how to measure performance impact.

BASIC extensibility modules

Allow (zero or many) extra class files to be compiled into C64 (or even run time loaded) to extend basic.
each module should add:

  • KEYWORD
  • number of parameters (and type?)
  • Function (and code) that runs on each keyword
  • Can (and will) use existing library
  • this will be loaded into statements (define, call) and machine (code)
    For functions, same, but they will be
  • loaded into evaluate AND petspeed

Compile FOR statement

Needs 3 parts compiled, plus extra logic to keep the variable, and possibly changed/new Machine FOR functions

directory traversing mechanism

implement CHDIR PWD
also allow to switch between "drives" of:
LOCAL RELATIVE
LOCAL ABSOLUTE
LOCAL other drives (windows) and NETWORK
JAR
CLOUD
NET (alternative places)
Also allow DIR"%" or similar which lists directory without having to load into memory (and overwrite program)

Screen refresh speed

Currently screen refreshed are throttle to 10Hz (with a 100ms delay).
It can be sped up to 100Hz (10ms delay) with a hotkey.
This should perhaps be more controllable/adaptable BUT
It should switch off updating within the screen scroll window (as it is pushing up or down all the text).

dir pattern match

allow :
DIR"%PHYS"
which will match all files with PHYS in the name
DIR"%%PHYS"
same, but in datetime order

INPUT#

Implement INPUT# completely
note, when reading may be partial line read

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.