├── ext-c64-tests ├── petscii-src │ ├── branchwrap.asm.is.corrupt │ ├── imr.asm │ ├── irq.asm │ ├── mmu.asm │ ├── nmi.asm │ ├── adca.asm │ ├── adcax.asm │ ├── adcay.asm │ ├── adcb.asm │ ├── adcix.asm │ ├── adciy.asm │ ├── adcz.asm │ ├── adczx.asm │ ├── alrb.asm │ ├── ancb.asm │ ├── anda.asm │ ├── andax.asm │ ├── anday.asm │ ├── andb.asm │ ├── andix.asm │ ├── andiy.asm │ ├── andz.asm │ ├── andzx.asm │ ├── aneb.asm │ ├── arrb.asm │ ├── asla.asm │ ├── aslax.asm │ ├── asln.asm │ ├── aslz.asm │ ├── aslzx.asm │ ├── asoa.asm │ ├── asoax.asm │ ├── asoay.asm │ ├── asoix.asm │ ├── asoiy.asm │ ├── asoz.asm │ ├── asozx.asm │ ├── axsa.asm │ ├── axsix.asm │ ├── axsz.asm │ ├── axszy.asm │ ├── bccr.asm │ ├── bcsr.asm │ ├── beqr.asm │ ├── bita.asm │ ├── bitz.asm │ ├── bmir.asm │ ├── bner.asm │ ├── bplr.asm │ ├── brkn.asm │ ├── bvcr.asm │ ├── bvsr.asm │ ├── clcn.asm │ ├── cldn.asm │ ├── clin.asm │ ├── clvn.asm │ ├── cmpa.asm │ ├── cmpax.asm │ ├── cmpay.asm │ ├── cmpb.asm │ ├── cmpix.asm │ ├── cmpiy.asm │ ├── cmpz.asm │ ├── cmpzx.asm │ ├── cnto2.asm │ ├── cpxa.asm │ ├── cpxb.asm │ ├── cpxz.asm │ ├── cpya.asm │ ├── cpyb.asm │ ├── cpyz.asm │ ├── dcma.asm │ ├── dcmax.asm │ ├── dcmay.asm │ ├── dcmix.asm │ ├── dcmiy.asm │ ├── dcmz.asm │ ├── dcmzx.asm │ ├── deca.asm │ ├── decax.asm │ ├── decz.asm │ ├── deczx.asm │ ├── dexn.asm │ ├── deyn.asm │ ├── eora.asm │ ├── eorax.asm │ ├── eoray.asm │ ├── eorb.asm │ ├── eorix.asm │ ├── eoriy.asm │ ├── eorz.asm │ ├── eorzx.asm │ ├── icr01.asm │ ├── inca.asm │ ├── incax.asm │ ├── incz.asm │ ├── inczx.asm │ ├── insa.asm │ ├── insax.asm │ ├── insay.asm │ ├── insix.asm │ ├── insiy.asm │ ├── insz.asm │ ├── inszx.asm │ ├── inxn.asm │ ├── inyn.asm │ ├── jmpi.asm │ ├── jmpw.asm │ ├── jsrw.asm │ ├── lasay.asm │ ├── laxa.asm │ ├── laxay.asm │ ├── laxix.asm │ ├── laxiy.asm │ ├── laxz.asm │ ├── laxzy.asm │ ├── ldaa.asm │ ├── ldaax.asm │ ├── ldaay.asm │ ├── ldab.asm │ ├── ldaix.asm │ ├── ldaiy.asm │ ├── ldaz.asm │ ├── ldazx.asm │ ├── ldxa.asm │ ├── ldxay.asm │ ├── ldxb.asm │ ├── ldxz.asm │ ├── ldxzy.asm │ ├── ldya.asm │ ├── ldyax.asm │ ├── ldyb.asm │ ├── ldyz.asm │ ├── ldyzx.asm │ ├── lsea.asm │ ├── lseax.asm │ ├── lseay.asm │ ├── lseix.asm │ ├── lseiy.asm │ ├── lsez.asm │ ├── lsezx.asm │ ├── lsra.asm │ ├── lsrax.asm │ ├── lsrn.asm │ ├── lsrz.asm │ ├── lsrzx.asm │ ├── lxab.asm │ ├── nopa.asm │ ├── nopax.asm │ ├── nopb.asm │ ├── nopn.asm │ ├── nopz.asm │ ├── nopzx.asm │ ├── oraa.asm │ ├── oraax.asm │ ├── oraay.asm │ ├── orab.asm │ ├── oraix.asm │ ├── oraiy.asm │ ├── oraz.asm │ ├── orazx.asm │ ├── phan.asm │ ├── phpn.asm │ ├── plan.asm │ ├── plpn.asm │ ├── rlaa.asm │ ├── rlaax.asm │ ├── rlaay.asm │ ├── rlaix.asm │ ├── rlaiy.asm │ ├── rlaz.asm │ ├── rlazx.asm │ ├── rola.asm │ ├── rolax.asm │ ├── roln.asm │ ├── rolz.asm │ ├── rolzx.asm │ ├── rora.asm │ ├── rorax.asm │ ├── rorn.asm │ ├── rorz.asm │ ├── rorzx.asm │ ├── rraa.asm │ ├── rraax.asm │ ├── rraay.asm │ ├── rraix.asm │ ├── rraiy.asm │ ├── rraz.asm │ ├── rrazx.asm │ ├── rtin.asm │ ├── rtsn.asm │ ├── sbca.asm │ ├── sbcax.asm │ ├── sbcay.asm │ ├── sbcb.asm │ ├── sbcix.asm │ ├── sbciy.asm │ ├── sbcz.asm │ ├── sbczx.asm │ ├── sbxb.asm │ ├── secn.asm │ ├── sedn.asm │ ├── sein.asm │ ├── shaay.asm │ ├── shaiy.asm │ ├── shsay.asm │ ├── shxay.asm │ ├── shyax.asm │ ├── staa.asm │ ├── staax.asm │ ├── staay.asm │ ├── staix.asm │ ├── staiy.asm │ ├── start.asm │ ├── staz.asm │ ├── stazx.asm │ ├── stxa.asm │ ├── stxz.asm │ ├── stxzy.asm │ ├── stya.asm │ ├── styz.asm │ ├── styzx.asm │ ├── taxn.asm │ ├── tayn.asm │ ├── tsxn.asm │ ├── txan.asm │ ├── txsn.asm │ ├── tyan.asm │ ├── cia1pb6.asm │ ├── cia1pb7.asm │ ├── cia1ta.asm │ ├── cia1tb.asm │ ├── cia2pb6.asm │ ├── cia2pb7.asm │ ├── cia2ta.asm │ ├── cia2tb.asm │ ├── cntdef.asm │ ├── cpuport.asm │ ├── flipos.asm │ ├── loadth.asm │ ├── mmufetch.asm │ ├── oneshot.asm │ ├── sbcb(eb).asm │ ├── trap1-15.asm │ ├── trap16.asm │ ├── trap17.asm │ ├── cia1tb123.asm │ ├── cia2tb123.asm │ ├── cputiming.asm │ └── cia1tab.asm ├── ascii-src │ ├── branchwrap.asm.is.corrupt │ ├── cntdef.asm │ ├── cnto2.asm │ ├── oneshot.asm │ └── cpuport.asm ├── bin │ ├── cnto2 │ ├── icr01 │ ├── imr │ ├── insa │ ├── insax │ ├── insay │ ├── insix │ ├── insiy │ ├── insz │ ├── inszx │ ├── irq │ ├── jmpi │ ├── lasay │ ├── lsea │ ├── lseax │ ├── lseay │ ├── lseix │ ├── lseiy │ ├── lsez │ ├── lsezx │ ├── lxab │ ├── mmu │ ├── nmi │ ├── nopa │ ├── nopax │ ├── nopb │ ├── nopn │ ├── nopz │ ├── nopzx │ ├── rlaa │ ├── rlaax │ ├── rlaay │ ├── rlaix │ ├── rlaiy │ ├── rlaz │ ├── rlazx │ ├── rraa │ ├── rraax │ ├── rraay │ ├── rraix │ ├── rraiy │ ├── rraz │ ├── rrazx │ ├── sbxb │ ├── shaay │ ├── shaiy │ ├── shsay │ ├── shxay │ ├── shyax │ ├── start │ ├── trap1 │ ├── trap2 │ ├── trap3 │ ├── trap4 │ ├── trap5 │ ├── trap6 │ ├── trap7 │ ├── trap8 │ ├── trap9 │ ├── cia1pb6 │ ├── cia1pb7 │ ├── cia1ta │ ├── cia1tab │ ├── cia1tb │ ├── cia2pb6 │ ├── cia2pb7 │ ├── cia2ta │ ├── cia2tb │ ├── cntdef │ ├── cpuport │ ├── finish │ ├── flipos │ ├── loadth │ ├── oneshot │ ├── trap10 │ ├── trap11 │ ├── trap12 │ ├── trap13 │ ├── trap14 │ ├── trap15 │ ├── trap16 │ ├── trap17 │ ├── branchwrap │ ├── cia1tb123 │ ├── cia2tb123 │ ├── cputiming │ └── mmufetch ├── completed │ ├── adca │ ├── adcb │ ├── adcz │ ├── alrb │ ├── ancb │ ├── anda │ ├── andb │ ├── andz │ ├── aneb │ ├── arrb │ ├── asla │ ├── asln │ ├── aslz │ ├── asoa │ ├── asoz │ ├── axsa │ ├── axsz │ ├── bccr │ ├── bcsr │ ├── beqr │ ├── bita │ ├── bitz │ ├── bmir │ ├── bner │ ├── bplr │ ├── brkn │ ├── bvcr │ ├── bvsr │ ├── clcn │ ├── cldn │ ├── clin │ ├── clvn │ ├── cmpa │ ├── cmpb │ ├── cmpz │ ├── cpxa │ ├── cpxb │ ├── cpxz │ ├── cpya │ ├── cpyb │ ├── cpyz │ ├── dcma │ ├── dcmz │ ├── deca │ ├── decz │ ├── dexn │ ├── deyn │ ├── eora │ ├── eorb │ ├── eorz │ ├── inca │ ├── incz │ ├── inxn │ ├── inyn │ ├── jmpw │ ├── jsrw │ ├── laxa │ ├── laxz │ ├── ldaa │ ├── ldab │ ├── ldaz │ ├── ldxa │ ├── ldxb │ ├── ldxz │ ├── ldya │ ├── ldyb │ ├── ldyz │ ├── lsra │ ├── lsrn │ ├── lsrz │ ├── oraa │ ├── orab │ ├── oraz │ ├── phan │ ├── phpn │ ├── plan │ ├── plpn │ ├── rola │ ├── roln │ ├── rolz │ ├── rora │ ├── rorn │ ├── rorz │ ├── rtin │ ├── rtsn │ ├── sbca │ ├── sbcb │ ├── sbcz │ ├── secn │ ├── sedn │ ├── sein │ ├── staa │ ├── staz │ ├── stxa │ ├── stxz │ ├── stya │ ├── styz │ ├── taxn │ ├── tayn │ ├── tsxn │ ├── txan │ ├── txsn │ ├── tyan │ ├── adcax │ ├── adcay │ ├── adcix │ ├── adciy │ ├── adczx │ ├── andax │ ├── anday │ ├── andix │ ├── andiy │ ├── andzx │ ├── aslax │ ├── aslzx │ ├── asoax │ ├── asoay │ ├── asoix │ ├── asoiy │ ├── asozx │ ├── axsix │ ├── axszy │ ├── cmpax │ ├── cmpay │ ├── cmpix │ ├── cmpiy │ ├── cmpzx │ ├── dcmax │ ├── dcmay │ ├── dcmix │ ├── dcmiy │ ├── dcmzx │ ├── decax │ ├── deczx │ ├── eorax │ ├── eoray │ ├── eorix │ ├── eoriy │ ├── eorzx │ ├── incax │ ├── inczx │ ├── laxay │ ├── laxix │ ├── laxiy │ ├── laxzy │ ├── ldaax │ ├── ldaay │ ├── ldaix │ ├── ldaiy │ ├── ldazx │ ├── ldxay │ ├── ldxzy │ ├── ldyax │ ├── ldyzx │ ├── lsrax │ ├── lsrzx │ ├── oraax │ ├── oraay │ ├── oraix │ ├── oraiy │ ├── orazx │ ├── rolax │ ├── rolzx │ ├── rorax │ ├── rorzx │ ├── sbcax │ ├── sbcay │ ├── sbcix │ ├── sbciy │ ├── sbczx │ ├── staax │ ├── staay │ ├── staix │ ├── staiy │ ├── stazx │ ├── stxzy │ ├── styzx │ └── sbcb(eb) ├── template.asm.petscii └── template.asm.ascii ├── src ├── js │ ├── sid │ │ ├── pico.swf │ │ ├── jssid.core.js │ │ ├── stream.js │ │ └── sid-mos6581.js │ ├── rom.js │ ├── ram.js │ ├── utils.js │ ├── vic-memory-manager.js │ ├── cia-6526-2.js │ ├── io.js │ ├── cpu-memory-manager.js │ ├── main.js │ ├── keyboard.js │ └── gui │ │ └── menu.js ├── fonts │ ├── FontAwesome.otf │ ├── fontawesome-webfont.eot │ ├── fontawesome-webfont.ttf │ ├── fontawesome-webfont.woff │ ├── fontawesome-webfont.woff2 │ ├── Futura-T-OT-Book_19064.eot │ ├── Futura-T-OT-Book_19064.otf │ ├── Futura-T-OT-Book_19064.ttf │ ├── Futura-T-OT-Book_19064.woff │ └── Futura-T-OT-Book_19064.woff2 ├── css │ ├── font-futura.css │ ├── fork-me-on-github.css │ └── main.css └── index.html ├── .gitignore ├── ext-parse-bins ├── basic.bin ├── kernel.bin ├── character.bin └── parsebin.pl ├── TODO.MD ├── CONTRIBUTING.MD ├── README.MD ├── package.json ├── LICENSE.MD └── gulpfile.js /ext-c64-tests/petscii-src/branchwrap.asm.is.corrupt: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ext-c64-tests/ascii-src/branchwrap.asm.is.corrupt: -------------------------------------------------------------------------------- 1 | 2 | 3 | branchwrap.asm 4 | 5 | 6 | -------------------------------------------------------------------------------- /src/js/sid/pico.swf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/src/js/sid/pico.swf -------------------------------------------------------------------------------- /ext-c64-tests/bin/cnto2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/bin/cnto2 -------------------------------------------------------------------------------- /ext-c64-tests/bin/icr01: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/bin/icr01 -------------------------------------------------------------------------------- /ext-c64-tests/bin/imr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/bin/imr -------------------------------------------------------------------------------- /ext-c64-tests/bin/insa: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/bin/insa -------------------------------------------------------------------------------- /ext-c64-tests/bin/insax: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/bin/insax -------------------------------------------------------------------------------- /ext-c64-tests/bin/insay: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/bin/insay -------------------------------------------------------------------------------- /ext-c64-tests/bin/insix: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/bin/insix -------------------------------------------------------------------------------- /ext-c64-tests/bin/insiy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/bin/insiy -------------------------------------------------------------------------------- /ext-c64-tests/bin/insz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/bin/insz -------------------------------------------------------------------------------- /ext-c64-tests/bin/inszx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/bin/inszx -------------------------------------------------------------------------------- /ext-c64-tests/bin/irq: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/bin/irq -------------------------------------------------------------------------------- /ext-c64-tests/bin/jmpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/bin/jmpi -------------------------------------------------------------------------------- /ext-c64-tests/bin/lasay: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/bin/lasay -------------------------------------------------------------------------------- /ext-c64-tests/bin/lsea: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/bin/lsea -------------------------------------------------------------------------------- /ext-c64-tests/bin/lseax: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/bin/lseax -------------------------------------------------------------------------------- /ext-c64-tests/bin/lseay: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/bin/lseay -------------------------------------------------------------------------------- /ext-c64-tests/bin/lseix: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/bin/lseix -------------------------------------------------------------------------------- /ext-c64-tests/bin/lseiy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/bin/lseiy -------------------------------------------------------------------------------- /ext-c64-tests/bin/lsez: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/bin/lsez -------------------------------------------------------------------------------- /ext-c64-tests/bin/lsezx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/bin/lsezx -------------------------------------------------------------------------------- /ext-c64-tests/bin/lxab: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/bin/lxab -------------------------------------------------------------------------------- /ext-c64-tests/bin/mmu: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/bin/mmu -------------------------------------------------------------------------------- /ext-c64-tests/bin/nmi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/bin/nmi -------------------------------------------------------------------------------- /ext-c64-tests/bin/nopa: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/bin/nopa -------------------------------------------------------------------------------- /ext-c64-tests/bin/nopax: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/bin/nopax -------------------------------------------------------------------------------- /ext-c64-tests/bin/nopb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/bin/nopb -------------------------------------------------------------------------------- /ext-c64-tests/bin/nopn: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/bin/nopn -------------------------------------------------------------------------------- /ext-c64-tests/bin/nopz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/bin/nopz -------------------------------------------------------------------------------- /ext-c64-tests/bin/nopzx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/bin/nopzx -------------------------------------------------------------------------------- /ext-c64-tests/bin/rlaa: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/bin/rlaa -------------------------------------------------------------------------------- /ext-c64-tests/bin/rlaax: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/bin/rlaax -------------------------------------------------------------------------------- /ext-c64-tests/bin/rlaay: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/bin/rlaay -------------------------------------------------------------------------------- /ext-c64-tests/bin/rlaix: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/bin/rlaix -------------------------------------------------------------------------------- /ext-c64-tests/bin/rlaiy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/bin/rlaiy -------------------------------------------------------------------------------- /ext-c64-tests/bin/rlaz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/bin/rlaz -------------------------------------------------------------------------------- /ext-c64-tests/bin/rlazx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/bin/rlazx -------------------------------------------------------------------------------- /ext-c64-tests/bin/rraa: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/bin/rraa -------------------------------------------------------------------------------- /ext-c64-tests/bin/rraax: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/bin/rraax -------------------------------------------------------------------------------- /ext-c64-tests/bin/rraay: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/bin/rraay -------------------------------------------------------------------------------- /ext-c64-tests/bin/rraix: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/bin/rraix -------------------------------------------------------------------------------- /ext-c64-tests/bin/rraiy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/bin/rraiy -------------------------------------------------------------------------------- /ext-c64-tests/bin/rraz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/bin/rraz -------------------------------------------------------------------------------- /ext-c64-tests/bin/rrazx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/bin/rrazx -------------------------------------------------------------------------------- /ext-c64-tests/bin/sbxb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/bin/sbxb -------------------------------------------------------------------------------- /ext-c64-tests/bin/shaay: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/bin/shaay -------------------------------------------------------------------------------- /ext-c64-tests/bin/shaiy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/bin/shaiy -------------------------------------------------------------------------------- /ext-c64-tests/bin/shsay: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/bin/shsay -------------------------------------------------------------------------------- /ext-c64-tests/bin/shxay: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/bin/shxay -------------------------------------------------------------------------------- /ext-c64-tests/bin/shyax: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/bin/shyax -------------------------------------------------------------------------------- /ext-c64-tests/bin/start: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/bin/start -------------------------------------------------------------------------------- /ext-c64-tests/bin/trap1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/bin/trap1 -------------------------------------------------------------------------------- /ext-c64-tests/bin/trap2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/bin/trap2 -------------------------------------------------------------------------------- /ext-c64-tests/bin/trap3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/bin/trap3 -------------------------------------------------------------------------------- /ext-c64-tests/bin/trap4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/bin/trap4 -------------------------------------------------------------------------------- /ext-c64-tests/bin/trap5: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/bin/trap5 -------------------------------------------------------------------------------- /ext-c64-tests/bin/trap6: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/bin/trap6 -------------------------------------------------------------------------------- /ext-c64-tests/bin/trap7: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/bin/trap7 -------------------------------------------------------------------------------- /ext-c64-tests/bin/trap8: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/bin/trap8 -------------------------------------------------------------------------------- /ext-c64-tests/bin/trap9: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/bin/trap9 -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | dist/ 3 | ext-c64-roms/ 4 | ext-assets/ 5 | .publish/ 6 | .DS_Store 7 | -------------------------------------------------------------------------------- /ext-c64-tests/bin/cia1pb6: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/bin/cia1pb6 -------------------------------------------------------------------------------- /ext-c64-tests/bin/cia1pb7: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/bin/cia1pb7 -------------------------------------------------------------------------------- /ext-c64-tests/bin/cia1ta: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/bin/cia1ta -------------------------------------------------------------------------------- /ext-c64-tests/bin/cia1tab: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/bin/cia1tab -------------------------------------------------------------------------------- /ext-c64-tests/bin/cia1tb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/bin/cia1tb -------------------------------------------------------------------------------- /ext-c64-tests/bin/cia2pb6: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/bin/cia2pb6 -------------------------------------------------------------------------------- /ext-c64-tests/bin/cia2pb7: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/bin/cia2pb7 -------------------------------------------------------------------------------- /ext-c64-tests/bin/cia2ta: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/bin/cia2ta -------------------------------------------------------------------------------- /ext-c64-tests/bin/cia2tb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/bin/cia2tb -------------------------------------------------------------------------------- /ext-c64-tests/bin/cntdef: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/bin/cntdef -------------------------------------------------------------------------------- /ext-c64-tests/bin/cpuport: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/bin/cpuport -------------------------------------------------------------------------------- /ext-c64-tests/bin/finish: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/bin/finish -------------------------------------------------------------------------------- /ext-c64-tests/bin/flipos: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/bin/flipos -------------------------------------------------------------------------------- /ext-c64-tests/bin/loadth: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/bin/loadth -------------------------------------------------------------------------------- /ext-c64-tests/bin/oneshot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/bin/oneshot -------------------------------------------------------------------------------- /ext-c64-tests/bin/trap10: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/bin/trap10 -------------------------------------------------------------------------------- /ext-c64-tests/bin/trap11: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/bin/trap11 -------------------------------------------------------------------------------- /ext-c64-tests/bin/trap12: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/bin/trap12 -------------------------------------------------------------------------------- /ext-c64-tests/bin/trap13: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/bin/trap13 -------------------------------------------------------------------------------- /ext-c64-tests/bin/trap14: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/bin/trap14 -------------------------------------------------------------------------------- /ext-c64-tests/bin/trap15: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/bin/trap15 -------------------------------------------------------------------------------- /ext-c64-tests/bin/trap16: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/bin/trap16 -------------------------------------------------------------------------------- /ext-c64-tests/bin/trap17: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/bin/trap17 -------------------------------------------------------------------------------- /ext-parse-bins/basic.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-parse-bins/basic.bin -------------------------------------------------------------------------------- /ext-parse-bins/kernel.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-parse-bins/kernel.bin -------------------------------------------------------------------------------- /src/fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/src/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /ext-c64-tests/bin/branchwrap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/bin/branchwrap -------------------------------------------------------------------------------- /ext-c64-tests/bin/cia1tb123: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/bin/cia1tb123 -------------------------------------------------------------------------------- /ext-c64-tests/bin/cia2tb123: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/bin/cia2tb123 -------------------------------------------------------------------------------- /ext-c64-tests/bin/cputiming: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/bin/cputiming -------------------------------------------------------------------------------- /ext-c64-tests/bin/mmufetch: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/bin/mmufetch -------------------------------------------------------------------------------- /ext-c64-tests/completed/adca: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/adca -------------------------------------------------------------------------------- /ext-c64-tests/completed/adcb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/adcb -------------------------------------------------------------------------------- /ext-c64-tests/completed/adcz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/adcz -------------------------------------------------------------------------------- /ext-c64-tests/completed/alrb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/alrb -------------------------------------------------------------------------------- /ext-c64-tests/completed/ancb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/ancb -------------------------------------------------------------------------------- /ext-c64-tests/completed/anda: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/anda -------------------------------------------------------------------------------- /ext-c64-tests/completed/andb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/andb -------------------------------------------------------------------------------- /ext-c64-tests/completed/andz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/andz -------------------------------------------------------------------------------- /ext-c64-tests/completed/aneb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/aneb -------------------------------------------------------------------------------- /ext-c64-tests/completed/arrb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/arrb -------------------------------------------------------------------------------- /ext-c64-tests/completed/asla: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/asla -------------------------------------------------------------------------------- /ext-c64-tests/completed/asln: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/asln -------------------------------------------------------------------------------- /ext-c64-tests/completed/aslz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/aslz -------------------------------------------------------------------------------- /ext-c64-tests/completed/asoa: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/asoa -------------------------------------------------------------------------------- /ext-c64-tests/completed/asoz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/asoz -------------------------------------------------------------------------------- /ext-c64-tests/completed/axsa: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/axsa -------------------------------------------------------------------------------- /ext-c64-tests/completed/axsz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/axsz -------------------------------------------------------------------------------- /ext-c64-tests/completed/bccr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/bccr -------------------------------------------------------------------------------- /ext-c64-tests/completed/bcsr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/bcsr -------------------------------------------------------------------------------- /ext-c64-tests/completed/beqr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/beqr -------------------------------------------------------------------------------- /ext-c64-tests/completed/bita: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/bita -------------------------------------------------------------------------------- /ext-c64-tests/completed/bitz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/bitz -------------------------------------------------------------------------------- /ext-c64-tests/completed/bmir: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/bmir -------------------------------------------------------------------------------- /ext-c64-tests/completed/bner: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/bner -------------------------------------------------------------------------------- /ext-c64-tests/completed/bplr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/bplr -------------------------------------------------------------------------------- /ext-c64-tests/completed/brkn: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/brkn -------------------------------------------------------------------------------- /ext-c64-tests/completed/bvcr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/bvcr -------------------------------------------------------------------------------- /ext-c64-tests/completed/bvsr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/bvsr -------------------------------------------------------------------------------- /ext-c64-tests/completed/clcn: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/clcn -------------------------------------------------------------------------------- /ext-c64-tests/completed/cldn: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/cldn -------------------------------------------------------------------------------- /ext-c64-tests/completed/clin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/clin -------------------------------------------------------------------------------- /ext-c64-tests/completed/clvn: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/clvn -------------------------------------------------------------------------------- /ext-c64-tests/completed/cmpa: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/cmpa -------------------------------------------------------------------------------- /ext-c64-tests/completed/cmpb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/cmpb -------------------------------------------------------------------------------- /ext-c64-tests/completed/cmpz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/cmpz -------------------------------------------------------------------------------- /ext-c64-tests/completed/cpxa: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/cpxa -------------------------------------------------------------------------------- /ext-c64-tests/completed/cpxb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/cpxb -------------------------------------------------------------------------------- /ext-c64-tests/completed/cpxz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/cpxz -------------------------------------------------------------------------------- /ext-c64-tests/completed/cpya: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/cpya -------------------------------------------------------------------------------- /ext-c64-tests/completed/cpyb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/cpyb -------------------------------------------------------------------------------- /ext-c64-tests/completed/cpyz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/cpyz -------------------------------------------------------------------------------- /ext-c64-tests/completed/dcma: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/dcma -------------------------------------------------------------------------------- /ext-c64-tests/completed/dcmz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/dcmz -------------------------------------------------------------------------------- /ext-c64-tests/completed/deca: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/deca -------------------------------------------------------------------------------- /ext-c64-tests/completed/decz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/decz -------------------------------------------------------------------------------- /ext-c64-tests/completed/dexn: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/dexn -------------------------------------------------------------------------------- /ext-c64-tests/completed/deyn: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/deyn -------------------------------------------------------------------------------- /ext-c64-tests/completed/eora: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/eora -------------------------------------------------------------------------------- /ext-c64-tests/completed/eorb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/eorb -------------------------------------------------------------------------------- /ext-c64-tests/completed/eorz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/eorz -------------------------------------------------------------------------------- /ext-c64-tests/completed/inca: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/inca -------------------------------------------------------------------------------- /ext-c64-tests/completed/incz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/incz -------------------------------------------------------------------------------- /ext-c64-tests/completed/inxn: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/inxn -------------------------------------------------------------------------------- /ext-c64-tests/completed/inyn: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/inyn -------------------------------------------------------------------------------- /ext-c64-tests/completed/jmpw: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/jmpw -------------------------------------------------------------------------------- /ext-c64-tests/completed/jsrw: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/jsrw -------------------------------------------------------------------------------- /ext-c64-tests/completed/laxa: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/laxa -------------------------------------------------------------------------------- /ext-c64-tests/completed/laxz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/laxz -------------------------------------------------------------------------------- /ext-c64-tests/completed/ldaa: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/ldaa -------------------------------------------------------------------------------- /ext-c64-tests/completed/ldab: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/ldab -------------------------------------------------------------------------------- /ext-c64-tests/completed/ldaz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/ldaz -------------------------------------------------------------------------------- /ext-c64-tests/completed/ldxa: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/ldxa -------------------------------------------------------------------------------- /ext-c64-tests/completed/ldxb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/ldxb -------------------------------------------------------------------------------- /ext-c64-tests/completed/ldxz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/ldxz -------------------------------------------------------------------------------- /ext-c64-tests/completed/ldya: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/ldya -------------------------------------------------------------------------------- /ext-c64-tests/completed/ldyb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/ldyb -------------------------------------------------------------------------------- /ext-c64-tests/completed/ldyz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/ldyz -------------------------------------------------------------------------------- /ext-c64-tests/completed/lsra: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/lsra -------------------------------------------------------------------------------- /ext-c64-tests/completed/lsrn: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/lsrn -------------------------------------------------------------------------------- /ext-c64-tests/completed/lsrz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/lsrz -------------------------------------------------------------------------------- /ext-c64-tests/completed/oraa: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/oraa -------------------------------------------------------------------------------- /ext-c64-tests/completed/orab: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/orab -------------------------------------------------------------------------------- /ext-c64-tests/completed/oraz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/oraz -------------------------------------------------------------------------------- /ext-c64-tests/completed/phan: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/phan -------------------------------------------------------------------------------- /ext-c64-tests/completed/phpn: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/phpn -------------------------------------------------------------------------------- /ext-c64-tests/completed/plan: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/plan -------------------------------------------------------------------------------- /ext-c64-tests/completed/plpn: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/plpn -------------------------------------------------------------------------------- /ext-c64-tests/completed/rola: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/rola -------------------------------------------------------------------------------- /ext-c64-tests/completed/roln: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/roln -------------------------------------------------------------------------------- /ext-c64-tests/completed/rolz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/rolz -------------------------------------------------------------------------------- /ext-c64-tests/completed/rora: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/rora -------------------------------------------------------------------------------- /ext-c64-tests/completed/rorn: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/rorn -------------------------------------------------------------------------------- /ext-c64-tests/completed/rorz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/rorz -------------------------------------------------------------------------------- /ext-c64-tests/completed/rtin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/rtin -------------------------------------------------------------------------------- /ext-c64-tests/completed/rtsn: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/rtsn -------------------------------------------------------------------------------- /ext-c64-tests/completed/sbca: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/sbca -------------------------------------------------------------------------------- /ext-c64-tests/completed/sbcb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/sbcb -------------------------------------------------------------------------------- /ext-c64-tests/completed/sbcz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/sbcz -------------------------------------------------------------------------------- /ext-c64-tests/completed/secn: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/secn -------------------------------------------------------------------------------- /ext-c64-tests/completed/sedn: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/sedn -------------------------------------------------------------------------------- /ext-c64-tests/completed/sein: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/sein -------------------------------------------------------------------------------- /ext-c64-tests/completed/staa: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/staa -------------------------------------------------------------------------------- /ext-c64-tests/completed/staz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/staz -------------------------------------------------------------------------------- /ext-c64-tests/completed/stxa: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/stxa -------------------------------------------------------------------------------- /ext-c64-tests/completed/stxz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/stxz -------------------------------------------------------------------------------- /ext-c64-tests/completed/stya: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/stya -------------------------------------------------------------------------------- /ext-c64-tests/completed/styz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/styz -------------------------------------------------------------------------------- /ext-c64-tests/completed/taxn: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/taxn -------------------------------------------------------------------------------- /ext-c64-tests/completed/tayn: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/tayn -------------------------------------------------------------------------------- /ext-c64-tests/completed/tsxn: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/tsxn -------------------------------------------------------------------------------- /ext-c64-tests/completed/txan: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/txan -------------------------------------------------------------------------------- /ext-c64-tests/completed/txsn: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/txsn -------------------------------------------------------------------------------- /ext-c64-tests/completed/tyan: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/tyan -------------------------------------------------------------------------------- /ext-parse-bins/character.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-parse-bins/character.bin -------------------------------------------------------------------------------- /ext-c64-tests/completed/adcax: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/adcax -------------------------------------------------------------------------------- /ext-c64-tests/completed/adcay: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/adcay -------------------------------------------------------------------------------- /ext-c64-tests/completed/adcix: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/adcix -------------------------------------------------------------------------------- /ext-c64-tests/completed/adciy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/adciy -------------------------------------------------------------------------------- /ext-c64-tests/completed/adczx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/adczx -------------------------------------------------------------------------------- /ext-c64-tests/completed/andax: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/andax -------------------------------------------------------------------------------- /ext-c64-tests/completed/anday: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/anday -------------------------------------------------------------------------------- /ext-c64-tests/completed/andix: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/andix -------------------------------------------------------------------------------- /ext-c64-tests/completed/andiy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/andiy -------------------------------------------------------------------------------- /ext-c64-tests/completed/andzx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/andzx -------------------------------------------------------------------------------- /ext-c64-tests/completed/aslax: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/aslax -------------------------------------------------------------------------------- /ext-c64-tests/completed/aslzx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/aslzx -------------------------------------------------------------------------------- /ext-c64-tests/completed/asoax: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/asoax -------------------------------------------------------------------------------- /ext-c64-tests/completed/asoay: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/asoay -------------------------------------------------------------------------------- /ext-c64-tests/completed/asoix: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/asoix -------------------------------------------------------------------------------- /ext-c64-tests/completed/asoiy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/asoiy -------------------------------------------------------------------------------- /ext-c64-tests/completed/asozx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/asozx -------------------------------------------------------------------------------- /ext-c64-tests/completed/axsix: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/axsix -------------------------------------------------------------------------------- /ext-c64-tests/completed/axszy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/axszy -------------------------------------------------------------------------------- /ext-c64-tests/completed/cmpax: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/cmpax -------------------------------------------------------------------------------- /ext-c64-tests/completed/cmpay: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/cmpay -------------------------------------------------------------------------------- /ext-c64-tests/completed/cmpix: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/cmpix -------------------------------------------------------------------------------- /ext-c64-tests/completed/cmpiy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/cmpiy -------------------------------------------------------------------------------- /ext-c64-tests/completed/cmpzx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/cmpzx -------------------------------------------------------------------------------- /ext-c64-tests/completed/dcmax: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/dcmax -------------------------------------------------------------------------------- /ext-c64-tests/completed/dcmay: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/dcmay -------------------------------------------------------------------------------- /ext-c64-tests/completed/dcmix: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/dcmix -------------------------------------------------------------------------------- /ext-c64-tests/completed/dcmiy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/dcmiy -------------------------------------------------------------------------------- /ext-c64-tests/completed/dcmzx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/dcmzx -------------------------------------------------------------------------------- /ext-c64-tests/completed/decax: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/decax -------------------------------------------------------------------------------- /ext-c64-tests/completed/deczx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/deczx -------------------------------------------------------------------------------- /ext-c64-tests/completed/eorax: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/eorax -------------------------------------------------------------------------------- /ext-c64-tests/completed/eoray: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/eoray -------------------------------------------------------------------------------- /ext-c64-tests/completed/eorix: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/eorix -------------------------------------------------------------------------------- /ext-c64-tests/completed/eoriy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/eoriy -------------------------------------------------------------------------------- /ext-c64-tests/completed/eorzx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/eorzx -------------------------------------------------------------------------------- /ext-c64-tests/completed/incax: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/incax -------------------------------------------------------------------------------- /ext-c64-tests/completed/inczx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/inczx -------------------------------------------------------------------------------- /ext-c64-tests/completed/laxay: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/laxay -------------------------------------------------------------------------------- /ext-c64-tests/completed/laxix: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/laxix -------------------------------------------------------------------------------- /ext-c64-tests/completed/laxiy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/laxiy -------------------------------------------------------------------------------- /ext-c64-tests/completed/laxzy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/laxzy -------------------------------------------------------------------------------- /ext-c64-tests/completed/ldaax: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/ldaax -------------------------------------------------------------------------------- /ext-c64-tests/completed/ldaay: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/ldaay -------------------------------------------------------------------------------- /ext-c64-tests/completed/ldaix: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/ldaix -------------------------------------------------------------------------------- /ext-c64-tests/completed/ldaiy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/ldaiy -------------------------------------------------------------------------------- /ext-c64-tests/completed/ldazx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/ldazx -------------------------------------------------------------------------------- /ext-c64-tests/completed/ldxay: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/ldxay -------------------------------------------------------------------------------- /ext-c64-tests/completed/ldxzy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/ldxzy -------------------------------------------------------------------------------- /ext-c64-tests/completed/ldyax: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/ldyax -------------------------------------------------------------------------------- /ext-c64-tests/completed/ldyzx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/ldyzx -------------------------------------------------------------------------------- /ext-c64-tests/completed/lsrax: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/lsrax -------------------------------------------------------------------------------- /ext-c64-tests/completed/lsrzx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/lsrzx -------------------------------------------------------------------------------- /ext-c64-tests/completed/oraax: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/oraax -------------------------------------------------------------------------------- /ext-c64-tests/completed/oraay: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/oraay -------------------------------------------------------------------------------- /ext-c64-tests/completed/oraix: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/oraix -------------------------------------------------------------------------------- /ext-c64-tests/completed/oraiy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/oraiy -------------------------------------------------------------------------------- /ext-c64-tests/completed/orazx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/orazx -------------------------------------------------------------------------------- /ext-c64-tests/completed/rolax: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/rolax -------------------------------------------------------------------------------- /ext-c64-tests/completed/rolzx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/rolzx -------------------------------------------------------------------------------- /ext-c64-tests/completed/rorax: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/rorax -------------------------------------------------------------------------------- /ext-c64-tests/completed/rorzx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/rorzx -------------------------------------------------------------------------------- /ext-c64-tests/completed/sbcax: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/sbcax -------------------------------------------------------------------------------- /ext-c64-tests/completed/sbcay: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/sbcay -------------------------------------------------------------------------------- /ext-c64-tests/completed/sbcix: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/sbcix -------------------------------------------------------------------------------- /ext-c64-tests/completed/sbciy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/sbciy -------------------------------------------------------------------------------- /ext-c64-tests/completed/sbczx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/sbczx -------------------------------------------------------------------------------- /ext-c64-tests/completed/staax: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/staax -------------------------------------------------------------------------------- /ext-c64-tests/completed/staay: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/staay -------------------------------------------------------------------------------- /ext-c64-tests/completed/staix: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/staix -------------------------------------------------------------------------------- /ext-c64-tests/completed/staiy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/staiy -------------------------------------------------------------------------------- /ext-c64-tests/completed/stazx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/stazx -------------------------------------------------------------------------------- /ext-c64-tests/completed/stxzy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/stxzy -------------------------------------------------------------------------------- /ext-c64-tests/completed/styzx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/styzx -------------------------------------------------------------------------------- /ext-c64-tests/completed/sbcb(eb): -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/completed/sbcb(eb) -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/imr.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/imr.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/irq.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/irq.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/mmu.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/mmu.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/nmi.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/nmi.asm -------------------------------------------------------------------------------- /src/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/src/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /src/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/src/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/adca.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/adca.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/adcax.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/adcax.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/adcay.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/adcay.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/adcb.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/adcb.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/adcix.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/adcix.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/adciy.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/adciy.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/adcz.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/adcz.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/adczx.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/adczx.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/alrb.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/alrb.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/ancb.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/ancb.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/anda.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/anda.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/andax.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/andax.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/anday.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/anday.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/andb.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/andb.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/andix.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/andix.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/andiy.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/andiy.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/andz.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/andz.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/andzx.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/andzx.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/aneb.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/aneb.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/arrb.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/arrb.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/asla.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/asla.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/aslax.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/aslax.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/asln.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/asln.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/aslz.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/aslz.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/aslzx.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/aslzx.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/asoa.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/asoa.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/asoax.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/asoax.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/asoay.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/asoay.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/asoix.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/asoix.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/asoiy.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/asoiy.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/asoz.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/asoz.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/asozx.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/asozx.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/axsa.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/axsa.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/axsix.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/axsix.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/axsz.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/axsz.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/axszy.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/axszy.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/bccr.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/bccr.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/bcsr.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/bcsr.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/beqr.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/beqr.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/bita.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/bita.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/bitz.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/bitz.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/bmir.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/bmir.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/bner.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/bner.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/bplr.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/bplr.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/brkn.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/brkn.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/bvcr.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/bvcr.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/bvsr.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/bvsr.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/clcn.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/clcn.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/cldn.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/cldn.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/clin.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/clin.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/clvn.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/clvn.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/cmpa.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/cmpa.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/cmpax.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/cmpax.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/cmpay.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/cmpay.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/cmpb.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/cmpb.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/cmpix.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/cmpix.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/cmpiy.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/cmpiy.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/cmpz.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/cmpz.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/cmpzx.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/cmpzx.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/cnto2.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/cnto2.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/cpxa.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/cpxa.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/cpxb.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/cpxb.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/cpxz.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/cpxz.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/cpya.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/cpya.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/cpyb.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/cpyb.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/cpyz.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/cpyz.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/dcma.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/dcma.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/dcmax.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/dcmax.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/dcmay.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/dcmay.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/dcmix.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/dcmix.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/dcmiy.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/dcmiy.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/dcmz.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/dcmz.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/dcmzx.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/dcmzx.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/deca.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/deca.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/decax.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/decax.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/decz.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/decz.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/deczx.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/deczx.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/dexn.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/dexn.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/deyn.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/deyn.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/eora.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/eora.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/eorax.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/eorax.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/eoray.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/eoray.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/eorb.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/eorb.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/eorix.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/eorix.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/eoriy.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/eoriy.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/eorz.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/eorz.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/eorzx.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/eorzx.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/icr01.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/icr01.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/inca.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/inca.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/incax.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/incax.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/incz.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/incz.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/inczx.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/inczx.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/insa.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/insa.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/insax.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/insax.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/insay.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/insay.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/insix.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/insix.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/insiy.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/insiy.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/insz.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/insz.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/inszx.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/inszx.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/inxn.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/inxn.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/inyn.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/inyn.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/jmpi.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/jmpi.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/jmpw.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/jmpw.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/jsrw.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/jsrw.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/lasay.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/lasay.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/laxa.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/laxa.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/laxay.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/laxay.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/laxix.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/laxix.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/laxiy.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/laxiy.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/laxz.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/laxz.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/laxzy.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/laxzy.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/ldaa.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/ldaa.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/ldaax.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/ldaax.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/ldaay.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/ldaay.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/ldab.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/ldab.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/ldaix.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/ldaix.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/ldaiy.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/ldaiy.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/ldaz.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/ldaz.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/ldazx.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/ldazx.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/ldxa.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/ldxa.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/ldxay.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/ldxay.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/ldxb.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/ldxb.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/ldxz.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/ldxz.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/ldxzy.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/ldxzy.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/ldya.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/ldya.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/ldyax.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/ldyax.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/ldyb.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/ldyb.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/ldyz.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/ldyz.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/ldyzx.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/ldyzx.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/lsea.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/lsea.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/lseax.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/lseax.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/lseay.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/lseay.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/lseix.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/lseix.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/lseiy.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/lseiy.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/lsez.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/lsez.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/lsezx.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/lsezx.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/lsra.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/lsra.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/lsrax.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/lsrax.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/lsrn.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/lsrn.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/lsrz.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/lsrz.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/lsrzx.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/lsrzx.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/lxab.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/lxab.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/nopa.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/nopa.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/nopax.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/nopax.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/nopb.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/nopb.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/nopn.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/nopn.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/nopz.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/nopz.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/nopzx.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/nopzx.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/oraa.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/oraa.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/oraax.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/oraax.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/oraay.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/oraay.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/orab.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/orab.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/oraix.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/oraix.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/oraiy.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/oraiy.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/oraz.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/oraz.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/orazx.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/orazx.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/phan.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/phan.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/phpn.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/phpn.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/plan.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/plan.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/plpn.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/plpn.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/rlaa.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/rlaa.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/rlaax.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/rlaax.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/rlaay.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/rlaay.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/rlaix.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/rlaix.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/rlaiy.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/rlaiy.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/rlaz.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/rlaz.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/rlazx.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/rlazx.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/rola.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/rola.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/rolax.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/rolax.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/roln.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/roln.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/rolz.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/rolz.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/rolzx.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/rolzx.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/rora.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/rora.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/rorax.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/rorax.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/rorn.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/rorn.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/rorz.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/rorz.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/rorzx.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/rorzx.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/rraa.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/rraa.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/rraax.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/rraax.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/rraay.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/rraay.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/rraix.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/rraix.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/rraiy.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/rraiy.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/rraz.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/rraz.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/rrazx.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/rrazx.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/rtin.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/rtin.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/rtsn.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/rtsn.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/sbca.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/sbca.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/sbcax.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/sbcax.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/sbcay.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/sbcay.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/sbcb.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/sbcb.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/sbcix.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/sbcix.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/sbciy.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/sbciy.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/sbcz.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/sbcz.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/sbczx.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/sbczx.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/sbxb.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/sbxb.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/secn.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/secn.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/sedn.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/sedn.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/sein.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/sein.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/shaay.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/shaay.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/shaiy.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/shaiy.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/shsay.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/shsay.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/shxay.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/shxay.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/shyax.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/shyax.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/staa.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/staa.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/staax.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/staax.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/staay.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/staay.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/staix.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/staix.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/staiy.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/staiy.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/start.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/start.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/staz.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/staz.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/stazx.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/stazx.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/stxa.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/stxa.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/stxz.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/stxz.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/stxzy.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/stxzy.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/stya.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/stya.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/styz.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/styz.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/styzx.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/styzx.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/taxn.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/taxn.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/tayn.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/tayn.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/tsxn.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/tsxn.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/txan.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/txan.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/txsn.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/txsn.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/tyan.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/tyan.asm -------------------------------------------------------------------------------- /ext-c64-tests/template.asm.petscii: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/template.asm.petscii -------------------------------------------------------------------------------- /src/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/src/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /src/fonts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/src/fonts/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/cia1pb6.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/cia1pb6.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/cia1pb7.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/cia1pb7.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/cia1ta.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/cia1ta.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/cia1tb.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/cia1tb.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/cia2pb6.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/cia2pb6.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/cia2pb7.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/cia2pb7.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/cia2ta.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/cia2ta.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/cia2tb.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/cia2tb.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/cntdef.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/cntdef.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/cpuport.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/cpuport.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/flipos.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/flipos.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/loadth.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/loadth.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/mmufetch.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/mmufetch.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/oneshot.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/oneshot.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/sbcb(eb).asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/sbcb(eb).asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/trap1-15.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/trap1-15.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/trap16.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/trap16.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/trap17.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/trap17.asm -------------------------------------------------------------------------------- /src/fonts/Futura-T-OT-Book_19064.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/src/fonts/Futura-T-OT-Book_19064.eot -------------------------------------------------------------------------------- /src/fonts/Futura-T-OT-Book_19064.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/src/fonts/Futura-T-OT-Book_19064.otf -------------------------------------------------------------------------------- /src/fonts/Futura-T-OT-Book_19064.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/src/fonts/Futura-T-OT-Book_19064.ttf -------------------------------------------------------------------------------- /src/fonts/Futura-T-OT-Book_19064.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/src/fonts/Futura-T-OT-Book_19064.woff -------------------------------------------------------------------------------- /src/fonts/Futura-T-OT-Book_19064.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/src/fonts/Futura-T-OT-Book_19064.woff2 -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/cia1tb123.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/cia1tb123.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/cia2tb123.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/cia2tb123.asm -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/cputiming.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mborgbrant/c64js/HEAD/ext-c64-tests/petscii-src/cputiming.asm -------------------------------------------------------------------------------- /src/js/rom.js: -------------------------------------------------------------------------------- 1 | const Rom = function (baseAddress, memoryDump) { 2 | this.baseAddress = baseAddress; 3 | this.memoryDump = memoryDump; 4 | } 5 | 6 | Rom.prototype.onReadByte = function (address) { 7 | return this.memoryDump[address - this.baseAddress] 8 | } -------------------------------------------------------------------------------- /TODO.MD: -------------------------------------------------------------------------------- 1 | # TODO: 2 | 3 | * Refactoring and improvements of the overall TIMING functionality. 4 | * Implement BAD LINES in the CLOCK emulation. 5 | * Implement bitmap modes in the VIC-II-EMULATION. 6 | * Implement SID emulation. 7 | * Implement DISC DRIVE emulation, through .D64-images. 8 | * Improve KEYBOARD functionality. 9 | * Enable alternative KEY MAPPINGS. 10 | * Build a HTML GUI. -------------------------------------------------------------------------------- /src/js/ram.js: -------------------------------------------------------------------------------- 1 | var memoryManager = memoryManager || {}; 2 | memoryManager.ram = memoryManager.ram || {}; 3 | 4 | memoryManager.ram.memory = []; 5 | 6 | memoryManager.ram.onWriteByte = function(address, data) { 7 | memoryManager.ram.memory[address] = data; 8 | }; 9 | 10 | memoryManager.ram.onReadByte = function(address) { 11 | return memoryManager.ram.memory[address] || 0x00; 12 | }; -------------------------------------------------------------------------------- /src/css/font-futura.css: -------------------------------------------------------------------------------- 1 | /* URL: http://www.futurafontfree.com/fonts/futura-font-free-download/ */ 2 | @font-face { 3 | font-family: 'Futura T OT'; 4 | src:url('../fonts/Futura-T-OT-Book_19064.eot?v=4.5.0'); 5 | src:url('../fonts/Futura-T-OT-Book_19064.eot?#iefix') format('embedded-opentype'), 6 | url('../fonts/Futura-T-OT-Book_19064.woff2') format('woff2'), 7 | url('../fonts/Futura-T-OT-Book_19064.woff') format('woff'), 8 | url('../fonts/Futura-T-OT-Book_19064.ttf') format('truetype'), 9 | url('../fonts/Futura-T-OT-Book_19064.svg') format('svg'); 10 | font-weight:normal; 11 | font-style:normal 12 | } -------------------------------------------------------------------------------- /CONTRIBUTING.MD: -------------------------------------------------------------------------------- 1 | # Contributors 2 | - Mikael Borgbrant, mikael [dot] borgbrant [at] gmail [dot] com 3 | - Christian A. Weber, chris [at] gna [dot] ch 4 | - Benjamin Sølberg, benjamin [dot] soelberg [at] gmail [dot] com 5 | 6 | # Contribution guidelines 7 | Please ensure your pull request adheres to the following guidelines: 8 | - Search previous suggestions before making a new one, as yours may be a duplicate. 9 | - Do not use any external JavaScript libraries. 10 | - Make sure the new functionality is working in the latest versions of Chrome, Safari, Firefox and Internet explorer. 11 | - Add your name and email address in this file under the headline "Contributors". 12 | -------------------------------------------------------------------------------- /src/js/utils.js: -------------------------------------------------------------------------------- 1 | var utils = utils || {}; 2 | 3 | utils.petsciiTable = { 32: ' ', 33: '!', 34: '"', 35: '#', 36: '$', 37: '%', 38: '&', 39: '\'', 40: '(', 41: ')', 4 | 42: '*', 43: '+', 44: ',', 45: '-', 46: '.', 47: '/', 48: '0', 49: '1', 50: '2', 51: '3', 5 | 52: '4', 53: '5', 54: '6', 55: '7', 56: '8', 57: '9', 58: ':', 59: ';', 60: '<', 61: '=', 6 | 62: '>', 63: '?', 64: '@', 65: 'A', 66: 'B', 67: 'C', 68: 'D', 69: 'E', 70: 'F', 71: 'G', 7 | 72: 'H', 73: 'I', 74: 'J', 75: 'K', 76: 'L', 77: 'M', 78: 'N', 79: 'O', 80: 'P', 81: 'Q', 8 | 82: 'R', 83: 'S', 84: 'T', 85: 'U', 86: 'V', 87: 'W', 88: 'X', 89: 'Y', 90: 'Z', 91: '[', 9 | 92: '£', 93: ']', 174: '┐', 176: '┌', 192: '─', 221: '│', 237: '└', 253: '┘' }; -------------------------------------------------------------------------------- /README.MD: -------------------------------------------------------------------------------- 1 | # c64js 2 | 3 | This is an embryo of a commodore 64 emulator, written from scratch in javascript. A demo of the emulator is available at [mborgbrant.github.io/c64js](http://mborgbrant.github.io/c64js/). 4 | 5 | ## Roms 6 | 7 | In order to run roms, drop them in `.prg`-format on the emulators canvas area. The VIC-II (GPU) chip isn't fully emulated yet, so there is a limited number of ROMS which actually will work. 8 | 9 | ## Build for production 10 | 11 | Install the npm packages: 12 | 13 | `> npm install` 14 | 15 | Build the distribution: 16 | 17 | `> gulp` 18 | 19 | ## Contributions 20 | 21 | Contributions are always welcome! Please read the [contribution guidelines](CONTRIBUTING.MD) first. 22 | 23 | ## Copyright and license 24 | Code and documentation copyright 2015-2016 Mikael Borgbrant. Code released under [the MIT license](LICENSE.MD). 25 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "c64js", 3 | "version": "0.6.0", 4 | "description": "A commodore 64 emulator written in JavaScript.", 5 | "main": "gulpfile.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "repository": { 10 | "type": "git", 11 | "url": "git+https://s22423@bitbucket.org/s22423/c64js.git" 12 | }, 13 | "keywords": [ 14 | "c64", 15 | "mos", 16 | "6502", 17 | "commodore", 18 | "8bit", 19 | "vic", 20 | "sid" 21 | ], 22 | "author": "Mikael Borgbrant", 23 | "license": "ISC", 24 | "homepage": "http://www.c64js.com", 25 | "dependencies": {}, 26 | "devDependencies": { 27 | "gulp": "^3.9.1", 28 | "gulp-clean": "^0.3.2", 29 | "gulp-clean-css": "^2.0.4", 30 | "gulp-gh-pages": "^0.5.4", 31 | "gulp-if": "^2.0.0", 32 | "gulp-uglify": "^1.5.3", 33 | "gulp-useref": "^3.0.7" 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /LICENSE.MD: -------------------------------------------------------------------------------- 1 | # The MIT License (MIT) 2 | 3 | _Copyright (c) 2015-2016 Mikael Borgbrant_ 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 6 | 7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 8 | 9 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /ext-parse-bins/parsebin.pl: -------------------------------------------------------------------------------- 1 | #!/usr/bin/perl 2 | 3 | use strict; 4 | use warnings; 5 | 6 | if ($#ARGV + 1 != 3) { 7 | die "\narguments: infile outfile variableName\n\n"; 8 | } 9 | 10 | open(my $in, "<", $ARGV[0]) or die "Can't open input.txt: $!"; 11 | open(my $out, ">", $ARGV[1]) or die "Can't open output.txt: $!"; 12 | 13 | binmode($in); 14 | 15 | my @bytes = (); 16 | 17 | $/ = \1; 18 | 19 | while (<$in>) { 20 | push(@bytes, "0x".sprintf("%02x", ord($_))); 21 | } 22 | 23 | my $js = join(', ', @bytes); 24 | 25 | my $n = 16; 26 | my $s = 0; 27 | sub resetLine { 28 | $n = 16; 29 | $s += 16; 30 | return ",\n\t/* 0x".sprintf("%04x", $s)." */\t"; 31 | } 32 | 33 | my $nn=16; 34 | my $ss=16; 35 | sub newLine { 36 | $nn = 16; 37 | return "\n\n"; 38 | } 39 | 40 | my $jw = $js; 41 | $js =~ s/(, )/!--$n ? resetLine() : $1/ge; 42 | $js =~ s/(\n)/!--$nn ? newLine() : $1/ge; 43 | 44 | print $out "var $ARGV[2] = [\n"; 45 | print $out "\t\t\t\t /* 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b 0x0c 0x0d 0x0e 0x0f */\n"; 46 | print $out "\t/* 0x0000 */\t$js\n"; 47 | print $out "];"; 48 | 49 | close $out; 50 | close $in; -------------------------------------------------------------------------------- /src/js/vic-memory-manager.js: -------------------------------------------------------------------------------- 1 | var vicMemoryManager = vicMemoryManager || {}; 2 | 3 | vicMemoryManager.vicBankAddress = 0x0000; 4 | vicMemoryManager.romCharsAddress = 0x1000; 5 | vicMemoryManager.isRomCharsAvailable = true; 6 | 7 | vicMemoryManager.readByte = function(address) { 8 | // Colour memory, This one is a special case since the 4 MSB lines are hard wired to the VIC-II chip 9 | if ((address >= 0xd800) && (address <= 0xdbff)) { 10 | return memoryManager.ram.onReadByte(address); 11 | } 12 | 13 | if (vicMemoryManager.isRomCharsAvailable && address >= vicMemoryManager.romCharsAddress && address <= vicMemoryManager.romCharsAddress + 0x0fff) { 14 | return memoryManager.character.onReadByte(address - vicMemoryManager.romCharsAddress); 15 | } 16 | 17 | return memoryManager.ram.onReadByte(this.vicBankAddress + address);; 18 | }; 19 | 20 | vicMemoryManager.writeByte = function(address, data) { 21 | if ((address >= 0xd800) && (address <= 0xdbff)) { 22 | // Colour memory, This one is a special case since the 4 MSB lines are hard wired to the VIC-II chip 23 | memoryManager.ram.onWriteByte(address, data); 24 | } else { 25 | memoryManager.ram.onWriteByte(this.vicBankAddress + address, data); 26 | } 27 | }; -------------------------------------------------------------------------------- /gulpfile.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const gulp = require('gulp'); 4 | const useref = require('gulp-useref'); 5 | const gulpif = require('gulp-if'); 6 | const uglify = require('gulp-uglify'); 7 | const cleanCss = require('gulp-clean-css'); 8 | const clean = require('gulp-clean'); 9 | const ghPages = require('gulp-gh-pages'); 10 | const fs = require('fs'); 11 | 12 | gulp.task('clean', function() { 13 | return gulp.src('dist', {read: false}) 14 | .pipe(clean()); 15 | }) 16 | 17 | gulp.task('compress', ['clean'], function() { 18 | return gulp.src('src/index.html') 19 | .pipe(useref()) 20 | .pipe(gulpif('*.js', uglify({ 21 | mangle: {toplevel: false}, 22 | compress: { 23 | sequences: true, 24 | dead_code: true, 25 | conditionals: true, 26 | booleans: true, 27 | unused: true, 28 | if_return: true, 29 | join_vars: true, 30 | drop_console: true 31 | }}))) 32 | .pipe(gulpif('*.css', cleanCss({keepSpecialComments: false}))) 33 | .pipe(gulp.dest('dist')); 34 | }); 35 | 36 | gulp.task('copy', ['compress'], function() { 37 | fs.writeFileSync('dist/CNAME', 'www.c64js.com'); 38 | return gulp.src('src/fonts/**').pipe(gulp.dest('dist/fonts')); 39 | }); 40 | 41 | gulp.task('default', ['clean', 'compress', 'copy']); 42 | 43 | gulp.task('deploy', ['default'], function() { 44 | return gulp.src('./dist/**/*') 45 | .pipe(ghPages()); 46 | }); -------------------------------------------------------------------------------- /src/js/cia-6526-2.js: -------------------------------------------------------------------------------- 1 | var memoryManager = memoryManager || {}; 2 | memoryManager.cia2 = memoryManager.cia2 || {}; 3 | 4 | memoryManager.cia2.vicBankRawByte = 0x00; 5 | memoryManager.cia2.vicBankMask = 0x00; 6 | 7 | memoryManager.cia2.setVicBank = function(data) { 8 | 9 | memoryManager.cia2.vicBankRawByte = data; 10 | 11 | var config = (data & memoryManager.cia2.vicBankMask) & 0x03; 12 | var address = 0xc000 - (config * 0x4000); 13 | 14 | vicMemoryManager.vicBankAddress = address; 15 | 16 | if ((config & 0x01) == 0x01) { 17 | vicMemoryManager.isRomCharsAvailable = true; 18 | 19 | if ((config & 0x02) == 0x02) 20 | vicMemoryManager.romCharsAddress = 0x1000; 21 | else 22 | vicMemoryManager.romCharsAddress = 0x9000; 23 | 24 | } else { 25 | vicMemoryManager.isRomCharsAvailable = false; 26 | } 27 | 28 | }; 29 | 30 | memoryManager.cia2.onWriteByte = function(address, data) { 31 | switch(address & 0x00ff) { 32 | case 0x00: 33 | this.setVicBank(data); 34 | break; 35 | case 0x02: 36 | memoryManager.cia2.vicBankMask = data; 37 | break; 38 | default: 39 | console.log('write to cia2: ' + data.toString(2) + ' @ ' + address.toString(16)); 40 | break; 41 | } 42 | }; 43 | 44 | memoryManager.cia2.onReadByte = function(address) { 45 | switch(address & 0x00ff) { 46 | case 0x00: 47 | return memoryManager.cia2.vicBankRawByte; 48 | case 0x02: 49 | return this.vicBankMask; 50 | default: 51 | console.log('Reading from cia2: ' + address.toString(16)); 52 | break; 53 | } 54 | }; 55 | 56 | memoryManager.cia2.process = function(clockTicksElapsed) { 57 | // mos6510.nmi = true; 58 | }; -------------------------------------------------------------------------------- /src/js/io.js: -------------------------------------------------------------------------------- 1 | var memoryManager = memoryManager || {}; 2 | memoryManager.io = {}; 3 | 4 | memoryManager.io.onWriteByte = function(address, data) { 5 | 6 | /* VIC-II */ 7 | if (address >= 0xd000 && address <= 0xd3ff) { 8 | vic2.onWriteByte(address, data); 9 | } 10 | 11 | /* SID */ 12 | if (address >= 0xd400 && address <= 0xd7ff) { 13 | sid.play(); 14 | sidPlayer.synth.poke(address & 0x1f, data); 15 | if (address > 0xd418) { 16 | console.log("attempted digi poke:", address, data); 17 | sidPlayer.synth.pokeDigi(address, data); 18 | } 19 | } 20 | 21 | /* Color ram */ 22 | if (address >= 0xd800 && address <= 0xdbff) { 23 | memoryManager.ram.onWriteByte(address, data); 24 | } 25 | 26 | /* CIA 1 */ 27 | if (address >= 0xdc00 && address <= 0xdcff) { 28 | memoryManager.cia1.onWriteByte(address, data); 29 | } 30 | 31 | /* CIA 2 */ 32 | if (address >= 0xdd00 && address <= 0xddff) { 33 | memoryManager.cia2.onWriteByte(address, data); 34 | } 35 | 36 | }; 37 | 38 | memoryManager.io.onReadByte = function(address) { 39 | 40 | /* VIC-II */ 41 | if (address >= 0xd000 && address <= 0xd3ff) { 42 | return vic2.onReadByte(address); 43 | } 44 | 45 | /* SID */ 46 | if (address >= 0xd400 && address <= 0xd7ff) { 47 | 48 | } 49 | 50 | /* Color ram */ 51 | if (address >= 0xd800 && address <= 0xdbff) { 52 | return memoryManager.ram.onReadByte(address); 53 | } 54 | 55 | /* CIA 1 */ 56 | if (address >= 0xdc00 && address <= 0xdcff) { 57 | return memoryManager.cia1.onReadByte(address); 58 | } 59 | 60 | /* CIA 2 */ 61 | if (address >= 0xdd00 && address <= 0xddff) { 62 | return memoryManager.cia2.onReadByte(address); 63 | } 64 | 65 | }; 66 | -------------------------------------------------------------------------------- /src/js/sid/jssid.core.js: -------------------------------------------------------------------------------- 1 | 2 | // Top level of jsSID, common bits, etc. 3 | 4 | // top level object, overall control:w 5 | 6 | // Not real sure what this may look like yet, just a stub for constructor for now. 7 | function jsSID() { 8 | } 9 | 10 | jsSID.version = "0.0.1"; 11 | 12 | // chip configuration constants 13 | jsSID.chip = Object.freeze({ 14 | model: { MOS6581: 0, MOS8580: 1 }, 15 | clock: { PAL: 985248, NTSC: 1022730 } 16 | }); 17 | 18 | jsSID.synth = {}; 19 | // sid drivers will add entries of the form: 20 | // jsSID.synth.somesid_o1 = { 21 | // desc: "TinySID" 22 | // opts: {} 23 | // } 24 | 25 | // maps to driver names as an interim between old/new expressions on drivers 26 | jsSID.quality = Object.freeze({ 27 | low: "tinysid", 28 | medium: "fastsid", 29 | good: "resid_fast", 30 | better: "resid_interpolate", 31 | best: "resid_resample_interpolate", 32 | broken: "resid_resample_fast" 33 | }); 34 | 35 | // static factory method 36 | jsSID.synthFactory = function(f_opts) { 37 | //console.log("factory", f_opts); 38 | f_opts = f_opts || {}; 39 | var f_quality = f_opts.quality || jsSID.quality.good; 40 | var engine = jsSID.synth[f_quality]; 41 | 42 | var o = {}; 43 | var key; 44 | for(key in engine.opts) { 45 | o[key] = engine.opts[key]; 46 | } 47 | for(key in f_opts) { 48 | o[key] = f_opts[key]; 49 | } 50 | 51 | o.clock = o.clock || jsSID.chip.clock.PAL; 52 | o.model = o.model || jsSID.chip.model.MOS6581; 53 | o.sampleRate = o.sampleRate || 44100; 54 | 55 | //console.log("factory, class:", engine.class); 56 | var f_newsid = new window.jsSID[engine.class](o); 57 | return f_newsid; 58 | }; 59 | 60 | -------------------------------------------------------------------------------- /src/js/cpu-memory-manager.js: -------------------------------------------------------------------------------- 1 | var cpuMemoryManager = cpuMemoryManager || {}; 2 | 3 | cpuMemoryManager.memoryMode = 31; 4 | cpuMemoryManager.kernelMemoryModes = [31, 30, 14, 27, 26, 10, 15, 11, 7, 6, 3, 2]; 5 | cpuMemoryManager.basicMemoryModes = [31, 27, 15, 11]; 6 | cpuMemoryManager.characterMemoryModes = [27, 26, 10, 25, 9, 11, 3, 2]; 7 | cpuMemoryManager.ioMemoryModes = [31, 30, 14, 29, 13, 23, 22, 21, 20, 19, 18, 17, 16, 15, 7, 6, 5]; 8 | 9 | cpuMemoryManager.init = function() { 10 | memoryManager.ram.onWriteByte(0x0000, 0x2f); // Data Direction Register 11 | memoryManager.ram.onWriteByte(0x0000, 0x37); // Processor port 12 | }; 13 | 14 | cpuMemoryManager.readByte = function(address) { 15 | 16 | /* Kernel */ 17 | if ( address >= 0xe000 && address <= 0xffff && (this.kernelMemoryModes.indexOf(this.memoryMode) > -1) ) { 18 | return memoryManager.kernel.onReadByte(address); 19 | } 20 | 21 | /* Basic */ 22 | if ( address >= 0xa000 && address <= 0xbfff && (this.basicMemoryModes.indexOf(this.memoryMode) > -1) ) { 23 | return memoryManager.basic.onReadByte(address); 24 | } 25 | 26 | /* Character */ 27 | if ( address >= 0xd000 && address <= 0xdfff && (this.characterMemoryModes.indexOf(this.memoryMode) > -1) ) { 28 | return memoryManager.character.onReadByte(address - 0xd000); 29 | } 30 | 31 | /* IO */ 32 | if ( address >= 0xd000 && address <= 0xdfff && (this.ioMemoryModes.indexOf(this.memoryMode) > -1) ) { 33 | return memoryManager.io.onReadByte(address); 34 | } 35 | 36 | return memoryManager.ram.onReadByte(address); 37 | }; 38 | 39 | cpuMemoryManager.writeByte = function(address, data) { 40 | /* IO */ 41 | if ( address >= 0xd000 && address <= 0xdfff && (this.ioMemoryModes.indexOf(this.memoryMode) > -1) ) { 42 | memoryManager.io.onWriteByte(address, data); 43 | } 44 | 45 | memoryManager.ram.onWriteByte(address, data); 46 | 47 | /* Bank switching */ 48 | if ((address == 0x01)) { 49 | memoryManager.ram.onWriteByte(0x0001, memoryManager.ram.onReadByte(0x0000) & memoryManager.ram.onReadByte(0x0001)); 50 | this.memoryMode = 0x18 | (memoryManager.ram.onReadByte(0x0001) & 0x07); 51 | } 52 | }; -------------------------------------------------------------------------------- /src/css/fork-me-on-github.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * "Fork me on GitHub" CSS ribbon v0.2.0 | MIT License 3 | * https://github.com/simonwhitaker/github-fork-ribbon-css 4 | */ 5 | 6 | .github-fork-ribbon { 7 | width: 12.1em; 8 | height: 12.1em; 9 | position: absolute; 10 | overflow: hidden; 11 | top: 0; 12 | right: 0; 13 | z-index: 9999; 14 | pointer-events: none; 15 | font-size: 13px; 16 | text-decoration: none; 17 | text-indent: -999999px; 18 | } 19 | 20 | .github-fork-ribbon.fixed { 21 | position: fixed; 22 | } 23 | 24 | .github-fork-ribbon:before, .github-fork-ribbon:after { 25 | /* The right and left classes determine the side we attach our banner to */ 26 | position: absolute; 27 | display: block; 28 | width: 15.38em; 29 | height: 1.54em; 30 | 31 | top: 3.23em; 32 | right: -3.23em; 33 | 34 | -webkit-transform: rotate(45deg); 35 | -moz-transform: rotate(45deg); 36 | -ms-transform: rotate(45deg); 37 | -o-transform: rotate(45deg); 38 | transform: rotate(45deg); 39 | } 40 | 41 | .github-fork-ribbon:before { 42 | content: ''; 43 | 44 | /* Add a bit of padding to give some substance outside the "stitching" */ 45 | padding: .38em 0; 46 | 47 | /* Set the base colour */ 48 | background-color: #003030; 49 | 50 | /* Set a gradient: transparent black at the top to almost-transparent black at the bottom */ 51 | background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(0, 0, 0, 0)), to(rgba(0, 0, 0, 0.15))); 52 | background-image: -webkit-linear-gradient(top, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.15)); 53 | background-image: -moz-linear-gradient(top, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.15)); 54 | background-image: -ms-linear-gradient(top, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.15)); 55 | background-image: -o-linear-gradient(top, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.15)); 56 | background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.15)); 57 | 58 | /* Add a drop shadow */ 59 | -webkit-box-shadow: 0 .15em .23em 0 rgba(0, 0, 0, 0.5); 60 | -moz-box-shadow: 0 .15em .23em 0 rgba(0, 0, 0, 0.5); 61 | box-shadow: 0 .15em .23em 0 rgba(0, 0, 0, 0.5); 62 | 63 | pointer-events: auto; 64 | } 65 | 66 | .github-fork-ribbon:after { 67 | /* Set the text from the title attribute */ 68 | content: attr(title); 69 | 70 | /* Set the text properties */ 71 | color: #fff; 72 | font: 700 1em 'Helvetica Neue', Helvetica, Arial, sans-serif; 73 | line-height: 1.54em; 74 | text-decoration: none; 75 | text-shadow: 0 -.08em rgba(0, 0, 0, 0.5); 76 | text-align: center; 77 | text-indent: 0; 78 | 79 | /* Set the layout properties */ 80 | padding: .15em 0; 81 | margin: .15em 0; 82 | 83 | /* Add "stitching" effect */ 84 | border-width: .08em 0; 85 | border-style: dotted; 86 | border-color: #fff; 87 | border-color: rgba(255, 255, 255, 0.7); 88 | } 89 | 90 | .github-fork-ribbon.left-top, .github-fork-ribbon.left-bottom { 91 | right: auto; 92 | left: 0; 93 | } 94 | 95 | .github-fork-ribbon.left-bottom, .github-fork-ribbon.right-bottom { 96 | top: auto; 97 | bottom: 0; 98 | } 99 | 100 | .github-fork-ribbon.left-top:before, .github-fork-ribbon.left-top:after, .github-fork-ribbon.left-bottom:before, .github-fork-ribbon.left-bottom:after { 101 | right: auto; 102 | left: -3.23em; 103 | } 104 | 105 | .github-fork-ribbon.left-bottom:before, .github-fork-ribbon.left-bottom:after, .github-fork-ribbon.right-bottom:before, .github-fork-ribbon.right-bottom:after { 106 | top: auto; 107 | bottom: 3.23em; 108 | } 109 | 110 | .github-fork-ribbon.left-top:before, .github-fork-ribbon.left-top:after, .github-fork-ribbon.right-bottom:before, .github-fork-ribbon.right-bottom:after { 111 | -webkit-transform: rotate(-45deg); 112 | -moz-transform: rotate(-45deg); 113 | -ms-transform: rotate(-45deg); 114 | -o-transform: rotate(-45deg); 115 | transform: rotate(-45deg); 116 | } -------------------------------------------------------------------------------- /src/css/main.css: -------------------------------------------------------------------------------- 1 | * { box-sizing: border-box; } 2 | html, body { padding: 0; margin: 0; } 3 | body { background: #008080; color:#222; width: 100%; height: 100%; } 4 | 5 | div#emulatorContainer { margin-top: 40px; margin-bottom: 40px; box-sizing: content-box; } 6 | div#screenCanvasFs { width: 100%; height: 100%; background: #222;} 7 | div#emulatorSize { margin: 0 auto; width: 384px; height: 272px; border-radius: 8px 8px 0 0; border: 8px solid #222; border-width: 12px 16px; box-sizing: content-box; display: block; transition: 200ms ease-in-out all;} 8 | div#emulatorSize.zoom { width: 768px; height: 544px; transition: 200ms ease-in-out all; } 9 | canvas { display: block; margin: 0 auto; height: 100%; background: black; border-radius: 5px; border-color: black;} 10 | 11 | .pull-right { float: right; } 12 | .link-pointer { cursor: pointer; } 13 | .link-pointer:hover, .link-pointer.active { color: #fff; } 14 | .disc-menu { display: none; } 15 | .disc-menu.disc-loaded { display: inline; } 16 | 17 | input#fileElement { display: none; } 18 | 19 | .general-info { 20 | font-family: 'Futura T OT'; 21 | font-size: 14px; 22 | color: #eee; 23 | width: 384px; 24 | margin: 0 auto; 25 | padding-bottom: 50px; 26 | } 27 | 28 | .general-info strong { 29 | font-size: 20px; 30 | } 31 | 32 | .general-info a { 33 | color: #fff; 34 | font-size: 16px; 35 | } 36 | 37 | .copyrightInfo { z-index: 1000; font-family: 'Futura T OT'; font-size: 14px; width: 100%; text-align: center; position: fixed; bottom: 0; left: 0; padding: 10px; padding-right: 20px; background: #222; color: #eee;} 38 | 39 | div#controlPanel { 40 | font-family: monospace; 41 | margin: 0 auto; 42 | width: 416px; 43 | border: 1px solid #222; 44 | border-top: 0; 45 | background: #222; /* For browsers that do not support gradients */ 46 | background: -webkit-linear-gradient(#222, #444); /* For Safari 5.1 to 6.0 */ 47 | background: -moz-linear-gradient(#222, #444); /* For Firefox 3.6 to 15 */ 48 | background: linear-gradient(#222, #444); /*, #222, #000); /* Standard syntax */ 49 | height: 30px; 50 | color: #ccc; 51 | text-shadow: 1px 1px #000; 52 | padding: 0 27px; 53 | border-radius: 0 0 8px 8px; 54 | cursor: default; 55 | transition: 200ms ease-in-out all; 56 | } 57 | 58 | div#controlPanel.zoom { 59 | width: 800px; 60 | transition: 200ms ease-in-out all; 61 | } 62 | 63 | .menuContainer { 64 | font-family: monospace; 65 | z-index: 100; 66 | color: #eee; 67 | text-shadow: 1px 1px #000; 68 | font-size: 12px; 69 | padding: 10px 0; 70 | position: absolute; 71 | background-color: rgba(51,51,51,1); 72 | border: solid 2px #eee; 73 | border-radius: 4px; 74 | -webkit-box-shadow: 0px 10px 29px 0px rgba(51,51,51,1); 75 | -moz-box-shadow: 0px 10px 29px 0px rgba(51,51,51,1); 76 | box-shadow: 0px 10px 29px 0px rgba(51,51,51,1); 77 | } 78 | .menuContainer:after, .menuContainer:before { top: 100%; left: 50%; border: solid transparent; content: ' '; height: 0; width: 0; position: absolute; pointer-events: none; } 79 | .menuContainer:after { border-color: rgba(51, 51, 51, 0); border-top-color: rgba(51,51,51,1); border-width: 10px; margin-left: -10px; } 80 | .menuContainer:before { border-color: rgba(194, 225, 245, 0); border-top-color: #eee; border-width: 13px; margin-left: -13px; } 81 | 82 | .menuContainer table { border-spacing: 0; } 83 | .menuContainer table td { cursor: pointer; padding-top: 2px; padding-bottom: 2px; white-space: pre; } 84 | .menuContainer table td.separator { cursor: default; padding:0; } 85 | .menuContainer table td.separator:hover { background: #333; } 86 | .menuContainer table td.separator div { cursor: default; padding:0; padding-top: 6px; margin-bottom: 5px; border-bottom: 1px solid #777;} 87 | .menuContainer table td:nth-child(1) { padding-left: 10px; } 88 | .menuContainer table td:nth-last-child(1) { padding-right: 10px; } 89 | .menuContainer table td i.more { padding-left: 6px; } 90 | .menuContainer table tr:hover { background-color: #666; } 91 | -------------------------------------------------------------------------------- /ext-c64-tests/template.asm.ascii: -------------------------------------------------------------------------------- 1 | ;--------------------------------------- 2 | ;.asm - this file is part 3 | ;of the C64 Emulator Test Suite 4 | ;public domain, no copyright 5 | 6 | *= $0801 7 | .byte $4c,$14,$08,$00,$97 8 | turboass = 780 9 | .text "780" 10 | .byte $2c,$30,$3a,$9e,$32,$30 11 | .byte $37,$33,$00,$00,$00 12 | .block 13 | lda #1 14 | sta turboass 15 | ldx #0 16 | stx $d3 17 | lda thisname 18 | printthis 19 | jsr $ffd2 20 | inx 21 | lda thisname,x 22 | bne printthis 23 | jsr main 24 | lda #$37 25 | sta 1 26 | lda #$2f 27 | sta 0 28 | jsr $fd15 29 | jsr $fda3 30 | jsr print 31 | .text " - ok" 32 | .byte 13,0 33 | lda turboass 34 | beq loadnext 35 | jsr waitkey 36 | jmp $8000 37 | .bend 38 | loadnext 39 | .block 40 | ldx #$f8 41 | txs 42 | lda nextname 43 | cmp #"-" 44 | bne notempty 45 | jmp $a474 46 | notempty 47 | ldx #0 48 | printnext 49 | jsr $ffd2 50 | inx 51 | lda nextname,x 52 | bne printnext 53 | lda #0 54 | sta $0a 55 | sta $b9 56 | stx $b7 57 | lda #nextname 60 | sta $bc 61 | jmp $e16f 62 | .bend 63 | 64 | ;--------------------------------------- 65 | ;print text which immediately follows 66 | ;the JSR and return to address after 0 67 | 68 | print 69 | .block 70 | pla 71 | sta next+1 72 | pla 73 | sta next+2 74 | ldx #1 75 | next 76 | lda $1111,x 77 | beq end 78 | jsr $ffd2 79 | inx 80 | bne next 81 | end 82 | sec 83 | txa 84 | adc next+1 85 | sta return+1 86 | lda #0 87 | adc next+2 88 | sta return+2 89 | return 90 | jmp $1111 91 | .bend 92 | 93 | ;--------------------------------------- 94 | ;print hex byte 95 | 96 | printhb 97 | .block 98 | pha 99 | lsr a 100 | lsr a 101 | lsr a 102 | lsr a 103 | jsr printhn 104 | pla 105 | and #$0f 106 | printhn 107 | ora #$30 108 | cmp #$3a 109 | bcc noletter 110 | adc #6 111 | noletter 112 | jmp $ffd2 113 | .bend 114 | 115 | ;--------------------------------------- 116 | ;wait until raster line is in border 117 | ;to prevent getting disturbed by DMAs 118 | 119 | waitborder 120 | .block 121 | lda $d011 122 | bmi ok 123 | wait 124 | lda $d012 125 | cmp #30 126 | bcs wait 127 | ok 128 | rts 129 | .bend 130 | 131 | ;--------------------------------------- 132 | ;wait for a key and check for STOP 133 | 134 | waitkey 135 | .block 136 | jsr $fd15 137 | jsr $fda3 138 | cli 139 | wait 140 | jsr $ffe4 141 | beq wait 142 | cmp #3 143 | beq stop 144 | rts 145 | stop 146 | lda turboass 147 | beq load 148 | jmp $8000 149 | load 150 | jsr print 151 | .byte 13 152 | .text "break" 153 | .byte 13,0 154 | jmp loadnext 155 | .bend 156 | 157 | ;--------------------------------------- 158 | 159 | thisname .null "" 160 | nextname .null "-" 161 | 162 | main 163 | 164 | ;--------------------------------------- 165 | 166 | .block 167 | 168 | 169 | 170 | 171 | 172 | .bend 173 | 174 | ;--------------------------------------- 175 | 176 | rts 177 | 178 | 179 | -------------------------------------------------------------------------------- /src/js/main.js: -------------------------------------------------------------------------------- 1 | /* 2 | c64js - A commodore 64 emulator 3 | (c) Mikael Borgbrant, 2015 - 2016, Some rights reserved 4 | Email: mikael [dot] borgbrant [at] gmail [dot] com 5 | */ 6 | 7 | var main = main || {}; 8 | 9 | window.requestAnimFrame = (function () { 10 | return window.requestAnimationFrame || 11 | window.webkitRequestAnimationFrame || 12 | window.mozRequestAnimationFrame || 13 | window.oRequestAnimationFrame || 14 | window.msRequestAnimationFrame || 15 | function (callback, element) { 16 | //window.setTimeout(callback, 1000 / 60); 17 | window.setTimeout(callback, 1000 / 50.125); 18 | }; 19 | })(); 20 | 21 | main.zoom = function (menuItemElement) { 22 | var emulatorContainer = document.getElementById('emulatorSize'); 23 | var controlPanel = document.getElementById('controlPanel'); 24 | if (emulatorContainer.className == 'zoom') { 25 | emulatorContainer.className = ''; 26 | controlPanel.className = ''; 27 | menuItemElement.className += menuItemElement.className.substr(0, menuItemElement.className.indexOf(' active')); 28 | } else { 29 | emulatorContainer.className = 'zoom'; 30 | controlPanel.className = 'zoom'; 31 | menuItemElement.className += ' active'; 32 | } 33 | } 34 | 35 | main.fullscreen = function () { 36 | var isFullScreen = document.mozFullScreen || document.webkitIsFullScreen || document.msFullscreenElement || document.fullscreenElement; 37 | var elem = document.getElementById('screenCanvasFs'); 38 | 39 | if (!isFullScreen) { 40 | if (elem.requestFullScreen) { 41 | elem.requestFullScreen(); 42 | } else if (elem.msRequestFullscreen) { 43 | elem.msRequestFullscreen(); 44 | } else if (elem.mozRequestFullScreen) { 45 | elem.mozRequestFullScreen(); 46 | } else if (elem.webkitRequestFullScreen) { 47 | elem.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT); 48 | } else { 49 | alert('Fullscreen not supported. Try Firefox or Chrome.'); 50 | } 51 | } 52 | } 53 | 54 | main.exitFullscreen = function () { 55 | var isFullScreen = document.mozFullScreen || document.webkitIsFullScreen || document.msFullscreenElement || document.fullscreenElement; 56 | if (isFullScreen) { 57 | if (document.cancelFullScreen) { 58 | document.cancelFullScreen(); 59 | } else if (document.msExitFullscreen) { 60 | document.msExitFullscreen(); 61 | } else if (document.exitFullscreen) { 62 | document.exitFullscreen(); 63 | } else if (document.mozCancelFullScreen) { 64 | document.mozCancelFullScreen(); 65 | } else if (document.webkitCancelFullScreen) { 66 | document.webkitCancelFullScreen(); 67 | } 68 | } 69 | } 70 | 71 | main.stop = false; 72 | 73 | main.start = function () { 74 | 75 | memoryManager.kernel = new Rom(0xe000, romDump.kernel); 76 | memoryManager.basic = new Rom(0xa000, romDump.basic); 77 | memoryManager.character = new Rom(0x0000, romDump.character); 78 | 79 | cpuMemoryManager.init(); 80 | mos6510.init(cpuMemoryManager); 81 | vic2.init(vicMemoryManager); 82 | sid.init() 83 | 84 | var badLine = false; 85 | var cpuCycles = 0; 86 | var frameInterlaceToggle = 0; 87 | var cycles = 19656; 88 | 89 | var doCycles = function () { 90 | 91 | frameInterlaceToggle++; 92 | if (frameInterlaceToggle > 0) 93 | frameInterlaceToggle = 0; 94 | 95 | /* (504 * 312) / 8 = 19656 cycles to draw entire screen */ 96 | for (var i = 0; i < cycles; i++) { 97 | 98 | if (!badLine) { 99 | // High phase 100 | if (cpuCycles == 0) { 101 | cpuCycles = mos6510.process(); 102 | } 103 | 104 | if (cpuCycles == 0) { 105 | console.log('pc: ' + mos6510.register.pc.toString(16)); 106 | main.stop = true; 107 | } 108 | 109 | cpuCycles--; 110 | } 111 | // Low phase 112 | badLine = vic2.process(i, frameInterlaceToggle); 113 | 114 | if (main.stop) { 115 | break; 116 | } 117 | } 118 | 119 | // TODO: This should be in the clock loop, but it didn't work for now 120 | memoryManager.cia1.process(cycles); 121 | memoryManager.cia2.process(cycles); 122 | 123 | if (!main.stop) { 124 | window.requestAnimFrame(doCycles); 125 | } else { 126 | console.log('stopped!'); 127 | } 128 | } 129 | 130 | doCycles(); 131 | } 132 | -------------------------------------------------------------------------------- /src/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | c64js, Commodore 64 emulator written in JavaScript 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | Fork me on GitHub 41 | 42 |
43 |
44 |
45 | 46 |
47 |
48 |
49 | 50 | 51 | 52 |
53 |
54 | 55 |
56 |

