Jump to content


  • Content Count

  • Joined

  • Last visited

Community Reputation

6 Neutral

About Kroah

  • Rank
    Star Raider
  • Birthday 07/03/1977

Contact / Social Media

Profile Information

  • Location

Recent Profile Visitors

5,191 profile views
  1. Hey all, Better late than never, i finally took some time to clean up the code of my C# ABC Decompiler (ported from the work of Thomas Richter written in Turbo Basic). The zip contains both the C# source and the binary with my WIP on Imperium Galactum (not finished because of the size of mixed asm<->basic code, very boring): ABC Decompiler - v1.00.zip I think Thomas Richter is OK to post his Turbo Basic program, but i will remove it if needed: ABC Compiler & Decompiler.zip You will find inside: - "ABC A Basic Compiler 1.05 (1987)(Monarch Data Systems).atr": The original ABC Compiler (itself compiled with ABC) - "ABC - 1.05 - ATASCII.txt" & "ABC - 1.05 - ASCII.txt": The decompiled compiler (Basic) - "UNKOMP.TRB" & "UNKOMP - ATASCII.txt" & "UNKOMP - ASCII.txt": The Thomas Turbo Basic XL Decompiler (Basic)
  2. Only with ABC. MMG compiles to ASM language, not p-code. So it can't be decompiled, only disassembled. Some games (or parts of them) compiled with ABC: - Cavelord - F15-Strike-Eagle - Soloflight 1 & 2 - Imperium Galactum - NATO Commander And many games use copy protection p-code compiled with ABC to obfuscate the protection. It's way harder to trace/disassemble an interpreted language than asm code.
  3. I will post it here after some bugfixes. You are right. The one i'm actually decompiling and commenting is Imperium Galactum. The main part is coded in compiled Basic with ABC, and some asm gfx & I/O routines are called with the USR instruction. Here's a sample of the decompiled pseudo code after some automatic cleanup (well... the code tag breaks the indentation...): 340 PrintNonPlayerLive: POS. 2, 15 PRINT "7) NON-PLAYER LIFE" POS. 29, 15 ON (V40_nonPlayerLiveValue_1Yes_2No + 1) GOTO 365, 366, 367 360 PrintRandomSetup: POS. 2, 16 PRINT " RANDOM SETUP" POS. 29, 16 ON (V42_randomSetupValue_1Yes_2No + 1) GOTO 365, 366, 367 365 PRINT "YES NO" RETURN -------------------------------------------------------------------------------- 366 PRINT "_Y_E_S NO" RETURN -------------------------------------------------------------------------------- 367 PRINT "YES _N_O" RETURN -------------------------------------------------------------------------------- 380 InitPlayerNameEtc: GOSUB 2_ClearScreenAndSetCursorToBottomWindow PRINT "WHAT IS THE NAME OF " PRINT "PLAYER ";V28_j + 1; INPUT V1_string1$ IF ((V1_string1$ == "") OR (LEN (V1_string1$) > 17)) THEN GOTO 380_InitPlayerNameEtc 390 V1_string1$(LEN (V1_string1$) + 1) = " " 395 V1_string1$ = V1_string1$(1, 17) FOR V53_ = 1 TO 17 POKE (14104_Game_playersNameMin1_S17 + (V28_j * 17)) + V53_, ASC (V1_string1$(V53_, V53_)) NEXT V53_ The same without cleanup but pure Atari basic: 340POS.2,15:?"7) NON-PLAYER LIFE":POS.29,15:ONV40+1 GOTO 365,366,367 360POS.2,16:?" RANDOM SETUP":POS.29,16:ONV42+1 GOTO 365,366,367 365?"YES NO":RET. 366?"ÙÅÓ NO":RET. 367?"YES ÎÏ":RET. 380GOS.2:?"WHAT IS THE NAME OF ""PLAYER ";V28+1;:I.V1$:IF(V1$="") OR (LEN(V1$)>17) THEN 380 390V1$(LEN(V1$)+1)=" " 395V1$=V1$(1,17):F.V53=1 TO 17:POKE(14104+(V28*17))+V53,ASC(V1$(V53,V53)):N.V53
  4. Yes, it's funny. I find that it's even more funny to compile the compiler with the compiler. When i saw that the game i disassemble was an interpreted p-code, i said "oh my bad, going to be difficult". Then i thought "hey, but if i disassemble the compiler, i could understand the p-code format, cool. but... then i couldn't believe it... i stumbled again upon interpreted p-code. VERY funny. The decompiled code is Atari Basic code. It can be listed, executed and whatever you want to do with. So it can be compiled again. Some decompiled programs have too many variables, so it can't be loaded in Atari Basic. For those, you should execute them with Turbo Basic for example.
  5. I have ported the decompiler to C#. It has the same features has the Turbo Basic XL version and add the following : - more lisible output (but can't be loaded back on Atari, useful to understand an unknown basic program). - a dictionary can be defined to replace generic variable names by user defined ones. - labels can be defined to name some lines. I will post it here after some tests if anyone is interested. Credit goes to Thomas Richter for his initial work on Atari.
  6. Thanks to Thomas Richter, he has sent me a copy of his Turbo Basic program. It works great and i have been able to get the Basic code back from the p-code. If you are interested, you can PM me.
  7. Hello Atari Frog, I have the manual of the MMG compiler (which is a re-release of datasoft compiler). This manual contains some interesting info about the format of the compiled executable. So i think that if i can get the ABC compiler manual, it may contain some good info too. Thank you very much Russ for the ABC compiler manual, this is what i was looking for! Concerning the decompiler, i'm talking about a turbo basic program which decodes the p-code of a ABC compiled program. The decompiled code is a basic program (without variable names and REM). FYI, ABC compiles a basic program to intermediate "p-code" instructions. Those are interpreted by a runtime interpreter which is linked with the p-code instructions, so we get a self executable program. Funny, ABC itself is written in basic and compiled with ABC compiler. So if anyone owns the UNKOMP.TRB ABC decompiler... I have emailed Thomas Richter (Atari++) who owned a copy of this program 13 years ago. I will let you know.
  8. Hello all, I'm actually decompiling a basic program compiled with ABC "A Basic Compiler" from Monarch Data Systems. It becomes a little boring because the program uses a runtime interpreter executing p-code, so i'm decompiling the interpreter first. I could then decompile the p-code. Having read the manual of the MMG Compiler (it contains interesting info about the compiler), i think the manual of ABC could speed up the process. - Does anyone have the manual of this compiler? Someone in 1999 said he got a turbo basic decompiler UNKOMP.TRB for the p-code generated by this compiler (p-code -> basic): http://groups.google.../month/1999-07? - Does anyone have this decompiler? I really can't find any info about ABC beside the disk images and the fact it uses its own p-code. Any help appreciated!
  9. I liked a lot Fish! ... and Ooze: Creepy Nites:
  10. Thank you very much, this is the version i was looking for! Heaven, you were right with the crack team: "The outsider", and the logo is dropping too . Here's a screenshot of the Cracktro and the dump you sent me if anyone is interested: Schreckenstein cr Outsider (The).zip
  11. Hi all, I need some help to find a dump of the cracktro used in one version of the game Schreckenstein. I don't talk about the Axis intro. The cracktro uses a music you can find on the S.S.M.B.'s Music Kaleidoscope (music disk). It's called 'Red Moon ? ?'. Here's the mp3 of the music: Schreckenstein.mp3 The cracktro was very similar to the intro used by Lucasfilm games. See the first seconds of this video: . The cracker group may be something like 'Outlanders' or 'Outsiders'. Thanks in advance for your help, Kroah PS: if anyone knows the original source of the music (classical music?)
  12. Can you please update the download link on your site, it seems broken. Thank you!
  13. Hi all, Even if I mainly post here for 8bit stuffs, i take the opportunity that Atari-Forum is down to announce that the CoCoNet section on my website is done: http://bringerp.free...est/remake.php5 For those who don't know, CoCoNet is a Colonial Conquest remake i work on for several years. The most important features are Internet/LAN multiplayer games and simultaneous based turns. If you have any questions, you can ask here or at my forum. Hoping you will enjoy it!
  14. I'm ending the translation of my mule reverse engineering. After which i'll finish my multiplayer (TCP/IP) port of Colonial Conquest on PC. It features Atari ST gfx but 800 XL rules and players give simultaneous orders, waiting for other players for combat phase. You can see some screenshots there: http://bringerp.free.fr/RE/phpBB2/viewtopic.php?t=64
  15. Hey all, Some news to tell you i've finally updated my website with my Alternate Reality reverse engineering work: http://bringerp.free.fr/RE/ Even if it's based on the Atari ST version of the game, i know there are lots of fans of the Atari 800 version here. You may be interested or just curious . I hope we could compare both versions too, using the disassembly project of Jim Norris. I'm open to any suggestions. And thanks to Acrin, Hicksman, Robert and Wrathchild for their help and support! Have a nice reading moment!
  • Create New...