Вход

Просмотр полной версии : Помогите !



Ares
21.03.2012, 18:04
Добрый день.Подскажите что делать. Захожу в alacm пишу
ORG 60000
LD A,2 ; вывод на основной экран (PRINT #2).
CALL 5633
;----------------
LD A,22 ; AT 20,3
RST 16
LD A,20
RST 16
LD A,3
RST 16
;----------------
LD A,16 ; INK 1
RST 16
LD A,1
RST 16
;----------------
LD A,17 ; PAPER 5
RST 16
LD A,5
RST 16
;----------------
LD A,19 ; BRIGHT 1
RST 16
LD A,1
RST 16
;----------------
LD A,"O" ; печать трех символов строки OK.
RST 16
LD A,"K"
RST 16
LD A,"."
RST 16
RET
После делаю ассемблирование и нажимаю run.Он спрашивает сохронить я нажимаю да.Как записать всё это на дискету и потом запустить из TR-DOS ?Набираю в бэйсике RANDOMIZE USR 60000 программа запускается.В TR-DOS делаю запись SAVE ""CODE 60000.При запуске LOAD ""CODE 60000 в TR-DOS система сбрасывается.Что я делаю не так ?Не судите строго мне 13 лет.Подскажите что делать ? :v2_conf2:

Destr
22.03.2012, 01:10
SAVE ""CODE 60000
А где-же длина?
Должно быть: SAVE ""CODE 60000,длина код.блока.
Как в аласме её узнать не в курсе, но например 60 в данном случае за глаза...
И вообще по аласму есть мануал (по идее нужно сохранять код оттуда).
Например вот: http://www.zxpress.ru/article.php?id=8866

VNN_KCS
22.03.2012, 01:19
Странно, но в таком виде, как приведён здесь, всё отлично работает. Проверено.

---------- Post added at 23:13 ---------- Previous post was at 23:10 ----------


Как записать всё это на дискету и потом запустить из TR-DOS ?
Надо выйти в STS по D в меню Аласма и сохранить на диск код. Правда надо знать начальный адрес(что известно) и длину кода. После этого грузить и запускать.

---------- Post added at 23:19 ---------- Previous post was at 23:13 ----------


Как в аласме её узнать не в курсе
Можно после ORG***(там где текст кода начинается) поставить метку, start например. А после окончания текста кода - метку end.
После этого, в последней строке текста сделать: DISPLAY "LEN=",end-start. Ну я так обычно делаю.
Команда DISPLAY выдаст (после LEN=) длину проги в байтах.
Очень полезная команда ;-)

Destr
22.03.2012, 01:22
Можно после ORG***(там где текст кода начинается) поставить метку, start например. А после окончания текста кода - метку end.
После этого, в следующей строке текста сделать: DISPLAY "LEN=",end-start.
Команда DISPLAY выдаст (после LEN=) длину проги в байтах.
Очень полезная команда ;-)
При компиляции аласм какую-то инфу пишет (счаз только что глянул) - там длины нема?

VNN_KCS
22.03.2012, 01:29
Ту строку, что с командой DISPLAY, надо писать в тексте исходника. Я пишу её самой последней.
И тогда всё увидишь.

---------- Post added at 23:29 ---------- Previous post was at 23:24 ----------

Примерно так :
START DI
*****
текст проги
*****
EI
RET
END
DISPLAY "LEN=", END-START

Ares
22.03.2012, 15:41
VNN_KCS, Спасибо,разобрался. Выйти в STS по D не получается,пентева виснет почему то.

newart
22.03.2012, 16:12
Alasm настолько убог что не умеет сохранять OBJ файл?

Vitamin
22.03.2012, 16:18
Alasm настолько убог что не умеет сохранять OBJ файл?
Была команда для сохранения, ЕМНИП. И был макрос, генерящий сохранялку.

alone
22.03.2012, 16:42
Модуль SAVEOBJ*.H
Без всяких макросов.

А mrip*.H вообще пакует с бейсик-загрузчиком.

newart
26.03.2012, 18:16
а что дает END ?
Конец кода.

END-START = размер кода

AER
26.03.2012, 18:22
да, уже доперло. подумал на команду асемблера.