With just next to no configuration the 6309 version of BBC Basic can be made to run on the MECB. The only change I had to make was to the i/o dip switches and the address of the UART.
I was going to try and adapt the Creativision BIOS to accept my PS2 keyboard but now since Greg has finished his keyboard I'll wait until I have one of those before trying The Creativision Basic.
I wanted to use that Basic because it has colour functions built in, however with the BBC Basic the colour functions should live in the BIOS (not in this version its UART only) - something I would like to have a go at adapting for the VDP anyway. Here is the first run, showing the Mandlebrot ascii demo pasted into the terminal.
Other versions of Basic I have seen are locked to UART only but the BBC has easily redirectable input and output, A feature I grew up with on my old Ohio C1P. I should be able to adapt this to drive the VDP as a terminal and even the LCD with the BIOS functions I'm experimenting with.
Code: Select all
SBC6309N fbdaa27
> 100 REM A BASIC, ASCII MANDELBROT
> 110 REM
> 120 REM This implementation copyright (c) 2019, Gordon Henderson
> 130 REM
> 140 REM Permission to use/abuse anywhere for any purpose granted, but
> 150 REM it comes with no warranty whatsoever. Good luck!
> 160 REM
> 170 C$ = ".,'~=+:;[/<&?oxOX# " : REM 'Pallet' Lightest to darkest...
> 180 SO = 1 : REM Set to 0 if your MID$() indexes from 0.
> 190 MI = LEN(C$)
> 200 MX = 4
> 210 LS = -2.0
> 220 TP = 1.25
> 230 XS = 2.5
> 240 YS = -2.5
> 250 W = 64
> 260 H = 48
> 270 SX = XS / W
> 280 SY = YS / H
> 290 Q = TIME
> 300 FOR Y = 0 TO H
> 310 CY = Y * SY + TP
> 320 FOR X = 0 TO W
> 330 CX = X * SX + LS
> 340 ZX = 0
> 350 ZY = 0
> 360 CC = SO
> 370 X2 = ZX * ZX
> 380 Y2 = ZY * ZY
> 390 IF CC > MI THEN GOTO 460
> 400 IF (X2 + Y2) > MX THEN GOTO 460
> 410 T = X2 - Y2 + CX
> 420 ZY = 2 * ZX * ZY + CY
> 430 ZX = T
> 440 CC = CC + 1
> 450 GOTO 370
> 460 PRINT MID$(C$, CC - SO, 1);
> 470 NEXT
> 480 PRINT
> 490 NEXT
> 500 PRINT
> 510 PRINT (TIME - Q) / 100
> 520 END
>RUN
............,,,,,,,,,,,,,,'''''''''''''''''''''''''',,,,,,,,,,,,,
...........,,,,,,,,,,,''''''''''''''''''''''''''''''''',,,,,,,,,,
..........,,,,,,,,,'''''''''''''''''''''''~~~~===~~~~''''',,,,,,,
.........,,,,,,,,'''''''''''''''''''''~~~~~~=+[&+==~~~~~''''',,,,
........,,,,,,,'''''''''''''''''''''~~~~~~~==+: ;+++~~~~~~''''',,
.......,,,,,,'''''''''''''''''''''~~~~~~~~===+:[ / [+~~~~~~''''''
......,,,,,,''''''''''''''''''''~~~~~~~~~===+:;/?o[:+==~~~~~'''''
......,,,,''''''''''''''''''''~~~~~~~~~====+:O/x <;:+==~~~~~~'''
.....,,,,''''''''''''''''''''~~~~~~~~~===++:# X/+====~~~~'''
.....,,,'''''''''''''''''''~~~~~~~~~==++++:;/X [:++====~~~''
....,,,'''''''''''''''''''~~~~~~~~==+++:::;[/ X/;:+++++==~~'
....,,''''''''''''''''''~~~~~~~===+[<&x[[? <&x o&//<;:::[[=~~
...,,'''''''''''''''''~~~~~~=====+:; &O /[</&/:=~
...,'''''''''''''''''~~~========++:;< x :=~
..,,'''''''''''''''~~=========+++:;/<O ;+==
..,'''''''''''''~~~=========++++:< ## X<;:+=
..''''''''''~~~~==:/++++++++::::;/x [;:=
.,''''''~~~~~~===+:X[;:;; ;;::;;[ o/=
.,''''~~~~~~~===++;<xXo<<X &<[[[/ X:+
.'''~~~~~~~=====+::[& <<& /:=
.'~~~~~~~~=====+::;/? oO :=
.'~~~~~~~====++/;[/o [+=
.~~~~~~=++++::;/???X #:+=
.==++:/::+:;;[[o :+==
&[:+==
.==++:/::+:;;[[o :+==
.~~~~~~=++++::;/???X #:+=
.'~~~~~~~====++/;[/o [+=
.'~~~~~~~~=====+::;/? oO :=
.'''~~~~~~~=====+::[& <<& /:=
.,''''~~~~~~~===++;<xXo<<X &<[[[/ X:+
.,''''''~~~~~~===+:X[;:;; ;;::;;[ o/=
..''''''''''~~~~==:/++++++++::::;/x [;:=
..,'''''''''''''~~~=========++++:< ## X<;:+=
..,,'''''''''''''''~~=========+++:;/<O ;+==
...,'''''''''''''''''~~~========++:;< x :=~
...,,'''''''''''''''''~~~~~~=====+:; &O /[</&/:=~
....,,''''''''''''''''''~~~~~~~===+[<&x[[? <&x o&//<;:::[[=~~
....,,,'''''''''''''''''''~~~~~~~~==+++:::;[/ X/;:+++++==~~'
.....,,,'''''''''''''''''''~~~~~~~~~==++++:;/X [:++====~~~''
.....,,,,''''''''''''''''''''~~~~~~~~~===++:# X/+====~~~~'''
......,,,,''''''''''''''''''''~~~~~~~~~====+:O/x <;:+==~~~~~~'''
......,,,,,,''''''''''''''''''''~~~~~~~~~===+:;/?o[:+==~~~~~'''''
.......,,,,,,'''''''''''''''''''''~~~~~~~~===+:[ / [+~~~~~~''''''
........,,,,,,,'''''''''''''''''''''~~~~~~~==+: ;+++~~~~~~''''',,
.........,,,,,,,,'''''''''''''''''''''~~~~~~=+[&+==~~~~~''''',,,,
..........,,,,,,,,,'''''''''''''''''''''''~~~~===~~~~''''',,,,,,,
...........,,,,,,,,,,,''''''''''''''''''''''''''''''''',,,,,,,,,,
............,,,,,,,,,,,,,,'''''''''''''''''''''''''',,,,,,,,,,,,,
1E-2
>