2015-10-31 3 views
3

Итак, у меня есть TI-84 Plus C Silver Edition. Я только начал работать над написанием программ сборки на нем с помощью кодов операций. Я нашел хорошую справочную диаграмму here, но задавался вопросом, как делать bcalls, в частности, как печатать символ на экране. Кажется, что шестнадцатеричный код для вызова имеет длину 3 байта, но вызов занимает 2 байта. Итак, как мне это назвать? Кроме того, кто-нибудь знает, куда загружаются программы памяти, когда они запускаются для моего калькулятора? Я еще не смог его найти.Как сделать bcalls в hex?

+0

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

+0

Ссылка теперь работает. Насколько я могу судить, это верно для моего калькулятора, но, не имея возможности показывать все, что я могу сделать, это делать программы, которые должны или не должны заканчиваться. – fuzzything44

+0

Я действительно знаком с версией, отличной от C, но bcall, вероятно, все еще «EF xx xx» – harold

ответ

2

Основываясь на определениях здесь: http://wikiti.brandonw.net/index.php?title=84PCSE:OS:Include_File, «bcall» - это инструкция RST 28, за которой следует определенный номер bcall. Таким образом, чтобы напечатать символ, который вы могли бы сделать (при условии, что PutC является 44FB):

rst 28h 
dw 44FBh 

Предположительно характер для печати в A регистре.

+0

Итак, я просто положил в '3EC6EF44FBC9', который должен установить значение C6 (буква l, если я правильно помню), rst 28h , а затем 44FB, вызов. C6 - завершить программу. Когда я запускаю его, мой калькулятор выключается, и ОЗУ очищается. Я использую OS 4.0, а не 4.2, если это имеет значение. Любая подсказка, почему он разбился? – fuzzything44

+0

Хорошо, я узнал, что я делаю неправильно. Я использовал значение .dw 44FB как есть. В шестнадцатеричном формате мне нужно было перевернуть его на FB44. В любом случае, спасибо за файл заголовка. Это должно помочь мне в тонну в будущем. – fuzzything44

1

TI использует rst 28h для своего bcall, который переводит в шестнадцатеричный как EF. Bcalls - 2 байта, но имейте в виду, что Z80 и eZ80 являются малоприводными процессорами. Так, как упоминалось ранее, _PutC - 44FB, поэтому вам нужно сначала использовать FB, затем 44, что делает bcall(_PutC) эквивалентом EFFB44.

Я думаю, что вы используете calc, имеет eZ80. В то время как eZ80 обратно совместим с набором инструкций Z80, таблица, к которой вы привязаны, не завершена для eZ80. Если вы хотите получить действительно дикую природу, вы можете использовать документы, предоставленные Zilog here, хотя я должен предупредить вас, что если вам не очень удобно с Z80 Assembly, материал для чтения будет слишком плотным.