mirror of
https://github.com/irmen/prog8.git
synced 2024-12-23 09:32:43 +00:00
use split word arrays in various examples
This commit is contained in:
parent
39eda67867
commit
4a00a5ba9e
@ -1,48 +0,0 @@
|
|||||||
|
|
||||||
; this program adds 2 floats 1.2345 + 4.4444 and prints the result 5.67879
|
|
||||||
; it works fine on C64 and CX16 but fails to add the right number on C128
|
|
||||||
; I think it has something to do with the banking on the C128
|
|
||||||
; because several rom fp routines mention "value in bank 1"
|
|
||||||
; but I don't know what this means and why the program as given doesn't work
|
|
||||||
|
|
||||||
.cpu '6502'
|
|
||||||
|
|
||||||
* = $1300 ; sys 4864
|
|
||||||
|
|
||||||
P8ZP_SCRATCH_W1 = 251 ; free zp word
|
|
||||||
CHROUT = $ffd2
|
|
||||||
|
|
||||||
; c128:
|
|
||||||
MOVFM = $af63
|
|
||||||
FADD = $af18
|
|
||||||
FOUT = $af06
|
|
||||||
|
|
||||||
;cx16:
|
|
||||||
;MOVFM = $fe42
|
|
||||||
;FADD = $fe12
|
|
||||||
;FOUT = $fe7b
|
|
||||||
|
|
||||||
;c64:
|
|
||||||
;MOVFM = $bba2
|
|
||||||
;FADD = $b867
|
|
||||||
;FOUT = $bddd
|
|
||||||
|
|
||||||
lda #<f1
|
|
||||||
ldy #>f1
|
|
||||||
jsr MOVFM ; load FAC1
|
|
||||||
lda #<f2
|
|
||||||
ldy #>f2
|
|
||||||
jsr FADD ; add mem float to FAC1 DOESN'T WORK ON C128!?
|
|
||||||
jsr FOUT ; convert to string
|
|
||||||
sta P8ZP_SCRATCH_W1
|
|
||||||
sty P8ZP_SCRATCH_W1+1
|
|
||||||
ldy #0
|
|
||||||
_printloop lda (P8ZP_SCRATCH_W1),y
|
|
||||||
beq _done
|
|
||||||
jsr CHROUT
|
|
||||||
iny
|
|
||||||
bne _printloop
|
|
||||||
_done jmp _done
|
|
||||||
|
|
||||||
f1 .byte $81, $1e, $04, $18, $93 ; float 1.2345
|
|
||||||
f2 .byte $83, $0e, $38, $86, $59 ; float 4.4444
|
|
@ -7,9 +7,9 @@
|
|||||||
main {
|
main {
|
||||||
|
|
||||||
; vertices
|
; vertices
|
||||||
word[] xcoor = [ -100, -100, -100, -100, 100, 100, 100, 100 ]
|
word[] @split xcoor = [ -100, -100, -100, -100, 100, 100, 100, 100 ]
|
||||||
word[] ycoor = [ -100, -100, 100, 100, -100, -100, 100, 100 ]
|
word[] @split ycoor = [ -100, -100, 100, 100, -100, -100, 100, 100 ]
|
||||||
word[] zcoor = [ -100, 100, -100, 100, -100, 100, -100, 100 ]
|
word[] @split zcoor = [ -100, 100, -100, 100, -100, 100, -100, 100 ]
|
||||||
|
|
||||||
; storage for rotated coordinates
|
; storage for rotated coordinates
|
||||||
word[len(xcoor)] rotatedx
|
word[len(xcoor)] rotatedx
|
||||||
|
@ -67,9 +67,9 @@ main {
|
|||||||
const uword height = 200
|
const uword height = 200
|
||||||
|
|
||||||
; vertices
|
; vertices
|
||||||
word[] xcoor = [ -100, -100, -100, -100, 100, 100, 100, 100 ]
|
word[] @split xcoor = [ -100, -100, -100, -100, 100, 100, 100, 100 ]
|
||||||
word[] ycoor = [ -100, -100, 100, 100, -100, -100, 100, 100 ]
|
word[] @split ycoor = [ -100, -100, 100, 100, -100, -100, 100, 100 ]
|
||||||
word[] zcoor = [ -100, 100, -100, 100, -100, 100, -100, 100 ]
|
word[] @split zcoor = [ -100, 100, -100, 100, -100, 100, -100, 100 ]
|
||||||
|
|
||||||
; storage for rotated coordinates
|
; storage for rotated coordinates
|
||||||
word[len(xcoor)] rotatedx
|
word[len(xcoor)] rotatedx
|
||||||
|
@ -7,9 +7,9 @@
|
|||||||
main {
|
main {
|
||||||
|
|
||||||
; vertices
|
; vertices
|
||||||
word[] xcoor = [ -40, -40, -40, -40, 40, 40, 40, 40 ]
|
word[] @split xcoor = [ -40, -40, -40, -40, 40, 40, 40, 40 ]
|
||||||
word[] ycoor = [ -40, -40, 40, 40, -40, -40, 40, 40 ]
|
word[] @split ycoor = [ -40, -40, 40, 40, -40, -40, 40, 40 ]
|
||||||
word[] zcoor = [ -40, 40, -40, 40, -40, 40, -40, 40 ]
|
word[] @split zcoor = [ -40, 40, -40, 40, -40, 40, -40, 40 ]
|
||||||
|
|
||||||
; storage for rotated coordinates
|
; storage for rotated coordinates
|
||||||
word[len(xcoor)] rotatedx
|
word[len(xcoor)] rotatedx
|
||||||
|
@ -228,9 +228,9 @@ const ubyte totalNumberOfFaces = 22
|
|||||||
const ubyte totalNumberOfPoints = 34
|
const ubyte totalNumberOfPoints = 34
|
||||||
str shipName = "cobra-mk3"
|
str shipName = "cobra-mk3"
|
||||||
; vertices
|
; vertices
|
||||||
word[totalNumberOfPoints] xcoor = [ 32,-32,0,-120,120,-88,88,128,-128,0,-32,32,-36,-8,8,36,36,8,-8,-36,-1,-1,-80,-80,-88,80,88,80,1,1,1,1,-1,-1 ]
|
word[totalNumberOfPoints] @split xcoor = [ 32,-32,0,-120,120,-88,88,128,-128,0,-32,32,-36,-8,8,36,36,8,-8,-36,-1,-1,-80,-80,-88,80,88,80,1,1,1,1,-1,-1 ]
|
||||||
word[totalNumberOfPoints] ycoor = [ 0,0,26,-3,-3,16,16,-8,-8,26,-24,-24,8,12,12,8,-12,-16,-16,-12,-1,-1,-6,6,0,6,0,-6,-1,-1,1,1,1,1 ]
|
word[totalNumberOfPoints] @split ycoor = [ 0,0,26,-3,-3,16,16,-8,-8,26,-24,-24,8,12,12,8,-12,-16,-16,-12,-1,-1,-6,6,0,6,0,-6,-1,-1,1,1,1,1 ]
|
||||||
word[totalNumberOfPoints] zcoor = [ 76,76,24,-8,-8,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,76,90,-40,-40,-40,-40,-40,-40,76,90,76,90,76,90 ]
|
word[totalNumberOfPoints] @split zcoor = [ 76,76,24,-8,-8,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,76,90,-40,-40,-40,-40,-40,-40,76,90,76,90,76,90 ]
|
||||||
; edges and faces
|
; edges and faces
|
||||||
ubyte[totalNumberOfEdges] edgesFrom = [ 0,1,0,10,1,0,2,0,4,0,4,7,2,1,1,3,8,3,2,5,6,5,6,16,15,14,14,18,13,12,12,26,25,25,22,23,22,20,28,21,20,28,29,30,31,30,32,20,21,20,20 ]
|
ubyte[totalNumberOfEdges] edgesFrom = [ 0,1,0,10,1,0,2,0,4,0,4,7,2,1,1,3,8,3,2,5,6,5,6,16,15,14,14,18,13,12,12,26,25,25,22,23,22,20,28,21,20,28,29,30,31,30,32,20,21,20,20 ]
|
||||||
ubyte[totalNumberOfEdges] edgesTo = [ 1,2,2,11,10,11,6,6,6,4,7,11,5,5,3,5,10,8,9,9,9,8,7,17,16,15,17,19,18,13,19,27,26,27,23,24,24,28,29,29,21,30,31,31,33,32,33,32,33,33,29 ]
|
ubyte[totalNumberOfEdges] edgesTo = [ 1,2,2,11,10,11,6,6,6,4,7,11,5,5,3,5,10,8,9,9,9,8,7,17,16,15,17,19,18,13,19,27,26,27,23,24,24,28,29,29,21,30,31,31,33,32,33,32,33,33,29 ]
|
||||||
|
@ -4,9 +4,9 @@
|
|||||||
main {
|
main {
|
||||||
|
|
||||||
; vertices
|
; vertices
|
||||||
word[] xcoor = [ -40, -40, -40, -40, 40, 40, 40, 40 ]
|
word[] @split xcoor = [ -40, -40, -40, -40, 40, 40, 40, 40 ]
|
||||||
word[] ycoor = [ -40, -40, 40, 40, -40, -40, 40, 40 ]
|
word[] @split ycoor = [ -40, -40, 40, 40, -40, -40, 40, 40 ]
|
||||||
word[] zcoor = [ -40, 40, -40, 40, -40, 40, -40, 40 ]
|
word[] @split zcoor = [ -40, 40, -40, 40, -40, 40, -40, 40 ]
|
||||||
|
|
||||||
; storage for rotated coordinates
|
; storage for rotated coordinates
|
||||||
word[len(xcoor)] rotatedx
|
word[len(xcoor)] rotatedx
|
||||||
|
@ -15,7 +15,7 @@ adpcm {
|
|||||||
|
|
||||||
|
|
||||||
ubyte[] t_index = [ -1, -1, -1, -1, 2, 4, 6, 8, -1, -1, -1, -1, 2, 4, 6, 8]
|
ubyte[] t_index = [ -1, -1, -1, -1, 2, 4, 6, 8, -1, -1, -1, -1, 2, 4, 6, 8]
|
||||||
uword[] t_step = [
|
uword[] @split t_step = [
|
||||||
7, 8, 9, 10, 11, 12, 13, 14,
|
7, 8, 9, 10, 11, 12, 13, 14,
|
||||||
16, 17, 19, 21, 23, 25, 28, 31,
|
16, 17, 19, 21, 23, 25, 28, 31,
|
||||||
34, 37, 41, 45, 50, 55, 60, 66,
|
34, 37, 41, 45, 50, 55, 60, 66,
|
||||||
|
@ -5,8 +5,8 @@
|
|||||||
main {
|
main {
|
||||||
|
|
||||||
sub start() {
|
sub start() {
|
||||||
word[128] particleX
|
word[128] @split particleX
|
||||||
word[128] particleY
|
word[128] @split particleY
|
||||||
byte[128] particleDX
|
byte[128] particleDX
|
||||||
byte[128] particleDY
|
byte[128] particleDY
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user