Не нашел информации о выборе видеорежима. Как это сделать?
И можно ли не использовать процедуры ПЗУ, а записывать данные в память?
Не нашел информации о выборе видеорежима. Как это сделать?
И можно ли не использовать процедуры ПЗУ, а записывать данные в память?
Нашел в "красной книге"
только не получилось включить 320х200 с 4 цветами.Код:;H..MV... ;10001000 - color ;HM ;0X 320x200 mono 0..?1... ;10 320x200 4col 1..01... ;11 640x200 1..11... включить 640x200 ld a,%10001000 out ($D8),a
Написал код вывода символов.
yevrowl(25.01.2026)
Есть ли информация по управлению память? Комментарии
Мало о чем говорятКод:IN 12H ; вызвать карту распределения памяти и сбросить ее PUSH PSW ANI 0F3H ; сбросить биты 2 и 3 OUT 12H ; установить карту 0
Ну как же? Биты 2 и 3 порта 12h отвечают за выбор карты памяти. Карта прописана в РЕ-шке, по умолчанию предполагалась такая:
В окнах WIN1-WIN4 может быть что угодно, предлагались ROM/RAM-диски. Содержмое выбиралось битами портов 24-27h.Код:0000 4000 8000 С000 0 BIOS RAM1 RAM2 RAM3 1 RAM0 WIN1 RAM2 WIN2 2 RAM0 RAM1 RAM2 RAM3 3 RAM0 WIN3 RAM2 WIN4
Есть, так называемая "Красная книжка", почитай: https://oldpc.su/pc/Irisha/lit/Irish...0Computer.djvu
Там есть неточности, например прошивка РЕ3 на странице 22 явно перепутана с другой, но на странице 111 есть правдоподобная.
Последний раз редактировалось b2m; 27.01.2026 в 17:23.
Читал, мало что понятно. Даже про выбор видеопамяти.
- - - Добавлено - - -
Решил попробовать построение точки разного цвета.Но получается, что построение началось не с центра и цвет только один. Может, неправильно заданы флаги в FF45?
- - - Добавлено - - -Код:device zxspectrum48 ORG #4000 begin ld sp,$5000 ld a,0 out ($12),a ld a,$88; 320x200 color out ($D8),a ;color ;0 1 2 3 4 5 6 7 ld a,$10; pal 0 out ($D9),a ;set MODE ;76543210 ;||||xx+- ;|||| |00 320x200 mono, страница определяется битом 4 ;|||| |01 640x200 mono ;|||| |10 320x200 color ;|||| |11 запрещенная комбинация ;|||+---->0 Страница 1(C000..DF3F) 1 Страница 1(E000..FF3F) ;||+--------->1 Включение динамического сдвига маски цвета ;|+---------->0 Режим вывода 20 строк, 1-Режим вывода 25 строк ;+----------->0 Символы нормальной ширины, 1 Символы двойной ширины ld a,%11110010 ld ($FF45),a ld a,3 call $2792 ld hl,0,de,hl,b,255 pp: ; push hl ; push bc ; ld a,e ; xor b ; call $2792 ; pop bc ; pop hl push hl,de,bc call $2798 pop bc,de,hl inc de,hl,hl dec b jp nz,pp jp $ end display /d,end-begin savebin "plotc.rk",begin,end-begin
Разобрался.
Код:device zxspectrum48 ORG #4000 begin ld sp,$5000 ld a,0 out ($12),a ld a,$88; 320x200 color out ($D8),a ;color ;0 1 2 3 4 5 6 7 ld a,$10; pal 0 out ($D9),a ld c,$0C ; cls call $2000 ; CONOUT ;set MODE ;76543210 ;||||xx+- ;|||| |00 320x200 mono, страница определяется битом 4 ;|||| |01 640x200 mono ;|||| |10 320x200 color ;|||| |11 запрещенная комбинация ;|||+---->0 Страница 1(C000..DF3F) 1 Страница 1(E000..FF3F) ;||+--------->1 Включение динамического сдвига маски цвета ;|+---------->0 Режим вывода 20 строк, 1-Режим вывода 25 строк ;+----------->0 Символы нормальной ширины, 1 Символы двойной ширины ld a,%11100010 ld ($FF45),a call $278c; init vars FFC7=$E000 ld hl,0,de,hl,b,255 pp: push hl push bc ld a,e call $2792 pop bc pop hl push hl,de,bc call $2798 pop bc,de,hl inc de,hl,hl dec b jp nz,pp jp $ end display /d,end-begin savebin "plotc.rk",begin,end-begin
Эту тему просматривают: 3 (пользователей: 1 , гостей: 2)