PDA

Просмотр полной версии : Работа с обычной Спринтеровской графикой (и Hello World)



Shaos
19.05.2021, 08:32
Какое-то время назад kostya261 (https://zx-pk.ru/members/8074-kostya261.html) подготовил и расшарил в телеге замечательный PDF где скомпоновал 2 статьи из издания NedoPC в которых Mac Buster в своё время описывал как начать программировать на Спринтере (включая графику):

http://nedopc.org/nedopc/sprinter/upload/SprinterGraphics.pdf (1.4MB)

Если кто хочет быстро въехать - читаем :)

- - - Добавлено - - -

Hello, World на асме (можно собирать кросс-ассемблером на ПЦ или прямо на Спринтере с помощью OrgAsm):



ORG 8100h-512

;EXE-file header:
dw 5845h ; EXE Signature
db 45h ; Reserved (EXE type)
db 00h ; Version of EXE file
dw 0200h ; Code offset
dw 0000h
dw 0000h ; Primary loader size or 0 (no primary loader)
dw 0000h ; Reserved
dw 0000h ; Reserved
dw 0000h ; Reserved
dw START ; Loading address
dw START ; Starting address (register PC)
dw 0C000h ; Stack address (register SP)
ds 490 ; Reserved

;code of program

START:

; Write welcome message

ld hl,msg
ld c,5ch
rst 10h

; Wait keypress

ld c,30h
rst 10h

; Exit program

ld bc,0041h
rst 10h

msg db "Hello, World!",13,10,0


- - - Добавлено - - -

Hello, World на SOLID-C (надо собирать прямо на Спринтере батником, который идёт следом):


#include <stdio.h>

main()
{
printf("\nHello world !\n");
fprintf(stdout,"Привет мир !\n");
}

батник для сборки:


set PROG=hello
set PREFIX=C:\SOLID\EXAMPLES
REM SolidC EXE files must be in PATH
cls 2
del %PROG%.exe
cc1 -m %PREFIX%\%PROG%
cc2 %PREFIX%\%PROG%
as %PREFIX%\%PROG%
REM LD filename length is limited to 12 characters!
%PREFIX%\ld %PROG%,clib/l/gXMAIN /x
del %PROG%.tmc
del %PROG%.rel
del %PROG%.asm


Причём солид лежит в C:\SOLID (путь прописан в PATH), а линковщик LD.EXE и сишная либа CLIB.IRL должны находится в том же каталоге, что и исходник - в данном случае C:\SOLID\EXAMPLES

- - - Добавлено - - -

Устройство видеопамяти - 256 строк и в каждой 1024 байта (всего 256 КБ, даже если впаяно 512 используется только половина):

https://zx-pk.ru/attachment.php?attachmentid=75426

В обычном режиме графики Спринтера видеопамять порезана на 2 видеостраницы:

https://zx-pk.ru/attachment.php?attachmentid=75421

https://zx-pk.ru/attachment.php?attachmentid=75427 https://zx-pk.ru/attachment.php?attachmentid=75428 https://zx-pk.ru/attachment.php?attachmentid=75429
(палитра для нулевой видеостраницы начинается по смещению 992, а для первой видеостраницы - 996, также есть ещё 2 графические палитры - по смещениям 1000 и 1004, но пока их никто не использует).

В случае же ZX-режима, область графики немного сдвинута из-за области спектрум-экранов:

https://zx-pk.ru/attachment.php?attachmentid=75430

- - - Добавлено - - -

Первоисточник описания видеопамяти Спринтера - вебсайт petersplus.com по состоянию на 2003 год:

https://web.archive.org/web/20030820211518/http://www.petersplus.com/sprinter/arhitecture.htm

- - - Добавлено - - -

Функции DSS v1.60 и выше: https://web.archive.org/web/20030820211758/http://www.petersplus.com/sprinter/dsslist1_60.htm

Функции BIOS v3.00 и выше: https://web.archive.org/web/20030820212547/http://www.petersplus.com/sprinter/bioslist.htm

Работа с Акселератором: https://web.archive.org/web/20030815191337/http://www.petersplus.com/sprinter/accel.htm