Magic Formel: Difference between revisions
Count Zero (talk | contribs) No edit summary |
Count Zero (talk | contribs) No edit summary |
||
Line 42: | Line 42: | ||
{{quote| | {{quote| | ||
Thanks to '''The Git''' for the early V1.2 dump and whoever supplied the | Thanks to '''The Git''' for the early V1.2 dump and whoever supplied the ''Formel 64'' german manuals!}} | ||
<br> | <br> | ||
''Magic Formel'' is the successor to ''Formel 64'' and dictated the name for this due to ''Magic Formel'' being more popular. Released by the german company ''Grewe Computertechnik'' towards the end of 1986 with a heavy ROM load of initially 32 kbyte later rising to 96 kbyte even and a solid 8 kbyte RAM the cartridge had everything required to become a real success. It didn't work out too well though. Due to several bugs on the ROM and general incompatibilites many advanced users did not seem to like ''Magic Formel''. The freezing capabilities provided were not too advanced with monitor, hardcopy and snapshot but the basic requirements are perfectly handled.[[File:Magic_Formel_v20_top_cut.jpg|200px|left|border|Magic Formel 2.0 from top]] | ''Magic Formel'' is the successor to ''Formel 64'' and dictated the name for this due to ''Magic Formel'' being more popular. Released by the german company ''Grewe Computertechnik'' towards the end of 1986 with a heavy ROM load of initially 32 kbyte later rising to 96 kbyte even and a solid 8 kbyte RAM the cartridge had everything required to become a real success. It didn't work out too well though. Due to several bugs on the ROM and general incompatibilites many advanced users did not seem to like ''Magic Formel''. The freezing capabilities provided were not too advanced with monitor, hardcopy and snapshot but the basic requirements are perfectly handled.[[File:Magic_Formel_v20_top_cut.jpg|200px|left|border|Magic Formel 2.0 from top]] |
Latest revision as of 12:57, 28 February 2021
Magic Formel 2 Screenshots | |
Technical Info | |
---|---|
ROM | 32 kbyte Formel 64 64 kbyte Magic Formel 1.2 |
RAM | 8 kbyte |
Hardware features | 1 Button Freeze 1 Button Reset |
Manual | PDF: Formel 64 Manual - 14 pages german PDF: Formel 64 Info Booklet - 10 pages german |
CRT ID | 14 |
Programming | See Tech Section |
Thanks to The Git for the early V1.2 dump and whoever supplied the Formel 64 german manuals!
Magic Formel is the successor to Formel 64 and dictated the name for this due to Magic Formel being more popular. Released by the german company Grewe Computertechnik towards the end of 1986 with a heavy ROM load of initially 32 kbyte later rising to 96 kbyte even and a solid 8 kbyte RAM the cartridge had everything required to become a real success. It didn't work out too well though. Due to several bugs on the ROM and general incompatibilites many advanced users did not seem to like Magic Formel. The freezing capabilities provided were not too advanced with monitor, hardcopy and snapshot but the basic requirements are perfectly handled.
While the freezer lacks some comfort the monitor and basic extensions are pretty complete. Tape and disk speeders can be compared to most other cartridges (note the fastload bug described on 64er July 1992!) but the exclusive specialties advertised are much of a disappointment. A multicolor paint program and a massive textprogram with included 80 character support may rise some interest when first being used but many users will likely have ignored these functions since humans tend to prefer what suits them best. Hence external tools usually get loaded. Additionally all the error messages and the menus found on the v1.2 version are english when out of a sudden all of the text editor program is using german language.
A 2-pass assembler is included on the cartridge as well and apart from personal preferences about full screen editing versus line editing of assembler source code this functionality might sometimes be quite useful.
Hints
Here we go with some things left out on the manual we felt noteworthy. Information was gathered from 64er January 1992, 64er July 1992 and the 64er Produktführer 1993. Please note that the Produktführer article is a copy/paste work of the 1992 articles.
- E(somechar) start end monitor command is described as command to display memory as 8-, 16- and 24-bit representations to e.g. display chars or sprites. This is achieved using E! for 8-bit display (character set), E" for 16-bit and E# for 24-bit (sprite) display. The manual does not explain that there are a few more modes though. These are E$, E% ,E& and E' for 32-, 40-, 48- and 56-bit display.
- ^ (arrow up) and R monitor commands to display vectors and registers allow overwriting of these by typing over them and pressing return. This is not really a surprise, is it?
- To handle the C64 memory mapping easier the monitor introduces a 6-character address mode for start and end adresses explained on the monitor introduction. It is using e.g. 34e000 to access $E000 with $01 set to $34. The manual also explains that using f80300 will access the drive memory. Left out on the manual were f7e000 allowing access to the cartridge ROM and ff0000 (to ffffff really?) to access the cartridge RAM.
- Though the freezer is lacking here and there one very cool option shall not be left untold:
Some sort of "UNDO" is possible even on many harsh crashes by freezing and restarting before the expected crash. On crash just reset and hit RETURN two times. This restores the last frozen state - of course not all of the C64 memory is preserved, but the main important portion.
Bugs
- Crashing the cartridge in monitor:
A 1000 LDA #!00
- Hunting for bytes:
F C000 C0FF 01 - Fills memory with $01
H C000 C0FF 01 - Finds C000 and C001 - WTF?
H C000 C100 01 - Finds all values
- Magic-Basic is featuring a HEX command which works when properly used but crashes the machine on incorrect usage:
HEX 53000 - ok
HEX "53000" - CRASH
- The freezer trashes $02A6 on restart.
- Magic-Text does only allow sending the printer escape sequences containing letters or numbers only. Only a mix of letter followed by a number is allowed.
- The fastloader does not load the last block correctly when it is used to the last byte on the sector. Yieks.
Tech
formel64.c from the VICE emulator reads:
the following is a quick overview of how the cartridge works, as its a bit unusual and different from most other cartridges: - 27256 EPROM (32k) - 7430 TTL - MC6821 - 1 button (reset) rom bank 0x00 - 0x03 (0x04) 8192* 4 32k mapped to e000 MC6821 registers mapped to io2 at dfc0..dfc4 - press reset and hold delete to get the main menu - press reset and hold control to skip cbm80 check (dont start additional cartridge) - press RESTORE, then... - left arrow, return show disk directory - delete, 1 load"*" from disk, run - f1/f2 ? (disk stuff?) - f3/f4 ? (disk stuff?) - f5/f6, q enter monitor - f7/f8, 2 show drive error channel - control, cursor back to basic - type "help" in basic to get a list of available commands *** MC6821 Port usage Port A (parallel cable to floppy drive): dfc0 port a ddr dfc1 port a (in/out) Port B (controls banking) dfc2 port b ddr ($7f) dfc3 port b (out) bit3 1 = rom at $e000 enabled, 0 = cartridge disabled bit1-2 rom bank number bit0 ?
The following is shamelessly ripped from magicformel.c from the VICE emulator. Most of the text was written by Groepaz:
Magic Formel - 64K ROM - 8K RAM rom bank 0x00 - 0x07 (0x08) 8192* 8 64k ram bank 0x00 - 0x1f (0x20) 256*32 8k Magic Formel 2 - 64K ROM - 32K extra ROM - 8K RAM rom bank 0x00 - 0x0f (0x10) 8192*16 128k ram bank 0x00 - 0x1f (0x20) 256*32 8k ram is mapped to $deXX (one page in io1 space) rom is mapped to $e000 *** Register Details Writing anywhere to the IO2 area adresses a MC6521 (2 8bit i/o ports). However its registers are not simply memory mapped, instead A0-A5 go to D0-D5, D1 to D7 and A6-A7 to RS1/RS0. addr dfXX RRDD DDDD R -rs1/rs0 of MC6821 D -d0-d5 of MC6821 data .X .... ..D. D - d7 of MC6821 (Controls Mapping) *** MC6821 Registers RS1 RS0 (CRA2 CRB2 = control register bit 2) 0 0 1 . Data A 0 0 0 . Data Direction A 0 1 . . Control Register A 1 0 . 1 Data B 1 0 . 0 Data Direction B 1 1 . . Control Register B *** MC6821 Port usage PA (Output Data) A0,A1,A2 - ROM Bank A3 - extra ROM enable/disable (?) A4 - RAM enable/disable (?) A5-A7 unused PB (Output Data) B3,B2,B0,B1,B4 - RAM Bank B5-B6 (unused) B7 - enable ROM at $E000 (?) CB2 - enable Cartridge (?)
Confused enough? Something like this here might cheer you up a little more:
The following is a rough assumption and does _NOT_ cover all the possibilities of the hardware. However this base info can be used to write a dumper without too much hazzle. Translation of the relevant parts:
The Cartridge is activated at $e000 and uses the whole IO area from $de00 to $dfff.
Write to $df00 - Enable Bank 0
Write to $df01 - Enable Bank 1
Write to $df02 - Enable Bank 2
Write to $df03 - Enable Bank 3
Write to $df04 - Enable Bank 4
Write to $df05 - Enable Bank 5
Write to $df06 - Enable Bank 6
Write to $df07 - Enable Bank 7
Write to $df0c - Enable Bank 0 of the second eprom (MF v2)
Write to $df0d - Enable Bank 1 of the second eprom (MF v2)
Write to $df0e - Enable Bank 2 of the second eprom (MF v2)
Write to $df0f - Enable Bank 3 of the second eprom (MF v2)
The following are wild guesses and require validation:
Write to $df08 - Enable Bank 4 of the second eprom (MF v2 with large secondary eprom)
Write to $df09 - Enable Bank 5 of the second eprom (MF v2 with large secondary eprom)
Write to $df0a - Enable Bank 6 of the second eprom (MF v2 with large secondary eprom)
Write to $df0b - Enable Bank 7 of the second eprom (MF v2 with large secondary eprom)
Write to $df11 - Enable RAM ???
Write of $ff to $df00 Reenable the normal kernel
Notes
- VICE r22447 will crash when in MF-Windows (A basic mode) and pressing the fire button for enabling the menu (v1.2 and v2.0 of Magic Formel).
- It is also crashing when using the other commands addressing the second eprom. Namely "MTEXT-40" and "M-TEXT-80". Overflow error on "MULTIGRAF" and syntax error on the documented "SCREEN-80" and "SCREEN-40".
- cartconv from the VICE package will not handle 2.0 binaries therefore we are providing a hacked .crt working in VICE (more or less).
Missing
- Formel 64 PDF Manual Scan (english existing?)
- Magic Formel PCB layouts
Binaries
Magic_Formel_binaries_rr.c64.org_2021-02.rar contains just the binaries:
- Formel64 1.0 and 1.1 .bin and .crt
- Magic Formel v1.1 original and fixed .bin and fixed .crt (Fix backported from 2.0 - don't ask me what exactly it fixes, but it's ok)
- Magic Formel v1.2 original and fixed .bin and fixed .crt
- Magic Formel v1.2 ori .bin and .crt with changed vectors (original dump?)
- Magic Formel v2.0 .bin and hacked up .crt
Magic_Formel_all_rr.c64.org_2021-02.rar contains:
- all of the above
- Formel 64 German Manual
- Formel 64 Info 2.Quartal 1986
- Magic Formel v1.2 German Manual
- Magic Formel v2.0 German Manual
- Magic Formel v1.2 English Manual Project64
- Magic Formel v2.0 Schematics Preview
- Pictures and Datasheets for further line tracing
Thanks to x1541 for the Formel64 ROM dump!
Trivia
- Magic Formel v1.x cartridges can easily be upgraded to v2.0 by soldering another socket onto the board and putting v2.0 eproms on. Of course v1.x eproms will keep working when put back (into the right socket). The schematics allow even the use of a larger eprom on the second socket but the software does not (yet) support that.
- Formel 64 came with an integrated parallel cable but apart from the builtin ROM software we know of no copier or speeder being able to use the Formel64 cable.
Weblinks
- Forum64 german thread on Magic Formel discussing cloning of the Magic Formel leading to a github with parts list and photos but no pcb files!
- Forum64 german thread on Magic Formel containing quite a few technical infos and images
- Magic Formel at Retroport.de and Formel 64 at Retroport.de
- Magic Formel at german C64-Wiki