Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

[DIY] Repair "ALGOL.ZIP" from the Commercial CP/M Software Archive

282 views
Skip to first unread message

Martin

unread,
Jun 20, 2019, 11:35:58 AM6/20/19
to

Stumbled upon <http://www.retroarchive.org/docs/rml_algol60.pdf>.
Got curious, took <http://www.retroarchive.org/cpm/lang/ALGOL.ZIP>.

But no joy, algol.com immediately CRASHED!!!

Looking inside, it was obviously, the first 512 bytes of algol.com
were overwritten.

Looking around for a non-corrupted version of that file,
I saw a slightly different version of algol.com in disk images
once downloaded somewhere from <http://www.schuetz.thtec.org>.

Very encouraging, everything after the corrupted part was identical
below ~0900h, not counting of course any absolute addresses pointing
above that point!

Of course, it took its time, but after studying the very good
technical description in "rml_algol60.pdf" starting at page 64,
I could identifiy and adjust every absolute address and perfectly
fit the missing part info the exising algol.com.


Now you will fix your algol.com by yourself:

First, here is the missing part "algolfix.hex":

====
ALGOLFIX
:20010000C3F704C3F704C39109C38409C35905C3DF0BC3D90B300D35084C086308A6085FFB
:200120003500000000FFFF4701470100007731D731F530F5307731D731FFF5307531000088
:2001400000000000000000000000000000000000000000D2014603E401F001F50103020EA4
:200160000214022B023202480294035202730279027F028E02950200009E02A602CD02D44E
:2001800002E102EB02F802EA02F7023D02DB020103080310030601180393038B03FE015CCF
:2001A000026102D503D201E20393039203910390034D02EB03EA01F20321022602DD7E0035
:2001C000DD23C9DD4E00DD23DD4600DD23C921FFFFE5DD6E00DD23260029115301195E23A2
:2001E00056EBAFE9E1CD8C0618E8E1CD6D0618E2CD710418DCCDFA03D173237218D4CD0633
:200200000418F5CDBD01B728C9CDBB0618F5E1CDC00418BECDAB066F2600B7F2D1012518EC
:20022000B0CD2F0718F1CD810718ECE17DCDBB0618A0DD6E00DD6601E5DDE11895E1CB7CFE
:2002400028F0DD23DD23188ACD19041885CD19041803CDFA035E2356D5C3D201CD0604185D
:20026000F4E1ED5B1B01CD4906ED536E02CDFB07C3D201E1D119C3D101C1CD0F0418D6E144
:20028000224901C1CD0F04ED5B4901C3F901CDC301C5C3D201D1210000ED52C3D101D1C1BE
:2002A000CD3104C3D101E1FD360000CD4704CC5905444DE1CD4704CAD101CD5804FDCB003A
:2002C000462806210000B71806D5C3D201D1E1ED52C3D101D1E1ED52CACE01210000C3D184
:2002E00001D1E1ED5228F4C3CE0137D1E1ED52EAFC02FACE0118E437E1D118F1F2CE0118BE
:0000000000
====

I use the tool "mload.com" so everething is done in one step.

A0>mload algolok.com=algol.com,algolfix.hex
MLOAD ver. 2.5 Copyright (C) 1983, 1984, 1985
by NightOwl Software, Inc.
Loaded 512 bytes (0200H) to file A0:ALGOLOK.COM
Over a 12288 byte binary file
Start address: 0100H Ending address: 3100H Bias: 0000H
Saved image size: 12288 bytes (3000H, - 96 records)


Is everything ok?

A0>algolok

RML ALGOL V4.1C
Copyright (C) 1979 by Research Machines

OUT=IN ?^C
A0>

*Done*

Here is a simple demo "fact.alg":

====
'BEGIN' 'COMMENT' FACTORIALS;
'INTEGER' I;
'REAL' R;
R:=1.0;
'FOR' I:=1 'STEP' 1 'UNTIL' 10 'DO'
'BEGIN'
R:=R*I;
RWRITE(1,R,8,0); SKIP(1);
'END'
'END'
'FINISH'
====

Compile...

A0>algolok

RML ALGOL V4.1C
Copyright (C) 1979 by Research Machines

OUT=IN ?fact=fact
COMPILES OK
SIZE 57


RML ALGOL V4.1C
Copyright (C) 1979 by Research Machines

OUT=IN ?^C
A0>

Run...

A0>arun

RML ALGOL V4.4C
Copyright (C) 1979 by Research Machines

INPUT=fact

^
1
2
6
24
120
720
5040
40320
362880
3628794

^
^C
A0>


Have fun
Martin
0 new messages