2013-12-23 6 views
3

Я пытаюсь сделать IO с помощью stdio.h на Commodore 64, но у меня даже с следующей программой:CC65: Четыре строки плохо, две линии хорошо?

#include <stdio.h> 

void main(void) 
{ 
    printf("Foo\n"); 
    printf("Bar\n"); 
    /* printf("Foo\n"); */ 
    /* printf("Bar\n"); */ 
} 

Проблема заключается в том, если я оставлю 2 printf s раскомментирована, то он работает как ожидается. Если я раскомментирую все четыре, то это не сработает: если я RUN, я просто вижу, что линии мигают до того, как экран сбрасывается, показывая READY. на пустом экране.

Если у меня есть три, то он не работает в первый раз (мигает опустошить READY. экран), но если я RUN его снова, то он работает ...

Я хотел бы добавить, что я имею только тестировал это на VICE, а не на реальном C64.

+0

Можете ли вы уточнить, что вы подразумеваете под «не работает вообще»? – Devolus

+0

Что произойдет, если вы измените тип возврата main() на int и вернете 0 в конце? – Lazarus

+0

@Devolus: Как я писал, 'RUN'ning приводит к тому, что показанные строки быстро заменяются пустым экраном с только одним« READY.' в верхнем левом углу. Это похоже на то, что после притяжения строк он также быстро выполнил инструкцию clearscreen. – Cactus

ответ

4

После того, как предложение @ Devolus было сделано для проверки работоспособности с sleep, ничего не получилось, в общем, работало правильно. Я понизил мою установку CC65 с 2.13.9-svn5804 до 2.13.3, и это, похоже, решило мою проблему.

+2

Я столкнулся с той же проблемой. Спасибо, что поделились своим решением! –