Skip to content

weimingtom/wmt_basic_study

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

98 Commits
 
 
 
 
 
 

Repository files navigation

wmt_basic_study

My Basic Language study

TODO

How to exit BASIC

  • SYSTEM (for pcbasic)
  • EXIT
  • QUIT
  • BYE ​​​

(IMP) work_emu8080

(IMP) tinybasic csharp and cpp port

  • https://github.com/weimingtom/tinybasic_csharp
  • search baidupan, tinybasic_v3_csharp_failed.rar
  • search baidupan, tinybasic_v13_final_success.rar
  • 不过仔细想想,研究basic诸如bas-int之类的实现,其实有一点点用,因为它很有可能是可重入的
    (调用栈短而且有一个大的执行循环),类似于onscripter。相比而言,lua不太适合做成可重入抢占式,
    虽然lua是可以挂起来,不过很容易循环出不去,无法主动将其挂起
  • https://github.com/weimingtom/tinybasic_cpp

(IMP) tinybasic c and cpp port, with setbuf 0 (from BAS-INT)

uBASIC - A really tiny BASIC interpreter

picbasic

  • PIC单片机BASIC编程项目开发

casio basic

  • Casio卡西欧fx-5800p

EL_BASIC 98

N88-BASIC

tinyBasic2, TinyBASIC2 with SDL and SDL_gfx functions, mod from BAS-INT

minimax8085

ATX80

(IMP) treytomes/ecma_basic, by csharp, interpreter and script engine

BAS-INT (original compiled with Turbo C 2.0 under DOS, gcc mod named TinyBASIC), by C, script engine

BAS-INT, TinyBASIC

my_basic

Proteus 7 samples, vsm for m68hc11, for 8051

LI-CHEN WANG's tinybasic

  • https://github.com/maly/arduino8080basic/blob/master/src/tinybasic.a80
  • Tiny BASIC Li-Chen Wang博士(华裔?)在二十世纪70年代中叶发表了第一个真正用于微处理器的BASIC版本,
  • 可以运行于任何Intel 8080及Zilog Z80 微处理器上, 需要2KB内存,使用纸带输入。
  • 最早版本Palo Alto Tiny BASIC于1976年5月发表在著名计算机杂志Dr. Dobb's。
  • 这是个自由版本,源代码中含有"All Wrongs Reserved"和"CopyLeft" 字样,
  • 表现出作者对金钱的不屑——致敬!
  • 转自,你所熟悉和陌生的BASIC
  • http://blog.chinaunix.net/uid-8581780-id-347017.html
  • TINY BASIC FOR INTEL 8080
  • 我认为研究basic(旧版)也可以用来研究OS,只不过这个OS是DOS那边的闭源OS。
  • 典型例子是MS-DOS的MS-BASIC和更早期的CP/M的TINYBASIC,确实有人做8080的虚拟机来运行TINYBASIC,
  • 而8080的移植版称为Palo Alto Tiny BASIC,最早是Li-Chen Wang写的,
  • 他好像是比较早使用copyleft,所以这个Palo Alto Tiny BASIC是开源的——当然这是汇编实现的。
  • 详细可以参考这篇《你所熟悉和陌生的BASIC》

(TODO) Intel 8080 CPU Emulator, MS 8K BASIC, Dr. Li-Chen Wang Tiny BASIC 1976 (use UPPER case)

>>> r
>>> r basic.hex  
>>> g 1000
let a = 1000
print a
exit
  • Dr. Li-Chen Wang Tiny BASIC 1976 (use UPPER case)
>>> r
>>> r tinybas.hex  
>>> g 0
(!!!!!!!! below, should use UPPER CASE !!!!!!!!)  
> LET A = 1000
> PRINT A
> BYE
  • search baidupan, emu8080_v2.rar

Basic 趣味程序选

101 BASIC Computer Games

  • 我顺便找到一本书《101 BASIC Computer Games》,这本书比较有名,
    然后有人把它移植到CSharp和Java,在gh上:basic-computer-games。
    不过应该没有中文翻译本,配图的,我觉得很有趣,我怀疑以前图书馆会有很多这类旧书,
    毕竟我在图书馆找到过更古老的编程语言的代码书,全是示例代码。
    也可以参考这篇《复活80年代的游戏代码,它们出自第一本售出百万册的计算机书籍》
  • https://github.com/coding-horror/basic-computer-games
  • https://github.com/treytomes/ecma_basic

A Collection of old classic GW-Basic, BASICA, Applesoft BASIC, MSX BASIC and others.

tbi68k

tinybasic

FreeBASIC

BBC Basic

