打开您的网站(记得启动网络服务器,6502web运行时使用fetch加载二进制文件,我们需要一个为此运行的网络服务器:3)
还有... 那是什么?!
如果你打开devtools,你可以看到,不知何故,一个
元素已出现并带有“HI!”作为其内容..但是如何?!让我们再看一下 6502 代码,现在有注释了!
LDA #0 ; 0 is the ID of aelement in 6502web runtime, lets load itSTA $46 ; store it to $46, which is start of our RAM memorySTA $0; by storing to $0, we RUN a built-in function which is responsible for creating an HTML element, that uses $46 as its argument (what HTML element to create!)LDA #3 ; 3 will now be the length of the string we want to put in our
!STA $46 ; store it at $46LDA #72 ; \\'H\\' in ASCII!STA $47 ; store it at $47LDA #73 ; \\'I\\' in ASCII!STA $48 ; store it at $48LDA #33 ; \\'!\\' in ASCII!STA $49 ; store it at $49STA $1; storing to $1 runs another built-in function, that is responsible for setting up text content of a *recently* created HTML element. Its first argument is length of the string it has to read, and then it reads memory fields (ASCII characters) after that, corresponding to the length we stored at $46
所以.. 这基本上就是 6502web 运行时的工作原理。目前仅实现了少量功能:
通过少量的功能,我能够创建一个非常简单的计数器应用程序!
我相信现在就够了,如果你有兴趣,可以自己来看一下,只是要注意这个运行时间主要是一个笑话(我花了很多功夫的一个笑话)
我仍在努力,所以许多操作码尚未实现。
GitHub
祝大家有美好的一天!
","image":"http://www.luping.net/uploads/20240918/172662264966ea2bb9b2959.png","datePublished":"2024-09-18T09:24:09+08:00","dateModified":"2024-09-18T09:24:09+08:00","author":{"@type":"Person","name":"luping.net","url":"https://www.luping.net/articlelist/0_1.html"}}MOS 6502 是经济实惠计算领域的一大进步。感谢这个小家伙,我们了解了 Commodore64、Apple II、
Atari2600 和 NES。直到今天,人们仍在使用 6502 Assembly,为这些被遗忘的平台创建软件和游戏。
现在,让我介绍一下自己 - 我是Cassiopeia(但是,我在正式场合使用 Oliwia),一位热爱旧技术和汇编编程的跨性别女性。我担任 JavaScript 开发人员已有六年多了。大部分时间我都使用典型的 Web 技术,例如 Vue、React 和 Angular。尽管我的大部分经验来自前端开发,但我从编程中获得的大部分乐趣却来自后端开发。大约一年前,我对旧技术感到惊讶,这就是 6502 的用武之地。
6502 只有(!)56 条指令,但即使指令数量如此有限,开发人员(一如既往)也可以创建令人印象深刻的程序。
您有没有想过使用 6502 编写 Web 应用程序会是什么样子?
不?
当然不是,你为什么会这么想?!
但是我...!我想过这个!我想过如何组装你的6502程序,上传它并让它生成一个网站!
欢迎来到6502Web,这是一个用 JavaScript 编写的 6502 运行时,它使得使用 6502 程序集创建(简单)网站和 Web 应用程序成为可能!
我想让我的运行时尽可能简单并且尽可能少使用 javascript,特别是因为这是我第一次写这样的东西。
首先,组装你的6502程序,为了测试我主要使用masswerk汇编器,因为它对我来说是最快的。
让我们从简单的事情开始,尝试编写这样的程序:
LDA #0 STA $46 STA $0 LDA #3 STA $46 LDA #72 STA $47 LDA #73 STA $48 LDA #33 STA $49 STA $1
现在您已经下载了 .bin 文件,请将 6502web cdn 链接到您的网络应用程序。
然后,您可以加载二进制文件并运行它,如下所示:
打开您的网站(记得启动网络服务器,6502web运行时使用fetch加载二进制文件,我们需要一个为此运行的网络服务器:3)
还有... 那是什么?!
如果你打开devtools,你可以看到,不知何故,一个
元素已出现并带有“HI!”作为其内容..但是如何?!让我们再看一下 6502 代码,现在有注释了!
LDA #0 ; 0 is the ID of aelement in 6502web runtime, lets load it STA $46 ; store it to $46, which is start of our RAM memory STA $0 ; by storing to $0, we RUN a built-in function which is responsible for creating an HTML element, that uses $46 as its argument (what HTML element to create!) LDA #3 ; 3 will now be the length of the string we want to put in our
! STA $46 ; store it at $46 LDA #72 ; 'H' in ASCII! STA $47 ; store it at $47 LDA #73 ; 'I' in ASCII! STA $48 ; store it at $48 LDA #33 ; '!' in ASCII! STA $49 ; store it at $49 STA $1 ; storing to $1 runs another built-in function, that is responsible for setting up text content of a *recently* created HTML element. Its first argument is length of the string it has to read, and then it reads memory fields (ASCII characters) after that, corresponding to the length we stored at $46
所以.. 这基本上就是 6502web 运行时的工作原理。目前仅实现了少量功能:
通过少量的功能,我能够创建一个非常简单的计数器应用程序!
我相信现在就够了,如果你有兴趣,可以自己来看一下,只是要注意这个运行时间主要是一个笑话(我花了很多功夫的一个笑话)
我仍在努力,所以许多操作码尚未实现。
GitHub
祝大家有美好的一天!
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3