Posted By
Litwr on 2012-07-05 04:06:29
| recompiler
Does anybody know the exact purpose of http://plus4world.powweb.com/software/Recompiler?
|
|
Posted By
SVS on 2012-07-05 04:49:52
| Re: recompiler
If I well remember either: 1) Convert a C64 Basic prg into a +4 one; 2) Generate Basic lines from Austrospeed compiled code
I bet on first option...
|
|
Posted By
Litwr on 2012-07-07 03:04:06
| Re: recompiler
I've encountered with c64 sources which require Turbo assembler improvement---Turbo Macro assembler. We have turbo assembler 6 converted by Csory but nobody has converted its macro extension. I thought that recompiler may help.
|
|
Posted By
siz on 2012-07-07 05:44:35
| Re: recompiler
That's not true. Csory had converted the Macro version too and he also has an expanded version which works only with his 256k RAM expansion. I have both versions and I'm very surprised that I can't find them in our database. :O I've uploaded the 64k version to http://siz.hu/external/macroass_plus4_csory.zip
|
|
Posted By
Litwr on 2012-07-09 02:17:04
| Re: recompiler
Wow! Thank you very much! This powerful program should be added to plus4world. Do our administrators read this?
|
|
Posted By
Luca on 2012-07-09 02:29:04
| Re: recompiler
Yes, we've read and we'll add it today siz: if you have the cited 256K version too, we're here ready to embrace it.
|
|
Posted By
Litwr on 2012-07-12 01:30:06
| Re: recompiler
I've just tested this assembler. It has a bug which prevents to use any disk command---this makes it useless. Thanks to SVS ROM map I could fix this bug. The value 8 should be placed to $AE memory location. I placed the fixed version to my site (http://litwr2.atspace.eu/p4_download.html). Sorry this fix is not perfect. Some commands (e.g., ESC-4 to produce listing on screen or printer) may change current device number---somebody should place 8 to $ae manually in this case.
Turbo Macro Assembler is still developed for C64 (http://turbo.style64.org/)! Its main advantage is its ability to handle plain texts (sources, listings, symbol tables, etc). Its editor has undo command. It has versions for the different platforms (c+4, c64, unix-like, microsoft, ...). However Csory's convertion is dated by 1992---it is a bit old. Turbo assembler conversion quality looks better (it uses colors) than Turbo Macro Assembler.
C64 TMP has several commands (2,6, #, ^, p, ...) which are not implemented in the c+4 version. C64 TMP supports dual computer development: one is used for the work with texts and another to execute developed codes!
[SVS] I have an addition to ROM map. The subroutine at $C5A7 should be named "fill page(s)". It takes a value at AC as value to fill, a value at XR as number of pages to fill, and YR value as start page address. So with AC=$77 XR=2 YR=$20 this subroutine fills range $2000-21ff with $77. XR=0 means to fill 256 pages.
|
|
Posted By
siz on 2012-07-12 06:28:10
| Re: recompiler
This bug is not MacroAss specific: it's present in some (badly written) other programs too (including my Zak Wizzard v2.0 - that's why I had to update it some years ago to v2.1). The cause of the problem is the KERNAL's way of handling the 1551: it assumes device number in $AE (from a previous SETLFS call) to detect the 1551 properly. If the program uses LISTEN/TALK (serial-bus specific) commands without a prior SETLFS then it won't work with the 1551. I've used this version of MacroAss on my plus/4 with a 1541-II for years without a problem.
|
|
Posted By
Litwr on 2012-07-19 15:05:33
| Re: recompiler
[siz] Thank you for information. I thought that C1551 was better supported by ROM. I've just fixed this assembler to work with 1551. I redirect all $8b24 calls (they invoke KERNAL $ffb7, etc) so they have to place AC to $AE at first. This fixed version is ready to download.
|
|
Posted By
siz on 2012-07-20 00:52:28
| Re: recompiler
I had a book back then (Commodore plus/4 programozói zsebkönyv - Commodore plus/4 programmers' handbook by Gábor Babán and István Masa). I've learned assembly programming from that book. In that book the floppy drive programming chapter uses serial specific routines (TALK/TKSA/IECOUT/UNTALK, etc) to access the drive. These are the routines that don't work with the 1551 and I didn't know about this until I got my hands on YaPE. :/ I think that a lot of converted C64 programs use this method too to access the drive.
|
|
Posted By
Litwr on 2012-07-20 04:58:50
| Re: recompiler
IMHO the problem is only with LISTN ($FFB1) KERNAL routine. I've fixed it and TMA began to work fine.
|
|