Jump to content

Welcome to MSFN Forum
Register now to gain access to all of our features. Once registered and logged in, you will be able to create topics, post replies to existing threads, give reputation to your fellow members, get your own private messenger, post status updates, manage your profile and so much more. This message will be removed once you have signed in.
Login to Account Create an Account



Photo

Open source aefdisk on github

- - - - -

  • Please log in to reply
8 replies to this topic

#1
ShadeTreeLee

ShadeTreeLee

    Junior

  • Member
  • Pip
  • 86 posts
  • Joined 19-February 07

Since mid April of this year, one of my favorite DOS programs has gone open source on github.  A re-director link will take you there from aefdisk.com.

 

Only trouble now is that the only version of this program that supports large FAT32 /nolimit switch (>137 GB) is the open source one and it's zip file doesn't include the executable, just source code for it.  "Needs Borland C compiler/linker for DOS" which I never learned how to do.  I do have Borland C++ 4.5 installation CD, will this get me there?  I don't even know this much about compiling PC code, my 'code' expertise begins and ends with the atari 8-bit.

 

Anybody who knows how might go ahead and do that for the unwashed masses here?  Provided this request meets with moderators approval in the first place.  A yes or no nod would be most appreciated first as I truly intend to affront no one.  But especially the moderators.  TIA one and all.




How to remove advertisement from MSFN

#2
shae

shae

    Advanced Member

  • Member
  • PipPipPip
  • 363 posts
  • Joined 06-July 08

It's assembly so it just needs TASM and TLINK. In "makefile" you can see the compile parameters:

 

TASM aefdisk /m9 /q

TLINK aefdisk /x

 

There are three errors with my older version of TASM, one easy to fix, the other two need more familiarity with the subtleties of TASM. I assume v4.5 or v5 will do, but haven't tried.


Edited by shae, 29 July 2015 - 01:15 AM.


#3
ShadeTreeLee

ShadeTreeLee

    Junior

  • Member
  • Pip
  • 86 posts
  • Joined 19-February 07

Thanks for that anyway, it really does help as I'm stumbling along pretty good considering my entry level knowledge here.  4.5 is a no go as it lacks TASM, so downloaded 3 something package.  I'm getting four errors, two of which are the include files which I'll just cut and paste into the .asm file, if that sort of end around will suffice.  What it doesn't seem to understand is a couple of label lines.

 

MBRloader       label  - this is an error where

 

dataend        label   - isn't  WTH???

 

and then this is the other error that makes no sense to me right off:

 

wildcard?    db    0        ; if HD number is '*'

 

and right in the middle of a bunch just like it - I have no idea why that one could be wrong.  I'll keep plodding along though, perhaps a higer version of TASM is in order?  I've checked for multiple label definitions and I can't find any, unless they happen to be reserved words I'm out of guesses for the moment.  Maybe ten passes could be tried instead of 9?  We have TASM for cross assembly to the atari 8-bit believe it or not, but I've never used it there either, I kinda doubt it's a borland product and the name is the only thing ripped off there.



#4
Drugwash

Drugwash

    MSFN Expert

  • Member
  • PipPipPipPipPipPip
  • 1,373 posts
  • Joined 21-June 06
  • OS:98SE
  • Country: Country Flag

Tried with TASM 4.1, won't work - same three errors. Got no other version to try with.

Author should have mentioned which assembler/linker version(s) to use.



#5
ShadeTreeLee

ShadeTreeLee

    Junior

  • Member
  • Pip
  • 86 posts
  • Joined 19-February 07

