From: Cameron Kaiser (spectre_at_stockholm.ptloma.edu)
Date: 2002-10-31 22:34:50
> > Did this actually have any code for the 65C02 emulator? My project is just > > doing NMOS opcodes. > > Yep it did. Are you interest (all the text commentary is in German > though...) Ich kann Deutsch lesen, so bring it on. :-) It sounds like someone's done this software 6502 idea already, and I'm interested to see their approach. > > Well, going back to the vector table, > > I just took the opcode, shifted it left, and used that as an index to get > > the vector to the servant routine (obviously adding 256 if the high bit > > were set), and then did an indirect JMP. > > Sorry, but the bit-banging part of my brain is on holidays.... > > so: > clc > lda (opcode),y ;y=0) > asl ; two bytes per JMP vector > sta jmpvector > bcc + > .... > sta jmpvector+1 > + > jmp(jmpvector) Here's the actual code, since I have it open in another window. Opcode is already loaded in the accumulator. Some code unimportant to the dispatch routine is omitted. disvecz and disvec are equivalent; disvecz is there just to force the STAs to be zero-page. asl bcc gveclo gvechi tax lda vectab+256,x sta disvecz lda vectab+257,x sta disvecz+1 : : jmp (disvec) gveclo tax lda vectab,x sta disvecz lda vectab+1,x sta disvecz+1 : : jmp (disvec) -- ----------------------------- personal page: http://www.armory.com/~spectre/ -- Cameron Kaiser, Point Loma Nazarene University * email@example.com -- Everything you think you know is wrong. -- Jack Chalker -------------------- Message was sent through the cbm-hackers mailing list
Archive generated by hypermail 2.1.4.