RPC8/e / 65el02 emulator / information page - ARCHIVE


20120603:
	Very unstable and very experimenal first release of BASIC V2.0.120603 is available
	for testing purpose.

	This version is made from scratch with additional integer library.
	Lots of functions not working yet, no string functions, no print function,
	no floating point lib, but MMU and PIXELDEMO runs even if it's not flawless.

	New features: case-insensitive functions, case-sensitive labels

	You can check execution time comparsion between the two basic versions below

			  | V1.0.120602	|  V2.0.120603	| Speed increment
		----------------------------------------------------------
		MMU	  |  854 ticks	|   511 ticks	|       67%
		PIXELDEMO | 1051 ticks	|   704 ticks	|	49%

	
20120602:
	BASIC V1.0.120602 is available for download.
	Notable change:
	  - TICKS command renamed to DELAY. If you load your saved program then the LIST will
	    display the old TICKS command as DELAY from now.

	Addition:
	  - SETPIXEL and CLRPIXEL command added for "pixel" graphics. :)
	    Check "PIXELDEMO" on the disk image.

	  
20120531:
	Experimental(!!!) BASIC V1.0.120531 available.
	  - possible memory copy bug (one byte long copies not handled well) fixed
	  - new numbered line handler code implemented (not well tested)
	  - new shortened and tweaked MCFS boot code (also not very well tested)

	Possible side effect by using this experimental basic: loss of your typed in program.

	There's also problem (in every version) with the DELETE command: sometimes it returns
	with I/O error and messes up the allocation table. If anyone knows how to reproduce
	the problem then don't hesitate to share it with me.


20120530:
	If you want to know how to implement a new bug with bug fixing then download the snapshot
	from below. If not then here's a probably better working one: BASIC snapshot 120530b.
	I hope that i don't need to release any more bug fixing snapshot today because it's ridiculous. :)

	One more bug eliminated in BASIC snapshot 120530.
	  - Trailing spaces caused trouble in parser, mostly after strings

	Bonus: speed comparison chart for different snapshots/programs

		program		|120525	|120527	|120530b	 25->27	|27->30b|25->30b
		-----------------------------------------------------------------------
		HISOGRAM	|  N/W	| 1895	| 1800		   N/A	| +5.3%	|  N/A
		MMU		|  929	|  883	|  865		  +5.2%	| +2.1%	| +7.4%
		SINUS		|  673	|  518	|  513		 +29.9%	| +0.9%	|+31.2%

	Well, the speed boost wasn't as huge as predicted but it's still pretty well measurable.


20120529:
	Another bugfix release BASIC snapshot 120529b is available for download
	  - TICKS went into an infite loop when value was bigger than 255.

	BASIC snapshot 120529 is available for download
	  It's just a simple bugfix release:
	  - Memory copy (read bug and line disappearing) fixed.

20120528:
	Emulator v0.09 and it's source code released, read the changelog here

	Well... a new BASIC snapshot is available for download.
	  Rewriting the floating point lib didn't hit my expectation (it wasn't any faster), so the
	  disk i/o, variable scanning and a few more things tweaked instead.

	  Newly implemented function:
	  - HELP		shows available basic commands and functions
	
20120527:
	New BASIC snapshot available for download.
	  Tweaks on floating point calculations (quicker multiplication)
	  Now you can disable CTRL-C with POKE2,255. Re-enable it with POKE2,0 (for "server users")

	  I want to rewrite the floating point lib from scratch so if no new bug appears or no new
	  implementation request arrives then this will be the last snapshot for the next few days.

20120526:
	Today's BASIC snapshot available for download.
	  Newly implemented function:
	  - TICKS val		waits for "val" ticks, should be bigger than 0, it's unreliable if the redbus
				is not set to the display (because the way of MMU instruction works you need
				to divide the value by 3 in this case)

	  Function XY (sets the displays cursor to coordinates) renamed to SETXY to avoid interfere with "XY"
	  variable.
	  Function DIM now works well with a workaround for the stack handling bug of 65el02.

	  A few 16-bit optimalization is already made but much more will come. In my opinion in certain cases
	  the BASIC will be at least two times (or more) faster in the near future. However it's not an easy
	  task with the limited available memory. In 65xx based cpus "short" codes isn't the fastest codes.

	  I want to mention that these changes (renaming a token) or newly implemented functions will not
	  intefere with your already typed and saved programs. The old "XY" command will be shown as "SETXY"
	  when you lists your basic program in the newer versions.

	Emulator v0.09 is on it's way with almost identical behavior as the RPC8e with IO Expander support and
	built in "monitor" to make your hacking life easier. ETA is 2 days.


