игры Elite , читабельные и прокомментированные от jerri
https://zx-pk.ru/threads/28514-igra-...l=1#post997452
вдруг кто на БК сможет
Вид для печати
игры Elite , читабельные и прокомментированные от jerri
https://zx-pk.ru/threads/28514-igra-...l=1#post997452
вдруг кто на БК сможет
hobot, мне говорили что на PDP-11 самый офигительный ассемблер
так что в ваших интересах доказать.
да, потому что Elite это именно порог
6502 на 1 мгц работал
БК должна с запасом (?)
если не обожествлять 6502
zx_, а не надо боятся
надо просто сделать а там уже разбираться
хотя бы титульный экран с корабликом
не надо рассматривать скорость так
это тупо
вот вам процедура рисования линии
на других процах она будет смотреться и работать не так
я не говорю про математику с их 3 мя регистрами по 8 бит
Код:.LOIN \ -> &16C4
84 85 STY &85 \ YSAV \ will be restored at the end
A9 80 LDA #&80 \ set bit7
85 83 STA &83 \ S
0A ASL A \ = 0
85 90 STA &90 \ SWAP
A5 36 LDA &36 \ X2
E5 34 SBC &34 \ X1
B0 05 BCS LI1 \ deltaX
49 FF EOR #&FF \ else negate
69 01 ADC #1
38 SEC
.LI1 \ deltaX
85 1B STA &1B \ P \ delta-X
A5 37 LDA &37 \ Y2
E5 35 SBC &35 \ Y1
B0 04 BCS LI2 \ deltaY
49 FF EOR #&FF \ else negate
69 01 ADC #1
.LI2 \ deltaY
85 81 STA &81 \ Q \ delta-Y
C5 1B CMP &1B \ P \ is Q < P ?
90 03 BCC STPX \ if yes will Step along x
4C 97 17 JMP &1797 \ STPY \ else will step along y
.STPX \ Step along x for line
A6 34 LDX &34 \ X1
E4 36 CPX &36 \ X2
90 11 BCC LI3 \ is X1 < X2 ? hop down, order correct
C6 90 DEC &90 \ SWAP \ set flag
A5 36 LDA &36 \ X2
85 34 STA &34 \ X1
86 36 STX &36 \ X2
AA TAX
A5 37 LDA &37 \ Y2
A4 35 LDY &35 \ Y1
85 35 STA &35 \ Y2
84 37 STY &37 \ Y1
.LI3 \ order correct Xreg = X1
A5 35 LDA &35 \ Y1
4A LSR A \ build screen index
4A LSR A
4A LSR A
09 60 ORA #&60 \ high byte of screen memory set to page &60+ Y1/8
85 08 STA &08 \ SC+1
A5 35 LDA &35 \ Y1
29 07 AND #7 \ build lo
A8 TAY \ row in char
8A TXA \ X1
29 F8 AND #&F8 \ keep upper 5 bits
85 07 STA &07 \ SC \ screen lo
8A TXA \ X1
29 07 AND #7 \ keep lower 3 bits
AA TAX \ index mask
BD AF 16 LDA &16AF,X \ TWOS,X \ Mode 4 single pixel
85 82 STA &82 \ R \ mask byte
A5 81 LDA &81 \ Q \ delta-Y
A2 FE LDX #&FE \ roll counter
86 81 STX &81 \ Q
.LIL1 \ roll Q
0A ASL A \ highest bit of delta-Y
B0 04 BCS LI4 \ steep
C5 1B CMP &1B \ P \ delta-X
90 03 BCC LI5 \ shallow
.LI4 \ steep
E5 1B SBC &1B \ P
38 SEC
.LI5 \ shallow
26 81 ROL &81 \ Q \ #&FE
B0 F2 BCS LIL1 \ loop Q, end with some low bits in Q
A6 1B LDX &1B \ P
E8 INX \ Xreg is width
A5 37 LDA &37 \ Y2
E5 35 SBC &35 \ Y1
B0 2C BCS DOWN \ draw line to the right and down
A5 90 LDA &90 \ SWAP
D0 07 BNE LI6 \ else Xreg was correct after all, no need to update R
CA DEX
.LIL2 \ counter X width
A5 82 LDA &82 \ R \ mask byte
51 07 EOR (&07),Y \ (SC),Y
91 07 STA (&07),Y \ (SC),Y
.LI6 \ Xreg correct
46 82 LSR &82 \ R \ mask byte
90 08 BCC LI7 \ else moving to next column to right. Bring carry in back
66 82 ROR &82 \ R
A5 07 LDA &07 \ SC
69 08 ADC #8 \ next column
85 07 STA &07 \ SC
.LI7 \ S += Q. this is like an overflow monitor to update Y
A5 83 LDA &83 \ S
65 81 ADC &81 \ Q \ some low bits
85 83 STA &83 \ S
90 07 BCC LIC2 \ skip Y adjustment
88 DEY
10 04 BPL LIC2 \ skip Y adjustment
C6 08 DEC &08 \ SC+1
A0 07 LDY #7
.LIC2 \ skip Y adjustment
CA DEX
D0 DC BNE LIL2 \ loop X width
A4 85 LDY &85 \ YSAV \ restore Yreg
60 RTS
А мне вот думается, что если разобраться в исходниках оригинальных, можно и новые версии на Z80 сделать. Мне кажется, что существующая версия не оптимальная и там можно много чего улучшить. Я понимаю, что у людей желание на 8080, БК0010 и подобное это портировать, но и про z80 забывать не стоит. Версии ишры от Кладова, как мне помнится, были просто патчами/хаками, а не дописанной и оптимизированной игрой.
про ассемблер и процессоры это чистая правда, только я не программист.
Уверен в руках профи ресурсов ДВК+КЦГД = должно под такой проект хватить,
интересно просто мнение @Titus 'а узнать - как специалиста по КЦГД )
как парни Принца писали
http://bk0010.narod.ru/pashigorov/files/Povest.html
в принципе, и на Элита должно хватить 11 й со свопом )
там в конце статьи , как писюки захватили мозг
самая хрень, что как авторы Принца для бэкашки парни вошли в историю
а на супер писюках ихние следы затерялись
гримасы судьбы
совершенно верно - немного заглянул в дизасм спектрумовской Элиты и обнаружил там лютый *****код - например печать двух строк в начальном экране "--- ELITE ---" и "Load new commander" занимает 200к тактов - а всё потому что поиск строк ведётся путем перебора длин всех строк в массиве пока не найдётся искомая - и всё это в цикле критичном по времени исполнения.
может я не ту версию смотрю - взял с Втырдоса с минимальным кол-вом секторов - взгляни сам - Вложение 68158
71a2 - очистка буфера по c000
71a5 - печать двух строк в буфер
71a8 - рисование кораблика
71ab - переброс буфера в экран
далее опрашивается кнопка и повторяется
так вот печать всего двух строк 200к тактов - ну и можно нырнуть посмотреть как они это делают )
shurik-ua, хммм твоя правда
на Acorn немного не так.
рисуется только кораблик
дважды
я пытаюсь юзать писишные исходники - но они там флоаты используют вовсю - решил посмотреть как на спеке дела с этим и ужаснулся ) - наверное придётся таки и 6502 исходники почитывать.
В тексте по ссылке почти всё хорошо, но вот для тех, кто действительно занимался БК11М есть один очень странный момент - MACRO.SAV вообще не упомянут.
И насчет вывода спрайтов - какая-то муть с переключением экранов. Т.е. либо всё делалось на БК0010 ( от сюда и "нехватка памяти" ), либо господа не в курсах о работе с битами экранной ОЗУ ( установить/сбросить биты по маске ).
Отмечу, что работа с отдельными битами в ДОЗУ БК11М весьма медленная, т.к. контроллер ДОЗУ БК содержит логическую ошибку, приводящую к минимально возможному циклу обмена с процем аж в районе 370 т. операций в 1 сек. ( при ~6 мгц 1801ВМ1А ).
Если бы без этой ошибки ( в БМК 1801ВП1-037 ), то и 500 т. операций в 1 сек не было бы проблемой ( при 6 мгц ВМ1А ).
MM, уже давно же хотели БМК 1801ВП1-037 разместить в FPGA , исключив ошибку
в бк поле непаханное для доработок
Хотел-то я, аж с ~2000 г. А вот единственный на всё СССР господин ( из г. Киев ), который это может сделать ( провести НИОКР ) - пока не высказал желания этим заняться.
Т.е. по сути вся прогрессивная БКшная общественность ожидает, пока таки я где-то не раздобуду бабки на грамотного тополога, комплектацию, несколько опытных оттисков МПП ( каждый от ~$75 Тайвань, но цена после оплаты шаблона - очень приятная, как и топнормы ).
http://old-games.ru/articles/53651.html — "ASP Corp. - Три парня с горящими глазами..." История и наследие известнейшей группы разработчиков программ в СССР.
В статье есть неточности и ошибки, но в целом очень интересно почитать. Ребята и правда были на рубеже.
подробнее, поскольку ребята нет нет да читают форум между прочим )
ПКМ до недавнего времени было так.
Отвечал на вопросы один из ASPешников, какие неточности?
Родная - она же правильная заставка игры (версия для ДВК+КГД)
https://pic.maxiol.com/thumbs/155411...673.aspkot.png
там они про монохром пишут, попробуйте в эмуляторе в цвет.реж. БК0010 любую игру от ASP - картинка превращается в кашу.
https://pic.maxiol.com/thumbs/155417...andbkcolor.png https://pic.maxiol.com/thumbs/155417...dbkpoluton.png https://pic.maxiol.com/thumbs/155417...splandbkbw.png
к тому же кое-что может и позабыться, годиков прошло?
к примеру на ДВК под КЦГД отдельный вариант игрушек адаптировать пришлось )
Не, проблема в фразе «4 бита на точку»
Думаю, что это будет интересно только узкому кругу заинтересованных лиц.
Но тем не менее, выкладываю дизассемблированные исходники серии игр Бориса Бортника:
https://gid.pdp-11.ru/src/Bortnik_src.7zКод:GAME 1 - BALLY ("DIDAY")
GAME 2 - SECOND ("FLASSE")
GAME 3 - PLANET ("SLIRIS")
GAME 4 - RUNING ("TOORUN")
GAME 5 - SUPERMAN 1
GAME 6 - ПЕРЕВАЛ
Все описания и информация - в архиве.
И чтобы два раза не писать, вдруг кому интересно - дизассемблированные исходники игры King's Valley (c) Шишкина.
Тоже довольно интересное чтиво.
https://gid.pdp-11.ru/src/valley_src.zip