Building SuperBASIC itself

From F256 Foenix
Jump to navigationJump to search

Building SuperBASIC from Scratch

If you are using Git bash for a command-line (on MS Windows), you need to tell bash that you're not a real Linux machine:

export OS=cygwin

I had to add the make command by following the instructions here: https://gist.github.com/evanwill/0207876c3243bbb6863e65ec5dc3f058#make. From ezwinports, use the make without guile zip file.

@mgr42 [said in Discord](https://discord.com/channels/691915291721990194/1028045613104910368/1191727753205129227) "I was able to build superbasic from source using the following process:"

  • Install python-is-python3 on your Debian or Ubuntu machine
  • Install `64tass`. The version available in the Ubuntu repos compiles the source without errors.
  • Execute `git clone https://github.com/FoenixRetro/f256-superbasic.git`
  • Execute `git clone https://github.com/WartyMN/Foenix-F256JR-bootscreens.git`
  • Change into the directory `f256-superbasic/source`
  • Execute `make`
  • If this succeeds there will be an updated file called `basic.rom` in the directory `f256-superbasic/source/build`
  • Change into the directory `f256-superbasic/source/build`
  • Execute the command `python splitrom.py`
  • If this succeeds there will be 4 updated files called `sb01.bin`, `sb02.bin`, `sb03.bin` and `sb04.bin` which can be flashed to the F256 Jr./K

The output of make: Output of make

I modified the 00start.asm file on line #30 to change the F256Header from "basic" to "sbasic", this way it shows up in the system commands as a separate command.

F256Header:
		.text	$f2,$56         			; Signature
		.byte   4               			; 4 blocks
		.byte   4               			; mount at $8000
		.word   Boot 	      				; Start here
		.byte   1 			               	; version
		.byte   0               			; reserved
		.byte   0               			; reserved
		.byte   0               			; reserved
		.text   "sbasic",0 					; name of program.
		.text   0							; arguments
		.text	"The SuperBASIC environment.",0	; description

After splitting the ==basic.rom== into bins, I then flashed with this CSV:

08,sb01.bin
09,sb02.bin
0a,sb03.bin
0b,sb04.bin

After reboot, type `/sbasic`.

Type the following in the F256K in 'sbasic'

print ?(8+4)

This command is short for print peek(12).

Result should be `72`.