20120525:
	Source code of MCFStool is available for the "hackers". Compile it with "gcc -o mcfstool mcfstool.c"
	New Minecraft BASIC - MCFS snapshot available for download
	  new functions implemented
	  - MMUSET xx,yy	works like LDA #$yy , MMU #$xx assembly instructions (yy is 16 bit wide)
				example: MMUSET0,1 : REM Sets the active redbus device id to 1
	  - MMUGET(xx)		works like MMU #$xx assembly instruction
				example: MMUGET(129) : REM Reads the redbus window

	  for both MMU command the value 2,130 and 131 is denied to protect basic from fearless ones...
	  you can find an example about the MMUSET/MMUGET commands on the demodisk

 	Modified rcpboot source and binary available
	Emulator v0.08 and it's source code released, read the changelog here


20120524:
	MineCraft FileSystem (MCFS) documentation is available.
	Brand new Minecraft BASIC - MCFS snapshot available for download
	  new functions implemented
	  - DISKFORMAT		creates MCFS on a blank (or occupied :) disk with name
				example: DISKFORMAT"MyDisk"
	  - SAVEBASIC		saves the basic interpreter to the disk
				example: SAVEBASIC"BASIC"
	  - SETBOOT		sets the boot flag for the file
				example: SETBOOT"BASIC"
	  - DELETE		deletes the file (and also remove the boot flag if it's presented on the file)

	  A few optimalizations made already and almost every planned function is working. Have fun!
          And finally here's a demo disk with a few very 'basic' basic programs.
	  
20120523:
	And again a new Minecraft BASIC - MCFS snapshot available for download
	  new functions implemented
	  - DIR			shows the disk directory
	  - SAVE		saves your basic program from memory to disk
				example: SAVE"PRG"
	  - LOAD		loads your basic program from disk to memory
				example: LOAD"PRG"

	At least 16K ram required and new bootcode preferred too.
	Screenshots: in emulator and in game.

20120523:
	New basic snapshot available for download
	  new functions implemented/enabled
	  - GET	val$		waits a character and the result stored in string, works in program mode only
				example: 1 GET A$:IF A$<>"" THEN PRINT ASC(A$)
	  - CLRSCR		clears the screen
	  - XY valx,valx	sets the cursor to the coordinates

	  CTRL-C now stops the program execution (aka run-stop)

	Also a new bootcode (+src) available with MCFS support
	Of course basic on (yet a bit dummy) MCFS image is available too, however mcfs images works well with the
	default boot loader but it's slow as hell (the MCFS boot code on image is small but the default boot loader
	just read the whole disk without brain...)

	The next release (probably at the weekend) of the basic will came with working SAVE and LOAD functions and
	a fully functional MCFS with commands like DIR, FORMAT, etc.

	
20120522:
	new basic snapshot available for download
	  new functions implemented, but yet untested ingame so it's possible that the values are not in little endian
	  or something doesn't work as required

	  - ioget(id)		reads the actual value from io expander read buffer (0x00-0x01)
				example: PRINT IOGET(4):REM PRINT THE VALUE OF IO EXPANDER #4 READ BUFFER

	  - iopeek(id)		reads the actual value from io expander output latch (0x02-0x03)
				example: PRINT IOPEEK(4):REM PRINT THE VALUE OF IO EXPANDER #4 OUTPUT LATCH
			
	  - ioset id,val	sets the io expander output latch to value (0x02-0x03)
				example: IOSET 4,IOPEEK(4) OR 16

	  please report bugs at http://ibm5100.net/redpower/ or via e-mail

20120521:
	- emulator v0.07 released, read the changelog at the bottom of the page
	- 'working' BASIC for RPC8/e is available (at least 8K memory extension required)

20120521:
	- emulator v0.06 released due to new RedPower release (pr5b2)
	  read the changelog at the bottom of the page
	- blitter_example, slideshow, tetris and my bootloader (+source) changed and reuploaded
	  due to the CPU changes in RedPower 2 pr5b2.

	Macintosh version of the emulator (only v0.06 at the moment) is available at
	http://ibm5100.net/redpower/resources

20120519:
	- emulator v0.05 (Mack Edition) released (and it's source code too), read the changelog below
	I hope that everyone could compile the emulator on different platforms without problem from now.

20120509:
	- emulator v0.04 released, read the changelog below

20120507:
	- emulator v0.03 binary reuploaded, charset.rom and rpcboot.bin from roms folder missed. thanks to Guile for reporting it.

20120505:
	- emulator updated
	- tetris.img updated, now works well as a real disk image with "default" boot loader
	- some 65el02 informations added (bugs, a bit more detailed new opcodes explanation)
	- "blitter example" source code + image file
	- slideshow with 5 images for unexpanded RPC8/e :)

Directory listing