Friday, April 03, 2020

#CSpect V2.12.9

Been a while since the last update. This one adds the 2 new Next Registers that are required for the very latest NextOS - which is the main reason for doing this. There are a lot of other fixes as well....


#CSpect V2.12.9 changes
  • 50hz/60hz bit now set in NextReg 5
  • -debug added to the command line. You can now "start" in the debugger.
  • Minor Fix to 60Hz audio
  • Fixed AY partial port decoding
  • Fixed a minor reset stall when it was waiting on a HALT before the reset
  • NextReg 0x8c added
  • NextReg 0x8e added
  • Added AltRom1 support
  • Fixed a serial port "send" bug. Now sends the whole byte
  • Fixed tile attribute byte bit 7 - top bit of palette offset was being ignored
  • Fixed esxDOS date/time function (M_GETDATE $8E)
  • NEX file 1.3 now parsed... should load more things
  • NEX files get IRQs switched off when loaded (as per machine)
  • Fixed esxDOS date is wrong
  • Fixed Border colour now sets the palette entry as well
  • Fixed GetRegister() in plugins not working
  • Fixed Copper run then loop not working
  • Fixed Top line (in 256 pixel high view) is missing
  • Fixed DI followed by HALT should stop the CPU
  • Fixed Hires tilemap has clipping on far right
  • F8 not steps over conditional jumps and branches that go backwards. Branches forwards are taken
  • Fixed ADD HL/DE/BC,A no longer affects flags
  • Fixed OUTI so that B is decemented first. (OTIR was already like that)
  • Minor change to 60hz audio
  • NextReg 0x69 can now be read
  • DMA Continue mode added
  • Fixed a timing issue with DMA, so timing much better


2 comments:

chris kirby said...

So GetNextRegister still seems broken. Value below are comming stright out of the plugin (all in decimal), only value that looks correct is 0..

REG 0 = 10
REG 1 = 64
REG 2 = 61
REG 3 = 0
REG 4 = 61
REG 5 = 61
REG 6 = 61
REG 7 = 51
REG 8 = 61
REG 9 = 61
REG 14 = 0
REG 16 = 61
REG 17 = 7
REG 18 = 61
REG 19 = 61
REG 20 = 61
REG 21 = 61
REG 22 = 61
REG 23 = 61
REG 24 = 0
REG 25 = 0
REG 26 = 0
REG 27 = 4
REG 28 = 61
REG 30 = 1
REG 31 = 23
REG 34 = 61
REG 35 = 61
REG 47 = 61
REG 48 = 61
REG 49 = 61
REG 50 = 61
REG 51 = 61
REG 52 = 61
REG 64 = 61
REG 65 = 96
REG 66 = 61
REG 67 = 61
REG 68 = 0
REG 74 = 61
REG 75 = 61
REG 76 = 61
REG 80 = 61
REG 81 = 61
REG 82 = 61
REG 83 = 61
REG 84 = 61
REG 85 = 61
REG 86 = 61
REG 87 = 61
REG 104 = 61
REG 107 = 61
REG 108 = 61
REG 110 = 61
REG 111 = 61

chris kirby said...

And i think its the default case thats causing it..

default:
return this.A[this.b] & 0xFF;

this.b is never getting set so s returning garbage. So all the special cases are working ok just the rest of them are wrong..