1
Программирование / z88dk и блочная графика.
« : 27 Октябрь 2025, 06:34:20 »
Как говорится "Не говори гоп, пока не перепрыгнешь"
Потерял кучу времени, пока не дошло, что тут что-то не так. То выводит на экран не туда, то вообще программа вылетает с ошибкой.
При вводе для команды AT 0x0A;0x0A прыгает в позицию 13;13. А если ввести команду AT 0x0D;0x0D то вообще с ошибкой вываливается.
Как я догадываюсь, это из-за того, что x0A и x0D это перевод строки и возврат каретки. Как оно перехватывается черт ногу сломит. Нужен како-то иной способ ввести команду "AT".
Потерял кучу времени, пока не дошло, что тут что-то не так. То выводит на экран не туда, то вообще программа вылетает с ошибкой.
Код: [Выделить]
//zcc +zx -vn -startup=30 -clib=sdcc_iy -create-app test.c -o test
#include <stdio.h>
#include <arch/zx.h>
#include <stdlib.h>
void printAT(unsigned char row, unsigned char col)
{
putchar(0x16); // AT
putchar(row);
putchar(col);
}
void main(void)
{
printAT(9,9); printf("9");
printAT(10,10); printf("10"); //GOTO 13;13
printAT(11,11); printf("11");
printAT(13,13); printf("13"); //Crash
while(2>1) {}
}
При вводе для команды AT 0x0A;0x0A прыгает в позицию 13;13. А если ввести команду AT 0x0D;0x0D то вообще с ошибкой вываливается.
Как я догадываюсь, это из-за того, что x0A и x0D это перевод строки и возврат каретки. Как оно перехватывается черт ногу сломит. Нужен како-то иной способ ввести команду "AT".