57 | Note: Right now this is more of a proof of concept than a fully working emulator. Still there are features that are not even emulated, such as the SID chip (for sound), and some of the graphical modes in the VIC-II chip. 58 |

59 |

60 | It is possible to execute rom files in .prg format. In order to do so, drop them on the emulators canvas area above. However, due to the fact that not every feature of the original hardware is implemented yet, not all roms will be executing flawlessly. 61 |

62 |

63 | If you want to try out a game running through this emulator, check out SoS fantastic implementation of Flappy birds for C64. It can be found here. 64 |

65 |
66 | 67 |
68 | © 2015 - 2016, Mikael Borgbrant, www.c64js.com. 69 |
70 | 71 | 72 | 79 | 88 | 89 | 90 | -------------------------------------------------------------------------------- /src/js/sid/stream.js: -------------------------------------------------------------------------------- 1 | /* Wrapper for accessing strings through sequential reads */ 2 | function Stream(str) { 3 | var position = 0; 4 | 5 | function seek(newpos) { 6 | position = newpos; 7 | } 8 | 9 | function read(length) { 10 | var result = str.substr(position, length); 11 | position += length; 12 | return result; 13 | } 14 | 15 | /* read a big-endian 32-bit integer */ 16 | function readInt32() { 17 | var result = ( (str.charCodeAt(position) << 24) + 18 | (str.charCodeAt(position + 1) << 16) + 19 | (str.charCodeAt(position + 2) << 8) + 20 | str.charCodeAt(position + 3)); 21 | position += 4; 22 | return result; 23 | } 24 | 25 | /* read a big-endian 16-bit integer */ 26 | function readInt16() { 27 | var result = ( (str.charCodeAt(position) << 8) + str.charCodeAt(position + 1)); 28 | position += 2; 29 | return result; 30 | } 31 | 32 | /* read an 8-bit integer */ 33 | function readInt8(signed) { 34 | var result = str.charCodeAt(position); 35 | if (signed && result > 127) result -= 256; 36 | position += 1; 37 | return result; 38 | } 39 | 40 | function eof() { 41 | return position >= str.length; 42 | } 43 | 44 | /* read a MIDI-style variable-length integer 45 | (big-endian value in groups of 7 bits, 46 | with top bit set to signify that another byte follows) 47 | */ 48 | function readVarInt() { 49 | var result = 0; 50 | while (true) { 51 | var b = readInt8(); 52 | if (b & 0x80) { 53 | result += (b & 0x7f); 54 | result <<= 7; 55 | } else { 56 | /* b is the last byte */ 57 | return result + b; 58 | } 59 | } 60 | } 61 | 62 | return { 63 | 'eof': eof, 64 | 'seek': seek, 65 | 'read': read, 66 | 'readInt32': readInt32, 67 | 'readInt16': readInt16, 68 | 'readInt8': readInt8, 69 | 'readVarInt': readVarInt 70 | }; 71 | } 72 | 73 | Stream.loadRemoteFile = function (path, callback) { 74 | var fetch = new XMLHttpRequest(); 75 | fetch.open('GET', path); 76 | if(fetch.overrideMimeType) fetch.overrideMimeType("text/plain; charset=x-user-defined"); 77 | if(fetch.responseType) fetch.responseType = "arraybuffer"; 78 | fetch.onreadystatechange = function() { 79 | if(this.readyState == 4 && this.status == 200) { 80 | /* munge response into a binary string */ 81 | var t = this.responseText || "" ; 82 | var ff = []; 83 | var mx = t.length; 84 | var scc= String.fromCharCode; 85 | for (var z = 0; z < mx; z++) { 86 | ff[z] = scc(t.charCodeAt(z) & 255); 87 | } 88 | callback(ff.join("")); 89 | } 90 | }; 91 | fetch.send(); 92 | }; 93 | 94 | 95 | Stream.Base64DecodeEnumerator = function(input) 96 | { 97 | this._input = input; 98 | this._index = -1; 99 | this._buffer = []; 100 | }; 101 | 102 | Stream.Base64DecodeEnumerator.prototype = 103 | { 104 | current: 64, 105 | 106 | codex : "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=", 107 | 108 | moveNext: function() 109 | { 110 | if (this._buffer.length > 0) 111 | { 112 | this.current = this._buffer.shift(); 113 | return true; 114 | } 115 | else if (this._index >= (this._input.length - 1)) 116 | { 117 | this.current = 64; 118 | return false; 119 | } 120 | else 121 | { 122 | var enc1 = this.codex.indexOf(this._input.charAt(++this._index)); 123 | var enc2 = this.codex.indexOf(this._input.charAt(++this._index)); 124 | var enc3 = this.codex.indexOf(this._input.charAt(++this._index)); 125 | var enc4 = this.codex.indexOf(this._input.charAt(++this._index)); 126 | 127 | var chr1 = (enc1 << 2) | (enc2 >> 4); 128 | var chr2 = ((enc2 & 15) << 4) | (enc3 >> 2); 129 | var chr3 = ((enc3 & 3) << 6) | enc4; 130 | 131 | this.current = chr1; 132 | 133 | if (enc3 != 64) 134 | this._buffer.push(chr2); 135 | 136 | if (enc4 != 64) 137 | this._buffer.push(chr3); 138 | 139 | return true; 140 | } 141 | } 142 | }; 143 | 144 | Stream.Base64Decode = function(input) { 145 | 146 | var output = []; 147 | 148 | var enumerator = new Stream.Base64DecodeEnumerator(input); 149 | while (enumerator.moveNext()) 150 | { 151 | var charCode = enumerator.current; 152 | output.push(String.fromCharCode(charCode)); 153 | } 154 | 155 | return output.join(""); 156 | }; 157 | 158 | 159 | -------------------------------------------------------------------------------- /ext-c64-tests/ascii-src/cntdef.asm: -------------------------------------------------------------------------------- 1 | ;--------------------------------------- 2 | ;cntdef.asm - this file is part 3 | ;of the C64 Emulator Test Suite 4 | ;public domain, no copyright 5 | 6 | *= $0801 7 | .byte $4c,$14,$08,$00,$97 8 | turboass = 780 9 | .text "780" 10 | .byte $2c,$30,$3a,$9e,$32,$30 11 | .byte $37,$33,$00,$00,$00 12 | .block 13 | lda #1 14 | sta turboass 15 | ldx #0 16 | stx $d3 17 | lda thisname 18 | printthis 19 | jsr $ffd2 20 | inx 21 | lda thisname,x 22 | bne printthis 23 | jsr main 24 | lda #$37 25 | sta 1 26 | lda #$2f 27 | sta 0 28 | jsr $fd15 29 | jsr $fda3 30 | jsr print 31 | .text " - ok" 32 | .byte 13,0 33 | lda turboass 34 | beq loadnext 35 | jsr waitkey 36 | jmp $8000 37 | .bend 38 | loadnext 39 | .block 40 | ldx #$f8 41 | txs 42 | lda nextname 43 | cmp #"-" 44 | bne notempty 45 | jmp $a474 46 | notempty 47 | ldx #0 48 | printnext 49 | jsr $ffd2 50 | inx 51 | lda nextname,x 52 | bne printnext 53 | lda #0 54 | sta $0a 55 | sta $b9 56 | stx $b7 57 | lda #nextname 60 | sta $bc 61 | jmp $e16f 62 | .bend 63 | 64 | ;--------------------------------------- 65 | ;print text which immediately follows 66 | ;the JSR and return to address after 0 67 | 68 | print 69 | .block 70 | pla 71 | sta next+1 72 | pla 73 | sta next+2 74 | ldx #1 75 | next 76 | lda $1111,x 77 | beq end 78 | jsr $ffd2 79 | inx 80 | bne next 81 | end 82 | sec 83 | txa 84 | adc next+1 85 | sta return+1 86 | lda #0 87 | adc next+2 88 | sta return+2 89 | return 90 | jmp $1111 91 | .bend 92 | 93 | ;--------------------------------------- 94 | ;print hex byte 95 | 96 | printhb 97 | .block 98 | pha 99 | lsr a 100 | lsr a 101 | lsr a 102 | lsr a 103 | jsr printhn 104 | pla 105 | and #$0f 106 | printhn 107 | ora #$30 108 | cmp #$3a 109 | bcc noletter 110 | adc #6 111 | noletter 112 | jmp $ffd2 113 | .bend 114 | 115 | ;--------------------------------------- 116 | ;wait until raster line is in border 117 | ;to prevent getting disturbed by DMAs 118 | 119 | waitborder 120 | .block 121 | lda $d011 122 | bmi ok 123 | wait 124 | lda $d012 125 | cmp #30 126 | bcs wait 127 | ok 128 | rts 129 | .bend 130 | 131 | ;--------------------------------------- 132 | ;wait for a key and check for STOP 133 | 134 | waitkey 135 | .block 136 | jsr $fd15 137 | jsr $fda3 138 | cli 139 | wait 140 | jsr $ffe4 141 | beq wait 142 | cmp #3 143 | beq stop 144 | rts 145 | stop 146 | lda turboass 147 | beq load 148 | jmp $8000 149 | load 150 | jsr print 151 | .byte 13 152 | .text "break" 153 | .byte 13,0 154 | jmp loadnext 155 | .bend 156 | 157 | ;--------------------------------------- 158 | 159 | thisname .null "cntdef" 160 | nextname .null "cia1ta" 161 | 162 | main 163 | 164 | ;--------------------------------------- 165 | ;check cnt with counting ab cascaded 166 | 167 | .block 168 | sei 169 | lda #0 170 | sta $dc0e 171 | sta $dc0f 172 | lda #$7f 173 | sta $dc0d 174 | bit $dc0d 175 | lda #0 176 | sta $dc04 177 | sta $dc05 178 | lda #%00000001 179 | sta $dc0e 180 | lda #255 181 | sta $dc06 182 | sta $dc07 183 | jsr waitborder 184 | lda #%01100001 185 | sta $dc0f 186 | lda $dc06 187 | cmp $dc06 188 | bne ok1 189 | jsr print 190 | .byte 13 191 | .text "cnt is not high " 192 | .text "by default" 193 | .byte 0 194 | jsr waitkey 195 | ok1 196 | .bend 197 | 198 | ;--------------------------------------- 199 | 200 | rts 201 | 202 | 203 | -------------------------------------------------------------------------------- /src/js/keyboard.js: -------------------------------------------------------------------------------- 1 | var keyboard = keyboard || {}; 2 | 3 | keyboard.keyMapMac = [ 4 | 8, 13, 18, 118, 112, 114, 116, 93, 5 | 51, 87, 65, 52, 90, 83, 69, 1017, 6 | 53, 82, 68, 54, 67, 70, 84, 88, 7 | 55, 89, 71, 56, 66, 72, 85, 86, 8 | 57, 73, 74, 48, 77, 75, 79, 78, 9 | 187, 80, 76, 219, 190, 186, 221, 188, 10 | 123, 220, 222, 192, 1018, 191, 36, 189, 11 | 49, 9, 17, 50, 32, 17, 81, 27 12 | ]; 13 | 14 | keyboard.row = []; 15 | 16 | keyboard.leftShiftIsDown = false; 17 | keyboard.rightShiftIsDown = false; 18 | 19 | keyboard.joystickUp = false; 20 | keyboard.joystickDown = false; 21 | keyboard.joystickLeft = false; 22 | keyboard.joystickRight = false; 23 | keyboard.fire = false; 24 | keyboard.connectedJoystickPort = 1; 25 | 26 | keyboard.getJoyStickByte = function(port) { 27 | if (port == keyboard.connectedJoystickPort) { 28 | return ((keyboard.joystickUp ? 0x01 : 0x00) | 29 | (keyboard.joystickDown ? 0x02 : 0x00) | 30 | (keyboard.joystickLeft ? 0x04 : 0x00) | 31 | (keyboard.joystickRight ? 0x08 : 0x00) | 32 | (keyboard.joystickFire ? 0x10 : 0x00)); 33 | } 34 | else { 35 | return 0x00; 36 | } 37 | } 38 | 39 | document.onkeyup = function(e) { 40 | // console.log("up: ", e, JSON.stringify(e)); 41 | if ((e.keyCode >= 37) && (e.keyCode <= 40)) { 42 | keyboard.joystickUp = false; 43 | keyboard.joystickDown = false; 44 | keyboard.joystickLeft = false; 45 | keyboard.joystickRight = false; 46 | } 47 | 48 | if (e.keyCode == 32) 49 | keyboard.joystickFire = false; 50 | 51 | // Shift key 52 | if (e.keyCode == 16) { 53 | // left side 54 | if (e.location == 1) { 55 | keyboard.leftShiftIsDown = false; 56 | keyboard.row[0x02] = keyboard.row[0x02] & 0x7f; 57 | } 58 | // right side 59 | if (e.location == 2) { 60 | keyboard.rightShiftIsDown = false; 61 | keyboard.row[0x40] = keyboard.row[0x40] & 0xef; 62 | } 63 | } 64 | 65 | var keyCode = e.keyCode; 66 | 67 | if (keyboard.rightShiftIsDown) { 68 | if (e.keyCode == 222) // On Mac this key is changing code (2/") 69 | keyCode = 50; 70 | } 71 | 72 | var keyboardMapValue = keyboard.keyMapMac.indexOf(keyCode); 73 | 74 | if (keyboardMapValue > -1) { 75 | var row = Math.floor(keyboardMapValue / 8); 76 | var col = (keyboardMapValue % 8); 77 | keyboard.row[1 << row] = ((keyboard.row[1 << row] & (1 << col)) > 0) ? keyboard.row[1 << row] - (1 << col) : keyboard.row[1 << row]; 78 | } 79 | 80 | }; 81 | 82 | document.onkeydown = function(e) { 83 | // console.log("down: ", e, JSON.stringify(e)); 84 | var doPrevent = false; 85 | 86 | // Disable the default actions for the F-keys + tab key + space 87 | var functionKeys = [112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 123, 9, 32]; 88 | if (functionKeys.indexOf(e.keyCode) > -1 || functionKeys.indexOf(e.which) > -1) { 89 | e.preventDefault(); 90 | } 91 | 92 | // Prevent backspace to navigate back in the browser, but keep the function in some elements 93 | if (e.keyCode === 8) { 94 | var d = e.srcElement || e.target; 95 | if ((d.tagName.toLowerCase() === 'input' && 96 | ( 97 | d.type.toLowerCase() === 'text' || 98 | d.type.toLowerCase() === 'password' || 99 | d.type.toLowerCase() === 'file' || 100 | d.type.toLowerCase() === 'search' || 101 | d.type.toLowerCase() === 'email' || 102 | d.type.toLowerCase() === 'number' || 103 | d.type.toLowerCase() === 'date' ) 104 | ) || 105 | d.tagName.toLowerCase() === 'textarea') { 106 | doPrevent = d.readOnly || d.disabled; 107 | } 108 | else { 109 | doPrevent = true; 110 | } 111 | } 112 | 113 | if (doPrevent) { 114 | e.preventDefault(); 115 | } 116 | 117 | if (e.keyCode == 33) // PageUp mapped to RESTORE which is hardwired to NMI 118 | mos6510.nmi = true; 119 | 120 | if (e.keyCode == 38) 121 | keyboard.joystickUp = true; 122 | if (e.keyCode == 40) 123 | keyboard.joystickDown = true; 124 | if (e.keyCode == 37) 125 | keyboard.joystickLeft = true; 126 | if (e.keyCode == 39) 127 | keyboard.joystickRight = true; 128 | if (e.keyCode == 32) 129 | keyboard.joystickFire = true; 130 | 131 | if (e.keyCode == 16) { 132 | // left side 133 | if (e.location == 1) { 134 | keyboard.leftShiftIsDown = true; 135 | keyboard.row[0x02] = keyboard.row[0x02] | 0x80; 136 | } 137 | // right side 138 | if (e.location == 2) { 139 | keyboard.rightShiftIsDown = true; 140 | keyboard.row[0x40] = keyboard.row[0x40] | 0x10; 141 | } 142 | } 143 | 144 | var keyCode = e.keyCode; 145 | 146 | if (e.shiftKey) { 147 | if (e.keyCode == 222) { // On Mac this key is changing code (2/") 148 | keyCode = 50; 149 | } 150 | } 151 | 152 | var keyboardMapValue = keyboard.keyMapMac.indexOf(keyCode); 153 | if (keyboardMapValue > -1) { 154 | var row = Math.floor(keyboardMapValue / 8); 155 | var col = (keyboardMapValue % 8); 156 | // console.log("r: ", row, " col: ", col); 157 | keyboard.row[1 << row] = keyboard.row[1 << row] | 1 << col; 158 | } 159 | }; -------------------------------------------------------------------------------- /ext-c64-tests/ascii-src/cnto2.asm: -------------------------------------------------------------------------------- 1 | ;--------------------------------------- 2 | ;cnto2.asm - this file is part 3 | ;of the C64 Emulator Test Suite 4 | ;public domain, no copyright 5 | 6 | *= $0801 7 | .byte $4c,$14,$08,$00,$97 8 | turboass = 780 9 | .text "780" 10 | .byte $2c,$30,$3a,$9e,$32,$30 11 | .byte $37,$33,$00,$00,$00 12 | .block 13 | lda #1 14 | sta turboass 15 | ldx #0 16 | stx $d3 17 | lda thisname 18 | printthis 19 | jsr $ffd2 20 | inx 21 | lda thisname,x 22 | bne printthis 23 | jsr main 24 | lda #$37 25 | sta 1 26 | lda #$2f 27 | sta 0 28 | jsr $fd15 29 | jsr $fda3 30 | jsr print 31 | .text " - ok" 32 | .byte 13,0 33 | lda turboass 34 | beq loadnext 35 | jsr waitkey 36 | jmp $8000 37 | .bend 38 | loadnext 39 | .block 40 | ldx #$f8 41 | txs 42 | lda nextname 43 | cmp #"-" 44 | bne notempty 45 | jmp $a474 46 | notempty 47 | ldx #0 48 | printnext 49 | jsr $ffd2 50 | inx 51 | lda nextname,x 52 | bne printnext 53 | lda #0 54 | sta $0a 55 | sta $b9 56 | stx $b7 57 | lda #nextname 60 | sta $bc 61 | jmp $e16f 62 | .bend 63 | 64 | ;--------------------------------------- 65 | ;print text which immediately follows 66 | ;the JSR and return to address after 0 67 | 68 | print 69 | .block 70 | pla 71 | sta next+1 72 | pla 73 | sta next+2 74 | ldx #1 75 | next 76 | lda $1111,x 77 | beq end 78 | jsr $ffd2 79 | inx 80 | bne next 81 | end 82 | sec 83 | txa 84 | adc next+1 85 | sta return+1 86 | lda #0 87 | adc next+2 88 | sta return+2 89 | return 90 | jmp $1111 91 | .bend 92 | 93 | ;--------------------------------------- 94 | ;print hex byte 95 | 96 | printhb 97 | .block 98 | pha 99 | lsr a 100 | lsr a 101 | lsr a 102 | lsr a 103 | jsr printhn 104 | pla 105 | and #$0f 106 | printhn 107 | ora #$30 108 | cmp #$3a 109 | bcc noletter 110 | adc #6 111 | noletter 112 | jmp $ffd2 113 | .bend 114 | 115 | ;--------------------------------------- 116 | ;wait until raster line is in border 117 | ;to prevent getting disturbed by DMAs 118 | 119 | waitborder 120 | .block 121 | lda $d011 122 | bmi ok 123 | wait 124 | lda $d012 125 | cmp #30 126 | bcs wait 127 | ok 128 | rts 129 | .bend 130 | 131 | ;--------------------------------------- 132 | ;wait for a key and check for STOP 133 | 134 | waitkey 135 | .block 136 | jsr $fd15 137 | jsr $fda3 138 | cli 139 | wait 140 | jsr $ffe4 141 | beq wait 142 | cmp #3 143 | beq stop 144 | rts 145 | stop 146 | lda turboass 147 | beq load 148 | jmp $8000 149 | load 150 | jsr print 151 | .byte 13 152 | .text "break" 153 | .byte 13,0 154 | jmp loadnext 155 | .bend 156 | 157 | ;--------------------------------------- 158 | 159 | thisname .null "cnto2" 160 | nextname .null "icr01" 161 | 162 | main 163 | 164 | ;--------------------------------------- 165 | ;switch from cnt to o2 and back 166 | 167 | .block 168 | sei 169 | lda #0 170 | sta $dc0e 171 | sta $dc0f 172 | lda #$7f 173 | sta $dc0d 174 | bit $dc0d 175 | lda #255 176 | sta $dc04 177 | sta $dc05 178 | lda #%00100001 179 | sta $dc0e 180 | jsr waitborder 181 | lda #%00000001 182 | ldx #%00100001 183 | sta $dc0e 184 | lda $dc04 185 | stx $dc0e 186 | ldx $dc04 187 | cmp #253 188 | beq ok1 189 | jsr print 190 | .byte 13 191 | .text "cnt to o2 does not " 192 | .text "delay 2 clocks" 193 | .byte 0 194 | jsr waitkey 195 | ok1 196 | cpx #247 197 | beq ok2 198 | jsr print 199 | .byte 13 200 | .text "o2 to cnt does not " 201 | .text "delay 2 clocks" 202 | .byte 0 203 | jsr waitkey 204 | ok2 205 | .bend 206 | 207 | ;--------------------------------------- 208 | 209 | rts 210 | 211 | 212 | -------------------------------------------------------------------------------- /ext-c64-tests/petscii-src/cia1tab.asm: -------------------------------------------------------------------------------- 1 | *= $0801 .BYTE $4C,$14,$08,$00,$97 TURBOASS = 780 .TEXT "780" .BYTE $2C,$30,$3A,$9E,$32,$30 .BYTE $37,$33,$00,$00,$00 LDA #1 STA TURBOASS JMP MAIN PRINT .BLOCK PLA STA PRINT0+1 PLA STA PRINT0+2 LDX #1 PRINT0 LDA $1111,X BEQ PRINT1 JSR $FFD2 INX BNE PRINT0 PRINT1 SEC TXA ADC PRINT0+1 STA PRINT2+1 LDA #0 ADC PRINT0+2 STA PRINT2+2 PRINT2 JMP $1111 .BEND PRINTHB .BLOCK PHA LSR A LSR A LSR A LSR A JSR PRINTHN PLA AND #$0F PRINTHN ORA #$30 CMP #$3A BCC PRINTHN0 ADC #6 PRINTHN0 JSR $FFD2 RTS .BEND WAITBORDER .BLOCK LDA $D011 BMI OK WAIT LDA $D012 CMP #30 BCS WAIT OK RTS .BEND WAITKEY .BLOCK JSR $FDA3 WAIT JSR $FFE4 BEQ WAIT CMP #3 BEQ STOP RTS STOP LDA TURBOASS BEQ BASIC JMP $8000 BASIC JMP $A474 .BEND ;--------------------------------------- INDEX .BYTE 0 REG .BYTE 0 AREG .BYTE $04,$06,$01,$0D MAIN JSR PRINT .BYTE 13,145 .TEXT "CIA1TAB" .BYTE 0 LDX #$7E LDA #$EA ;NOP MAKECHAIN STA $2000,X DEX BPL MAKECHAIN LDA #$60 ;RTS STA $207F SEI LDA #0 STA WRITE+1 STA REG NEXTREG LDA #0 STA INDEX NEXTINDEX LDA #$FF STA $DC03 LDA #$00 STA $DC01 STA $DC0E STA $DC0F LDA #$7F STA $DC0D BIT $DC0D LDA #21 STA $DC04 LDA #2 STA $DC06 LDX #0 STX $DC05 STX $DC07 STA $DC04 LDA #$82 STA $DC0D LDA INDEX EOR #$FF LSR A PHP STA JUMP+1 LDX REG LDA AREG,X STA READREG+1 JSR WAITBORDER LDA #%01000111 STA $DC0F LDA #%00000011 STA $DC0E PLP BCC JUMP JUMP JSR $2011 READREG LDA $DC11 WRITE STA $2111 INC WRITE+1 INC INDEX LDA INDEX CMP #12 BCC NEXTINDEX INC REG LDA REG CMP #4 BCC NEXTREG ;--------------------------------------- ;COMPARE RESULT JMP COMPARE RIGHT .BYTE $01,$02,$02,$01,$02,$02 .BYTE $01,$02,$02,$01,$02,$02 .BYTE $02,$02,$02,$01,$01,$01 .BYTE $00,$00,$02,$02,$02,$02 .BYTE $80,$C0,$80,$80,$C0,$80 .BYTE $80,$C0,$00,$00,$40,$00 .BYTE $00,$01,$01,$01,$01,$01 .BYTE $01,$01,$03,$83,$83,$83 COMPARE JSR $FDA3 SEI LDX #0 COMP LDA $2100,X CMP RIGHT,X BNE DIFF INX CPX #12*4 BCC COMP JMP OK DIFF ;--------------------------------------- ;PRINT RESULT LDY #0 JSR PRINT .BYTE 13 .TEXT "TA " .BYTE 13 .TEXT " " .BYTE 0 JSR PRINT12 JSR PRINT .TEXT "TB " .BYTE 13 .TEXT " " .BYTE 0 JSR PRINT12 JSR PRINT .TEXT "PB " .BYTE 13 .TEXT " " .BYTE 0 JSR PRINT12 JSR PRINT .TEXT "ICR" .BYTE 13 .TEXT " " .BYTE 0 JSR PRINT12 JSR WAITKEY JMP OUTEND PRINT12 LDX #12 LOOP12 LDA #32 JSR $FFD2 LDA RIGHT,Y JSR PRINTHB DEC 211 DEC 211 DEC 211 LDA #145 JSR $FFD2 LDA #32 JSR $FFD2 LDA 646 PHA LDA $2100,Y CMP RIGHT,Y BEQ NODIFF PHA LDA #2 STA 646 PLA NODIFF JSR PRINTHB PLA STA 646 LDA #17 JSR $FFD2 INY DEX BNE LOOP12 LDA #13 JMP $FFD2 OUTEND ;--------------------------------------- ;LOAD NEXT PART OF THE TEST SUITE OK JSR PRINT .TEXT " - OK" .BYTE 13,0 LDA TURBOASS BEQ LOAD JSR WAITKEY JMP $8000 LOAD JSR PRINT NAME .TEXT "LOADTH" NAMELEN = *-NAME .BYTE 0 LDA #0 STA $0A STA $B9 LDA #NAMELEN STA $B7 LDA #NAME STA $BC PLA PLA JMP $E16F -------------------------------------------------------------------------------- /src/js/sid/sid-mos6581.js: -------------------------------------------------------------------------------- 1 | 2 | var sid = sid || {}; 3 | 4 | /* 5 | The following is ripped from jssid.core.js and shouldn't be uncommented here. 6 | It is used purely for informational purposes. 7 | 8 | jsSID.quality = Object.freeze({ 9 | low: "tinysid", 10 | medium: "fastsid", 11 | good: "resid_fast", 12 | better: "resid_interpolate", 13 | best: "resid_resample_interpolate", 14 | broken: "resid_resample_fast" 15 | }); 16 | */ 17 | 18 | sid.init = function() { 19 | //sidPlayer = new jsSID.SIDPlayer({ quality: getQuality(), clock: getFreq(), model: getModel() }); 20 | //sidPlayer = new jsSID.SIDPlayer({quality: jsSID.quality.good, clock: jsSID.chip.clock.PAL, model: jsSID.chip.model.MOS6581}); 21 | //sidPlayer = new jsSID.SIDPlayer(); 22 | sidPlayer = new jsSID.SIDPlayer({quality: jsSID.quality.low}); 23 | sidPlayer.play(); 24 | } 25 | 26 | sid.play = function () { 27 | sidPlayer.play(); 28 | } 29 | 30 | sid.stop = function () { 31 | sidPlayer.stop(); 32 | } 33 | 34 | // constructor 35 | jsSID.SIDPlayer = function(opts) { 36 | opts = opts || {}; 37 | this.quality = opts.quality || jsSID.quality.good; 38 | this.clock = opts.clock || jsSID.chip.clock.PAL; 39 | this.model = opts.model || jsSID.chip.model.MOS6581; 40 | 41 | this.play_active = true; 42 | this.samplesToNextFrame = 0; 43 | // state signaled to audio manager 44 | this.ready = false; 45 | this.finished = false; 46 | 47 | var that = this; 48 | this.synth = jsSID.synthFactory({ 49 | quality: this.quality, 50 | clock: this.clock, 51 | model: this.model, 52 | sampleRate: pico.samplerate 53 | }); 54 | 55 | } 56 | 57 | // Pico.js hook for processing 58 | jsSID.SIDPlayer.prototype.process = function(L, R) { 59 | if(this.ready) { 60 | var written = this.generateIntoBuffer(L.length, L, 0); 61 | if (written === 0) { 62 | //play_mod(random_mod_href()); 63 | this.ready = false; 64 | this.finished = true; 65 | this.stop(); 66 | } else { 67 | // copy left channel to right 68 | for (var i = 0; i < L.length; i++) { 69 | R[i] = L[i]; 70 | } 71 | } 72 | } else { 73 | this.stop(); 74 | } 75 | }; 76 | 77 | jsSID.SIDPlayer.prototype.play = function() { 78 | this.ready = true; 79 | pico.play(this); 80 | }; 81 | 82 | jsSID.SIDPlayer.prototype.stop = function() { 83 | pico.pause(); 84 | this.ready = false; 85 | }; 86 | 87 | jsSID.SIDPlayer.prototype.getNextFrame = function() { 88 | if (this.play_active) { 89 | // this.cpu.cpuJSR(this.sidfile.play_addr, 0); 90 | // check if CIA timing is used, and adjust 91 | 92 | //var nRefreshCIA = Math.floor(20000 * (cpuMemoryManager.readByte(0xdc04) | (cpuMemoryManager.readByte(0xdc05) << 8)) / 0x4c00); 93 | var nRefreshCIA = Math.floor(20000 * (mos6510.memory.readByte(0xdc04) | (mos6510.memory.readByte(0xdc05) << 8)) / 0x4c00); 94 | //if ((nRefreshCIA === 0) || (this.sidspeed === 0)) nRefreshCIA = 20000; 95 | this.samplesPerFrame = Math.floor(this.synth.mix_freq * nRefreshCIA / 1000000); 96 | 97 | this.samplesToNextFrame += this.samplesPerFrame; 98 | } else { 99 | // FIXME: currently, this is not reachable really 100 | 101 | // no frames left 102 | this.samplesToNextFrame = null; 103 | 104 | // FIXME: this should be a feature of SidSynth we call 105 | // zero out sid registers at end to prevent noise 106 | var count = 0; 107 | while ( count < 25) { 108 | this.synth.poke(count, 0); 109 | count++; 110 | } 111 | this.finished = true; 112 | } 113 | }; 114 | 115 | jsSID.SIDPlayer.prototype.generate = function(samples) { 116 | var data = new Array(samples*2); 117 | this.generateIntoBuffer(samples, data, 0); 118 | return data; 119 | }; 120 | 121 | // generator 122 | jsSID.SIDPlayer.prototype.generateIntoBuffer = function(samples, data, dataOffset) { 123 | if(!this.ready) return 0; 124 | dataOffset = dataOffset || 0; 125 | var dataOffsetStart = dataOffset; 126 | 127 | //console.log("Generating " + samples + " samples (" + this.samplesToNextFrame + " to next frame)"); 128 | var samplesRemaining = samples; 129 | var generated; 130 | while (true) { 131 | if (this.samplesToNextFrame !== null && this.samplesToNextFrame <= samplesRemaining) { 132 | var samplesToGenerate = Math.ceil(this.samplesToNextFrame); 133 | //console.log("next frame: " + this.samplesToNextFrame + ", remaining: " + this.samplesRemaining + ", offset: " + dataOffset + ", generate: " + samplesToGenerate); 134 | if (samplesToGenerate > 0) { 135 | generated = this.synth.generateIntoBuffer(samplesToGenerate, data, dataOffset); 136 | dataOffset += generated; 137 | samplesRemaining -= generated; 138 | this.samplesToNextFrame -= generated; 139 | } 140 | this.getNextFrame(); 141 | } else { 142 | /* generate samples to end of buffer */ 143 | if (samplesRemaining > 0) { 144 | generated = this.synth.generateIntoBuffer(samplesRemaining, data, dataOffset); 145 | dataOffset += generated; 146 | samplesRemaining -= generated; 147 | this.samplesToNextFrame -= generated; 148 | } 149 | break; 150 | } 151 | } 152 | //console.log("data: ", data); 153 | return dataOffset - dataOffsetStart; 154 | }; 155 | 156 | -------------------------------------------------------------------------------- /src/js/gui/menu.js: -------------------------------------------------------------------------------- 1 | var menu = menu || {}; 2 | 3 | menu.currentMenu = {}; 4 | 5 | menu.items = { 6 | joystick: [ 7 | { title: 'Use keypad as joystick port A', action: function() { }, selected: false, group: '0' }, 8 | { title: 'Use keypad as joystick port B', action: function() { }, selected: true, group: '0' }, 9 | { separator: true }, 10 | { title: 'Map keys to joystick port A', action: null, selected: false, group: '0', icon: true }, 11 | { title: 'Map keys to joystick port B', action: null, selected: false, group: '0', icon: true } 12 | ], 13 | keyboard: [ 14 | { title: 'Customize the keymap', action: null }, 15 | { title: 'Use default keymap for Mac OS X', action: null }, 16 | { title: 'Use default keymap for Windows and Linux', action: null }, 17 | { title: 'Map keys from what they are on keyboard', action: null } 18 | ], 19 | general: [ 20 | { title: 'Change color palette', action: null, icon: true }, 21 | { separator: true }, 22 | { title: 'Help', action: null }, 23 | { separator: true }, 24 | { title: 'Credits', action: null }, 25 | { title: 'References', action: null } 26 | ], 27 | disc: [] 28 | }; 29 | 30 | menu.closeMenu = function() { 31 | this.isMenuClosed = true; 32 | for (var o in this.currentMenu) { 33 | this.currentMenu[o].source.className = this.currentMenu[o].source.className.substr(0, this.currentMenu[o].source.className.indexOf(' active')); 34 | document.body.removeChild(this.currentMenu[o].menuDiv); 35 | delete this.currentMenu[o]; 36 | } 37 | } 38 | 39 | menu.showDiscMenu = function() { 40 | var element = document.getElementById('discMenuItem'); 41 | if (element.className.indexOf('disc-loaded') < 0) { 42 | element.className += ' disc-loaded'; 43 | } 44 | } 45 | 46 | menu.showMenu = function(source, menuName) { 47 | if (!this.currentMenu[menuName]) { 48 | 49 | this.closeMenu(); 50 | 51 | source.className += ' active'; 52 | 53 | var sourcePosition = source.getBoundingClientRect(); 54 | var menuDiv = document.createElement('div'); 55 | 56 | menuDiv.className = 'menuContainer'; 57 | 58 | this.buildMenu(menuDiv, menuName); 59 | document.body.appendChild(menuDiv); 60 | 61 | var x = sourcePosition.left + (sourcePosition.width / 2); 62 | var y = sourcePosition.top; 63 | menuDiv.style.left = ~~(x - menuDiv.clientWidth / 2) + ((window.pageXOffset || document.documentElement.scrollLeft) - (document.documentElement.clientLeft || 0)) + 'px'; 64 | menuDiv.style.top = ~~(y - menuDiv.clientHeight) - 20 + ((window.pageYOffset || document.documentElement.scrollTop) - (document.documentElement.clientTop || 0)) + 'px'; 65 | 66 | this.currentMenu[menuName] = {source: source, menuDiv: menuDiv}; 67 | } else { 68 | this.closeMenu(); 69 | } 70 | } 71 | 72 | menu.buildMenu = function(menuElement, menuName) { 73 | this.isMenuClosed = false; 74 | 75 | var menuItems = this.items[menuName]; 76 | var table = document.createElement('table'); 77 | table['data-menu'] = menuItems; 78 | 79 | for (var item in menuItems) { 80 | var separator = menuItems[item].separator; 81 | var tr = document.createElement('tr'); 82 | tr['data-menu-item'] = menuItems[item]; 83 | tr.onclick = separator ? null : function() { menu.itemClicked(table, this, menu, menuElement, menuName); }; 84 | 85 | table.appendChild(tr); 86 | 87 | var td1 = document.createElement('td'); 88 | 89 | if (!separator) { 90 | if ((menuItems[item].selected) && (menuItems[item].selected == true)) { 91 | var checkIcon = document.createElement('i'); 92 | checkIcon.setAttribute('class', 'fa fa-fw fa-check-square-o'); 93 | td1.appendChild(checkIcon); 94 | } else if (menuItems[item].selected === false) { 95 | var checkIcon = document.createElement('i'); 96 | checkIcon.setAttribute('class', 'fa fa-fw fa-square-o'); 97 | td1.appendChild(checkIcon); 98 | } 99 | } else { 100 | td1.setAttribute('class', 'separator'); 101 | td1.setAttribute('colspan', '3'); 102 | var separatorDiv = document.createElement('div'); 103 | td1.appendChild(separatorDiv); 104 | } 105 | 106 | if (!separator) { 107 | var td2 = document.createElement('td'); 108 | var title = document.createTextNode(menuItems[item].title); 109 | td2.appendChild(title); 110 | } 111 | 112 | if (!separator) { 113 | var td3 = document.createElement('td'); 114 | if ((menuItems[item].icon) && (menuItems[item].icon === true)) { 115 | var icon = document.createElement('i'); 116 | icon.setAttribute('class', 'fa fa-fw fa-caret-right more'); 117 | td3.appendChild(icon); 118 | } 119 | } 120 | 121 | tr.appendChild(td1); 122 | if (!separator) { 123 | tr.appendChild(td2); 124 | tr.appendChild(td3); 125 | } 126 | } 127 | 128 | menuElement.appendChild(table); 129 | }; 130 | 131 | menu.itemClicked = function(table, item, menuClass, menuElement, menuName) { 132 | var menu = table['data-menu']; 133 | var menuItem = item['data-menu-item']; 134 | var group = menuItem.group; 135 | 136 | if ((!menuItem.action) || (menuItem.selected)) { 137 | return; 138 | } 139 | 140 | menuItem.action(); 141 | 142 | for (var o in menu) { 143 | if (menu[o].group === group) { 144 | if (typeof menu[o].selected !== 'undefined') 145 | menu[o].selected = false; 146 | } 147 | } 148 | 149 | menuItem.selected = true; 150 | 151 | while (menuElement.firstChild) { 152 | menuElement.removeChild(menuElement.firstChild); 153 | } 154 | menuClass.buildMenu(menuElement, menuName); 155 | } 156 | 157 | menu.isMenuClosed = true; 158 | 159 | window.onresize = function(e) { 160 | if (menu.isMenuClosed == false) 161 | menu.closeMenu(); 162 | }; -------------------------------------------------------------------------------- /ext-c64-tests/ascii-src/oneshot.asm: -------------------------------------------------------------------------------- 1 | ;--------------------------------------- 2 | ;oneshot.asm - this file is part 3 | ;of the C64 Emulator Test Suite 4 | ;public domain, no copyright 5 | 6 | *= $0801 7 | .byte $4c,$14,$08,$00,$97 8 | turboass = 780 9 | .text "780" 10 | .byte $2c,$30,$3a,$9e,$32,$30 11 | .byte $37,$33,$00,$00,$00 12 | .block 13 | lda #1 14 | sta turboass 15 | ldx #0 16 | stx $d3 17 | lda thisname 18 | printthis 19 | jsr $ffd2 20 | inx 21 | lda thisname,x 22 | bne printthis 23 | jsr main 24 | lda #$37 25 | sta 1 26 | lda #$2f 27 | sta 0 28 | jsr $fd15 29 | jsr $fda3 30 | jsr print 31 | .text " - ok" 32 | .byte 13,0 33 | lda turboass 34 | beq loadnext 35 | jsr waitkey 36 | jmp $8000 37 | .bend 38 | loadnext 39 | .block 40 | ldx #$f8 41 | txs 42 | lda nextname 43 | cmp #"-" 44 | bne notempty 45 | jmp $a474 46 | notempty 47 | ldx #0 48 | printnext 49 | jsr $ffd2 50 | inx 51 | lda nextname,x 52 | bne printnext 53 | lda #0 54 | sta $0a 55 | sta $b9 56 | stx $b7 57 | lda #nextname 60 | sta $bc 61 | jmp $e16f 62 | .bend 63 | 64 | ;--------------------------------------- 65 | ;print text which immediately follows 66 | ;the JSR and return to address after 0 67 | 68 | print 69 | .block 70 | pla 71 | sta next+1 72 | pla 73 | sta next+2 74 | ldx #1 75 | next 76 | lda $1111,x 77 | beq end 78 | jsr $ffd2 79 | inx 80 | bne next 81 | end 82 | sec 83 | txa 84 | adc next+1 85 | sta return+1 86 | lda #0 87 | adc next+2 88 | sta return+2 89 | return 90 | jmp $1111 91 | .bend 92 | 93 | ;--------------------------------------- 94 | ;print hex byte 95 | 96 | printhb 97 | .block 98 | pha 99 | lsr a 100 | lsr a 101 | lsr a 102 | lsr a 103 | jsr printhn 104 | pla 105 | and #$0f 106 | printhn 107 | ora #$30 108 | cmp #$3a 109 | bcc noletter 110 | adc #6 111 | noletter 112 | jmp $ffd2 113 | .bend 114 | 115 | ;--------------------------------------- 116 | ;wait until raster line is in border 117 | ;to prevent getting disturbed by DMAs 118 | 119 | waitborder 120 | .block 121 | lda $d011 122 | bmi ok 123 | wait 124 | lda $d012 125 | cmp #30 126 | bcs wait 127 | ok 128 | rts 129 | .bend 130 | 131 | ;--------------------------------------- 132 | ;wait for a key and check for STOP 133 | 134 | waitkey 135 | .block 136 | jsr $fd15 137 | jsr $fda3 138 | cli 139 | wait 140 | jsr $ffe4 141 | beq wait 142 | cmp #3 143 | beq stop 144 | rts 145 | stop 146 | lda turboass 147 | beq load 148 | jmp $8000 149 | load 150 | jsr print 151 | .byte 13 152 | .text "break" 153 | .byte 13,0 154 | jmp loadnext 155 | .bend 156 | 157 | ;--------------------------------------- 158 | 159 | thisname .null "oneshot" 160 | nextname .null "cntdef" 161 | 162 | main 163 | 164 | ;--------------------------------------- 165 | ;read cra when icr is $01 and check if 166 | ;start has been cleared 167 | 168 | .block 169 | sei 170 | lda #0 171 | sta $dc0e 172 | sta $dc0f 173 | lda #$7f 174 | sta $dc0d 175 | lda #$81 176 | sta $dc0d 177 | bit $dc0d 178 | lda #2 179 | sta $dc04 180 | lda #0 181 | sta $dc05 182 | jsr waitborder 183 | lda #%00001001 184 | sta $dc0e 185 | lda $dc0e 186 | cmp #%00001000 187 | beq ok1 188 | jsr print 189 | .byte 13 190 | .text "cra is not $08 at " 191 | .text "icr=$01" 192 | .byte 0 193 | jsr waitkey 194 | ok1 195 | .bend 196 | 197 | ;--------------------------------------- 198 | ;read cra when icr is $00 and check if 199 | ;start has been cleared 200 | 201 | .block 202 | sei 203 | lda #0 204 | sta $dc0e 205 | sta $dc0f 206 | lda #$7f 207 | sta $dc0d 208 | lda #$81 209 | sta $dc0d 210 | bit $dc0d 211 | lda #3 212 | sta $dc04 213 | lda #0 214 | sta $dc05 215 | jsr waitborder 216 | lda #%00001001 217 | sta $dc0e 218 | lda $dc0e 219 | cmp #%00001001 220 | beq ok1 221 | jsr print 222 | .byte 13 223 | .text "cra is not $09 at " 224 | .text "icr=$00" 225 | .byte 0 226 | jsr waitkey 227 | ok1 228 | .bend 229 | 230 | ;--------------------------------------- 231 | 232 | rts 233 | 234 | 235 | -------------------------------------------------------------------------------- /ext-c64-tests/ascii-src/cpuport.asm: -------------------------------------------------------------------------------- 1 | 2 | *= $0801 3 | .byte $4c,$14,$08,$00,$97 4 | turboass = 780 5 | .text "780" 6 | .byte $2c,$30,$3a,$9e,$32,$30 7 | .byte $37,$33,$00,$00,$00 8 | lda #1 9 | sta turboass 10 | jmp main 11 | 12 | 13 | config .byte 0 14 | abackup .byte 0,0 15 | laststate .byte 0 16 | right .byte 0 17 | 18 | 19 | rom 20 | lda #$2f 21 | sta 0 22 | lda #$37 23 | sta 1 24 | cli 25 | rts 26 | 27 | 28 | main 29 | jsr print 30 | .byte 13 31 | .text "(up)cpuport" 32 | .byte 0 33 | 34 | lda #0 35 | sta config 36 | nextconfig 37 | sei 38 | lda #$ff 39 | sta 0 40 | sta 1 41 | sta abackup+0 42 | sta abackup+1 43 | sta laststate 44 | ldx #8 45 | lda config 46 | push 47 | asl a 48 | php 49 | dex 50 | bne push 51 | ldx #4 52 | pull 53 | pla 54 | and #1 55 | tay 56 | lda #0 57 | plp 58 | sbc #0 59 | sta 0,y 60 | sta abackup,y 61 | 62 | ;inputs: keep last state 63 | lda abackup+0 64 | eor #$ff 65 | and laststate 66 | sta or1+1 67 | ;outputs: set new state 68 | lda abackup+0 69 | and abackup+1 70 | or1 ora #$11 71 | sta laststate 72 | 73 | ;delay for larger capacitives 74 | ldy #0 75 | delay 76 | iny 77 | bne delay 78 | 79 | dex 80 | bne pull 81 | 82 | lda abackup+0 83 | cmp 0 84 | bne error 85 | 86 | lda abackup+0 87 | eor #$ff 88 | ora abackup+1 89 | and #$37 90 | sta or2+1 91 | lda laststate 92 | and #$c8 93 | or2 ora #$11 94 | 95 | ;bit 5 is drawn low if input 96 | tax 97 | lda #$20 98 | bit abackup+0 99 | bne no5low 100 | txa 101 | and #$df 102 | tax 103 | no5low 104 | stx right 105 | cpx 1 106 | bne error 107 | noerror 108 | inc config 109 | bne nextconfig 110 | jsr rom 111 | jmp ok 112 | 113 | error 114 | lda 1 115 | pha 116 | lda 0 117 | pha 118 | jsr rom 119 | 120 | jsr print 121 | .byte 13 122 | .text "0=ff 1=ff" 123 | .byte 0 124 | 125 | ldx #8 126 | lda config 127 | push1 128 | asl a 129 | php 130 | dex 131 | bne push1 132 | ldx #4 133 | pull1 134 | lda #32 135 | jsr $ffd2 136 | pla 137 | and #1 138 | ora #"0" 139 | jsr $ffd2 140 | lda #"=" 141 | jsr $ffd2 142 | lda #0 143 | plp 144 | sbc #0 145 | stx oldx+1 146 | jsr printhb 147 | oldx 148 | ldx #$11 149 | dex 150 | bne pull1 151 | jsr print 152 | 153 | .byte 13 154 | .text "after " 155 | .byte 0 156 | 157 | pla 158 | jsr printhb 159 | lda #32 160 | jsr $ffd2 161 | pla 162 | jsr printhb 163 | jsr print 164 | .byte 13 165 | .text "right " 166 | .byte 0 167 | lda abackup+0 168 | jsr printhb 169 | lda #32 170 | jsr $ffd2 171 | lda right 172 | jsr printhb 173 | lda #13 174 | jsr $ffd2 175 | 176 | waitk 177 | jsr $ffe4 178 | beq waitk 179 | cmp #3 180 | beq stop 181 | jmp noerror 182 | stop 183 | lda turboass 184 | beq basic 185 | jmp $8000 186 | basic 187 | jmp $a474 188 | 189 | 190 | ok 191 | jsr print 192 | .text " - ok" 193 | .byte 13,0 194 | lda turboass 195 | beq load 196 | wait jsr $ffe4 197 | beq wait 198 | jmp $8000 199 | 200 | load 201 | lda #47 202 | sta 0 203 | jsr print 204 | name .text "cputiming" 205 | namelen = *-name 206 | .byte 0 207 | lda #0 208 | sta $0a 209 | sta $b9 210 | lda #namelen 211 | sta $b7 212 | lda #name 215 | sta $bc 216 | pla 217 | pla 218 | jmp $e16f 219 | 220 | 221 | print pla 222 | .block 223 | sta print0+1 224 | pla 225 | sta print0+2 226 | ldx #1 227 | print0 lda !*,x 228 | beq print1 229 | jsr $ffd2 230 | inx 231 | bne print0 232 | print1 sec 233 | txa 234 | adc print0+1 235 | sta print2+1 236 | lda #0 237 | adc print0+2 238 | sta print2+2 239 | print2 jmp !* 240 | .bend 241 | 242 | printhb 243 | .block 244 | pha 245 | lsr a 246 | lsr a 247 | lsr a 248 | lsr a 249 | jsr printhn 250 | pla 251 | and #$0f 252 | printhn 253 | ora #$30 254 | cmp #$3a 255 | bcc printhn0 256 | adc #6 257 | printhn0 258 | jsr $ffd2 259 | rts 260 | .bend 261 | 262 | 263 | --------------------------------------------------------------------------------