игры 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 й со свопом )