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
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