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 Application Archives
--- ---
Browse classic [IBM PC](pc/) and [Challenger 1P](c1p/) software that you can run with [PCjs](/docs/about/pcjs/) Browse classic application software for the following machines:
and [C1Pjs](/docs/c1pjs/).
- [IBM PC](pc/)
- [Challenger 1P](c1p/)
### Software Application Manifests ### Software Application Manifests
In the PCjs Project, every complete software package is stored in its own folder, either as a set of individual 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 - [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) 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) 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/) - [6502 Assembler/Disassembler](assembler/)
- [BASIC Extensions](basicext/BASICEXT.json) - [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) - [STAR WARS](OSI/STARWARS.BAS)
- [TRIG TUTOR](OSI/TRIGTUTOR.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) - [CHECKERS](jeffpar/CHECKERS.BAS)
- [HANG WOMAN](jeffpar/HANGWOMAN.BAS) - [HANG WOMAN](jeffpar/HANGWOMAN.BAS)

View file

@ -7,7 +7,7 @@ permalink: /apps/c1p/
Challenger 1P Applications Challenger 1P Applications
--- ---
All C1P applications come in two flavors: [C1Pjs](/docs/c1pjs/) runs Challenger 1P (C1P) applications written in:
- [BASIC](BASIC/) - [BASIC](BASIC/)
- [6502 Machine-Language](6502/) - [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 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 PCjs Project. It is currently playable only in desktop browsers and uses the following hard-coded key mappings:
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 - 1: One Player
early test case for another classic CPU that we can add to the PCjs toolbox. - 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. 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, 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. 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, The [Disk Library](/disks/pc/library.xml) is a superset, including operating systems, application software,
computer diagnostics, programming tools, and more. 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/). 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) PC8080 is currently comprised of the following non-shared components, as listed in [package.json](../../package.json)
(see the *pc8080Files* property): (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]. * TODO: We need a mechanism to determine the "active" display, instead of hard-coding this to aVideo[0].
* */
this.aVideo[0].setFocus(); this.aVideo[0].setFocus();
if (fScroll && window) { if (fScroll && window) {
window.scrollTo(x, y); window.scrollTo(x, y);
} }
*/
} }
}; };

View file

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