Merge branch 'master' into gh-pages
This commit is contained in:
commit
fd1836f9d1
18 changed files with 564 additions and 28 deletions
483
_posts/2017-07-03-fantasyland.md
Normal file
483
_posts/2017-07-03-fantasyland.md
Normal file
|
|
@ -0,0 +1,483 @@
|
|||
---
|
||||
layout: post
|
||||
title: FantasyLand
|
||||
date: 2017-07-03 22:00:00
|
||||
permalink: /blog/2017/07/03/
|
||||
machines:
|
||||
- id: ibm5160-msdos320
|
||||
type: pcx86
|
||||
resume: 1
|
||||
state: /apps/pcx86/1984/modula2/state.json
|
||||
config: /devices/pcx86/machine/5160/ega/640kb/debugger/machine.xml
|
||||
drives: '[{name:"10Mb Hard Disk",type:3,path:"/disks/pcx86/fixed/10mb/MSDOS320-C400.json"}]'
|
||||
automount:
|
||||
A:
|
||||
name: None
|
||||
B:
|
||||
name: None
|
||||
---
|
||||
|
||||
I recently added a demo of the [Logitech Modula-2/86 Compiler (1984)](/apps/pcx86/1984/modula2/),
|
||||
because I wanted to recreate the IBM PC test environment that John T. Cockerham had used in his October 1986
|
||||
[PC Tech Journal](http://www.pcjs.org/pubs/pc/magazines/pctj/) article
|
||||
"[Evaluating the EGA: The EGA Standard](http://www.pcjs.org/modules/shared/templates/pdf.html?url=/pubs/pc/magazines/pctj/PCTJ-1986-10/pages/PCTJ-1986-10%2053.pdf&page=53&total=228)".
|
||||
|
||||
I actually wanted to do that several years ago, when I first added EGA support to PCx86 (the PCjs emulation of the
|
||||
IBM PC), because Cockerham described two rigorous tests of EGA hardware compatibility that I would have liked to try:
|
||||
|
||||
- **FantasyLand**, an EGA demo written by IBM in 1984
|
||||
- [EGATEST](/disks/pcx86/shareware/pctj/#directory-of-pc-tech-journal-oct-86), a program written by Cockerham himself in Modula-2
|
||||
|
||||
Cockerham describes **FantasyLand**:
|
||||
|
||||
> IBM wrote FantasyLand in 1984 in order to demonstrate some of the more obscure features of the EGA.
|
||||
The program was distributed very selectively to dealers and sales representatives; it has never been a product
|
||||
intended for sale.
|
||||
|
||||
> FantasyLand builds a large, 150-by-400-character virtual text screen in the EGA video RAM. The screen uses custom
|
||||
fonts to create a map of an imaginary continent, complete with rivers, lakes, mountains, and fantastic creatures
|
||||
like dragons and sea serpents. The illusion of bit-mapped graphics is great, but all the drawings actually are done
|
||||
with custom characters from a 25-by-80 window into the larger virtual text screen. The program allows vertical and
|
||||
horizontal smooth scrolling throughout the map by using the cursor keys, allowing the user to tour FantasyLand. Help
|
||||
screens are implemented with the EGA's split-screen abilities and scroll smoothly up from the bottom of the screen when
|
||||
requested.
|
||||
|
||||
> To make the test even more rigorous, FantasyLand uses the EGA's switchable fonts to create animation effects.
|
||||
The program loads several copies of a custom font into memory, and an interrupt service routine cycles through the
|
||||
copies every four system clock ticks. Certain characters in the custom font have slight differences across the copies
|
||||
so that, when cycled, they give the illusion of motion--a dragon flaps his wings, smoke billows from a chimney, grass
|
||||
waves in the wind. By tying the animation directly to the system's 8253 timer interrupt, font switching happens
|
||||
continuously, independent of CPU speed and divorced from other program operations. Rapid ongoing font changes, along
|
||||
with fast smooth scrolling in both directions, test subtle timing dependencies between subunits of the EGA.
|
||||
|
||||
Due to the "very selective" distribution of the program, **FantasyLand** has been impossible to locate.
|
||||
Even Cockerham seemed reluctant to tell us *too* much about the program. My *guess* is that
|
||||
[Page 48](http://www.pcjs.org/modules/shared/templates/pdf.html?url=/pubs/pc/magazines/pctj/PCTJ-1986-10/pages/PCTJ-1986-10%2052.pdf&page=52&total=228)
|
||||
of the October 1986 issue displays a zoomed-in section of a **FantasyLand** screen, but it's unattributed, so who knows.
|
||||
|
||||
> **SIDEBAR**: If you come across a copy of **FantasyLand**, *please* let me know. I'll even pay a bounty of, say,
|
||||
$25 (via PayPal) to the first person to find a copy and contact me, just to make it worth your time to look. Seriously.
|
||||
|
||||
So, given that **FantasyLand** is currently unattainable, I turned my attention to Cockerham's own **EGATEST**.
|
||||
|
||||
The [October 1986](http://www.pcjs.org/pubs/pc/magazines/pctj/PCTJ-1986-10/) issue contains the **EGATEST** program listing,
|
||||
starting on [Page 64](http://www.pcjs.org/modules/shared/templates/pdf.html?url=/pubs/pc/magazines/pctj/PCTJ-1986-10/pages/PCTJ-1986-10%2052.pdf&page=52&total=228),
|
||||
but who wants to type in all that code? And while the issue -- like all our archived publications -- has been OCR'ed,
|
||||
there's always a significant number of errors in the Optical Character Recognition process.
|
||||
|
||||
Another option would have been to download the code from PC Tech Journal's own "PCTECHline" -- if we were doing this
|
||||
30 years ago. Even back then, PCTECHline apparently wasn't the the most reliable service. In fact, the very same
|
||||
issue of [PC Tech Journal (Page 14)](http://www.pcjs.org/modules/shared/templates/pdf.html?url=/pubs/pc/magazines/pctj/PCTJ-1986-10/pages/PCTJ-1986-10%2018.pdf&page=18&total=228)
|
||||
contains the following "Update/Apology":
|
||||
|
||||
> **PCTECHLINE UPDATE**
|
||||
|
||||
> The telephone number for PCTECHline, now operating from our new Columbia, Maryland, office, has been changed to
|
||||
301/740-8383. The PCTECHline number is always published in our masthead.
|
||||
|
||||
> Improvements to our system are planned. Six telephone lines have already been installed in our new lab for this
|
||||
purpose; the lines will be put into service one by one as demand warrants. The bottleneck in our plan ning is our
|
||||
fondness for PCTECHline's software; unfortunately, its current multiline capabilities are not to our liking. We hope
|
||||
that better solutions are forthcoming from the vendor, Micro-Systems Software.
|
||||
|
||||
> Part of the plan is to increase the capacity and performance of the PCTECHline computer. We do not yet know how this
|
||||
will be accomplished. One idea is to install an RT/PC that has the performance to handle at least six lines and the
|
||||
necessary software (AIX) to control them. We would value the experience gained on the RT and users would benefit from
|
||||
the expansion of services it would allow.
|
||||
|
||||
> We apologize for any disruption of service that may be caused by our move to Columbia or our experiments with new
|
||||
equipment and service. As always, we invite your comments and suggestions for PCTECHline. --WF
|
||||
|
||||
As it turns out, the simplest means of obtaining all the code was finding it in another online archive. A website
|
||||
called [The Programmer's Corner](https://www.pcorner.com) contains a [Magazine File Archive](https://www.pcorner.com/list/MAG),
|
||||
and in that archive, a file named [PCTJ1086.ZIP](https://www.pcorner.com/list/MAG/PCTJ1086.ZIP/INFO/) appears to
|
||||
contain all of Cockerham's EGATEST files.
|
||||
|
||||
I've transferred the contents of that ZIP archive to a PCx86 diskette image named
|
||||
"[PC Tech Journal (Oct 86)](/disks/pcx86/shareware/pctj/#directory-of-pc-tech-journal-oct-86)", which we can now
|
||||
load into the machine below, and then run "EGAMAKE.BAT" to rebuild the entire program.
|
||||
|
||||
Unfortunately, as of this writing, while the code *mostly* compiles, it encounters a few errors along the way that
|
||||
I've not diagnosed yet. Also, the only version of the Logitech Modula-2/86 Compiler that I've been able to find so
|
||||
far is version 1.10. Cockerham doesn't mention what version of the compiler he used, but it may well have been a
|
||||
newer version, since that article was published almost two years after version 1.10 was released.
|
||||
|
||||
Also, I'm at a bit of a disadvantage with Modula-2 itself: I've never written anything in Modula-2, I've never used
|
||||
any Logitech compilers before now, and the closest documentation I've been able to locate is the
|
||||
[Logitech Modula-2/86 v1.0 Manual](http://bitsavers.informatik.uni-stuttgart.de/pdf/logitech/modula-2/Logitech_Modula-2_86_1.0_Feb84.pdf)
|
||||
(ie, the previous version).
|
||||
|
||||
On the other hand, maybe I'm trying too hard, because Cockerham also provided the final binary as well: **EGATEST.EXE**.
|
||||
|
||||
How well does it work? I must confess, I don't know, because I'm too chicken to try it right now. I know my EGA
|
||||
simulation, while good, is far from perfect, so before I dive into these tests, I want to make sure I have enough time
|
||||
set aside to debug and fix the inevitable problems.
|
||||
|
||||
Anyway, the [Logitech Modula-2/86 Compiler v1.10](/apps/pcx86/1984/modula2/) demo machine has been recreated below,
|
||||
along with the PCjs Debugger. One nice thing about this configuration is that COM1 is connected to the Debugger's
|
||||
output window, so you can use the MS-DOS command:
|
||||
|
||||
CTTY COM1
|
||||
|
||||
to redirect all console I/O, making it easy to copy and paste the text for future reference. And in fact, that's
|
||||
exactly what I've done "below the fold".
|
||||
|
||||
{% include machine.html id="ibm5160-msdos320" %}
|
||||
|
||||
### Transcript of the EGATEST Build Process (as of July 3, 2017)
|
||||
|
||||
PCx86 v1.35.2
|
||||
Copyright © 2012-2017 Jeff Parsons <Jeff@pcjs.org>
|
||||
License: GPL version 3 or later <http://gnu.org/licenses/gpl.html>
|
||||
Loading /devices/pcx86/hdc/ibm-xebec-1982.json.......
|
||||
Loading /devices/pcx86/rom/5160/basic/BASIC110.json.......
|
||||
Loading /devices/pcx86/rom/5160/1982-11-08/XTBIOS-REV1.json.......
|
||||
Loading /devices/pcx86/video/ibm/ega/1984-09-13/ibm-ega.json.......
|
||||
HDC: Type 3 "10Mb Hard Disk" is fixed disk 0
|
||||
Loading /disks/pcx86/fixed/10mb/MSDOS320-C400.json.........
|
||||
Loading /apps/pcx86/1984/modula2/state.json.........
|
||||
Bus: 8Kb ROM at 000C8000
|
||||
Bus: 8Kb ROM at 000FE000
|
||||
Bus: 32Kb ROM at 000F6000
|
||||
Bus: 16Kb ROM at 000C0000
|
||||
HDC: Mounted disk "10Mb Hard Disk" in drive C
|
||||
Bus: 640Kb RAM at 0000
|
||||
RAM: 0xa0000 (640Kb) size overrides SW1
|
||||
RAM: ROM BIOS memory test has been disabled
|
||||
Bus: 32Kb VIDEO at 000B8000
|
||||
Type ? for help with PCx86 Debugger commands
|
||||
AX=0100 BX=0004 CX=00F9 DX=007F SP=09F6 BP=0000 SI=00D3 DI=01A9
|
||||
SS=028C DS=028C ES=028C PS=F202 V0 D0 I1 T0 S0 Z0 A0 P0 C0
|
||||
&028C:14AD 2E CS:
|
||||
&028C:14AE 8F068005 POP WORD [0580]
|
||||
running
|
||||
Loading /disks/pcx86/shareware/pctj/PCTJ1086.json.......
|
||||
FDC: Mounted diskette "PC Tech Journal (Oct 86)" in drive A
|
||||
|
||||
C:\>mkdir egatest
|
||||
|
||||
C:\>cd egatest
|
||||
|
||||
C:\EGATEST>copy a:*.*
|
||||
A:DOTTIME.DEF
|
||||
A:DOTTIME.MOD
|
||||
A:DRAWPOLY.DEF
|
||||
A:DRAWPOLY.MOD
|
||||
A:EDITBLCK
|
||||
A:EGAMAKE.BAT
|
||||
A:EGATEST.EXE
|
||||
A:EGATEST.MOD
|
||||
A:FONTBUMP.DEF
|
||||
A:FONTBUMP.MOD
|
||||
A:INFO
|
||||
A:LOWEGA.DEF
|
||||
A:LOWEGA.MOD
|
||||
A:OPCODES.DEF
|
||||
A:OPCODES.MOD
|
||||
A:OTHRFONT.DAT
|
||||
A:PAUSES.DEF
|
||||
A:PAUSES.MOD
|
||||
A:POINTLIB.DEF
|
||||
A:POINTLIB.MOD
|
||||
20 File(s) copied
|
||||
|
||||
C:\EGATEST>egamake
|
||||
|
||||
C:\EGATEST>rem
|
||||
|
||||
C:\EGATEST>rem compile files in this order to avoid version conflicts
|
||||
|
||||
C:\EGATEST>rem
|
||||
|
||||
C:\EGATEST>m2 comp opcodes.def
|
||||
LOGITECH MODULA-2/86 Compiler, DOS 8086, Rel. 1.10, Nov 84
|
||||
Copyright (C) 1983, 1984 LOGITECH.
|
||||
|
||||
source file> opcodes.def
|
||||
|
||||
Syntax Analysis
|
||||
target speed: 9.54Mhz
|
||||
Declaration Analysis
|
||||
target speed: 19.08Mhz
|
||||
Symbol File Generation
|
||||
Termination
|
||||
End Compilation
|
||||
|
||||
C:\EGATEST>m2 comp pointlib.def
|
||||
LOGITECH MODULA-2/86 Compiler, DOS 8086, Rel. 1.10, target speed: 38.16Mhz
|
||||
Nov 84
|
||||
Copyright (C) 1983, 1984 LOGITECH.
|
||||
|
||||
source file> pointlib.def
|
||||
|
||||
Syntax Analysis
|
||||
Declaration Analysis
|
||||
Symbol File Generation
|
||||
Termination
|
||||
End Compilation
|
||||
|
||||
C:\EGATEST>m2 comp lowega.def
|
||||
LOGITECH MODULA-2/86 Compiler, DOS 8086, Rel. 1.10, Nov 84
|
||||
Copyright (C) 1983, 1984 LOGITECH.
|
||||
|
||||
source file> lowega.def
|
||||
|
||||
Syntax Analysis
|
||||
PointLib in file: C:PointLib.SYM
|
||||
Declaration Analysis
|
||||
Symbol File Generation
|
||||
Termination
|
||||
End Compilation
|
||||
|
||||
C:\EGATEST>m2 comp pauses.def
|
||||
LOGITECH MODULA-2/86 Compiler, DOS 8086, Rel. 1.10, Nov 84
|
||||
Copyright (C) 1983, 1984 LOGITECH.
|
||||
|
||||
source file> pauses.def
|
||||
|
||||
Syntax Analysis
|
||||
Declaration Analysis
|
||||
Symbol File Generation
|
||||
Termination
|
||||
End Compilation
|
||||
|
||||
C:\EGATEST>m2 comp drawpoly.def
|
||||
LOGITECH MODULA-2/86 Compiler, DOS 8086, Rel. 1.10, Nov 84
|
||||
Copyright (C) 1983, 1984 LOGITECH.
|
||||
|
||||
source file> drawpoly.def
|
||||
|
||||
Syntax Analysis
|
||||
LowEGA in file: C:LowEGA.SYM
|
||||
PointLib in file: C:PointLib.SYM
|
||||
Declaration Analysis
|
||||
Symbol File Generation
|
||||
Termination
|
||||
End Compilation
|
||||
|
||||
C:\EGATEST>m2 comp dottime.def
|
||||
LOGITECH MODULA-2/86 Compiler, DOS 8086, Rel. 1.10, Nov 84
|
||||
Copyright (C) 1983, 1984 LOGITECH.
|
||||
|
||||
source file> dottime.def
|
||||
|
||||
Syntax Analysis
|
||||
Declaration Analysis
|
||||
Symbol File Generation
|
||||
Termination
|
||||
End Compilation
|
||||
|
||||
C:\EGATEST>m2 comp fontbump.def
|
||||
LOGITECH MODULA-2/86 Compiler, DOS 8086, Rel. 1.10, Nov 84
|
||||
Copyright (C) 1983, 1984 LOGITECH.
|
||||
|
||||
source file> fontbump.def
|
||||
|
||||
Syntax Analysis
|
||||
Declaration Analysis
|
||||
Symbol File Generation
|
||||
Termination
|
||||
End Compilation
|
||||
|
||||
C:\EGATEST>m2 comp lowega.mod
|
||||
LOGITECH MODULA-2/86 Compiler, DOS 8086, Rel. 1.10, Nov 84
|
||||
Copyright (C) 1983, 1984 LOGITECH.
|
||||
|
||||
source file> lowega.mod
|
||||
|
||||
Syntax Analysis
|
||||
LowEGA in file: C:LowEGA.SYM
|
||||
PointLib in file: C:PointLib.SYM
|
||||
Opcodes in file: C:Opcodes.SYM
|
||||
Declaration Analysis
|
||||
Block Analysis
|
||||
Code Generation
|
||||
Termination
|
||||
The interactive setting of the options was: S+ /R+ /T+
|
||||
Codesize: 5342 bytes Datasize: 94 bytes
|
||||
End Compilation
|
||||
|
||||
C:\EGATEST>m2 comp egatest.mod
|
||||
LOGITECH MODULA-2/86 Compiler, DOS 8086, Rel. 1.10, Nov 84
|
||||
Copyright (C) 1983, 1984 LOGITECH.
|
||||
|
||||
source file> egatest.mod
|
||||
|
||||
Syntax Analysis
|
||||
Terminal in file: C:\M2LIB\SYM\Terminal.SYM
|
||||
InOut in file: C:\M2LIB\SYM\InOut.SYM
|
||||
LowEGA in file: C:LowEGA.SYM
|
||||
PointLib in file: C:PointLib.SYM
|
||||
FontBump in file: C:FontBump.SYM
|
||||
Conversi in file: C:\M2LIB\SYM\Conversi.SYM
|
||||
Strings in file: C:\M2LIB\SYM\Strings.SYM
|
||||
Pauses in file: C:Pauses.SYM
|
||||
DrawPoly in file: C:DrawPoly.SYM
|
||||
DotTime in file: C:DotTime.SYM
|
||||
Declaration Analysis
|
||||
Block Analysis
|
||||
Code Generation
|
||||
Termination
|
||||
The interactive setting of the options was: S+ /R+ /T+
|
||||
Codesize: 5362 bytes Datasize: 294 bytes
|
||||
End Compilation
|
||||
|
||||
C:\EGATEST>m2 comp fontbump.mod
|
||||
LOGITECH MODULA-2/86 Compiler, DOS 8086, Rel. 1.10, Nov 84
|
||||
Copyright (C) 1983, 1984 LOGITECH.
|
||||
|
||||
source file> fontbump.mod
|
||||
|
||||
Syntax Analysis
|
||||
FontBump in file: C:FontBump.SYM
|
||||
FileSyst in file: C:\M2LIB\SYM\FileSyst.SYM
|
||||
LowEGA in file: C:LowEGA.SYM
|
||||
Opcodes in file: C:Opcodes.SYM
|
||||
Pauses in file: C:Pauses.SYM
|
||||
Declaration Analysis
|
||||
Block Analysis
|
||||
Code Generation
|
||||
Termination
|
||||
The interactive setting of the options was: S+ /R+ /T+
|
||||
Codesize: 715 bytes Datasize: 3638 bytes
|
||||
End Compilation
|
||||
|
||||
C:\EGATEST>m2 comp pointlib.mod
|
||||
LOGITECH MODULA-2/86 Compiler, DOS 8086, Rel. 1.10, Nov 84
|
||||
Copyright (C) 1983, 1984 LOGITECH.
|
||||
|
||||
source file> pointlib.mod
|
||||
|
||||
Syntax Analysis
|
||||
PointLib in file: C:PointLib.SYM
|
||||
Declaration Analysis
|
||||
Block Analysis
|
||||
Code Generation
|
||||
Termination
|
||||
The interactive setting of the options was: S+ /R+ /T+
|
||||
Codesize: 97 bytes Datasize: 0 bytes
|
||||
End Compilation
|
||||
|
||||
C:\EGATEST>m2 comp opcodes.mod
|
||||
LOGITECH MODULA-2/86 Compiler, DOS 8086, Rel. 1.10, Nov 84
|
||||
Copyright (C) 1983, 1984 LOGITECH.
|
||||
|
||||
source file> opcodes.mod
|
||||
|
||||
Syntax Analysis
|
||||
Opcodes in file: C:Opcodes.SYM
|
||||
Declaration Analysis
|
||||
Block Analysis
|
||||
Code Generation
|
||||
Termination
|
||||
The interactive setting of the options was: S+ /R+ /T+
|
||||
Codesize: 17 bytes Datasize: 0 bytes
|
||||
End Compilation
|
||||
|
||||
C:\EGATEST>m2 comp pauses.mod
|
||||
LOGITECH MODULA-2/86 Compiler, DOS 8086, Rel. 1.10, Nov 84
|
||||
Copyright (C) 1983, 1984 LOGITECH.
|
||||
|
||||
source file> pauses.mod
|
||||
|
||||
Syntax Analysis
|
||||
Pauses in file: C:Pauses.SYM
|
||||
Terminal in file: C:\M2LIB\SYM\Terminal.SYM
|
||||
LowEGA in file: C:LowEGA.SYM
|
||||
PointLib in file: C:PointLib.SYM
|
||||
Declaration Analysis
|
||||
Block Analysis
|
||||
Code Generation
|
||||
Termination
|
||||
The interactive setting of the options was: S+ /R+ /T+
|
||||
Codesize: 483 bytes Datasize: 0 bytes
|
||||
End Compilation
|
||||
|
||||
C:\EGATEST>m2 comp dottime.mod
|
||||
LOGITECH MODULA-2/86 Compiler, DOS 8086, Rel. 1.10, Nov 84
|
||||
Copyright (C) 1983, 1984 LOGITECH.
|
||||
|
||||
source file> dottime.mod
|
||||
|
||||
Syntax Analysis
|
||||
DotTime in file: C:DotTime.SYM
|
||||
Terminal in file: C:\M2LIB\SYM\Terminal.SYM
|
||||
LowEGA in file: C:LowEGA.SYM
|
||||
TimeDate in file: DK:TimeDate.SYM
|
||||
---- file not found
|
||||
TimeDate in file> ---- DK:Pass1.LOD warning
|
||||
Termination
|
||||
End Compilation
|
||||
|
||||
===> warning, file DK:M2COMP.LOD
|
||||
^C
|
||||
|
||||
Terminate batch job (Y/N)? n
|
||||
C:\EGATEST>m2 comp drawpoly.mod
|
||||
LOGITECH MODULA-2/86 Compiler, DOS 8086, Rel. 1.10, Nov 84
|
||||
Copyright (C) 1983, 1984 LOGITECH.
|
||||
|
||||
source file> drawpoly.mod
|
||||
|
||||
Syntax Analysis
|
||||
DrawPoly in file: C:DrawPoly.SYM
|
||||
LowEGA in file: C:LowEGA.SYM
|
||||
PointLib in file: C:PointLib.SYM
|
||||
Declaration Analysis
|
||||
Block Analysis
|
||||
Code Generation
|
||||
Termination
|
||||
The interactive setting of the options was: S+ /R+ /T+
|
||||
Codesize: 781 bytes Datasize: 0 bytes
|
||||
End Compilation
|
||||
|
||||
C:\EGATEST>rem
|
||||
|
||||
C:\EGATEST>rem Linker requires manual entry of two real-number library file
|
||||
|
||||
C:\EGATEST>rem names unless you have renamed one set of the E87, C87, or M87
|
||||
|
||||
C:\EGATEST>rem libraries to be your standard set. If not, add prefix E87, C87,
|
||||
|
||||
C:\EGATEST>rem or M87 to library names realc.lnk and reals.lnk & enter manually
|
||||
|
||||
C:\EGATEST>rem in response to linker query. See section 5.7.2 in red manual.
|
||||
|
||||
C:\EGATEST>rem
|
||||
|
||||
C:\EGATEST>m2 link egatest
|
||||
LOGITECH MODULA-2/86 Linker, DOS 8086, Rel. 1.10, Nov 84
|
||||
Copyright (C) 1983, 1984 LOGITECH.
|
||||
|
||||
master file > egatest.LNK
|
||||
linked with:
|
||||
Terminal in file : C:\M2LIB\LNK\Terminal.LNK
|
||||
Termbase in file : C:\M2LIB\LNK\Termbase.LNK
|
||||
System in file : C:\M2LIB\LNK\System.LNK
|
||||
Keyboard in file : C:\M2LIB\LNK\Keyboard.LNK
|
||||
ASCII in file : C:\M2LIB\LNK\ASCII.LNK
|
||||
Display in file : C:\M2LIB\LNK\Display.LNK
|
||||
InOut in file : C:\M2LIB\LNK\InOut.LNK
|
||||
FileSystem in file : C:\M2LIB\LNK\FileSyst.LNK
|
||||
DiskFiles in file : C:\M2LIB\LNK\DiskFile.LNK
|
||||
LowEGA in file : C:LowEGA.LNK
|
||||
PointLib in file : C:PointLib.LNK
|
||||
Opcodes in file : C:Opcodes.LNK
|
||||
FontBumper in file : C:FontBump.LNK
|
||||
Pauses in file : C:Pauses.LNK
|
||||
Conversions in file : C:\M2LIB\LNK\Conversi.LNK
|
||||
Strings in file : C:\M2LIB\LNK\Strings.LNK
|
||||
DrawPoly in file : C:DrawPoly.LNK
|
||||
DotTime in file : DK:DotTime.LNK
|
||||
---- file not found
|
||||
DotTime in file >
|
||||
===> warning, file DK:M2LINK.LOD
|
||||
|
||||
C:\EGATEST>m2 lod2exe egatest
|
||||
lod2exe.LOD<NUL><NUL><NUL><NUL> not found in current directory or in \M2LOD
|
||||
C:\EGATEST>
|
||||
C:\EGATEST>
|
||||
C:\EGATEST>
|
||||
|
||||
*[@jeffpar](http://twitter.com/jeffpar)*
|
||||
*Jul 3, 2017*
|
||||
35
apps/pcx86/1984/modula2/README.md
Normal file
35
apps/pcx86/1984/modula2/README.md
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
---
|
||||
layout: page
|
||||
title: "Logitech Modula-2/86 Compiler (1984)"
|
||||
permalink: /apps/pcx86/1984/modula2/
|
||||
machines:
|
||||
- id: ibm5160-msdos320
|
||||
type: pcx86
|
||||
resume: 1
|
||||
state: /apps/pcx86/1984/modula2/state.json
|
||||
config: /devices/pcx86/machine/5160/ega/640kb/debugger/machine.xml
|
||||
drives: '[{name:"10Mb Hard Disk",type:3,path:"/disks/pcx86/fixed/10mb/MSDOS320-C400.json"}]'
|
||||
automount:
|
||||
A:
|
||||
name: None
|
||||
B:
|
||||
name: None
|
||||
---
|
||||
|
||||
Logitech Modula-2/86 Compiler (1984)
|
||||
------------------------------------
|
||||
|
||||
Logitech's Modula-2 Compiler (Modula-2/86 v1.10) has been installed in the machine below. The machine is
|
||||
an [IBM PC XT (Model 5160, 640Kb, 10Mb Drive) with EGA Display](/devices/pcx86/machine/5160/ega/640kb/), but
|
||||
the hard drive has been replaced with a [10Mb Drive](/disks/pcx86/fixed/10mb/) containing
|
||||
[MS-DOS 3.20 with Microsoft C 4.00](/disks/pcx86/fixed/10mb/msdos320-c400.xml), and then all the Modula-2 installation
|
||||
changes have been overlaid onto it.
|
||||
|
||||
{% include machine.html id="ibm5160-msdos320" %}
|
||||
|
||||
For more classic PC software experiences, see the PCjs collection of [IBM PC Application Demos](/apps/pcx86/).
|
||||
|
||||
References
|
||||
----------
|
||||
|
||||
* [Logitech Modula-2/86 v1.0 Manual](http://bitsavers.informatik.uni-stuttgart.de/pdf/logitech/modula-2/Logitech_Modula-2_86_1.0_Feb84.pdf)
|
||||
1
apps/pcx86/1984/modula2/state.json
Normal file
1
apps/pcx86/1984/modula2/state.json
Normal file
File diff suppressed because one or more lines are too long
|
|
@ -31,6 +31,7 @@ A list of all the software available to PCx86 machines can be found in the [IBM
|
|||
|
||||
### 1984
|
||||
|
||||
* [Logitech Modula-2/86 Compiler v1.10](/apps/pcx86/1984/modula2/)
|
||||
* [The Hitchhiker's Guide to the Galaxy](/disks/pcx86/games/infocom/hhiker/)
|
||||
|
||||
### 1985
|
||||
|
|
|
|||
|
|
@ -3,16 +3,21 @@
|
|||
<machine id="ibm5160" type="pcx86" border="1" pos="center" background="default">
|
||||
<name pos="center">IBM PC XT, 128K EGA, 640K RAM, 10Mb Hard Disk (Formatted)</name>
|
||||
<computer id="xt-ega-640k" name="IBM PC XT"/>
|
||||
<cpu id="cpu8088" model="8088"/>
|
||||
<ram id="ramLow" addr="0x00000" test="false" size="0xa0000" comment="0xa0000 (640Kb) size overrides SW1|ROM BIOS memory test has been disabled"/>
|
||||
<rom id="romHDC" addr="0xc8000" size="0x2000" file="/devices/pcx86/hdc/ibm-xebec-1982.json"/>
|
||||
<rom id="romBASIC" addr="0xf6000" size="0x8000" file="/devices/pcx86/rom/5160/basic/BASIC110.json"/>
|
||||
<rom id="romBIOS" addr="0xfe000" size="0x2000" file="/devices/pcx86/rom/5160/1982-11-08/XTBIOS-REV1.json"/>
|
||||
<video ref="/devices/pcx86/video/ibm/ega/1984-09-13/128kb-autolockfs.xml"/>
|
||||
<fdc ref="/disks/pcx86/compiled/library.xml"/>
|
||||
<cpu id="cpu8088" model="8088" autostart="true" pos="right" padRight="8px">
|
||||
<control type="button" binding="run">Run</control>
|
||||
<control type="button" binding="reset">Reset</control>
|
||||
<control type="button" binding="setSpeed">Speed</control>
|
||||
</cpu>
|
||||
<keyboard ref="/devices/pcx86/keyboard/us83-buttons-functions.xml"/>
|
||||
<chipset id="chipset" model="5160" sw1="01001101"/>
|
||||
<hdc ref="/disks/pcx86/fixed/10mb/pcdos200-empty.xml"/>
|
||||
<serial id="com1" adapter="1"/>
|
||||
<serial id="com2" adapter="2"/>
|
||||
<mouse serial="com2"/>
|
||||
</machine>
|
||||
|
|
|
|||
|
|
@ -93,11 +93,11 @@
|
|||
<disk path="/disks/pcx86/dos/microsoft/6.20/1200K/MSDOS620-DISK2.json">MS-DOS 6.20 (1.2M Disk 2)</disk>
|
||||
<disk path="/disks/pcx86/dos/microsoft/6.20/1200K/MSDOS620-DISK3.json">MS-DOS 6.20 (1.2M Disk 3)</disk>
|
||||
<disk path="/disks/pcx86/dos/microsoft/6.20/1200K/MSDOS620-DISK4.json">MS-DOS 6.20 (1.2M Disk 4)</disk>
|
||||
<disk path="/disks/pcx86/dos/microsoft/6.20/1200K/MSDOS620-SUPPDISK.json">MS-DOS 6.20 (1.2M Supp Disk)</disk>
|
||||
<disk path="/disks/pcx86/dos/microsoft/6.20/1200K/MSDOS620-SUPPDISK.json">MS-DOS 6.20 (1.2M Supp)</disk>
|
||||
<disk path="/disks/pcx86/dos/microsoft/6.20/1440K/MSDOS620-DISK1.json">MS-DOS 6.20 (1.44M Disk 1)</disk>
|
||||
<disk path="/disks/pcx86/dos/microsoft/6.20/1440K/MSDOS620-DISK2.json">MS-DOS 6.20 (1.44M Disk 2)</disk>
|
||||
<disk path="/disks/pcx86/dos/microsoft/6.20/1440K/MSDOS620-DISK3.json">MS-DOS 6.20 (1.44M Disk 3)</disk>
|
||||
<disk path="/disks/pcx86/dos/microsoft/6.20/1440K/MSDOS620-SUPPDISK.json">MS-DOS 6.20 (1.44M Supp Disk)</disk>
|
||||
<disk path="/disks/pcx86/dos/microsoft/6.20/1440K/MSDOS620-SUPPDISK.json">MS-DOS 6.20 (1.44M Supp)</disk>
|
||||
<disk path="/disks/pcx86/dos/microsoft/6.22/1200K/MSDOS622-BOOT.json">MS-DOS 6.22 (1.2M Boot)</disk>
|
||||
<disk path="/disks/pcx86/dos/microsoft/6.22/1200K/MSDOS622-DISK1.json">MS-DOS 6.22 (1.2M Disk 1)</disk>
|
||||
<disk path="/disks/pcx86/dos/microsoft/6.22/1200K/MSDOS622-DISK2.json">MS-DOS 6.22 (1.2M Disk 2)</disk>
|
||||
|
|
@ -106,7 +106,7 @@
|
|||
<disk path="/disks/pcx86/dos/microsoft/6.22/1440K/MSDOS622-DISK1.json">MS-DOS 6.22 (1.44M Disk 1)</disk>
|
||||
<disk path="/disks/pcx86/dos/microsoft/6.22/1440K/MSDOS622-DISK2.json">MS-DOS 6.22 (1.44M Disk 2)</disk>
|
||||
<disk path="/disks/pcx86/dos/microsoft/6.22/1440K/MSDOS622-DISK3.json">MS-DOS 6.22 (1.44M Disk 3)</disk>
|
||||
<disk path="/disks/pcx86/dos/microsoft/6.22/1440K/MSDOS622-SUPPDISK.json">MS-DOS 6.22 (1.44M Supp Disk)</disk>
|
||||
<disk path="/disks/pcx86/dos/microsoft/6.22/1440K/MSDOS622-SUPPDISK.json">MS-DOS 6.22 (1.44M Supp)</disk>
|
||||
<disk path="/disks/pcx86/dos/compaq/1.11/COMPAQ-DOS111.json">COMPAQ MS-DOS 1.11</disk>
|
||||
<disk path="/disks/pcx86/dos/compaq/1.12/COMPAQ-DOS112.json">COMPAQ MS-DOS 1.12</disk>
|
||||
<disk path="/disks/pcx86/dos/compaq/2.12/COMPAQ-DOS212.json">COMPAQ MS-DOS 2.12</disk>
|
||||
|
|
@ -146,7 +146,7 @@
|
|||
<disk path="/disks/pcx86/os2/ibm/1.3/OS213-DISK10.json">IBM OS/2 1.3 (1.44M Disk 10)</disk>
|
||||
<disk path="/disks/pcx86/os2/microsoft/1.0/MSOS210-INSTALL.json">MS OS/2 1.0 (1.2M Install)</disk>
|
||||
<disk path="/disks/pcx86/os2/microsoft/1.0/MSOS210-PROGRAM.json">MS OS/2 1.0 (1.2M Program)</disk>
|
||||
<disk path="/disks/pcx86/os2/microsoft/1.0/MSOS210-SUPP.json">MS OS/2 1.0 (1.2M Supplemental)</disk>
|
||||
<disk path="/disks/pcx86/os2/microsoft/1.0/MSOS210-SUPP.json">MS OS/2 1.0 (1.2M Supp)</disk>
|
||||
<disk path="/disks/pcx86/os2/misc/cpdos/286DOS-76800.json">OS/2 CP-DOS (v7.68)</disk>
|
||||
<disk path="/disks/pcx86/os2/misc/football/FOOTBALL-76817.json">OS/2 FOOTBALL (v7.68.17)</disk>
|
||||
<disk path="/disks/pcx86/os2/misc/football/FOOTBALL-44100.json">OS/2 FOOTBALL (v4.41.00)</disk>
|
||||
|
|
@ -273,11 +273,11 @@
|
|||
<disk path="/disks/pcx86/windows/win95/4.00.950/WIN95-DISK11.json">Windows 95 (Disk 11)</disk>
|
||||
<disk path="/disks/pcx86/windows/win95/4.00.950/WIN95-DISK12.json">Windows 95 (Disk 12)</disk>
|
||||
<disk path="/disks/pcx86/windows/win95/4.00.950/WIN95-DISK13.json">Windows 95 (Disk 13)</disk>
|
||||
<disk path="/disks/pcx86/minix/1.1/MINIX11-DISK1-BOOT.json">MINIX Boot (Disk 1)</disk>
|
||||
<disk path="/disks/pcx86/minix/1.1/MINIX11-DISK2-ROOT.json">MINIX Root Filesystem (Disk 2)</disk>
|
||||
<disk path="/disks/pcx86/minix/1.1/MINIX11-DISK3-USR.json">MINIX User Files (Disk 3)</disk>
|
||||
<disk path="/disks/pcx86/minix/1.1/MINIX11-DISK4-KERNEL.json">MINIX Kernel (Disk 4)</disk>
|
||||
<disk path="/disks/pcx86/minix/1.1/MINIX11-DISK5-TOOLS.json">MINIX Tools (Disk 5)</disk>
|
||||
<disk path="/disks/pcx86/minix/1.1/MINIX11-DISK1-BOOT.json">MINIX (Disk 1: Boot)</disk>
|
||||
<disk path="/disks/pcx86/minix/1.1/MINIX11-DISK2-ROOT.json">MINIX (Disk 2: Root)</disk>
|
||||
<disk path="/disks/pcx86/minix/1.1/MINIX11-DISK3-USR.json">MINIX (Disk 3: User)</disk>
|
||||
<disk path="/disks/pcx86/minix/1.1/MINIX11-DISK4-KERNEL.json">MINIX (Disk 4: Kernel)</disk>
|
||||
<disk path="/disks/pcx86/minix/1.1/MINIX11-DISK5-TOOLS.json">MINIX (Disk 5: Tools)</disk>
|
||||
<disk path="/disks/pcx86/unix/ibm/pcix/1.0/01MAINT.json">PC/IX 1.0 (MAINT)</disk>
|
||||
<disk path="/disks/pcx86/unix/ibm/pcix/1.0/02CORE1.json">PC/IX 1.0 (CORE1)</disk>
|
||||
<disk path="/disks/pcx86/unix/ibm/pcix/1.0/03CORE2.json">PC/IX 1.0 (CORE2)</disk>
|
||||
|
|
@ -387,10 +387,10 @@
|
|||
<disk path="/disks/pcx86/tools/borland/pascal/3.01a/TURBO-PASCAL-301A.json">Borland Turbo Pascal 3.01A</disk>
|
||||
<disk path="/disks/pcx86/tools/ibm/bascom/1.00/BASCOM100-DISK1.json">IBM BASIC Compiler 1.00 (Disk 1)</disk>
|
||||
<disk path="/disks/pcx86/tools/ibm/bascom/1.00/BASCOM100-DISK2.json">IBM BASIC Compiler 1.00 (Disk 2)</disk>
|
||||
<disk path="/disks/pcx86/tools/logitech/modula2/1.10/LOGITECH-MODULA2-DISK1-SYSTEM.json">Modula-2/86 1.10 (Disk 1 System)</disk>
|
||||
<disk path="/disks/pcx86/tools/logitech/modula2/1.10/LOGITECH-MODULA2-DISK2-COMPILER.json">Modula-2/86 1.10 (Disk 2 Compiler)</disk>
|
||||
<disk path="/disks/pcx86/tools/logitech/modula2/1.10/LOGITECH-MODULA2-DISK3-LINKER.json">Modula-2/86 1.10 (Disk 3 Linker)</disk>
|
||||
<disk path="/disks/pcx86/tools/logitech/modula2/1.10/LOGITECH-MODULA2-DISK4-DEBUGGER.json">Modula-2/86 1.10 (Disk 4 Debugger)</disk>
|
||||
<disk path="/disks/pcx86/tools/logitech/modula2/1.10/LOGITECH-MODULA2-DISK1-SYSTEM.json">Modula-2/86 1.10 (1-System)</disk>
|
||||
<disk path="/disks/pcx86/tools/logitech/modula2/1.10/LOGITECH-MODULA2-DISK2-COMPILER.json">Modula-2/86 1.10 (2-Compiler)</disk>
|
||||
<disk path="/disks/pcx86/tools/logitech/modula2/1.10/LOGITECH-MODULA2-DISK3-LINKER.json">Modula-2/86 1.10 (3-Linker)</disk>
|
||||
<disk path="/disks/pcx86/tools/logitech/modula2/1.10/LOGITECH-MODULA2-DISK4-DEBUGGER.json">Modula-2/86 1.10 (4-Debugger)</disk>
|
||||
<disk path="/disks/pcx86/tools/microsoft/basic/BASCOM536.json">MS BASIC (Compiler v5.36)</disk>
|
||||
<disk path="/disks/pcx86/tools/microsoft/basic/QUICKBASIC-DISK1.json">MS BASIC (QuickBASIC v2.0)</disk>
|
||||
<disk path="/disks/pcx86/tools/microsoft/c/2.03/MSC203-INSTALLED.json">MS C 2.03 (Installed)</disk>
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@
|
|||
<name>MS-DOS 6.20 (1.2M Disk 4)</name>
|
||||
</disk>
|
||||
<disk id="disk05" size="1228800" chs="80:2:15" img="archive/1200K/MSDOS620-SUPPDISK.img" href="/disks/pcx86/dos/microsoft/6.20/1200K/MSDOS620-SUPPDISK.json" md5="46a6ba5c08e33d48a2e8489f04f921e2" md5json="cd9442813cf6f7915c28e80f3d3f87f0">
|
||||
<name>MS-DOS 6.20 (1.2M Supp Disk)</name>
|
||||
<name>MS-DOS 6.20 (1.2M Supp)</name>
|
||||
</disk>
|
||||
<disk id="disk06" size="1474560" chs="80:2:18" img="archive/1440K/MSDOS620-DISK1.img" href="/disks/pcx86/dos/microsoft/6.20/1440K/MSDOS620-DISK1.json" md5="6c2f2b925c579a8ec1370a5437664e22" md5json="881f9fbc3a13a4ca6f65078813265cc2">
|
||||
<name>MS-DOS 6.20 (1.44M Disk 1)</name>
|
||||
|
|
@ -32,6 +32,6 @@
|
|||
<name>MS-DOS 6.20 (1.44M Disk 3)</name>
|
||||
</disk>
|
||||
<disk id="disk09" size="1474560" chs="80:2:18" img="archive/1440K/MSDOS620-SUPPDISK.img" href="/disks/pcx86/dos/microsoft/6.20/1440K/MSDOS620-SUPPDISK.json" md5="58d88a6f4f5b79c681745d39f1b18da1" md5json="9d9b8fda0b4b67605dfbef55e34d44d6">
|
||||
<name>MS-DOS 6.20 (1.44M Supp Disk)</name>
|
||||
<name>MS-DOS 6.20 (1.44M Supp)</name>
|
||||
</disk>
|
||||
</manifest>
|
||||
|
|
|
|||
|
|
@ -32,6 +32,6 @@
|
|||
<name>MS-DOS 6.22 (1.44M Disk 3)</name>
|
||||
</disk>
|
||||
<disk id="disk09" size="1474560" chs="80:2:18" img="archive/1440K/MSDOS622-SUPPDISK.img" href="/disks/pcx86/dos/microsoft/6.22/1440K/MSDOS622-SUPPDISK.json" md5="4bde87e229f814f3e252ced5f3f6196a" md5json="6f1ee04cc8433b73d3936b3694d0dedb">
|
||||
<name>MS-DOS 6.22 (1.44M Supp Disk)</name>
|
||||
<name>MS-DOS 6.22 (1.44M Supp)</name>
|
||||
</disk>
|
||||
</manifest>
|
||||
|
|
|
|||
|
|
@ -4,18 +4,18 @@
|
|||
<title>MINIX</title>
|
||||
<version>1.1</version>
|
||||
<disk id="disk01" size="1228800" chs="80:2:15" img="archive/MINIX11-DISK1-BOOT.img" href="/disks/pcx86/minix/1.1/MINIX11-DISK1-BOOT.json" md5="9b291bfcaa4e5827498a695f367a1ba3" md5json="af44589551017d9e89a7612cb12841bd">
|
||||
<name>MINIX Boot (Disk 1)</name>
|
||||
<name>MINIX (Disk 1: Boot)</name>
|
||||
</disk>
|
||||
<disk id="disk02" size="1228800" chs="80:2:15" img="archive/MINIX11-DISK2-ROOT.img" href="/disks/pcx86/minix/1.1/MINIX11-DISK2-ROOT.json" md5="76da894a087ebde24c3824b9ca5db986" md5json="eb9bfcef965ae843375f8dcd70c139be">
|
||||
<name>MINIX Root Filesystem (Disk 2)</name>
|
||||
<name>MINIX (Disk 2: Root)</name>
|
||||
</disk>
|
||||
<disk id="disk03" size="1228800" chs="80:2:15" img="archive/MINIX11-DISK3-USR.img" href="/disks/pcx86/minix/1.1/MINIX11-DISK3-USR.json" md5="3da7a86d60b21354fab6cf6740101fa6" md5json="acb7015697562bb5c3d126e19482a7ef">
|
||||
<name>MINIX User Files (Disk 3)</name>
|
||||
<name>MINIX (Disk 3: User)</name>
|
||||
</disk>
|
||||
<disk id="disk04" size="1228800" chs="80:2:15" img="archive/MINIX11-DISK4-KERNEL.img" href="/disks/pcx86/minix/1.1/MINIX11-DISK4-KERNEL.json" md5="552a6429014163771bf6a3d5e70df212" md5json="b0410747e618817524bdad186b367a95">
|
||||
<name>MINIX Kernel (Disk 4)</name>
|
||||
<name>MINIX (Disk 4: Kernel)</name>
|
||||
</disk>
|
||||
<disk id="disk05" size="1228800" chs="80:2:15" img="archive/MINIX11-DISK5-TOOLS.img" href="/disks/pcx86/minix/1.1/MINIX11-DISK5-TOOLS.json" md5="7f7b045290374b198623ad25d125251f" md5json="81c1d9b807db35607c29e4b0b836672e">
|
||||
<name>MINIX Tools (Disk 5)</name>
|
||||
<name>MINIX (Disk 5: Tools)</name>
|
||||
</disk>
|
||||
</manifest>
|
||||
|
|
|
|||
|
|
@ -9,6 +9,6 @@
|
|||
<name>MS OS/2 1.0 (1.2M Program)</name>
|
||||
</disk>
|
||||
<disk id="disk03" size="1228800" chs="80:2:15" img="archive/MSOS210-SUPP.img" href="/disks/pcx86/os2/microsoft/1.0/MSOS210-SUPP.json" md5="317da1f82fa43b1b7677afc71996fac0" md5json="b74f49b57e45c7cb9d56b1b6a57281f6">
|
||||
<name>MS OS/2 1.0 (1.2M Supplemental)</name>
|
||||
<name>MS OS/2 1.0 (1.2M Supp)</name>
|
||||
</disk>
|
||||
</manifest>
|
||||
|
|
|
|||
|
|
@ -8,15 +8,15 @@
|
|||
<author>Logitech</author>
|
||||
<releaseDate>December 10, 1984</releaseDate>
|
||||
<disk id="disk01" size="368640" chs="40:2:9" img="archive/LOGITECH-MODULA2-DISK1-SYSTEM.img" href="/disks/pcx86/tools/logitech/modula2/1.10/LOGITECH-MODULA2-DISK1-SYSTEM.json" md5="53bd4195a261c73e82681d2e2a23dc8a" md5json="6f3e72ec1e951398eafcdd4e28ff89d7">
|
||||
<name>Modula-2/86 1.10 (Disk 1 System)</name>
|
||||
<name>Modula-2/86 1.10 (1-System)</name>
|
||||
</disk>
|
||||
<disk id="disk02" size="368640" chs="40:2:9" img="archive/LOGITECH-MODULA2-DISK2-COMPILER.img" href="/disks/pcx86/tools/logitech/modula2/1.10/LOGITECH-MODULA2-DISK2-COMPILER.json" md5="24988fcfa378ca8bb0e57cf39ed2f134" md5json="e7386c5d85a857e88bac20ab5e5baa2b">
|
||||
<name>Modula-2/86 1.10 (Disk 2 Compiler)</name>
|
||||
<name>Modula-2/86 1.10 (2-Compiler)</name>
|
||||
</disk>
|
||||
<disk id="disk03" size="368640" chs="40:2:9" img="archive/LOGITECH-MODULA2-DISK3-LINKER.img" href="/disks/pcx86/tools/logitech/modula2/1.10/LOGITECH-MODULA2-DISK3-LINKER.json" md5="08b42645e093196448b4a0b54f08092a" md5json="adbfe6d1707091df5c37740a2d730be0">
|
||||
<name>Modula-2/86 1.10 (Disk 3 Linker)</name>
|
||||
<name>Modula-2/86 1.10 (3-Linker)</name>
|
||||
</disk>
|
||||
<disk id="disk04" size="368640" chs="40:2:9" img="archive/LOGITECH-MODULA2-DISK4-DEBUGGER.img" href="/disks/pcx86/tools/logitech/modula2/1.10/LOGITECH-MODULA2-DISK4-DEBUGGER.json" md5="ece369d133dc9060d9708a2392edd1f9" md5json="417d650ebfca3cd758ad32a99a7b950c">
|
||||
<name>Modula-2/86 1.10 (Disk 4 Debugger)</name>
|
||||
<name>Modula-2/86 1.10 (4-Debugger)</name>
|
||||
</disk>
|
||||
</manifest>
|
||||
|
|
|
|||
|
|
@ -1095,7 +1095,12 @@ HTMLOut.prototype.getDirList = function(sToken, sIndent, aParms)
|
|||
var match = re.exec(asFiles[i]);
|
||||
if (match) asFiles[i] = "///".substr(0, 4 - match[1].length) + asFiles[i];
|
||||
}
|
||||
asFiles.sort();
|
||||
|
||||
if (path.basename(obj.sPath) != "blog") {
|
||||
asFiles.sort();
|
||||
} else {
|
||||
asFiles.sort(function(a, b) {return a < b? 1 : -1;});
|
||||
}
|
||||
|
||||
for (var iFile = 0; iFile < asFiles.length; iFile++) {
|
||||
var sBaseName = asFiles[iFile].replace(/\//g, "");
|
||||
|
|
|
|||
|
|
@ -31,6 +31,7 @@
|
|||
<div class="common-top-left">
|
||||
<ul>
|
||||
<li><a href="/">PCjs</a></li>
|
||||
<li><a href="/blog/">Blog</a></li>
|
||||
<li><a href="/apps/">Apps</a></li>
|
||||
<li><a href="/devices/">Devices</a></li>
|
||||
<li><a href="/disks/">Disks</a></li>
|
||||
|
|
|
|||
|
|
@ -33,6 +33,7 @@
|
|||
<div class="common-top-left">
|
||||
<ul>
|
||||
<li><a href="/">PCjs</a></li>
|
||||
<li><a href="/blog/">Blog</a></li>
|
||||
<li><a href="/apps/">Apps</a></li>
|
||||
<li><a href="/devices/">Devices</a></li>
|
||||
<li><a href="/disks/">Disks</a></li>
|
||||
|
|
|
|||
|
|
@ -31,6 +31,7 @@
|
|||
<div class="common-top-left">
|
||||
<ul>
|
||||
<li><a href="/">PCjs</a></li>
|
||||
<li><a href="/blog/">Blog</a></li>
|
||||
<li><a href="/apps/">Apps</a></li>
|
||||
<li><a href="/devices/">Devices</a></li>
|
||||
<li><a href="/disks/">Disks</a></li>
|
||||
|
|
|
|||
|
|
@ -31,6 +31,7 @@
|
|||
<div class="common-top-left">
|
||||
<ul>
|
||||
<li><a href="/">PCjs</a></li>
|
||||
<li><a href="/blog/">Blog</a></li>
|
||||
<li><a href="/apps/">Apps</a></li>
|
||||
<li><a href="/devices/">Devices</a></li>
|
||||
<li><a href="/disks/">Disks</a></li>
|
||||
|
|
|
|||
|
|
@ -31,6 +31,7 @@
|
|||
<div class="common-top-left">
|
||||
<ul>
|
||||
<li><a href="/">PCjs</a></li>
|
||||
<li><a href="/blog/">Blog</a></li>
|
||||
<li><a href="/apps/">Apps</a></li>
|
||||
<li><a href="/devices/">Devices</a></li>
|
||||
<li><a href="/disks/">Disks</a></li>
|
||||
|
|
|
|||
|
|
@ -31,6 +31,7 @@
|
|||
<div class="common-top-left">
|
||||
<ul>
|
||||
<li><a href="/">PCjs</a></li>
|
||||
<li><a href="/blog/">Blog</a></li>
|
||||
<li><a href="/apps/">Apps</a></li>
|
||||
<li><a href="/devices/">Devices</a></li>
|
||||
<li><a href="/disks/">Disks</a></li>
|
||||
|
|
|
|||
Loading…
Reference in a new issue