Вход

Просмотр полной версии : Помогите разобраться с ассемблером



casperzx
17.08.2010, 18:15
Доброе время суток.

Недавно решил написать свою первую программу на ассемблере под ZX Spectrum 128K.

Нашел в интернете книжку «Как написать игру для ZX Spectrum на ассемблере».

Взял простенький пример кода :

ORG 60000
LD A,2
CALL 5633
LD A,"A"
RST 16
RET

Но почему-то при вводе RANDOMIZE USR 60000 вместо запуска моего кода выводит ошибку вида:

2 Variable not found, 0:1

Пробовал сначала код писать под GENS4, а после и в модуле ассемблера самого эмулятора EmuZWin но результат тот же.

Что я делаю не так? :v2_conf2:

psb
17.08.2010, 18:29
только что проверил в Unreal (код писал в его отладчике) - все ок. запускал из бейсика 48.
если генс4 - смотрите, чтобы по 60000 сам генс не находился.

GM BIT
17.08.2010, 19:14
Все работает
Загрузи в эмулятор probe.sna и нажми Enter
Можно и еще раз RANDOMIZE USR 60000

casperzx
18.08.2010, 10:25
Проблема оказалась проще, чем я думал. Надо было "USR" через Extend mode вводить нажатием на клавишу "L", а я вводил, набирая слово "usr". :D
Кстати RANDOMIZE USR 60000 под 128 BASIC приводит к перезагрузке.

psb
18.08.2010, 10:52
Кстати RANDOMIZE USR 60000 под 128 BASIC приводит к перезагрузке.
там может быть включена не та страница (60000 находится как раз в страничной памяти).

Vladik
31.08.2010, 19:12
А можно было запускать программу прямо из Gens4d нажав клавишу R, только после ORG 60000 надо добавить ENT $.
Пример:

ORG 60000
ENT $
LD A,2
CALL 5633
LD A,"A"
RST 16
RET

---------- Post added at 19:12 ---------- Previous post was at 19:08 ----------

А можно эту программу запустить прямо из Gens4, нажав на клавишу R, добавив после org 60000 ent $
Пример:

ORG 60000
ENT $
LD A,2
CALL 5633
LD A,"A"
RST 16
RET

rasmer
31.08.2010, 21:00
пользуй уж сразу чтонить кроссплатформенное - sjasm например... не убивай свой мозг генсом...

Evgeny Muchkin
07.09.2010, 22:27
Да. Генс это мегапозапрошлый век.

Если хочется кодить именно на спеке, используйте XAS, ALASM, STORM, как наиболее удобные.

sjasm это самый удобный вариант, но, наименее "душевный" чтоли ;) Знающие поймут ;)