I see by googling that there are some public domain implementations of
APL available but I have not found any that will run under Windows XP
or later (meaning I have not succeeded in getting them to run). Also,
once I locate an implementation I am not sure how interchangeable
workspace formats are.
Thanks for any advice.
Cheers,
Lyman Hurd
> I see by googling that there are some public domain implementations of
> APL available but I have not found any that will run under Windows XP
> or later (meaning I have not succeeded in getting them to run). Also,
> once I locate an implementation I am not sure how interchangeable
> workspace formats are.
>
>
Try http://www.nars2000.org/ - I run it off a USB drive & it works
under both XP home & professional. Not tried it on Vista (then again I
avoid Vista like the plague) or 7
Chris
0. Forget about workspace-level interchange. You will have to piece
this together by hand.
1. Locate a copy of the old APL*Plus/PC. This should run on XP etc,
although I haven't tried.
2. Write a small program to write the []VR of all the functions to a
standard DOS file.
[]NCREATE, []VR, []NAPPEND, []NUNTIE is what you will need to know.
3. Be sure to take a copy of []AV along and know what the elements
are. This is usually well documented
4. Write the contents of the variables to file as well
5. If there are any component files, be sure to get a copy of the
contents as well on file.
The idea is to move the contents to the least proprietary form
possible.
In the new APL, whatever it may be, you will need to do the reverse
6. Read the old []AV and prepare a translate table, the old []AV
elements in the new locations. This is probably the most difficult
thing and possibly has been done for you, check the supplied
workspaces in the new APL.
7. Read in the functions, variables, and component file contents,
using the translate table. The functions should be immediately
visible. If you see some strange characters, go back and check the
translate table.
[]AV[XLATE iota TEXT] to convert from old to new.
8. []FX all of the functions, assign the variables, and create new
component files
9. APL*Plus/PC had a lot of little functions, []PEEK, []POKE, []WIN,
etc. which resembled the offerings from Basic of the day. You will
need to understand what they did and convert the code accordingly.
Things like []WIN had no equivalent in the new systems and should be
rewritten using the new Windows features. This could be quite
involved.
All this has already been done for some APLs.
See www.milinta.com/apl
There is even a way to translate some of the code automatically.
Not foolproof but better than starting from scratch.
What is your target APL?
I should give a bit of background. My father is a retired theologian
and the code is a system to teach New Testament Greek interactively.
Many of the contortions that had be exercised in the dark days prior
to Unicode are no longer necessary. I am an ex-math professor turned
software engineer who took enough Greek in high school to be
dangerous.
I should explain that my primary goal is to extract the data including
lots of textual data and tables of word stems etc. The eventual aim
is to recode the algorithms into a compiled language at the moment the
primary candidates being Java, C# and Objective C. My first goal is
to extract the data in the workspaces to something neutral like UTF-8
encoded XML! APL was actually my first serious computer language but
I do not want to mention when that was :-).
Cheers,
Lyman Hurd
Dyalog has both Unicode and []XML which could save you time.
I believe that a personal licence is fairly cheap too (50£?)
You might also want to look at
http://home.comcast.net/~paul.l.jackson/PLJsAPL/
and click on PLJsAPL to get a copy. If you write out a function from
APLSE with the function in my tool kit, you can read them back in with
_x.FromAPLse("FileName.txt")
in ShellAPL.
Paul
--
-----
Don Kelly
cross out to reply
[]FLIB 9
for example I get a list:
9 GKEDEFS
...
but when I try to say:
'9 GKEDEFS' []FTIE 1
I get:
FILE ACCESS ERROR
I have library 9 linked to a subdirectory:
lib 9 = C:\APL\DISKS\GKTUTOR\APL\GKTUTOR
and I have no problem executing a )LOAD or a workspace from that
directory or listing its contents; I just cannot retrieve file data.
Cheers,
Lyman
Thanks for the tip!
Dosbox works great for a game I have been addicted to for years and
does not run in newer computers.
I see that dosbox is supposed to run in Linux too so I will try that
too.
I can at least throw away some of my oldest computers I have kept just
to be able to run sherlock.
There are actually many new versions available of sherlock but none
can compare with the old version.
You can run APLSE in full screen mode in XP. I forget all of the
details, but the instructions & files required are available here:
http://marthallama.org/apl/APLXP_SETUP.zip
Doug White
Dosbox is good, but the standard version used to have the emulation of
the numeric coprocessor shut off. When I was playing with it several
years ago, I had to ask somebody to compile it with the switch set to
enable that feature. Otherwise you get a lot of weird results. They may
have fixed that by now, or made it a command line switch.
Doug White
Please try the following:
Use []FSTIE instead of []FTIE
Use the physical location instead of the library number, i.e.
'C:\test\gkedefs' []FSTIE 1
Last and hopefully least, now that you can look at it, check the APL
code to see if there is a file tie with a passnumber, i.e.
'thefile' []FSTIE 1 1234567
or
'thefile' []FREAD 1 13 1234567
Have a look at the inside of the file with Notepad. (But be sure
NEVER to save!)
Looking at the code the file was intended to be opened with a
password, however when the code to access it is autoloaded there
appears to be something amiss about the way the password is being
calculated (yes, it is not a constant!). Is there any chance of
recovering a file's password by looking at it in a binary editor, for
example? Is the file encrypted? And if all else fails would it be
worth looping over possible passwords?
Cheers,
Lyman
(I found this in an ancient utility workspace in a function named
FILEHELPER. I'm not sure if this feature was documented or not.)