Yep, I was thinking the same thing many times, but i'm on the trail like a houndog now.  It's 3.1 and it's out there, if you'll go to the org site after searching for 'Borland C++ 3.1'.  So is 5.3 but it has version 3 TASM and if I used 5.3, TASM is going to be under the BC5 path.  Makefile has borlandc as part of the path and I read about that connection in the 4.5 text files on my CD finally pertaining to proper upgrading which appears to be wholesale directory deletion until you get to 4.5 and then it's a file list to back up, do this, and do that.   Like being tossed into the deep end of the pool to learn how to swim, I think the 4.1 version I got on the web has been stepped on and just doesn't work right.  Kinda odd version 5.3 is still using version 3 TASM to me.  It also has TASMX for Windows DOS box and from there they go to TASM32 but it can still build 16 bit code if you link it with TLINK, which also comes in 32 bit flavors if that is your bent.

 

As to my problems with no TASM in 4.5, well that's because I installed the run from CD files which don't do the 16 bit stuff.  Needed to navigate to the folder where CMD16.PAK is at and run that install executable and then I would have gotten TASM just like that.  I see 5.3 is built exactly the same way too.  And I might still do that after I clean house and put 3.1 on there all alone to do this with.  Jeeze, if I can do this is there even a need to post it when done?

 

Further info here for those stuck at too high a version:

A) Installing over previous versions of Borland C++.

As a general rule, it is not recommended that you install
Borland C++ 4.52 over any version earlier than 4.51.
It is recommended that you delete the Borland C++ directory
tree (BORLANDC if you have Borland C++ 3.1, BC4 if you have
Borland C++ 4.0, or BC45 if you have Borland C++ 4.5) prior
to installing. In addition, you will need to delete the
following files in the Windows directory (WINNT under NT, WIN95
under Windows 95): owl.ini, bcw.ini, borhelp.ini,
openhelp.ini, winsight.ini, workshop.ini.

If you are installing over Borland C++ 4.0 or greater,
you need to backup the RTL BIDS and OWL .DLLs prior to
deleting the directory tree. Otherwise, any applications which
need to link these libraries at runtime will need to be rebuilt.

If you are installing over a previous installation of
Borland C++ 4.51 or 4.52, you need to delete the Group file
for Borland C++ (Under Windows 3.1, this is
WINDOWS\BC45.GRP). The installation program cannot
properly create this file if it already exists on your
machine.

 

I got that error prone 4.1 TASM in a version 5 bundle, and then found a better 5.3 bundle.  Kinda curious what's in 4.5 now, but that will have to wait until after some sleep and some housecleaning.



#6
Drugwash

Drugwash

    MSFN Expert

  • Member
  • PipPipPipPipPipPip
  • 1,373 posts
  • Joined 21-June 06
  • OS:98SE
  • Country: Country Flag

Sounds too complicated for me at the moment, especially since I haven't done any ASM work in a handful of years.

Moreover I don't quite trust the real site I found the package at. Maybe someday.

Good luck!



#7
shae

shae

    Advanced Member

  • Member
  • PipPipPip
  • 363 posts
  • Joined 06-July 08
Here. I didn't test it, so use with caution and check if the specific modified functions do the expected thing. The compiled code, at least, looks okay.
 
The errors you saw aren't what I saw. The problems here were lines 2743, 2919, 2921.

In the first, it didn't like having ES inside the brackets:
okdoformat: cmp word ptr ES:[bx+1feh],0aa55h
In the other two it wanted the explicit addition of DWORD PTR:
mov DWORD PTR es:[bootbuffer+offset freeclust-offset bootsec32],eax
BTW, some label names in the code include a question mark. A strange practice, and it's surprising TASM accepts it.
 
I'm not sure what TASM version or settings the author used but it'd odd that it wouldn't compile as is. Maybe it's possible to use global settings through an INI file or an environment variable, and this wasn't included in the makefile?

And I don't get TASM's version numbering. I downloaded something which the README calls v5.0, yet TASM.EXE is v4.1, same as the one I had before (though I didn't compare the EXE, can't do that right now).

Attached Files


Edited by shae, 29 July 2015 - 09:54 PM.


#8
Drugwash

Drugwash

    MSFN Expert

  • Member
  • PipPipPipPipPipPip
  • 1,373 posts
  • Joined 21-June 06
  • OS:98SE
  • Country: Country Flag

