Space Invaders!

This commit is contained in:
Jeff Parsons 2016-05-14 23:53:49 -07:00
commit 09f4db3455
10 changed files with 21 additions and 15 deletions

View file

@ -6,9 +6,11 @@ permalink: /apps/
Application Archives
---
Browse classic [IBM PC](pc/) and [Challenger 1P](c1p/) software that you can run with [PCjs](/docs/about/pcjs/)
and [C1Pjs](/docs/c1pjs/).
Browse classic application software for the following machines:
- [IBM PC](pc/)
- [Challenger 1P](c1p/)
### Software Application Manifests
In the PCjs Project, every complete software package is stored in its own folder, either as a set of individual

View file

@ -13,4 +13,4 @@ The project contains the following 6502 machine-language tests:
- [VFLAG](tests/vflag/vflag.asm): Demonstrate that the V flag works as described
Along with a variety of [6502 Machine-Language Programs](jeffpar/) written by [Jeff Parsons](https://twitter.com/jeffpar)
in 1979-1980.
from 1979 to 1980.

View file

@ -8,7 +8,7 @@ Challenger 1P Machine-Language Programs
---
The project contains the following 6502 machine-language programs written by [Jeff Parsons](https://twitter.com/jeffpar)
in 1979-1980:
from 1979 to 1980:
- [6502 Assembler/Disassembler](assembler/)
- [BASIC Extensions](basicext/BASICEXT.json)

View file

@ -17,7 +17,7 @@ The following BASIC applications were supplied by Ohio Scientific:
- [STAR WARS](OSI/STARWARS.BAS)
- [TRIG TUTOR](OSI/TRIGTUTOR.BAS)
We also have a variety of BASIC programs written by [Jeff Parsons](https://twitter.com/jeffpar) in 1979-1980:
We also have a variety of BASIC programs written by [Jeff Parsons](https://twitter.com/jeffpar) from 1979 to 1980:
- [CHECKERS](jeffpar/CHECKERS.BAS)
- [HANG WOMAN](jeffpar/HANGWOMAN.BAS)

View file

@ -7,7 +7,7 @@ permalink: /apps/c1p/
Challenger 1P Applications
---
All C1P applications come in two flavors:
[C1Pjs](/docs/c1pjs/) runs Challenger 1P (C1P) applications written in:
- [BASIC](BASIC/)
- [6502 Machine-Language](6502/)

View file

@ -12,10 +12,14 @@ Space Invaders (1978)
---
This is a test of [PC8080](/modules/pc8080/), a new 8080-based machine emulator recently added to the
PCjs Project. It's a work-in-progress, so it's not playable yet. And the goal is not to build
yet-another Space Invaders/Arcade Machine emulator -- that's been done many times over -- but to start with
a well-understood 8080-based machine architecture that doesn't need a lot of peripherals, and use it as an
early test case for another classic CPU that we can add to the PCjs toolbox.
PCjs Project. It is currently playable only in desktop browsers and uses the following hard-coded key mappings:
- 1: One Player
- 2: Two Player
- 3: Insert Coin
- A: Move Left
- D: Move Right
- L: Fire Missile
Assorted [Space Invaders Hardware Notes](#space-invaders-hardware-notes) are collected below.

View file

@ -22,7 +22,7 @@ machines that automatically run the software. Ideally, everything in the librar
and linked to a page that describes the software in more detail, along with a live demonstration of the software,
but that's not yet a reality.
For application demos, see the [IBM PC Application Archive](/apps/pc/), which focuses excusively on applications.
For application demos, see the [Application Archive](/apps/), which focuses excusively on applications.
The [Disk Library](/disks/pc/library.xml) is a superset, including operating systems, application software,
computer diagnostics, programming tools, and more.

View file

@ -11,7 +11,8 @@ Overview
---
PC8080 is our 8080-based machine emulation module. The code is derived from [PCjs](/modules/pcjs/).
It is still a work-in-progress. See the list of available [PC8080 Machines](/devices/pc8080/machine/).
It is still a work-in-progress. See the list of available [PC8080 Machines](/devices/pc8080/machine/), including
[Space Invaders (1978)](/devices/pc8080/machine/invaders/).
PC8080 is currently comprised of the following non-shared components, as listed in [package.json](../../package.json)
(see the *pc8080Files* property):

View file

@ -1432,12 +1432,11 @@ Computer.prototype.updateFocus = function(fScroll)
}
/*
* TODO: We need a mechanism to determine the "active" display, instead of hard-coding this to aVideo[0].
*
*/
this.aVideo[0].setFocus();
if (fScroll && window) {
window.scrollTo(x, y);
}
*/
}
};

View file

@ -229,7 +229,7 @@ Keyboard.STUPID_KEYCODES[Keyboard.KEYCODE.FF_DASH] = Keyboard.ASCII['-'];
Keyboard.SOFTCODES = {
'1p': Keyboard.KEYCODE.ONE,
'2p': Keyboard.KEYCODE.TWO,
'coin': Keyboard.KEYCODE.FIVE,
'coin': Keyboard.KEYCODE.THREE,
'left': Keyboard.KEYCODE.LEFT,
'right': Keyboard.KEYCODE.RIGHT,
'fire': Keyboard.KEYCODE.SPACE