Changes

Jump to: navigation, search

Transtape

1,111 bytes added, 13:48, 6 December 2013
/* Technical */
== Technical ==
* Uses a 16KB ROMpaged into memory at &0000.* Uses a 8KB static RAMpaged into memory at &c000.* ROM is paged into the range &0000-&3fff when the red button is pressedand the NMI vector is executed.* Uses NMI, calls to Black button pages their ROM into the range &00660000-&3fff and executes it at &0000.* There This checks the ROM version, and clears the extra ram if a CPC6128 BASIC ROM is found. [code at &]0000f3 di ;; disable maskable interrupts0001 0100df ld bc, don't know what 0df00h ;; select upper rom 00004 ed49 out (c),c0006 01817f ld bc,7f81h ;; enable upper rom (mode 1 too)0009 ed49 out (c),c000b 31febf ld sp,0bffeh ;; setup stack which is not initialised after reset 000e 3a02c0 ld a,(0c002h) ;; read BASIC ROM version number0011 fe02 cp 02h ;; CPC6128?0013 cc2e0c call z,0c2eh ;; erase extra RAM ;; this appears to set it's up for yeta reset..0016 210000 ld hl,0000h0019 e5 push hl 001a e5 push hl001b c30038 jp 3800h ;; I think the hardware monitors for address 3800h and if found disables the ROM[/code] * Uses NMI* When a write happens to their RAM it appears to write through to the RAM behind??
* Menu code is at offset &3810 and is copied into RAM at &A200.
* Uses port FBF0 (output), FBFF (input). Don't know the exact functions yet.
2,541
edits