Старая школа "Commodore 64" BASIC - Peek / Poke команды;есть ли эквивалент в форме BATCH? - PullRequest
0 голосов
/ 13 октября 2018

Я «Старый таймер», который научился программировать на Commodore 64 с кассетным диском (не дисководом) для хранения данных.О, радость!

Мне интересно, есть ли эквивалентный способ выполнения команд Peek и Poke в файле .bat.Можно ли вообще проверить конкретный адрес так, как он работает на языке BASIC?

Может ли пакетный файл найти адрес чего-то вроде того, была ли нажата клавиша 'y', и может ли он также установитьзначение этого адреса, чтобы указать, что клавиша была нажата?

Раньше что-то вроде PEEK(64324) возвращало значение этого местоположения.Точно так же;POKE(64324) установит значение в этом месте.

Я мог бы запустить цикл, который в основном ожидал ввода с клавиатуры, и если бы он получил исправленный триггер по этому адресу, он выполнил бы команду.Например,

For x = 1 to 1000
If PEEK(64324) = 1 then exit
Next x

Таким образом, при нажатии клавиши «y» цикл завершается или переходит к следующей команде.Может ли BATCH проверить определенный адрес на предмет его текущего состояния, и если да, есть ли какое-либо хранилище или список где-нибудь, в котором указано, какой адрес предназначен для таких вещей, как цвета и клавиши на клавиатуре?

1 Ответ

0 голосов
/ 23 октября 2018

В MSDOS вы можете использовать инструмент DEBUG, чтобы получить дамп памяти:

SHOWBIOS.BAT

ECHO:d FE00:0000 0040 >debug.txt  
ECHO:q >>debug.txt  
DEBUG < debug.txt > debug.out

Вы можете запустить дамп памяти через скрипт

-d FE00:0000 0040
FE00:0000 41 77 61 72 64 20 53 6F-66 74 77 61 72 65 49 42  Award SoftwareIB
FE00:0010 4D 20 43 4F 4D 50 41 54-49 42 4C 45 20 34 38 36  M COMPATIBLE 486
FE00:0020 20 42 49 4F 53 20 43 4F-50 59 52 49 47 48 54 20   BIOS COPYRIGHT
FE00:0030 41 77 61 72 64 20 53 6F-66 74 77 61 72 65 20 49  Award Software I
-q
...