Difference between revisions of "Transtape"

From CPCWiki - THE Amstrad CPC encyclopedia!
Jump to: navigation, search
(Weblinks)
(Technical)
 
(13 intermediate revisions by 2 users not shown)
Line 6: Line 6:
  
 
* Uses a 16KB ROM paged into memory at &0000.
 
* Uses a 16KB ROM paged into memory at &0000.
* Uses a 8KB static RAM paged into memory at &c000.
+
* Uses a 8KB static RAM paged into memory at &c000-&dfff and repeats again at &e000-&ffff.
* ROM is paged into the range &0000-&3fff when the red button is pressed and the NMI vector is executed.
+
* ROM is paged into the range &0000-&3fff when the red button is pressed (this causes an NMI).
* When the black button is pressed, the ROM is paged into the range &0000-&3fff and executes it at &0000.
+
* When the black button is pressed the ROM is paged into the range &0000-&3fff and executes it at &0000. (this is a reset)
* This checks the BASIC ROM version, and clears the extra ram if a BASIC ROM from a CPC6128 is found.
+
This checks the BASIC ROM version, and clears the extra ram if a BASIC ROM from a CPC6128 is found.
 +
* Uses NMI
 +
* Only captures upper/lower ROM enabled state and nothing else. Doesn't capture the hardware state like the Multiface does. Code in the ROM reads the hardware state which it restores when resuming the program.
 +
* RAMDIS is asserted when ROM or RAM are active meaning no write through to ram behind. This also means that c000-ffff reads unmapped ram when ram is not actually enabled.
 +
* Menu code is at offset &3810 and is copied into RAM at &A200.
 +
* ram is disabled when the transtape returns to the program and can only be enabled using i/o port.
 +
* Uses port FBF0 (write only)
 +
FBF0 decoding is:
 +
1111 1011 1111 00xx
  
Code:
+
FBF0 output:
 +
bit 0 is ram enable/disable state
 +
bit 1 is rom enable/disable state
 +
bit 2 is A10 on RAM
 +
bit 3 is A11 on RAM
 +
bit 4 is A12 on RAM
 +
bits 5-7 are not used.
  
0000 f3        di                              ;; disable maskable interrupts
+
* an opcode read of an address with the following bits:
0001 0100df    ld      bc,0df00h ;; select upper rom 0
+
0011 1xxx xxxx xxxx
0004 ed49      out    (c),c
+
causes the ram and rom to be disabled. (it jumps to 3800 in the ROM to restore the state)
0006 01817f    ld      bc,7f81h ;; enable upper rom (mode 1 too)
+
 
0009 ed49      out    (c),c
+
* Uses port FBFF (input).
  000b 31febf    ld      sp,0bffeh                ;; setup stack which is not initialised after reset
+
  bit 7 is used to report lower rom and upper rom enabled state.
+
 
  000e 3a02c0    ld      a,(0c002h)               ;; read BASIC ROM version number
+
  Transtape ROM performs a read of 3ffe (lower rom) and fffe (upper rom) and records the state of ROMEN.
0011 fe02      cp      02h                      ;; CPC6128?
+
0013 cc2e0c    call    z,0c2eh         ;; erase extra RAM
+
 
   
 
   
;; this appears to set it up for a reset..
+
Decoding of FBFF is:
0016 210000    ld      hl,0000h
+
  1111 1011 1111 11xx
0019 e5        push    hl
+
001a e5        push    hl
+
  001b c30038    jp      3800h                    ;; I think the hardware monitors for address 3800h and if found disables the ROM
+
  
* Uses NMI
 
* Doesn't appear to capture the hardware state like the Multiface does. Code in the ROM reads the PPI state, AY registers, and CRTC registers 12,13,14 and 15 and stores there values and restores them later.
 
* 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.
 
writing 0 to fbf0 disables it's internal rom.
 
  
 
* The same plastic case is used by the Spectrum version of this interface.
 
* The same plastic case is used by the Spectrum version of this interface.
* The spectrum has two switches on the top. One of which chooses load/save.
+
* The spectrum version has two switches on the top. One of which chooses load/save. In the Amstrad these holes are filled with plastic caps.
* In the Amstrad these holes are filled with plastic caps.
+
 
 +
Now, thanks to Jose Leandro, the hardware specialist of the spectrum, with his famous page :
 +
 
 +
http://trastero.speccy.org/cosas/JL/JL.htm
 +
 
 +
We can know more about this hardware.
  
 
== Pictures ==
 
== Pictures ==
Line 49: Line 57:
 
Image:Transtape_PCB_Top.jpg|PCB Top
 
Image:Transtape_PCB_Top.jpg|PCB Top
 
Image:Transtape_PCB_Bottom.jpg|PCB Bottom
 
Image:Transtape_PCB_Bottom.jpg|PCB Bottom
 +
Image:Transtape - pantalla1.jpg|Screen 1
 +
