Updated the VisiCalc demo with an autoType sequence, a fresh disk image, new state file, and reference cards; also, updated autoType support to cancel autoType if a saved machine state is loaded
This commit is contained in:
parent
935ece2c26
commit
5e0e5b7256
16 changed files with 69 additions and 46 deletions
|
|
@ -7,17 +7,38 @@ machines:
|
|||
id: ibm5150
|
||||
config: /devices/pcx86/machine/5150/mda/64kb/machine.xml
|
||||
state: /apps/pcx86/1981/visicalc/state.json
|
||||
autoMount:
|
||||
A:
|
||||
path: /disks/pcx86/dos/ibm/1.00/PCDOS100.json
|
||||
B:
|
||||
path: /apps/pcx86/1981/visicalc/VISICALC1981.json
|
||||
autoType: 8-10-81\\rb:\\rvc\\r
|
||||
---
|
||||
|
||||
VisiCalc (1981)
|
||||
---
|
||||
---------------
|
||||
|
||||
{% include machine.html id="ibm5150" %}
|
||||
|
||||
VisiCalc Reference
|
||||
------------------
|
||||
|
||||
[From the [website](http://www.bricklin.com/history/refcard1.htm) of Dan Bricklin, co-author of VisiCalc]
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
VisiCalc History
|
||||
---
|
||||
----------------
|
||||
See [http://www.bricklin.com/history/vcexecutable.htm](http://www.bricklin.com/history/vcexecutable.htm)
|
||||
|
||||
VisiCalc License
|
||||
---
|
||||
----------------
|
||||
See [http://www.bricklin.com/history/vclicense.htm](http://www.bricklin.com/history/vclicense.htm)
|
||||
|
|
|
|||
1
apps/pcx86/1981/visicalc/VISICALC1981.json
Normal file
1
apps/pcx86/1981/visicalc/VISICALC1981.json
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -12,10 +12,9 @@
|
|||
<releaseDate>December 16, 1981</releaseDate>
|
||||
<license href="http://www.bricklin.com/history/vclicense.htm">Lotus Development</license>
|
||||
<machine href="/devices/pcx86/machine/5150/mda/64kb/machine.xml" state="/apps/pcx86/1981/visicalc/state.json"/>
|
||||
<disk id="disk01" size="163840" chs="40:1:8" dir="archive/" href="/apps/pcx86/1981/visicalc/disk.json" md5="61494f998d5fb0e31e7b8bd99f1cc588" md5json="3ad82ed815725e6bd786f92a4714e84f">
|
||||
<disk id="disk01" chs="40:1:8" dir="archive/visicalc.81" href="/apps/pcx86/1981/visicalc/VISICALC1981.json" md5="5b77efdfb86aa747edb49811db75021d" md5json="b1a45cb769cf04daa259263a92bacf16">
|
||||
<name>VisiCalc (1981)</name>
|
||||
<file size="27520" time="1981-12-16 23:00:00" attr="0x20" md5="28997dfedb2440c6054d8be835be8634">VC.COM</file>
|
||||
<file dir="../">README.md</file>
|
||||
<link href="http://www.bricklin.com/history/vclicense.htm">VisiCalc License</link>
|
||||
</disk>
|
||||
</manifest>
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
BIN
apps/pcx86/1981/visicalc/visicalc-refcard1-2.gif
Normal file
BIN
apps/pcx86/1981/visicalc/visicalc-refcard1-2.gif
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 86 KiB |
BIN
apps/pcx86/1981/visicalc/visicalc-refcard3-4.gif
Normal file
BIN
apps/pcx86/1981/visicalc/visicalc-refcard3-4.gif
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 77 KiB |
BIN
apps/pcx86/1981/visicalc/visicalc-refcard5-6.gif
Normal file
BIN
apps/pcx86/1981/visicalc/visicalc-refcard5-6.gif
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 64 KiB |
BIN
apps/pcx86/1981/visicalc/visicalc-refcard7-8.gif
Normal file
BIN
apps/pcx86/1981/visicalc/visicalc-refcard7-8.gif
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 82 KiB |
BIN
apps/pcx86/1981/visicalc/visicalc-refcard9-10.gif
Normal file
BIN
apps/pcx86/1981/visicalc/visicalc-refcard9-10.gif
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 61 KiB |
|
|
@ -144,10 +144,10 @@ and **TOPTEN**:
|
|||
[z],55197,LARGE,07-23-81
|
||||
|
||||
All those files were deleted as well, leaving 8 files dated "Aug 11 1983". Next, I used the PCjs
|
||||
[DiskDump](/modules/diskdump/) utility to create a disk image from a directory ("archive/disk") containing
|
||||
[DiskDump](/modules/diskdump/) utility to create a disk image from a directory ("archive/advemath.100") containing
|
||||
those files:
|
||||
|
||||
diskdump --dir=archive/disk --format=json --output=ADVENTMATH100.json --manifest
|
||||
diskdump --dir=archive/advemath.100 --format=json --output=ADVENTMATH100.json --manifest
|
||||
|
||||
Here's a directory listing of the resulting 160Kb disk image:
|
||||
|
||||
|
|
|
|||
|
|
@ -509,7 +509,7 @@
|
|||
<disk path="/disks/pcx86/games/id/wolf3d/1WOLF14.json">Wolfenstein 3D 1.4</disk>
|
||||
<disk path="/disks/pcx86/games/microsoft/flightsim/1982/FLIGHTSIM-1982.json">MS Flight Simulator (1982)</disk>
|
||||
<disk path="/disks/pcx86/games/microsoft/flightsim/1984/FLIGHTSIM-1984.json">MS Flight Simulator (1984)</disk>
|
||||
<disk path="/apps/pcx86/1981/visicalc/disk.json">VisiCalc (1981)</disk>
|
||||
<disk path="/apps/pcx86/1981/visicalc/VISICALC1981.json">VisiCalc (1981)</disk>
|
||||
<disk path="/apps/pcx86/1982/esuite/disk.json">Executive Suite (1982)</disk>
|
||||
<disk path="/apps/pcx86/1982/ratbas/RATBAS213.json">RatBas 2.13</disk>
|
||||
<disk path="/apps/pcx86/1983/adventmath/ADVENTMATH100.json">Adventures in Math 1.00</disk>
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@
|
|||
<disk path="/disks/pcx86/dos/ibm/2.00/PCDOS200-DISK1.json">PC-DOS 2.00 (Disk 1)</disk>
|
||||
<disk path="/disks/pcx86/dos/ibm/2.00/PCDOS200-DISK2.json">PC-DOS 2.00 (Disk 2)</disk>
|
||||
<disk path="/disks/pcx86/games/microsoft/adventure/ADVENTURE-1981.json">Microsoft Adventure</disk>
|
||||
<disk path="/apps/pcx86/1981/visicalc/disk.json">VisiCalc (1981)</disk>
|
||||
<disk path="/apps/pcx86/1981/visicalc/VISICALC1981.json">VisiCalc (1981)</disk>
|
||||
<disk path="/apps/pcx86/1983/adventmath/ADVENTMATH100.json">Adventures in Math 1.00</disk>
|
||||
</control>
|
||||
<control type="button" binding="loadDisk">Load</control>
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -736,30 +736,7 @@ class Keyboard extends Component {
|
|||
break;
|
||||
}
|
||||
}
|
||||
|
||||
this.initState();
|
||||
|
||||
/*
|
||||
* The current (assumed) physical (and simulated) states of the various shift/lock keys.
|
||||
*
|
||||
* TODO: Determine how (or whether) we can query the browser's initial shift/lock key states.
|
||||
*/
|
||||
this.bitsState = this.bitsStateSim = 0;
|
||||
|
||||
/*
|
||||
* New scan codes are "pushed" onto abBuffer and then "shifted" off.
|
||||
*/
|
||||
this.abBuffer = [];
|
||||
this.fAdvance = true;
|
||||
|
||||
this.prevCharDown = 0;
|
||||
this.prevKeyDown = 0;
|
||||
|
||||
/*
|
||||
* Make sure the auto-injection buffer is empty (an injection could have been in progress on any reset after the first).
|
||||
*/
|
||||
this.autoInject = null;
|
||||
this.sInjectBuffer = "";
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -801,10 +778,36 @@ class Keyboard extends Component {
|
|||
initState(data)
|
||||
{
|
||||
var i = 0;
|
||||
if (data === undefined) data = [];
|
||||
if (!data) {
|
||||
data = [];
|
||||
this.autoInject = null;
|
||||
} else {
|
||||
this.autoInject = this.autoType;
|
||||
}
|
||||
this.fClock = this.fAdvance = data[i++];
|
||||
this.fData = data[i];
|
||||
this.bCmdPending = 0; // when non-zero, a command is pending (eg, SET_LED or SET_RATE)
|
||||
|
||||
/*
|
||||
* The current (assumed) physical (and simulated) states of the various shift/lock keys.
|
||||
*
|
||||
* TODO: Determine how (or whether) we can query the browser's initial shift/lock key states.
|
||||
*/
|
||||
this.bitsState = this.bitsStateSim = 0;
|
||||
|
||||
/*
|
||||
* New scan codes are "pushed" onto abBuffer and then "shifted" off.
|
||||
*/
|
||||
this.abBuffer = [];
|
||||
this.fAdvance = true;
|
||||
|
||||
this.prevCharDown = 0;
|
||||
this.prevKeyDown = 0;
|
||||
|
||||
/*
|
||||
* Make sure the auto-injection buffer is empty (an injection could have been in progress on any reset after the first).
|
||||
*/
|
||||
this.sInjectBuffer = "";
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue