ИИ создал на пурике кросплатформенный эмулятор ZX Spectrum 128 c AY и TR DOS
моя тема на zx-pk.ru где выложил с исходниками
https://zx-pk.ru/threads/36790-pb-zx-spectrum-128.html
PB ZX Spectrum 128
Страница: 1
Сообщений 1 страница 2 из 2
Поделиться114.10.2026 13:52:40
Поделиться215.10.2026 18:48:22
Глянул мельком, ИИ все инструкции ассемблера Z80 впревратил в процедуры?
отрезок кода z80
Код:; NMOS Z80 decoder, PureBasic 6.40+. No direct assignments to cpu\t. ; CpuFetch owns M1 time and R; operand reads are ordinary three-T reads. ; A pathological DD/FD stream yields after 256 prefixes WITHOUT ending the ; instruction. Reset/load code must call CpuResetDecoder(). Global z80Prefix.i, z80InFlight.i, z80FlagsWritten.i, z80PendingNMI.i Procedure CpuResetDecoder() z80Prefix = 0 : z80InFlight = 0 : z80FlagsWritten = 0 : z80PendingNMI = 0 EndProcedure Procedure.i CpuInstructionBoundary() ProcedureReturn Bool(z80InFlight = 0) EndProcedure Procedure.i Z80Parity(v.i) v & $FF : v ! (v >> 4) : v ! (v >> 2) : v ! (v >> 1) ProcedureReturn (v & 1) ! 1 EndProcedure Procedure.i Z80SZ(v.i) v & $FF ProcedureReturn (v & ($80 | $28)) | (Bool(v = 0) * #F_Z) EndProcedure Procedure.i Z80SZP(v.i) ProcedureReturn Z80SZ(v) | (Z80Parity(v) * #F_PV) EndProcedure Procedure Z80Flags(v.i) cpu\f = v & $FF : z80FlagsWritten = #True EndProcedure Procedure.i Z80IR() ProcedureReturn ((cpu\ir & $FF) << 8) | (cpu\rr & $FF) EndProcedure Procedure.i Z80Byte() Protected v.i = CpuRead(cpu\pc & $FFFF) cpu\pc = (cpu\pc + 1) & $FFFF ProcedureReturn v & $FF EndProcedure Procedure.i Z80Word() Protected lo.i = Z80Byte(), hi.i = Z80Byte() ProcedureReturn lo | (hi << 8) EndProcedure Procedure.i Z80ReadWord(address.i) Protected lo.i = CpuRead(address & $FFFF) Protected hi.i = CpuRead((address + 1) & $FFFF) ProcedureReturn lo | (hi << 8) EndProcedure
Страница: 1