mirror of
https://github.com/badvision/lawless-legends.git
synced 2025-03-01 03:30:04 +00:00
Forgot to check these in.
This commit is contained in:
parent
d2c8601cb5
commit
7915e66b97
153
Platform/Apple/virtual/src/plasma/automap.pla
Normal file
153
Platform/Apple/virtual/src/plasma/automap.pla
Normal file
@ -0,0 +1,153 @@
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Copyright (C) 2017 The 8-Bit Bunch. Licensed under the Apache License, Version 1.1
|
||||
// (the "License"); you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at <http://www.apache.org/licenses/LICENSE-1.1>.
|
||||
// Unless required by applicable law or agreed to in writing, software distributed under
|
||||
// the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
|
||||
// ANY KIND, either express or implied. See the License for the specific language
|
||||
// governing permissions and limitations under the License.
|
||||
//////////////////f/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
include "gamelib.plh"
|
||||
include "playtype.plh"
|
||||
include "globalDefs.plh"
|
||||
include "gen_modules.plh"
|
||||
|
||||
// Exported functions go here. First a predef for each one, then a table with function pointers
|
||||
// in the same order as the constants are defined in the header.
|
||||
predef _automap_show()#1
|
||||
word[] funcTbl = @_automap_show
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Definitions used by assembly code
|
||||
asm _defs
|
||||
!convtab "../../include/hiBitAscii.ct"
|
||||
!source "../../include/global.i"
|
||||
!source "../../include/plasma.i"
|
||||
!source "../../include/mem.i"
|
||||
tmp = $2 ; length 2
|
||||
pTmp = $4 ; length 2
|
||||
pix0 = $6 ; length 1
|
||||
pix1 = $7 ; length 1
|
||||
tilePtrs = $8 ; length 2
|
||||
tileOff = $A ; length 1
|
||||
nTiles = $B ; length 1
|
||||
pScreen = $C ; length 2
|
||||
pTile = $E ; length 2
|
||||
ysav = $34
|
||||
end
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
asm _drawSlice(tilePtrs, nTiles, tileOff, pScreen)#0
|
||||
+asmPlasmRet 4
|
||||
sta pScreen
|
||||
sty pScreen+1
|
||||
lda evalStkL+1,x
|
||||
sta tileOff
|
||||
lda evalStkL+2,x
|
||||
sta nTiles
|
||||
lda evalStkL+3,x
|
||||
sta tilePtrs
|
||||
lda evalStkH+3,x
|
||||
sta tilePtrs+1
|
||||
|
||||
clc ; start with even-tile logic
|
||||
|
||||
.tileLoop
|
||||
ldy #0
|
||||
lda (tilePtrs),y
|
||||
sta pTile
|
||||
inc tilePtrs
|
||||
bne +
|
||||
inc tilePtrs+1
|
||||
+ lda (tilePtrs),y
|
||||
sta pTile+1
|
||||
inc tilePtrs
|
||||
bne +
|
||||
inc tilePtrs+1
|
||||
+ ldy tileOff ; start at correct vertical offset within each tile
|
||||
lda (pTile),y
|
||||
bcs .oddTile ; first time even, second time odd, third time even, etc.
|
||||
.evenTile
|
||||
lsr ; in bit A-0
|
||||
ror pix0 ; out bit 0
|
||||
lsr ; in bit A-1
|
||||
ror pix0 ; out bit 1
|
||||
lsr ; in bit A-2 (skip)
|
||||
lsr ; in bit A-3 (skip)
|
||||
lsr ; in bit A-4
|
||||
ror pix0 ; out bit 2
|
||||
lsr ; in bit A-5
|
||||
ror pix0 ; out bit 3
|
||||
; in bit A-6 (skip)
|
||||
; in bit A-7 (hi skip)
|
||||
iny
|
||||
lda (pTile),y
|
||||
lsr ; in bit A-8 (skip)
|
||||
lsr ; in bit A-9
|
||||
ror pix0 ; out bit 4
|
||||
lsr ; in bit A-10
|
||||
ror pix0 ; out bit 5
|
||||
lsr ; in bit A-11 (skip)
|
||||
lsr ; in bit A-12 (skip)
|
||||
lsr ; in bit A-13
|
||||
ror pix0 ; out bit 6
|
||||
lsr ; in bit A-14
|
||||
ror pix1 ; out bit 8 (!)
|
||||
lsr ; in bit A-15 (hibit)
|
||||
ror pix0 ; out bit 7 (!)
|
||||
lda pix0
|
||||
sec ; next iteration, use odd-tile logic
|
||||
|
||||
.store
|
||||
ldy #0
|
||||
sta (pScreen),y
|
||||
inc pScreen
|
||||
dec nTiles ; count down tiles done
|
||||
bne .tileLoop ; go until they're all done
|
||||
rts ; finished
|
||||
|
||||
.oddTile
|
||||
lsr ; in bit B-0 (skip)
|
||||
lsr ; in bit B-1 (skip)
|
||||
lsr ; in bit B-2
|
||||
ror pix1 ; out bit 9
|
||||
lsr ; in bit B-3
|
||||
ror pix1 ; out bit 10
|
||||
lsr ; in bit B-4 (skip)
|
||||
lsr ; in bit B-5 (skip)
|
||||
lsr ; in bit B-6
|
||||
ror pix1 ; out bit 11
|
||||
; in bit B-7 (hi skip)
|
||||
iny
|
||||
lda (pTile),y
|
||||
lsr ; in bit B-8
|
||||
ror pix1 ; out bit 12
|
||||
lsr ; in bit B-9 (skip)
|
||||
lsr ; in bit B-10 (skip)
|
||||
lsr ; in bit B-11
|
||||
ror pix1 ; out bit 13
|
||||
lsr ; in bit B-12
|
||||
ror pix1 ; out bit 14
|
||||
lsr ; in bit B-13 (skip)
|
||||
lsr ; in bit B-14 (skip)
|
||||
lsr ; in bit B-15 (hibit)
|
||||
ror pix1 ; out bit 15 (hibit)
|
||||
lda pix1
|
||||
clc ; next iteration, use even-tile logic
|
||||
bcc .store ; always taken
|
||||
end
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
def _automap_show()#1
|
||||
setBigWindow
|
||||
clearWindow
|
||||
rawDisplayStr("Hello automap")
|
||||
getUpperKey
|
||||
return 0
|
||||
end
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Boilerplate module initialization code
|
||||
return @funcTbl
|
||||
done
|
12
Platform/Apple/virtual/src/plasma/automap.plh
Normal file
12
Platform/Apple/virtual/src/plasma/automap.plh
Normal file
@ -0,0 +1,12 @@
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Copyright (C) 2018 The 8-Bit Bunch. Licensed under the Apache License, Version 1.1
|
||||
// (the "License"); you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at <http://www.apache.org/licenses/LICENSE-1.1>.
|
||||
// Unless required by applicable law or agreed to in writing, software distributed under
|
||||
// the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
|
||||
// ANY KIND, either express or implied. See the License for the specific language
|
||||
// governing permissions and limitations under the License.
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// Each module-exported function needs its own constant, 0..n (multiples of 2)
|
||||
const automap_show = 0
|
Loading…
x
Reference in New Issue
Block a user