Тут поступило ценное предложение, мопед не мой потому просто процитирую:
Исправить тест и перетестировать iar, hitech 7.50 и sdcc (iar не умеет оптимизировать деление на степень двойки, вызывает библиотечную функцию деления)
заменить
dest = (unsigned char*)(ScreenTable[atY]+atX/2);
на
dest = (unsigned char*)(ScreenTable[atY]+(atX>>1));
заменить
*dest = q | ((*src++)/16&0x0f);
на
*dest = q | (((*src++)>>4)&0x0f);
компилировать iar'ом с опциями
iccz80.exe -K -T -e -uua -g -s9 -q
Скрытый текст
Profi 4.02 512k
Profi 5.04 1024k нижняя плата здесь
Scorpion 256k+ProfROM+SMUC 1.3+SMUC 2.0+ZXMC2
Pentagon v2.2+Z-controller+ZXMC2+NeoGS
АТМ 7.10 1024k
Pentagon 2.666LE
ZX Evolution 4Mb rev B[свернуть]
Извещение лички отключено, захожу редко.
Увы, пока некогда. Позже.
Но то, что ИАР так с делением на степени двойки обходится - слов нет... Это уже минус - т.к. придётся вручную править исходник при портировании.
- - - Добавлено - - -
1. Найди CP/M паскаль, который может генерить код под произвольный адрес, поставишь REXX, и будет тебе счастье.
2. Найди конвертер исходников, и тоже будет тебе счастье.
С уважением,
Gris / Red Triangle.
_____________________________________
ZX-EVO/TS-Labs config/NGS/HDD/SD-card
Amiga A1200/Blizzard 1230@50/32/60GB
Amiga A1200/Apollo 1260@66/32/60GB
UnAmiga (C5) AGA GM7123 VideoDAC
Еще один компилятор Small C version C3.0R1.1 (SCC3) Chris Lewis (пока лишь для 8080, 8085 и 6809)
Все из категории СПО.
А также и сам кросс-ассемблер, последнюю версию которого планируют полностью включить в sdcc 3.6.0
http://shop-pdp.net/ashtml/asxxxx.htm
Если кто Linux Gentoo пользует, то будет полезной ссылка, не все там рабочее, но я работаю над тем, чтобы все работало.
Последний раз редактировалось perestoronin; 13.05.2016 в 17:43.
У них все "неправильное", например System14 (a CP/M look alike / replacement for Z80 based systems), кстати в исходниках на ассемблере Z80.
А руки на что? Чтобы под себя править, исходники то есть, а это главное условие, чтобы править и совершенствовать инструменты, а не писать эмуляторы и трансляторы нативные для запуска проприетарных непотребностей.
Последний раз редактировалось perestoronin; 14.05.2016 в 06:59.
Ретрокладовая продажи
Скажите почему функция курсор не работает? Должна менять позицию вывода. Правильно ли я получаю параметры в ассемблерных вставках?
#include <stdio.h>
#include <stdlib.h>
int print(char* string, unsigned int length );
void cursor(char x, char y);
void cls();
void pause (unsigned int delay);
int main()
{
int i=0;
cls();
print("TEST", 4);
pause(0);
cls();
for(i=0;i<11;i++){
cursor(i, 10);
print("TEST2", 5);
}
return 0;
}
int print(char* string, unsigned int length ){
__asm
ld hl, #2
add hl, sp
ld e, (hl)
inc hl
ld d, (hl)
inc hl
ld c, (hl)
inc hl
ld b, (hl)
call 8252
ret
__endasm;
}
void cursor(char x, char y){
__asm
ld hl, #2
add hl, sp
ld a, #2
call 5633
ld b, (hl)
inc hl
inc hl
ld c, (hl)
ld a,#22
rst 16
ld a, c
rst 16
ld a, b
rst 16
ret
__endasm;
}
void cls(){
__asm
call 3435
ld a, #2
call 5633
ret
__endasm;
}
void pause (unsigned int delay){
__asm
ld hl, #2
add hl, sp
ld c, (hl)
inc hl
ld b, (hl)
call 7997
ret
__endasm;
}
¡Un momento, señor fiscal!
Какой компилятор использовался Си? Для начала хотя бы. С какими параметрами компиляции? Какая платформа? Что это за вызовы внутри ассемблерный вставок?
Электроника КР-02, MSX YIS-503IIR, Орион-128, Ленинград-2, Pentagon-128k, MSX2 YIS-503IIIR, MSX-EXT, ...
Ощепринятый компилятор среди спектрумистов - SDCC. Параметры компиляции - -mz80, --no-std-crt0. Платформа - спекки48. Параметры линкера - --code-loc 0x7530, --data-loc 0xA530. Файл хекс прогнал через хекс2бин и бин2тап.
В функции курсор, сначала устанавливается поток 2( экран), затем вывадятся в поток управляющие символы - 22( позиция курсора) и переданые координаты вывода на экране. Результат - выводится TEST, пауза до нажатия клавиши, очистка экрана, вывод десять раз TEST2 в одно и тоже место на экране без смены позиции вывода. Позиция вывода должна меняться в цикле, но на экране изменения нет.
Последний раз редактировалось Smalovsky; 08.09.2016 в 23:57.
¡Un momento, señor fiscal!
SDCC, меня аж дергает. Тут нужен специалист, который познал инь и ян А если серьезно посмотрите на выходе компилятора, что у вас получилось на ассемблере. У меня SDCC эти вставки (кусочки) иногда съедал без следа, и все это называлось оптимизацией.
И версию SDCC? От этого много зависит)
Электроника КР-02, MSX YIS-503IIR, Орион-128, Ленинград-2, Pentagon-128k, MSX2 YIS-503IIIR, MSX-EXT, ...
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)