SIC Assembler I / O - PullRequest
       9

SIC Assembler I / O

1 голос
/ 02 июня 2009

Я кодировал SIC-ассемблер, и все, кажется, работает нормально, за исключением аспекта ввода / вывода.

Я загрузил объектный код в память (преобразовал формат символа в машинное представление), но когда я вызываю SICRun (); чтобы выполнить код, я получаю сообщение об ошибке «devf1 not found».

Я знаю, что это связано с инструкциями устройства ввода / вывода в исходном коде.
Файл c утверждает, что он зависит от внешних файлов, прежде всего, Dev [6]. Я должен создать это сам? Мой инструктор не дал нам никаких других файлов для работы. Любое понимание?

Пример: TD OUTPUT; УСТРОЙСТВО TEST OUTPUT

Этот каталог содержит исходный код (source.asm), файл заголовка (sic.h) и симулятор SIC (sicengine.c)

1 Ответ

3 голосов
/ 03 июня 2009

Из исходного файла sicengine.c создается впечатление, что файл devf1 (также dev2 / dev3), как ожидается, существует, поэтому с этого "устройства ввода" можно прочитать (передано fopen 1006 * как параметр):

if (opcode == 216) {  /* RD */
    /* ... */
    if ((Dev[Devcode] = fopen(SICFile[Devcode],"r")) == NULL) {
        printf("cannot open file %s\n", SICFile[Devcode]);
        exit(1);
    }

Комментарий в коде о зависимости от файла Dev[6] неоднозначен. Это действительно означает имена файлов в массиве Dev, которые devf1, devf2 и devf3 (устройства ввода) и devf04, devf05 и devf05 (устройства вывода).

Я бы предложил создать файлы devf1, devf1 и devf3.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...