I'm having real problems to read about MAD code written with FAP
subroutines with a straight face. I'm such a child...

On Tue, 30 Jan 2024 at 23:00, Ralf Quint via Freedos-devel
<freedos-devel@lists.sourceforge.net> wrote:
>
> On 1/30/2024 1:37 PM, Jim Hall via Freedos-devel wrote:
> > Jim Hall wrote:
> >>> On Mon, Jan 29, 2024 at 8:07 PM Jim Hall <jh...@freedos.org> wrote:
> >>>> I am working on an academic project that requires understanding the
> >>>> MAD programming language so I can pick apart (and faithfully recreate)
> >>>> an old MAD program. That's the Michigan Algorithm Decoder, from 1959
> >>>> and the early 1960s.
> >>>> [..]
> >>>> Does anyone know of a MAD compiler for DOS?
> >
> > Ralf Quint wrote:
> >> Up to your email, I haven't even heard of a MAD compiler. Only the
> >> magazine... 😛
> >> (and interesting seeing that mentioned in the Wikipedia article LOL)
> >
> > Yes, I hadn't heard of it either until a few months ago when I started
> > researching the RUNOFF source code. It's written about half in MAD and
> > about half in FAP (FORTRAN Assembly Programming). The RUNOFF program
> > is written in MAD with some support functions in FAP.
> >
> > I'm thinking about writing a book about the early history of document
> > preparation systems, and RUNOFF seemed a good place to start. I want
> > to faithfully recreate the MAD code in another programming language -
> > not an automated translation like ESR's translator would do, but an
> > understandable recreation by a human who understands what the original
> > code is doing and recreates it in a sensible way in another
> > programming language. Might do it in C or BASIC. BASIC might be
> > easier, since I'm seeing some similarities between MAD and BASIC. But
> > I'd prefer to do it in C.
> You seem to be as predisposed as me in always finding new deep dark
> rabbit holes to decent into.... 😛
> > But step #1 is to understand what's going on in the code. MAD is
> > mostly readable, but the for-next loop equivalent is a little weird to
> > me. For example, to loop from 1 to 10 (inclusive) in C, you'd do this:
> >
> > for (i = 1; i <= 10; i++) {
> > ...
> > }
> >
> >
> > Just to compare: in FORTRAN77, it's like "DO label var = start, stop, step":
> >
> >         DO 10 I = 1, 10, 1
> >           ...
> > 10     CONTINUE
> >
> >
> > But in MAD, I *think* it's like "THROUGH label, FOR var = start, step,
> > failcondition":
> >
> >             THROUGH LOOP, FOR I = 1, 1, I .GT. 10
> >               ...
> > LOOP       CONTINUE
> >
> >
> > And from what I can see, I think "failcondition" gets tested at the
> > end of each iteration, so it's more like this weird 'while'
> > construction in C:
> >
> >    i = 1;
> >    do {
> > ...
> >      i++;
> >    } while ( !(i>10) );
> >
> >
> >
> > That's why I wanted to write some sample code in a real MAD compiler,
> > to see if I'm correctly understanding that (and a few other odd things
> > in the language).
> Well, the Wikipedia page lists at least two MAD manuals (the compiler,
> not the magazine), I might just download these and have a look at this
> late tonight, Tuesdays I can't get to sleep until 2am anyway and always
> watching movies on YouTube gets boring after a while... ;-)
>
> Ralf
>
>
>
>
> _______________________________________________
> Freedos-devel mailing list
> Freedos-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/freedos-devel


_______________________________________________
Freedos-devel mailing list
Freedos-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-devel

Reply via email to