RBASIC on Linux

From Bitchin100 DocGarden
Jump to navigationJump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

RBASIC was designed for DOS/Windows, but it seems to run fine under WINE on Linux.

Note that for .EXE's to launch under WINE on Debian, I had to make them executable. You can leave them non-executable if you prefix commands with 'wine'.

mv RBASICXP.exe RBASICXP.EXE
chmod +x RBASICXP.EXE
chmod +x A100.EXE

Here is a GNU makefile for a simple RBASIC project. Instructions are embedded in the makefile for tailoring to your own installation and project.

# Skeleton Makefile for RBASIC projects on Linux.
#
# Copyright (C) 2009 DevWrights
# Author: John R. Hogerhuis (jhoger@pobox.com)
#
# 0. Install Wine, srecord, and GNU Make, and unzip RBASIC somewhere
# 1. Copy this into your project directory with your *.100 source file
# 2. Edit WINTOOLSPATH, TOOLSPATH to point to RBASIC
#    WINTOOLSPATH must be a path WINE will grok.
#    TOOLSPATH must be a path BASH will grok.
# 3. Customize RBASICOPT, ASMOPT with any desired switches
# 4. Set PROGRAM to the name of your BASIC ASCII source
#    file, omitting extension. I.e., for XYZ.100, PROGRAM=XYZ
# 5. make clean
# 6. make
# 7. Burn the resulting .BX with REXMGR or load it as an OptROM with
#    VirtualT.

WINTOOLSPATH=Z:\\home\\john\\tools\\RBASIC
TOOLSPATH=~/tools/RBASIC

RBASIC=$(TOOLSPATH)/RBASICXP.EXE
RBASICOPT=/O0 /C
ASM=$(TOOLSPATH)/A100.EXE
ASMOPT=/I$(WINTOOLSPATH)\\

PROGRAM=SYSDAT

ALL: $(PROGRAM).BX $(PROGRAM).BIN

.PRECIOUS : $(PROGRAM).ASM $(PROGRAM).HEX

%.ASM : %.100
	$(RBASIC) $(RBASICOPT) $< $@

%.HEX : %.ASM
	$(ASM) $(ASMOPT) $<

%.BX : %.HEX
	@srec_cat -Output TRUNC_$@ -Binary $< -Intel 2> /dev/null
	@dd if=/dev/zero bs=1024 count=32 of=$@ 2> /dev/null
	@dd if=TRUNC_$@ of=$@ conv=notrunc 2> /dev/null
	@rm -f TRUNC_$@ 2> /dev/null
	@echo "Converted Intel hex $< -> $@"
	

%.BIN : %.BX
	cp $< $@

clean:
	-rm -f $(PROGRAM).HEX
	-rm -f $(PROGRAM).PRN
	-rm -f $(PROGRAM).SYM
	-rm -f $(PROGRAM).ASM
	-rm -f $(PROGRAM).BX
	-rm -f $(PROGRAM).BIN