Image:Transtape - pantalla2.jpg|Screen 2
  
 
</gallery>
 
</gallery>
Line 54: Line 64:
 
<gallery caption="Transtape Layout, thanks to Jose Leandro">
 
<gallery caption="Transtape Layout, thanks to Jose Leandro">
  
 +
File:Transtape front box.jpg|Transtape - Front Box
 +
File:Transtape back box.jpg|Transtape - Back Box
 +
File:Transtape up box.jpg|Transtape - Up Box
 +
File:transtape box open.jpg|Transtape - Box Open
 +
File:Transtape PCB Components.jpg|Transtape - Components
 +
File:Transtape PCB Tracks.jpg|Transtape - Tracks
 
File:Transtape-PCB Front.png|Transtape - PCB Front
 
File:Transtape-PCB Front.png|Transtape - PCB Front
 
File:Transtepe-PCB Back.png|Transtape - PCB Back
 
File:Transtepe-PCB Back.png|Transtape - PCB Back
Line 62: Line 78:
 
== Manual ==
 
== Manual ==
  
* [[Media:Transtape Manual.pdf|Transtape (Micro Hard) Manual]] {{ES}} {{PDF}}
+
* [[Media:Transtape Manual.pdf|Transtape (Hard Micro) Manual]] {{ES}} {{PDF}}
  
 
== Downloads ==
 
== Downloads ==
  
* [[Media:Transtape-ROM.zip|Transtape-ROM.zip]] (Transtape ROM)
+
* [[Media:Transtape-ROM.zip|Transtape (ROM).zip]] (Transtape ROM)
* [[Media:Amstrad-Transtape (eagle).zip|Transtape (eagle).zip]] (Transtape files for Eagle)
+
* [[Media:Amstrad-Transtape (eagle).zip|Transtape (Eagle).zip]] (Transtape files for Eagle)
 
+
== Links ==
+
  
* http://cpcrulez.fr/hardware-interface_debug-transtape_ASO.htm
+
==  Weblinks  ==
  
* http://hardware.speccy.org/temp/Amstrad-transtape.html
+
* [http://www.cpc-power.com/index.php?page=detail&num=9321 ''Transtape'' from CPC-Power]
 +
* [http://cpcrulez.fr/hardware-interface_debug-transtape_ASO.htm ''Transtape'' from CPCrulez]
 +
* [http://hardware.speccy.org/temp/Amstrad-transtape.html ''Transtape'' from hardware.speccy.org]
  
 
[[Category:Copy Protection]] [[Category:Peripherals]] [[Category:Manual]]
 
[[Category:Copy Protection]] [[Category:Peripherals]] [[Category:Manual]]

Latest revision as of 04:01, 18 September 2020

A Spanish Hacking Device from HM (Hard Micro, S.A.).

Transtape

Technical

  • Uses a 16KB ROM paged into memory at &0000.
  • Uses a 8KB static RAM paged into memory at &c000-&dfff and repeats again at &e000-&ffff.
  • ROM is paged into the range &0000-&3fff when the red button is pressed (this causes an NMI).
  • When the black button is pressed the ROM is paged into the range &0000-&3fff and executes it at &0000. (this is a reset)

This checks the BASIC ROM version, and clears the extra ram if a BASIC ROM from a CPC6128 is found.

  • Uses NMI
  • Only captures upper/lower ROM enabled state and nothing else. Doesn't capture the hardware state like the Multiface does. Code in the ROM reads the hardware state which it restores when resuming the program.
  • RAMDIS is asserted when ROM or RAM are active meaning no write through to ram behind. This also means that c000-ffff reads unmapped ram when ram is not actually enabled.
  • Menu code is at offset &3810 and is copied into RAM at &A200.
  • ram is disabled when the transtape returns to the program and can only be enabled using i/o port.
  • Uses port FBF0 (write only)
FBF0 decoding is:
1111 1011 1111 00xx
FBF0 output:
bit 0 is ram enable/disable state
bit 1 is rom enable/disable state
bit 2 is A10 on RAM
bit 3 is A11 on RAM
bit 4 is A12 on RAM
bits 5-7 are not used.
  • an opcode read of an address with the following bits:

0011 1xxx xxxx xxxx causes the ram and rom to be disabled. (it jumps to 3800 in the ROM to restore the state)

  • Uses port FBFF (input).
bit 7 is used to report lower rom and upper rom enabled state.
Transtape ROM performs a read of 3ffe (lower rom) and fffe (upper rom) and records the state of ROMEN.

Decoding of FBFF is:

1111 1011 1111 11xx


  • The same plastic case is used by the Spectrum version of this interface.
  • The spectrum version has two switches on the top. One of which chooses load/save. In the Amstrad these holes are filled with plastic caps.

Now, thanks to Jose Leandro, the hardware specialist of the spectrum, with his famous page :

http://trastero.speccy.org/cosas/JL/JL.htm

We can know more about this hardware.

Pictures

Manual

Downloads

Weblinks