@shae: Those are exactly the same errors I got. Also TASM 4.1 but can't remember what package it comes from, I've installed it many years ago. Hopefully your changes are safe.



#9
ShadeTreeLee

ShadeTreeLee

    Junior

  • Member
  • Pip
  • 86 posts
  • Joined 19-February 07

Thanks Shae, I'll compare yours to mine as I had complete and super fast good results as soon as I cleared the other installations and put on the org based 3.1.  Too easy, I couldn't believe it.  During testing of mine, it does require the /nolimit switch to be in front of /pri:200000:c:1 switch to get a FAT32 first partition of 200 Gigs.  Otherwise it resets the size to 127 Gig as per normal.  

My possible bad on advice for TASM32 as the documentation says it's primarily for creating 32 bit debug information and does not suggest it's use for 16 bit work at all.  I had read somewhere that it can serve dual purpose 16 bit and 32 bit work, but I haven't seen that in the documentation yet, so better treat that as fringe advice at best.

They do the question mark in atari cross assemblers and it does bug me too, but then so does the colon in label names which you just glided over as not much at all.  I'll just have to get used to both it seems.

I have 2744, 2920, and 2922 written down in front of me, and that due to a blank line I inserted to attempt to get around the label problem on line 16, I saw a similar label equate line not too far away and he had a blank line under it so I'm thinking maybe that's it.  I didn't go back to correct it when I found out that wasn't the problem.

I tried to use the makefile but 3.1 didn't want any part of it as one of the C++ installs I tried would use it.  I just did TASM aefdisk and I had zero errors and an .obj file which I then did TLINK aefdisk with and there was aefdisk.exe pretty as you please and just that fast.  One thing I did do different was to lauch Throttle 6 with autoexec.bat file to slow DOS mode down from 3 GHz - I've had that problem during the making of vmm32.vxd during 98 installs and forgot completely about the issue in earlier attempts.  DOS was never meant to fly that fast methinks.  Much better documentation with 4.5 and 5 versions of C++, reading about where you can make a big swap file expressly for the use of these 16 bit borland programs such that very large projects can be done in the limited memory environment DOS has.

Since you didn't report problems with line 16, 43, 44, and 472, I'm thinking we lay them at the foot of the GigaHertz god for a sacrifice?  Throttle may have eliminated those errors entirely to wind up with exactly the same problems you went in and corrected the code on, nice work, thanks for showing us what was wrong and the straight forward way to write code.  Obviously 3.1 is buggy in that it allows such errors so no real need to keep it around.

To the best of my knowledge they quit making 16 bit TASM at version 4 something, as I stated before one 5.3 package had version 3 in it, which makes me anxious to see what is in the 4.5 I have when I get around to installing it in the correct manner this time around.  I can't believe the prices they want for this 4.5 CD - I got it as a throw away so many years ago I can't even remember when or how.

So a bit later than the above, I have tested both mine and yours.  Mine is bigger for some reason but it still works, just like yours does.  There are other bugs with it though, it won't make a label on /formatfat:1:Drive_C command but will if the partition is <137 even if the /nolimit switch is before anything else.  So we have bad switch handling inherent in this to start with is my assumption and this is verified by using /show in combination with /label:1:Drive_C where it won't show afterwards as well.  Lower case is kludged to upper case for drive labels as well.

Installing 4.5 correctly got me the exact same situation I had before - no TASM with this at all.  TLINK version there is 7, can I assume that even borland couldn't keep their act together at this point in time? Using transplanted TASM 4 with it results in a larger build than yours as well although I didn't do a file compare with the 3.1 build, so I'll have to do that someday. Looks like I'm on the hunt for borland C++ 4.02 CD release.  Attempting the build with TLINK version 5, it want's a DPMI manager file to be loaded and errors out when it can't find it.  Version 7 doesn't do this but my build is bigger than yours for some reason there - I assume it's cross versions of TASM and TLINK until someone straightens me out on why my end product with 3.1 and 4.5 kludge is bigger than yours.

 






0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users