【熟肉】盖茨逊爆了?:C64 BASIC里隐藏的反微软彩蛋

cbmbasic

N88-BASIC ESP32

PC-BASIC, for python3 under linux

pip3 install pcbasic
pcbasic --interface=text  
和其他BASIC解释器不同,这个解释器的退出命令是SYSTEM,不是EXIT或者QUIT或者BYE  

Altair BASIC

(IMP) Girlbasic2k, like TinyBasic

BASIC-52

bootBasic, asm

TinyBasicA64

TinyBASIC-C, basic to asm

tinybasic example in ANTLR

go6502

tastybasic

Tiny BASIC for the CS01

TinyBasic65002

IntyBASIC

EhBASIC for 6502

MacでbootBASIC

(TODO) TINY8086, asm, with nasm and boches

klbasic, BASIC11

ehbasic, easy68k, m68k

???

bootBasic, bootOS

用C语言写BASIC解释器

bas

其实nuttx-apps也有一些跟buildroot中所收录的不同的脚本引擎库,例如wasm-micro-runtime和wasm3。
还有minibasic好像是一个4000行的单文件basic解释器,但我觉得还能缩到1000行以内。
还有bas好像是另一个ANSI BASIC解释器,好像在哪里看见过,但记不起来,出处是moria.de

S-BASIC (1Z-013B), SHARP MZ-700

https://sourceforge.net/projects/mz800emu/
mz800emu-win32-stable-1.0.8-rev_237.rar
run MZ-800 - 32 bit.bat, press c to load .mzf  
or press Alt+K to show keyboard  

1Z-013B.zip
kbasicv5.zip
kostlivec.zip
https://original.sharpmz.org/mz-700/dldos.htm
  • note
又找到一个新的BASIC语言解释器,叫1Z-013B,可以用MZ-700模拟器运行,
例如Sharp MZ-800 Emulator(sourceforge的mz800emu),效果如下。
键盘和现在的键盘不同,可以用Alt+K唤出。ROM可以从sharpmz的下载栏目获得,
格式是mzf。MZ-700是8位机器,基于Z80,我最开始是从咸鱼知道这个(最近)  
  • not good
mzwin_0099.zip
mzwin_0099_v1_not_good.7z
roms.zip
http://mz-800.xf.cz:8080/download.htm

cannot run?
http://sourceforge.net/projects/mz800em/
https://www.math.ucdavis.edu/~mkoeppe/mz800/

not good
https://takamin.github.io/mz700-js/emu.html

MSX BASIC

Natural Tiny Basic (NT-Basic), from BAS-INT.ZIP, see ntbasic-v0.1.1.tar.gz/ref

QBASIC

Avalonia Visual Basic 6

Open Basic

  • ob190.zip

40KB BASIC

small basic

z80 basic

(Closed source) apple1 basic rom

apple1/apple2 basic

运行whscullin/apple1js的BASIC解释器。方法:
(1)通过非井号后缀链接打开www.scullinsteel.com/apple1/
(2)load按钮然后下拉选择BASIC
(3)等待中间红色进度条充满(可以按CLS按键清屏)
(3)加载完成后显示>字符,就可以输入BASIC语句了

运行whscullin/apple2js的BASIC解释器。方法:
(1)最开始打开www.scullinsteel.com/apple2/
(2)在显示APPLE ][的时候无法输入内容,而且加载按钮中找不到BASIC,
但其实可以直接按RESET按键,重启后看到]提示符,并且DISK 1的灯熄灭
(2)在]提示符后面输入BASIC脚本回车即可执行
  • Java apple2
    git: apple2emulator.rar
    eclipse: apple2.rar
我看过gh上应该没有我之前可以运行的Java版Apple2模拟器(我以前好像说过这个问题),
原因不明,不过这东西可能只是方便研究6502汇编语言,
就是说基于这些模拟器甚至可以自己编译磁带ROM然后运行——
当然要先找到合适的6502汇编编译器,但我不清楚具体怎么操作

mist64/msbasic, Microsoft BASIC for 6502

a1basic, Apple I BASIC

虽然看上去用Apple 1、Apple 2(Apple I和Apple II)模拟器跑BASIC很简单,
但其实如果真的要做到源码编译,反汇编成可用的6502汇编代码,这个过程可能就很难,
gh上有人反汇编了至少需要2000多行,这和8086下的
TBASIC(TINY BASIC FOR INTEL 8086 v1.1)差不多行数

https://github.com/weimingtom/emu8086_playground/blob/master/tbasic/TBASIC_MOD.ASM  

msbasic

About

My Basic Language study

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published