mirror of
https://github.com/catseye/SixtyPical.git
synced 2024-11-25 07:32:16 +00:00
Add architecture-dependent "joy2delta.60p" to "standard library".
This commit is contained in:
parent
dc4677ade8
commit
1b5f4c0c4b
@ -24,6 +24,8 @@ History of SixtyPical
|
|||||||
generation for constructs in tail position, notably
|
generation for constructs in tail position, notably
|
||||||
tail optimization of `calls`, but also for `goto`s and
|
tail optimization of `calls`, but also for `goto`s and
|
||||||
`if` blocks at the end of a routine.
|
`if` blocks at the end of a routine.
|
||||||
|
* Began collecting architecture-specific and portable
|
||||||
|
include-files for a nascent "standard library".
|
||||||
|
|
||||||
0.20
|
0.20
|
||||||
----
|
----
|
||||||
|
7
TODO.md
7
TODO.md
@ -78,16 +78,11 @@ zero-page locations to be re-used.
|
|||||||
Implementation
|
Implementation
|
||||||
--------------
|
--------------
|
||||||
|
|
||||||
### Line numbers in analysis error messages
|
### Filename and line number in analysis error messages
|
||||||
|
|
||||||
For analysis errors, there is a line number, but it's the line of the routine
|
For analysis errors, there is a line number, but it's the line of the routine
|
||||||
after the routine in which the analysis error occurred. Fix this.
|
after the routine in which the analysis error occurred. Fix this.
|
||||||
|
|
||||||
### Libraries
|
|
||||||
|
|
||||||
Now that we have dead-code removal, establish some libraries of reusable
|
|
||||||
routines.
|
|
||||||
|
|
||||||
Blue-skying
|
Blue-skying
|
||||||
-----------
|
-----------
|
||||||
|
|
||||||
|
@ -2,6 +2,8 @@
|
|||||||
// * Demo Game for SixtyPical *
|
// * Demo Game for SixtyPical *
|
||||||
// ****************************
|
// ****************************
|
||||||
|
|
||||||
|
include "joy2delta.60p"
|
||||||
|
|
||||||
// ----------------------------------------------------------------
|
// ----------------------------------------------------------------
|
||||||
// Type Definitions
|
// Type Definitions
|
||||||
// ----------------------------------------------------------------
|
// ----------------------------------------------------------------
|
||||||
@ -56,7 +58,6 @@ byte vic_border @ 53280
|
|||||||
byte vic_bg @ 53281
|
byte vic_bg @ 53281
|
||||||
byte table[2048] screen @ 1024
|
byte table[2048] screen @ 1024
|
||||||
byte table[2048] colormap @ 55296
|
byte table[2048] colormap @ 55296
|
||||||
byte joy2 @ $dc00
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------
|
// ----------------------------------------------------------------
|
||||||
// Global Variables
|
// Global Variables
|
||||||
@ -69,7 +70,6 @@ word pos
|
|||||||
word new_pos
|
word new_pos
|
||||||
|
|
||||||
word table[256] actor_delta
|
word table[256] actor_delta
|
||||||
word delta
|
|
||||||
|
|
||||||
byte player_died
|
byte player_died
|
||||||
|
|
||||||
@ -103,39 +103,6 @@ vector game_state_routine
|
|||||||
// Utility Routines
|
// Utility Routines
|
||||||
// ----------------------------------------------------------------
|
// ----------------------------------------------------------------
|
||||||
|
|
||||||
define read_stick routine
|
|
||||||
inputs joy2
|
|
||||||
outputs delta
|
|
||||||
trashes a, x, z, n
|
|
||||||
{
|
|
||||||
ld x, joy2
|
|
||||||
ld a, x
|
|
||||||
and a, 1 // up
|
|
||||||
if z {
|
|
||||||
copy $ffd8, delta // -40
|
|
||||||
} else {
|
|
||||||
ld a, x
|
|
||||||
and a, 2 // down
|
|
||||||
if z {
|
|
||||||
copy word 40, delta
|
|
||||||
} else {
|
|
||||||
ld a, x
|
|
||||||
and a, 4 // left
|
|
||||||
if z {
|
|
||||||
copy $ffff, delta // -1
|
|
||||||
} else {
|
|
||||||
ld a, x
|
|
||||||
and a, 8 // right
|
|
||||||
if z {
|
|
||||||
copy word 1, delta
|
|
||||||
} else {
|
|
||||||
copy word 0, delta
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// You can repeatedly (i.e. as part of actor logic or an IRQ handler)
|
// You can repeatedly (i.e. as part of actor logic or an IRQ handler)
|
||||||
// call this routine.
|
// call this routine.
|
||||||
// Upon return, if carry is set, the button was pressed then released.
|
// Upon return, if carry is set, the button was pressed then released.
|
||||||
|
@ -1,40 +1,6 @@
|
|||||||
|
include "joy2delta.60p"
|
||||||
|
|
||||||
word screen @ 1024
|
word screen @ 1024
|
||||||
byte joy2 @ $dc00
|
|
||||||
|
|
||||||
word delta
|
|
||||||
|
|
||||||
define read_stick routine
|
|
||||||
inputs joy2
|
|
||||||
outputs delta
|
|
||||||
trashes a, x, z, n
|
|
||||||
{
|
|
||||||
ld x, joy2
|
|
||||||
ld a, x
|
|
||||||
and a, 1 // up
|
|
||||||
if z {
|
|
||||||
copy $ffd8, delta // -40
|
|
||||||
} else {
|
|
||||||
ld a, x
|
|
||||||
and a, 2 // down
|
|
||||||
if z {
|
|
||||||
copy word 40, delta
|
|
||||||
} else {
|
|
||||||
ld a, x
|
|
||||||
and a, 4 // left
|
|
||||||
if z {
|
|
||||||
copy $ffff, delta // -1
|
|
||||||
} else {
|
|
||||||
ld a, x
|
|
||||||
and a, 8 // right
|
|
||||||
if z {
|
|
||||||
copy word 1, delta
|
|
||||||
} else {
|
|
||||||
copy word 0, delta
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
define main routine
|
define main routine
|
||||||
inputs joy2
|
inputs joy2
|
||||||
|
36
include/c64/joy2delta.60p
Normal file
36
include/c64/joy2delta.60p
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
byte joy2 @ $dc00
|
||||||
|
|
||||||
|
word delta
|
||||||
|
|
||||||
|
define read_stick routine
|
||||||
|
inputs joy2
|
||||||
|
outputs delta
|
||||||
|
trashes a, x, z, n
|
||||||
|
{
|
||||||
|
ld x, joy2
|
||||||
|
ld a, x
|
||||||
|
and a, 1 // up
|
||||||
|
if z {
|
||||||
|
copy $ffd8, delta // -40
|
||||||
|
} else {
|
||||||
|
ld a, x
|
||||||
|
and a, 2 // down
|
||||||
|
if z {
|
||||||
|
copy word 40, delta
|
||||||
|
} else {
|
||||||
|
ld a, x
|
||||||
|
and a, 4 // left
|
||||||
|
if z {
|
||||||
|
copy $ffff, delta // -1
|
||||||
|
} else {
|
||||||
|
ld a, x
|
||||||
|
and a, 8 // right
|
||||||
|
if z {
|
||||||
|
copy word 1, delta
|
||||||
|
} else {
|
||||||
|
copy word 0, delta
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user