jsbeeb - JavaScript BBC Micro Emulator 技术文档
2024-12-24 11:17:50作者:何举烈Damon
1. 安装指南
前提条件
- 安装 Node.js (https://nodejs.org/)
- npm(Node.js 自带)
安装步骤
- 克隆仓库:
git clone https://github.com/mattgodbolt/jsbeeb.git cd jsbeeb - 安装依赖:
npm install - 启动本地服务器:
npm start - 在浏览器中访问
http://localhost:8080/。
2. 项目使用说明
键盘映射
BBC Micro 的键盘与现代 PC 键盘有所不同,以下是一些常见的映射:
- BBC
F0对应F10 - BBC
Break键对应F12 - BBC
*键在"键上(如果不起作用,尝试按 shift-2)
要立即开始使用,请访问 https://bbc.xania.org/。要加载默认的磁盘映像(例如 Elite),请按 shift-F12(即 BBC 上的 shift-Break)。
URL 参数
autoboot- 模拟 shift breakdisc1=XXX- 将磁盘 XXX(来自discs/目录)加载到驱动器 1disc2=XXX- 同上disc1=local:YYY- 创建一个本地磁盘 YYY,该磁盘将保存在浏览器本地存储中disc1=sth:ZZZ- 从 Stairway to Hell 档案加载磁盘 ZZZtape=XXX- 加载磁带 XXX(来自tapes/目录)tape=sth:ZZZ- 从 Stairway to Hell 档案加载磁带 ZZZpatch=P- 应用内存补丁P。详见下文。loadBasic=X- 将 'X'(服务器上的资源)作为文本加载,将其标记化并放入PAGE,就像在模拟器中输入一样embedBasic=X- 将 'X'(URI 编码字符串)作为文本加载,将其标记化并放入PAGE,就像在模拟器中输入一样autorun- 输入*TAPE然后*/从磁带运行。与loadBasic结合使用时,输入RUN。autochain- 输入*TAPE然后CH.""从磁带运行。autotype- 输入你指定的内容。例如&autotype=PRINT"Matt is cool"%0a(回车符 URI 编码为%0a)embed- 移除屏幕周围的边距,隐藏大多数导航条目,并使页面背景透明(用于在第三方网站的 iframe 中运行时)。cpuMultiplier=X- 将 CPU 速度提高X倍。可以是分数或小于 1 以减慢 CPU 速度。注意,磁盘加载在 CPU 过慢时会变得不可靠,运行过快可能会导致浏览器挂起。sbLeft/sbRight/sbBottom- 在显示器左侧、右侧或下方放置的 URL。左侧和右侧应约为 648 像素高,底部图像应约为 896 像素宽。左侧和右侧宽度超过 300 可能会在较小屏幕上出现问题;底部高度超过 100 像素同样如此。videoCyclesBatch- 批量处理视频周期的数量。默认为零:任何更高的值都会导致模拟不准确。用于展示为什么即使效率较低,准确性也很重要。rom- 加载给定的 URL 或路径作为额外 ROM。如果提供 URL,则该 URL 必须允许跨站点请求。不支持sth:伪 URL,但如果是 ZIP 文件,将尝试使用其中的.rom文件。logFdcCommands,logFdcStateChanges- 打开磁盘控制器的日志记录。
3. 项目API使用文档
补丁
补丁可以通过 patch=P URL 参数应用。P 是一个分号分隔的补丁序列,格式为 @XXXX,YYYY:ZZZZZ,...,其中 @XXXX 指定断点 PC 地址,YYYY 是要修补的地址,ZZZZ 是要写入地址 YYYY 的数据。@ 部分是可选的,但有助于确保要修补的代码已加载。例如:patch=@31a6,0769:6e4c4d48465a,这是一个默认 Elite 映像的补丁。一旦 PC 达到 $31a6,0769 处的字节将被替换为 6e4c4d48465a。
从 GitHub Gists 加载 BASIC 文件
- 创建一个包含你的代码的 gist。https://gist.github.com/ - 这里有一个 示例
- 通过点击 "raw" 并复制 URL 获取 "Raw" 链接。在上面的例子中,URL 是:https://gist.githubusercontent.com/mattgodbolt/fc8d6f3d6e5e015dce399013719c8341/raw/bd5cb4314bfc3ee4330783ecf82cb329a36b915c/foo.bas
- 将其添加到 "https://bbc.xania.org/?autorun&loadBasic=" 或类似内容之后,例如,此链接
注意,每次更新代码都需要生成一个新的 raw 链接。
4. 项目安装方式
本地运行
- 克隆仓库:
git clone https://github.com/mattgodbolt/jsbeeb.git cd jsbeeb - 安装依赖:
npm install - 启动本地服务器:
npm start - 在浏览器中访问
http://localhost:8080/。
在线使用
直接访问 https://bbc.xania.org/ 即可在线使用。
登录后查看全文
热门项目推荐
Kimi-K2.5Kimi K2.5 是一款开源的原生多模态智能体模型,它在 Kimi-K2-Base 的基础上,通过对约 15 万亿混合视觉和文本 tokens 进行持续预训练构建而成。该模型将视觉与语言理解、高级智能体能力、即时模式与思考模式,以及对话式与智能体范式无缝融合。Python00- QQwen3-Coder-Next2026年2月4日,正式发布的Qwen3-Coder-Next,一款专为编码智能体和本地开发场景设计的开源语言模型。Python00
xw-cli实现国产算力大模型零门槛部署,一键跑通 Qwen、GLM-4.7、Minimax-2.1、DeepSeek-OCR 等模型Go06
PaddleOCR-VL-1.5PaddleOCR-VL-1.5 是 PaddleOCR-VL 的新一代进阶模型,在 OmniDocBench v1.5 上实现了 94.5% 的全新 state-of-the-art 准确率。 为了严格评估模型在真实物理畸变下的鲁棒性——包括扫描伪影、倾斜、扭曲、屏幕拍摄和光照变化——我们提出了 Real5-OmniDocBench 基准测试集。实验结果表明,该增强模型在新构建的基准测试集上达到了 SOTA 性能。此外,我们通过整合印章识别和文本检测识别(text spotting)任务扩展了模型的能力,同时保持 0.9B 的超紧凑 VLM 规模,具备高效率特性。Python00
Baichuan-M3-235BBaichuan-M3 是百川智能推出的新一代医疗增强型大型语言模型,是继 Baichuan-M2 之后的又一重要里程碑。Python00
VLOOKVLOOK™ 是优雅好用的 Typora/Markdown 主题包和增强插件。 VLOOK™ is an elegant and practical THEME PACKAGE × ENHANCEMENT PLUGIN for Typora/Markdown.Less00
热门内容推荐
最新内容推荐
Degrees of Lewdity中文汉化终极指南:零基础玩家必看的完整教程Unity游戏翻译神器:XUnity Auto Translator 完整使用指南PythonWin7终极指南:在Windows 7上轻松安装Python 3.9+终极macOS键盘定制指南:用Karabiner-Elements提升10倍效率Pandas数据分析实战指南:从零基础到数据处理高手 Qwen3-235B-FP8震撼升级:256K上下文+22B激活参数7步搞定机械键盘PCB设计:从零开始打造你的专属键盘终极WeMod专业版解锁指南:3步免费获取完整高级功能DeepSeek-R1-Distill-Qwen-32B技术揭秘:小模型如何实现大模型性能突破音频修复终极指南:让每一段受损声音重获新生
项目优选
收起
OpenHarmony documentation | OpenHarmony开发者文档
Dockerfile
539
3.76 K
Ascend Extension for PyTorch
Python
345
412
本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。
C++
888
605
openEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。
C
337
182
暂无简介
Dart
777
192
deepin linux kernel
C
27
11
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
1.34 K
758
React Native鸿蒙化仓库
JavaScript
303
356
openJiuwen agent-studio提供零码、低码可视化开发和工作流编排,模型、知识库、插件等各资源管理能力
TSX
987
252
仓颉编译器源码及 cjdb 调试工具。
C++
154
896