Откройте свой веб-сайт (не забудьте запустить веб-сервер, среда выполнения 6502web использует fetch для загрузки двоичного файла, и для этого нам нужен работающий веб-сервер :3)
И... ЧТО ЭТО?!
Если вы откроете инструменты разработчика, вы каким-то образом сможете это увидеть,
Элемент появился с надписью «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,
Атари2600 и РЭШ. До сих пор люди играют на сборке 6502, создавая программное обеспечение и игры для этих забытых платформ.
Теперь позвольте мне представиться — я Кассиопея (однако в формальной обстановке я использую Оливию), трансгендерная женщина, любящая старые технологии и ассемблерное программирование. Я работаю разработчиком JavaScript более шести лет. Большую часть времени я работал с типичными веб-технологиями, такими как Vue, React и Angular. Хотя большая часть моего опыта связана с фронтенд-разработкой, большую часть удовольствия от программирования я получаю от серверной разработки. И около года назад я был поражен старой технологией, и тут на помощь приходит 6502.
6502 имеет всего(!) 56 инструкций, но даже с таким ограниченным количеством инструкций разработчики (как всегда) смогли создать впечатляющие программы.
Вы когда-нибудь задумывались о том, каково было бы писать свои веб-приложения с использованием 6502?
Нет?
Конечно нет, с чего вы так думаете?!
Но я...! Я думал об этом! Я думал о том, как было бы собрать вашу программу 6502, загрузить ее и создать веб-сайт!
Добро пожаловать в 6502Web, среду выполнения 6502, написанную на JavaScript, которая позволяет создавать (простые) веб-сайты и веб-приложения с использованием сборки 6502!
Я хотел сделать свою среду выполнения как можно более простой и без использования 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)
И... ЧТО ЭТО?!
Если вы откроете инструменты разработчика, вы каким-то образом сможете это увидеть,
Элемент появился с надписью «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