Initial commit
@@ -0,0 +1,2 @@
|
||||
# Auto detect text files and perform LF normalization
|
||||
* text=auto
|
||||
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>no_internet</name>
|
||||
<comment></comment>
|
||||
<projects>
|
||||
<project>Atari800</project>
|
||||
</projects>
|
||||
<buildSpec>
|
||||
</buildSpec>
|
||||
<natures>
|
||||
</natures>
|
||||
</projectDescription>
|
||||
@@ -0,0 +1,24 @@
|
||||
This is free and unencumbered software released into the public domain.
|
||||
|
||||
Anyone is free to copy, modify, publish, use, compile, sell, or
|
||||
distribute this software, either in source code form or as a compiled
|
||||
binary, for any purpose, commercial or non-commercial, and by any
|
||||
means.
|
||||
|
||||
In jurisdictions that recognize copyright laws, the author or authors
|
||||
of this software dedicate any and all copyright interest in the
|
||||
software to the public domain. We make this dedication for the benefit
|
||||
of the public at large and to the detriment of our heirs and
|
||||
successors. We intend this dedication to be an overt act of
|
||||
relinquishment in perpetuity of all present and future rights to this
|
||||
software under copyright law.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
|
||||
OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||
OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
For more information, please refer to <http://unlicense.org>
|
||||
@@ -0,0 +1,40 @@
|
||||
#WUDSN IDE Converter Parameters
|
||||
#Fri Jun 01 23:13:09 CEST 2018
|
||||
converterDirection=FILES_TO_IMAGE
|
||||
filesConverterParameters.converterId=com.wudsn.ide.gfx.converter.generic.CharSet1x1HiresConverter
|
||||
filesConverterParameters.imageAspect.factorX=1
|
||||
filesConverterParameters.imageAspect.factorY=1
|
||||
filesConverterParameters.displayAspect.factorX=1
|
||||
filesConverterParameters.displayAspect.factorY=1
|
||||
filesConverterParameters.displayShrinkToFit=false
|
||||
filesConverterParameters.displayZoomToFit=true
|
||||
filesConverterParameters.sourceFiles=1
|
||||
filesConverterParameters.sourceFiles.0.path=CHAR6.FNT
|
||||
filesConverterParameters.sourceFiles.0.offset=0
|
||||
filesConverterParameters.imageFilePath=CHAR6.FNT.png
|
||||
filesConverterParameters.columns=32
|
||||
filesConverterParameters.rows=4
|
||||
filesConverterParameters.spacingColor.red=0
|
||||
filesConverterParameters.spacingColor.green=0
|
||||
filesConverterParameters.spacingColor.blue=128
|
||||
filesConverterParameters.spacingWidth=0
|
||||
filesConverterParameters.palette=HIRES_1
|
||||
filesConverterParameters.paletteType=ATARI_DEFAULT
|
||||
filesConverterParameters.paletteRGBs=2
|
||||
filesConverterParameters.paletteRGBs.0.red=0
|
||||
filesConverterParameters.paletteRGBs.0.green=0
|
||||
filesConverterParameters.paletteRGBs.0.blue=0
|
||||
filesConverterParameters.paletteRGBs.1.red=255
|
||||
filesConverterParameters.paletteRGBs.1.green=255
|
||||
filesConverterParameters.paletteRGBs.1.blue=255
|
||||
imageConverterParameters.converterId=
|
||||
imageConverterParameters.imageAspect.factorX=1
|
||||
imageConverterParameters.imageAspect.factorY=1
|
||||
imageConverterParameters.displayAspect.factorX=1
|
||||
imageConverterParameters.displayAspect.factorY=1
|
||||
imageConverterParameters.displayShrinkToFit=false
|
||||
imageConverterParameters.displayZoomToFit=true
|
||||
imageConverterParameters.imageFilePath=
|
||||
imageConverterParameters.targetFiles=0
|
||||
imageConverterParameters.useDefaultScript=true
|
||||
imageConverterParameters.script=
|
||||
|
After Width: | Height: | Size: 814 B |
|
After Width: | Height: | Size: 270 B |
@@ -0,0 +1,42 @@
|
||||
#WUDSN IDE Converter Parameters
|
||||
#Sun Jun 03 03:25:42 CEST 2018
|
||||
converterDirection=IMAGE_TO_FILES
|
||||
filesConverterParameters.converterId=
|
||||
filesConverterParameters.imageAspect.factorX=1
|
||||
filesConverterParameters.imageAspect.factorY=1
|
||||
filesConverterParameters.displayAspect.factorX=1
|
||||
filesConverterParameters.displayAspect.factorY=1
|
||||
filesConverterParameters.displayShrinkToFit=false
|
||||
filesConverterParameters.displayZoomToFit=true
|
||||
filesConverterParameters.sourceFiles=0
|
||||
filesConverterParameters.imageFilePath=
|
||||
filesConverterParameters.columns=40
|
||||
filesConverterParameters.rows=24
|
||||
filesConverterParameters.spacingColor.red=0
|
||||
filesConverterParameters.spacingColor.green=0
|
||||
filesConverterParameters.spacingColor.blue=128
|
||||
filesConverterParameters.spacingWidth=0
|
||||
filesConverterParameters.palette=HIRES_1
|
||||
filesConverterParameters.paletteType=ATARI_DEFAULT
|
||||
filesConverterParameters.paletteRGBs=0
|
||||
imageConverterParameters.converterId=com.wudsn.ide.gfx.converter.atari8bit.LinearBitMapGraphics8Converter
|
||||
imageConverterParameters.imageAspect.factorX=1
|
||||
imageConverterParameters.imageAspect.factorY=1
|
||||
imageConverterParameters.displayAspect.factorX=1
|
||||
imageConverterParameters.displayAspect.factorY=1
|
||||
imageConverterParameters.displayShrinkToFit=false
|
||||
imageConverterParameters.displayZoomToFit=true
|
||||
imageConverterParameters.imageFilePath=cact2.bmp
|
||||
imageConverterParameters.targetFiles=10
|
||||
imageConverterParameters.targetFiles.0.path=cact2.data
|
||||
imageConverterParameters.targetFiles.1.path=
|
||||
imageConverterParameters.targetFiles.2.path=
|
||||
imageConverterParameters.targetFiles.3.path=
|
||||
imageConverterParameters.targetFiles.4.path=
|
||||
imageConverterParameters.targetFiles.5.path=
|
||||
imageConverterParameters.targetFiles.6.path=
|
||||
imageConverterParameters.targetFiles.7.path=
|
||||
imageConverterParameters.targetFiles.8.path=
|
||||
imageConverterParameters.targetFiles.9.path=
|
||||
imageConverterParameters.useDefaultScript=false
|
||||
imageConverterParameters.script=function convertToFileData(data) {\r\n\tvar bpsl \= (data.getImageDataWidth() + 7) / 8;\r\n\tvar bytes \= [];\r\n\tvar offset \= 0;\r\n\tfor (var y \= data.getImageDataHeight()-1; y >\= 0; y--) {\r\n\t for (var x \= 0; x < data.getImageDataWidth(); x \= x + 8) {\r\n\t\t\tvar b \= 0;\r\n\t\t\tfor (var p \= 0; p < 8; p++) {\r\n\t\t\t var color;\r\n\t\t\t color \= data.getPixel(x + p, y);\r\n\t\t\t if (color \!\= 0) {\r\n\t\t\t\t\tb \= b | 1 << 7 - p;\r\n\t\t\t }\r\n\t\t\t}\r\n\t\t\tbytes[offset++] \= b;\r\n\t }\r\n\t}\r\n\tdata.setTargetFileObject(0, bytes);\r\n}
|
||||
|
After Width: | Height: | Size: 322 B |
|
After Width: | Height: | Size: 410 B |
@@ -0,0 +1,42 @@
|
||||
#WUDSN IDE Converter Parameters
|
||||
#Sun Jun 03 03:25:42 CEST 2018
|
||||
converterDirection=IMAGE_TO_FILES
|
||||
filesConverterParameters.converterId=
|
||||
filesConverterParameters.imageAspect.factorX=1
|
||||
filesConverterParameters.imageAspect.factorY=1
|
||||
filesConverterParameters.displayAspect.factorX=1
|
||||
filesConverterParameters.displayAspect.factorY=1
|
||||
filesConverterParameters.displayShrinkToFit=false
|
||||
filesConverterParameters.displayZoomToFit=true
|
||||
filesConverterParameters.sourceFiles=0
|
||||
filesConverterParameters.imageFilePath=
|
||||
filesConverterParameters.columns=40
|
||||
filesConverterParameters.rows=24
|
||||
filesConverterParameters.spacingColor.red=0
|
||||
filesConverterParameters.spacingColor.green=0
|
||||
filesConverterParameters.spacingColor.blue=128
|
||||
filesConverterParameters.spacingWidth=0
|
||||
filesConverterParameters.palette=HIRES_1
|
||||
filesConverterParameters.paletteType=ATARI_DEFAULT
|
||||
filesConverterParameters.paletteRGBs=0
|
||||
imageConverterParameters.converterId=com.wudsn.ide.gfx.converter.atari8bit.LinearBitMapGraphics8Converter
|
||||
imageConverterParameters.imageAspect.factorX=1
|
||||
imageConverterParameters.imageAspect.factorY=1
|
||||
imageConverterParameters.displayAspect.factorX=1
|
||||
imageConverterParameters.displayAspect.factorY=1
|
||||
imageConverterParameters.displayShrinkToFit=false
|
||||
imageConverterParameters.displayZoomToFit=true
|
||||
imageConverterParameters.imageFilePath=cact2.bmp
|
||||
imageConverterParameters.targetFiles=10
|
||||
imageConverterParameters.targetFiles.0.path=cact2.data
|
||||
imageConverterParameters.targetFiles.1.path=
|
||||
imageConverterParameters.targetFiles.2.path=
|
||||
imageConverterParameters.targetFiles.3.path=
|
||||
imageConverterParameters.targetFiles.4.path=
|
||||
imageConverterParameters.targetFiles.5.path=
|
||||
imageConverterParameters.targetFiles.6.path=
|
||||
imageConverterParameters.targetFiles.7.path=
|
||||
imageConverterParameters.targetFiles.8.path=
|
||||
imageConverterParameters.targetFiles.9.path=
|
||||
imageConverterParameters.useDefaultScript=false
|
||||
imageConverterParameters.script=function convertToFileData(data) {\r\n\tvar bpsl \= (data.getImageDataWidth() + 7) / 8;\r\n\tvar bytes \= [];\r\n\tvar offset \= 0;\r\n\tfor (var y \= data.getImageDataHeight()-1; y >\= 0; y--) {\r\n\t for (var x \= 0; x < data.getImageDataWidth(); x \= x + 8) {\r\n\t\t\tvar b \= 0;\r\n\t\t\tfor (var p \= 0; p < 8; p++) {\r\n\t\t\t var color;\r\n\t\t\t color \= data.getPixel(x + p, y);\r\n\t\t\t if (color \!\= 0) {\r\n\t\t\t\t\tb \= b | 1 << 7 - p;\r\n\t\t\t }\r\n\t\t\t}\r\n\t\t\tbytes[offset++] \= b;\r\n\t }\r\n\t}\r\n\tdata.setTargetFileObject(0, bytes);\r\n}
|
||||
|
After Width: | Height: | Size: 230 B |
@@ -0,0 +1,42 @@
|
||||
#WUDSN IDE Converter Parameters
|
||||
#Fri Jun 01 16:04:29 CEST 2018
|
||||
converterDirection=IMAGE_TO_FILES
|
||||
filesConverterParameters.converterId=
|
||||
filesConverterParameters.imageAspect.factorX=1
|
||||
filesConverterParameters.imageAspect.factorY=1
|
||||
filesConverterParameters.displayAspect.factorX=1
|
||||
filesConverterParameters.displayAspect.factorY=1
|
||||
filesConverterParameters.displayShrinkToFit=false
|
||||
filesConverterParameters.displayZoomToFit=true
|
||||
filesConverterParameters.sourceFiles=0
|
||||
filesConverterParameters.imageFilePath=
|
||||
filesConverterParameters.columns=40
|
||||
filesConverterParameters.rows=24
|
||||
filesConverterParameters.spacingColor.red=0
|
||||
filesConverterParameters.spacingColor.green=0
|
||||
filesConverterParameters.spacingColor.blue=128
|
||||
filesConverterParameters.spacingWidth=0
|
||||
filesConverterParameters.palette=HIRES_1
|
||||
filesConverterParameters.paletteType=ATARI_DEFAULT
|
||||
filesConverterParameters.paletteRGBs=0
|
||||
imageConverterParameters.converterId=com.wudsn.ide.gfx.converter.atari8bit.LinearBitMapGraphics8Converter
|
||||
imageConverterParameters.imageAspect.factorX=1
|
||||
imageConverterParameters.imageAspect.factorY=1
|
||||
imageConverterParameters.displayAspect.factorX=1
|
||||
imageConverterParameters.displayAspect.factorY=1
|
||||
imageConverterParameters.displayShrinkToFit=false
|
||||
imageConverterParameters.displayZoomToFit=true
|
||||
imageConverterParameters.imageFilePath=dino0.png
|
||||
imageConverterParameters.targetFiles=10
|
||||
imageConverterParameters.targetFiles.0.path=dino0.data
|
||||
imageConverterParameters.targetFiles.1.path=
|
||||
imageConverterParameters.targetFiles.2.path=
|
||||
imageConverterParameters.targetFiles.3.path=
|
||||
imageConverterParameters.targetFiles.4.path=
|
||||
imageConverterParameters.targetFiles.5.path=
|
||||
imageConverterParameters.targetFiles.6.path=
|
||||
imageConverterParameters.targetFiles.7.path=
|
||||
imageConverterParameters.targetFiles.8.path=
|
||||
imageConverterParameters.targetFiles.9.path=
|
||||
imageConverterParameters.useDefaultScript=true
|
||||
imageConverterParameters.script=function convertToFileData(data) {\r\n\tvar bpsl \= (data.getImageDataWidth() + 7) / 8;\r\n\tvar bytes \= [];\r\n\tvar offset \= 0;\r\n\tfor (var y \= 0; y < data.getImageDataHeight(); y++) {\r\n\t for (var x \= 0; x < data.getImageDataWidth(); x \= x + 8) {\r\n\t\t\tvar b \= 0;\r\n\t\t\tfor (var p \= 0; p < 8; p++) {\r\n\t\t\t var color;\r\n\t\t\t color \= data.getPixel(x + p, y);\r\n\t\t\t if (color \!\= 0) {\r\n\t\t\t\t\tb \= b | 1 << 7 - p;\r\n\t\t\t }\r\n\t\t\t}\r\n\t\t\tbytes[offset++] \= b;\r\n\t }\r\n\t}\r\n\tdata.setTargetFileObject(0, bytes);\r\n}
|
||||
|
After Width: | Height: | Size: 227 B |
@@ -0,0 +1,42 @@
|
||||
#WUDSN IDE Converter Parameters
|
||||
#Fri Jun 01 16:04:28 CEST 2018
|
||||
converterDirection=IMAGE_TO_FILES
|
||||
filesConverterParameters.converterId=
|
||||
filesConverterParameters.imageAspect.factorX=1
|
||||
filesConverterParameters.imageAspect.factorY=1
|
||||
filesConverterParameters.displayAspect.factorX=1
|
||||
filesConverterParameters.displayAspect.factorY=1
|
||||
filesConverterParameters.displayShrinkToFit=false
|
||||
filesConverterParameters.displayZoomToFit=true
|
||||
filesConverterParameters.sourceFiles=0
|
||||
filesConverterParameters.imageFilePath=
|
||||
filesConverterParameters.columns=40
|
||||
filesConverterParameters.rows=24
|
||||
filesConverterParameters.spacingColor.red=0
|
||||
filesConverterParameters.spacingColor.green=0
|
||||
filesConverterParameters.spacingColor.blue=128
|
||||
filesConverterParameters.spacingWidth=0
|
||||
filesConverterParameters.palette=HIRES_1
|
||||
filesConverterParameters.paletteType=ATARI_DEFAULT
|
||||
filesConverterParameters.paletteRGBs=0
|
||||
imageConverterParameters.converterId=com.wudsn.ide.gfx.converter.atari8bit.LinearBitMapGraphics8Converter
|
||||
imageConverterParameters.imageAspect.factorX=1
|
||||
imageConverterParameters.imageAspect.factorY=1
|
||||
imageConverterParameters.displayAspect.factorX=1
|
||||
imageConverterParameters.displayAspect.factorY=1
|
||||
imageConverterParameters.displayShrinkToFit=false
|
||||
imageConverterParameters.displayZoomToFit=true
|
||||
imageConverterParameters.imageFilePath=dino1.png
|
||||
imageConverterParameters.targetFiles=10
|
||||
imageConverterParameters.targetFiles.0.path=dino1.data
|
||||
imageConverterParameters.targetFiles.1.path=
|
||||
imageConverterParameters.targetFiles.2.path=
|
||||
imageConverterParameters.targetFiles.3.path=
|
||||
imageConverterParameters.targetFiles.4.path=
|
||||
imageConverterParameters.targetFiles.5.path=
|
||||
imageConverterParameters.targetFiles.6.path=
|
||||
imageConverterParameters.targetFiles.7.path=
|
||||
imageConverterParameters.targetFiles.8.path=
|
||||
imageConverterParameters.targetFiles.9.path=
|
||||
imageConverterParameters.useDefaultScript=true
|
||||
imageConverterParameters.script=function convertToFileData(data) {\r\n\tvar bpsl \= (data.getImageDataWidth() + 7) / 8;\r\n\tvar bytes \= [];\r\n\tvar offset \= 0;\r\n\tfor (var y \= 0; y < data.getImageDataHeight(); y++) {\r\n\t for (var x \= 0; x < data.getImageDataWidth(); x \= x + 8) {\r\n\t\t\tvar b \= 0;\r\n\t\t\tfor (var p \= 0; p < 8; p++) {\r\n\t\t\t var color;\r\n\t\t\t color \= data.getPixel(x + p, y);\r\n\t\t\t if (color \!\= 0) {\r\n\t\t\t\t\tb \= b | 1 << 7 - p;\r\n\t\t\t }\r\n\t\t\t}\r\n\t\t\tbytes[offset++] \= b;\r\n\t }\r\n\t}\r\n\tdata.setTargetFileObject(0, bytes);\r\n}
|
||||
|
After Width: | Height: | Size: 273 B |
@@ -0,0 +1,42 @@
|
||||
#WUDSN IDE Converter Parameters
|
||||
#Fri Jun 01 16:04:23 CEST 2018
|
||||
converterDirection=IMAGE_TO_FILES
|
||||
filesConverterParameters.converterId=
|
||||
filesConverterParameters.imageAspect.factorX=1
|
||||
filesConverterParameters.imageAspect.factorY=1
|
||||
filesConverterParameters.displayAspect.factorX=1
|
||||
filesConverterParameters.displayAspect.factorY=1
|
||||
filesConverterParameters.displayShrinkToFit=false
|
||||
filesConverterParameters.displayZoomToFit=true
|
||||
filesConverterParameters.sourceFiles=0
|
||||
filesConverterParameters.imageFilePath=
|
||||
filesConverterParameters.columns=40
|
||||
filesConverterParameters.rows=24
|
||||
filesConverterParameters.spacingColor.red=0
|
||||
filesConverterParameters.spacingColor.green=0
|
||||
filesConverterParameters.spacingColor.blue=128
|
||||
filesConverterParameters.spacingWidth=0
|
||||
filesConverterParameters.palette=HIRES_1
|
||||
filesConverterParameters.paletteType=ATARI_DEFAULT
|
||||
filesConverterParameters.paletteRGBs=0
|
||||
imageConverterParameters.converterId=com.wudsn.ide.gfx.converter.atari8bit.LinearBitMapGraphics8Converter
|
||||
imageConverterParameters.imageAspect.factorX=1
|
||||
imageConverterParameters.imageAspect.factorY=1
|
||||
imageConverterParameters.displayAspect.factorX=1
|
||||
imageConverterParameters.displayAspect.factorY=1
|
||||
imageConverterParameters.displayShrinkToFit=false
|
||||
imageConverterParameters.displayZoomToFit=true
|
||||
imageConverterParameters.imageFilePath=dino2.png
|
||||
imageConverterParameters.targetFiles=10
|
||||
imageConverterParameters.targetFiles.0.path=dino2.data
|
||||
imageConverterParameters.targetFiles.1.path=
|
||||
imageConverterParameters.targetFiles.2.path=
|
||||
imageConverterParameters.targetFiles.3.path=
|
||||
imageConverterParameters.targetFiles.4.path=
|
||||
imageConverterParameters.targetFiles.5.path=
|
||||
imageConverterParameters.targetFiles.6.path=
|
||||
imageConverterParameters.targetFiles.7.path=
|
||||
imageConverterParameters.targetFiles.8.path=
|
||||
imageConverterParameters.targetFiles.9.path=
|
||||
imageConverterParameters.useDefaultScript=true
|
||||
imageConverterParameters.script=function convertToFileData(data) {\r\n\tvar bpsl \= (data.getImageDataWidth() + 7) / 8;\r\n\tvar bytes \= [];\r\n\tvar offset \= 0;\r\n\tfor (var y \= 0; y < data.getImageDataHeight(); y++) {\r\n\t for (var x \= 0; x < data.getImageDataWidth(); x \= x + 8) {\r\n\t\t\tvar b \= 0;\r\n\t\t\tfor (var p \= 0; p < 8; p++) {\r\n\t\t\t var color;\r\n\t\t\t color \= data.getPixel(x + p, y);\r\n\t\t\t if (color \!\= 0) {\r\n\t\t\t\t\tb \= b | 1 << 7 - p;\r\n\t\t\t }\r\n\t\t\t}\r\n\t\t\tbytes[offset++] \= b;\r\n\t }\r\n\t}\r\n\tdata.setTargetFileObject(0, bytes);\r\n}
|
||||
|
After Width: | Height: | Size: 212 B |
@@ -0,0 +1,42 @@
|
||||
#WUDSN IDE Converter Parameters
|
||||
#Fri Jun 01 16:04:32 CEST 2018
|
||||
converterDirection=IMAGE_TO_FILES
|
||||
filesConverterParameters.converterId=
|
||||
filesConverterParameters.imageAspect.factorX=1
|
||||
filesConverterParameters.imageAspect.factorY=1
|
||||
filesConverterParameters.displayAspect.factorX=1
|
||||
filesConverterParameters.displayAspect.factorY=1
|
||||
filesConverterParameters.displayShrinkToFit=false
|
||||
filesConverterParameters.displayZoomToFit=true
|
||||
filesConverterParameters.sourceFiles=0
|
||||
filesConverterParameters.imageFilePath=
|
||||
filesConverterParameters.columns=40
|
||||
filesConverterParameters.rows=24
|
||||
filesConverterParameters.spacingColor.red=0
|
||||
filesConverterParameters.spacingColor.green=0
|
||||
filesConverterParameters.spacingColor.blue=128
|
||||
filesConverterParameters.spacingWidth=0
|
||||
filesConverterParameters.palette=HIRES_1
|
||||
filesConverterParameters.paletteType=ATARI_DEFAULT
|
||||
filesConverterParameters.paletteRGBs=0
|
||||
imageConverterParameters.converterId=com.wudsn.ide.gfx.converter.atari8bit.LinearBitMapGraphics8Converter
|
||||
imageConverterParameters.imageAspect.factorX=1
|
||||
imageConverterParameters.imageAspect.factorY=1
|
||||
imageConverterParameters.displayAspect.factorX=1
|
||||
imageConverterParameters.displayAspect.factorY=1
|
||||
imageConverterParameters.displayShrinkToFit=false
|
||||
imageConverterParameters.displayZoomToFit=true
|
||||
imageConverterParameters.imageFilePath=dino_mask0.png
|
||||
imageConverterParameters.targetFiles=10
|
||||
imageConverterParameters.targetFiles.0.path=dino_mask0.data
|
||||
imageConverterParameters.targetFiles.1.path=
|
||||
imageConverterParameters.targetFiles.2.path=
|
||||
imageConverterParameters.targetFiles.3.path=
|
||||
imageConverterParameters.targetFiles.4.path=
|
||||
imageConverterParameters.targetFiles.5.path=
|
||||
imageConverterParameters.targetFiles.6.path=
|
||||
imageConverterParameters.targetFiles.7.path=
|
||||
imageConverterParameters.targetFiles.8.path=
|
||||
imageConverterParameters.targetFiles.9.path=
|
||||
imageConverterParameters.useDefaultScript=true
|
||||
imageConverterParameters.script=function convertToFileData(data) {\r\n\tvar bpsl \= (data.getImageDataWidth() + 7) / 8;\r\n\tvar bytes \= [];\r\n\tvar offset \= 0;\r\n\tfor (var y \= 0; y < data.getImageDataHeight(); y++) {\r\n\t for (var x \= 0; x < data.getImageDataWidth(); x \= x + 8) {\r\n\t\t\tvar b \= 0;\r\n\t\t\tfor (var p \= 0; p < 8; p++) {\r\n\t\t\t var color;\r\n\t\t\t color \= data.getPixel(x + p, y);\r\n\t\t\t if (color \!\= 0) {\r\n\t\t\t\t\tb \= b | 1 << 7 - p;\r\n\t\t\t }\r\n\t\t\t}\r\n\t\t\tbytes[offset++] \= b;\r\n\t }\r\n\t}\r\n\tdata.setTargetFileObject(0, bytes);\r\n}
|
||||
|
After Width: | Height: | Size: 212 B |
@@ -0,0 +1,42 @@
|
||||
#WUDSN IDE Converter Parameters
|
||||
#Fri Jun 01 16:04:31 CEST 2018
|
||||
converterDirection=IMAGE_TO_FILES
|
||||
filesConverterParameters.converterId=
|
||||
filesConverterParameters.imageAspect.factorX=1
|
||||
filesConverterParameters.imageAspect.factorY=1
|
||||
filesConverterParameters.displayAspect.factorX=1
|
||||
filesConverterParameters.displayAspect.factorY=1
|
||||
filesConverterParameters.displayShrinkToFit=false
|
||||
filesConverterParameters.displayZoomToFit=true
|
||||
filesConverterParameters.sourceFiles=0
|
||||
filesConverterParameters.imageFilePath=
|
||||
filesConverterParameters.columns=40
|
||||
filesConverterParameters.rows=24
|
||||
filesConverterParameters.spacingColor.red=0
|
||||
filesConverterParameters.spacingColor.green=0
|
||||
filesConverterParameters.spacingColor.blue=128
|
||||
filesConverterParameters.spacingWidth=0
|
||||
filesConverterParameters.palette=HIRES_1
|
||||
filesConverterParameters.paletteType=ATARI_DEFAULT
|
||||
filesConverterParameters.paletteRGBs=0
|
||||
imageConverterParameters.converterId=com.wudsn.ide.gfx.converter.atari8bit.LinearBitMapGraphics8Converter
|
||||
imageConverterParameters.imageAspect.factorX=1
|
||||
imageConverterParameters.imageAspect.factorY=1
|
||||
imageConverterParameters.displayAspect.factorX=1
|
||||
imageConverterParameters.displayAspect.factorY=1
|
||||
imageConverterParameters.displayShrinkToFit=false
|
||||
imageConverterParameters.displayZoomToFit=true
|
||||
imageConverterParameters.imageFilePath=dino_mask1.png
|
||||
imageConverterParameters.targetFiles=10
|
||||
imageConverterParameters.targetFiles.0.path=dino_mask1.data
|
||||
imageConverterParameters.targetFiles.1.path=
|
||||
imageConverterParameters.targetFiles.2.path=
|
||||
imageConverterParameters.targetFiles.3.path=
|
||||
imageConverterParameters.targetFiles.4.path=
|
||||
imageConverterParameters.targetFiles.5.path=
|
||||
imageConverterParameters.targetFiles.6.path=
|
||||
imageConverterParameters.targetFiles.7.path=
|
||||
imageConverterParameters.targetFiles.8.path=
|
||||
imageConverterParameters.targetFiles.9.path=
|
||||
imageConverterParameters.useDefaultScript=true
|
||||
imageConverterParameters.script=function convertToFileData(data) {\r\n\tvar bpsl \= (data.getImageDataWidth() + 7) / 8;\r\n\tvar bytes \= [];\r\n\tvar offset \= 0;\r\n\tfor (var y \= 0; y < data.getImageDataHeight(); y++) {\r\n\t for (var x \= 0; x < data.getImageDataWidth(); x \= x + 8) {\r\n\t\t\tvar b \= 0;\r\n\t\t\tfor (var p \= 0; p < 8; p++) {\r\n\t\t\t var color;\r\n\t\t\t color \= data.getPixel(x + p, y);\r\n\t\t\t if (color \!\= 0) {\r\n\t\t\t\t\tb \= b | 1 << 7 - p;\r\n\t\t\t }\r\n\t\t\t}\r\n\t\t\tbytes[offset++] \= b;\r\n\t }\r\n\t}\r\n\tdata.setTargetFileObject(0, bytes);\r\n}
|
||||
|
After Width: | Height: | Size: 213 B |
@@ -0,0 +1,42 @@
|
||||
#WUDSN IDE Converter Parameters
|
||||
#Fri Jun 01 16:10:03 CEST 2018
|
||||
converterDirection=IMAGE_TO_FILES
|
||||
filesConverterParameters.converterId=
|
||||
filesConverterParameters.imageAspect.factorX=1
|
||||
filesConverterParameters.imageAspect.factorY=1
|
||||
filesConverterParameters.displayAspect.factorX=1
|
||||
filesConverterParameters.displayAspect.factorY=1
|
||||
filesConverterParameters.displayShrinkToFit=false
|
||||
filesConverterParameters.displayZoomToFit=true
|
||||
filesConverterParameters.sourceFiles=0
|
||||
filesConverterParameters.imageFilePath=
|
||||
filesConverterParameters.columns=40
|
||||
filesConverterParameters.rows=24
|
||||
filesConverterParameters.spacingColor.red=0
|
||||
filesConverterParameters.spacingColor.green=0
|
||||
filesConverterParameters.spacingColor.blue=128
|
||||
filesConverterParameters.spacingWidth=0
|
||||
filesConverterParameters.palette=HIRES_1
|
||||
filesConverterParameters.paletteType=ATARI_DEFAULT
|
||||
filesConverterParameters.paletteRGBs=0
|
||||
imageConverterParameters.converterId=com.wudsn.ide.gfx.converter.atari8bit.LinearBitMapGraphics8Converter
|
||||
imageConverterParameters.imageAspect.factorX=1
|
||||
imageConverterParameters.imageAspect.factorY=1
|
||||
imageConverterParameters.displayAspect.factorX=1
|
||||
imageConverterParameters.displayAspect.factorY=1
|
||||
imageConverterParameters.displayShrinkToFit=false
|
||||
imageConverterParameters.displayZoomToFit=true
|
||||
imageConverterParameters.imageFilePath=dino_mask2.png
|
||||
imageConverterParameters.targetFiles=10
|
||||
imageConverterParameters.targetFiles.0.path=
|
||||
imageConverterParameters.targetFiles.1.path=
|
||||
imageConverterParameters.targetFiles.2.path=
|
||||
imageConverterParameters.targetFiles.3.path=
|
||||
imageConverterParameters.targetFiles.4.path=
|
||||
imageConverterParameters.targetFiles.5.path=
|
||||
imageConverterParameters.targetFiles.6.path=
|
||||
imageConverterParameters.targetFiles.7.path=
|
||||
imageConverterParameters.targetFiles.8.path=
|
||||
imageConverterParameters.targetFiles.9.path=
|
||||
imageConverterParameters.useDefaultScript=true
|
||||
imageConverterParameters.script=function convertToFileData(data) {\r\n\tvar bpsl \= (data.getImageDataWidth() + 7) / 8;\r\n\tvar bytes \= [];\r\n\tvar offset \= 0;\r\n\tfor (var y \= 0; y < data.getImageDataHeight(); y++) {\r\n\t for (var x \= 0; x < data.getImageDataWidth(); x \= x + 8) {\r\n\t\t\tvar b \= 0;\r\n\t\t\tfor (var p \= 0; p < 8; p++) {\r\n\t\t\t var color;\r\n\t\t\t color \= data.getPixel(x + p, y);\r\n\t\t\t if (color \!\= 0) {\r\n\t\t\t\t\tb \= b | 1 << 7 - p;\r\n\t\t\t }\r\n\t\t\t}\r\n\t\t\tbytes[offset++] \= b;\r\n\t }\r\n\t}\r\n\tdata.setTargetFileObject(0, bytes);\r\n}
|
||||
|
After Width: | Height: | Size: 99 B |
|
After Width: | Height: | Size: 131 B |
|
After Width: | Height: | Size: 208 B |
@@ -0,0 +1,76 @@
|
||||
; @com.wudsn.ide.asm.mainsourcefile=ni.asm
|
||||
;-------------------------------------------------------------
|
||||
;24x24 pix = 3x3 chars (3x24 bytes)
|
||||
.rept 3, #
|
||||
dino:1
|
||||
ins 'art/dino:1.data'
|
||||
.endr
|
||||
|
||||
.rept 3, #
|
||||
dino_mask:1
|
||||
ins 'art/dino_mask:1.data'
|
||||
.endr
|
||||
|
||||
dino_tab_l
|
||||
.rept 3, #
|
||||
.by <dino:1
|
||||
.endr
|
||||
dino_tab_h
|
||||
.rept 3, #
|
||||
.by >dino:1
|
||||
.endr
|
||||
|
||||
dino_mask_tab_l
|
||||
.rept 3, #
|
||||
.by <dino_mask:1
|
||||
.endr
|
||||
dino_mask_tab_h
|
||||
.rept 3, #
|
||||
.by >dino_mask:1
|
||||
.endr
|
||||
|
||||
dino_back ; background save for dino sprite
|
||||
:3*24 .by 0
|
||||
dino_save_y .by 0
|
||||
|
||||
;------------------------------
|
||||
; ground pictures, 8x16 px = 2x1 chars (2x8 bytes)
|
||||
.rept 3, #
|
||||
gnd_:1
|
||||
ins 'art/gnd_:1.data'
|
||||
.endr
|
||||
gnd_tab_l
|
||||
.rept 3, #
|
||||
.by <gnd_:1
|
||||
.endr
|
||||
gnd_tab_h
|
||||
.rept 3, #
|
||||
.by >gnd_:1
|
||||
.endr
|
||||
scr_addrs_l
|
||||
:sh .by <(screen+#*sw)
|
||||
scr_addrs_h
|
||||
:sh .by >(screen+#*sw)
|
||||
;------------------------------
|
||||
; cacti pictures, height and width variable
|
||||
; cactX.data is flipped vertically
|
||||
cacti = 3
|
||||
|
||||
.rept cacti, #
|
||||
cact:1
|
||||
ins 'art/cact:1.data'
|
||||
.endr
|
||||
|
||||
cact_widths ; widths of cactii in bytes
|
||||
.by 4, 4, 8
|
||||
cact_heights ; heights of cactii in lines
|
||||
.by 35,48,35
|
||||
cact_tab_l
|
||||
.rept cacti, #
|
||||
.by <cact:1
|
||||
.endr
|
||||
cact_tab_h
|
||||
.rept cacti, #
|
||||
.by >cact:1
|
||||
.endr
|
||||
|
||||
@@ -0,0 +1,483 @@
|
||||
/*
|
||||
scr48 = %00111111 ;screen 48b
|
||||
scr40 = %00111110 ;screen 40b
|
||||
scr32 = %00111101 ;screen 32b
|
||||
*/
|
||||
|
||||
* ---------------------------------------------------------------------------------------------
|
||||
* --- GTIA
|
||||
* ---------------------------------------------------------------------------------------------
|
||||
HPOSP0 = $D000 ; pozioma pozycja gracza 0 (Z)
|
||||
HPOSP1 = $D001 ; pozioma pozycja gracza 1 (Z)
|
||||
HPOSP2 = $D002 ; pozioma pozycja gracza 2 (Z)
|
||||
HPOSP3 = $D003 ; pozioma pozycja gracza 3 (Z)
|
||||
HPOSM0 = $D004 ; pozioma pozycja pocisku 0 (Z)
|
||||
HPOSM1 = $D005 ; pozioma pozycja pocisku 1 (Z)
|
||||
HPOSM2 = $D006 ; pozioma pozycja pocisku 2 (Z)
|
||||
HPOSM3 = $D007 ; pozioma pozycja pocisku 3 (Z)
|
||||
SIZEP0 = $D008 ; poziomy rozmiar gracza 0 (Z)
|
||||
SIZEP1 = $D009 ; poziomy rozmiar gracza 1 (Z)
|
||||
SIZEP2 = $D00A ; poziomy rozmiar gracza 2 (Z)
|
||||
SIZEP3 = $D00B ; poziomy rozmiar gracza 3 (Z)
|
||||
SIZEM = $D00C ; poziomy rozmiar pocisków (Z)
|
||||
GRAFP0 = $D00D ; rejestr grafiki gracza 0 (Z)
|
||||
GRAFP1 = $D00E ; rejestr grafiki gracza 1 (Z)
|
||||
GRAFP2 = $D00F ; rejestr grafiki gracza 2 (Z)
|
||||
GRAFP3 = $D010 ; rejestr grafiki gracza 3 (Z)
|
||||
GRAFM = $D011 ; rejestr grafiki pocisków (Z)
|
||||
COLPM0 = $D012 ; rejestr koloru gracza i pocisku 0 (Z)
|
||||
COLPM1 = $D013 ; rejestr koloru gracza i pocisku 1 (Z)
|
||||
COLPM2 = $D014 ; rejestr koloru gracza i pocisku 2 (Z)
|
||||
COLPM3 = $D015 ; rejestr koloru gracza i pocisku 3 (Z)
|
||||
COLPF0 = $D016 ; rejestr koloru pola gry 0 (Z)
|
||||
COLPF1 = $D017 ; rejestr koloru pola gry 1 (Z)
|
||||
COLPF2 = $D018 ; rejestr koloru pola gry 2 (Z)
|
||||
COLPF3 = $D019 ; rejestr koloru pola gry 3 (Z)
|
||||
COLBAK = $D01A ; rejestr koloru tła (Z)
|
||||
|
||||
COLOR0 = colpf0
|
||||
COLOR1 = colpf1
|
||||
COLOR2 = colpf2
|
||||
COLOR3 = colpf3
|
||||
|
||||
KOLM0PF = $D000 ; kolizja pocisku 0 z polem gry (O)
|
||||
KOLM1PF = $D001 ; kolizja pocisku 1 z polem gry (O)
|
||||
KOLM2PF = $D002 ; kolizja pocisku 2 z polem gry (O)
|
||||
KOLM3PF = $D003 ; kolizja pocisku 3 z polem gry (O)
|
||||
KOLP0PF = $D004 ; kolizja gracza 0 z polem gry (O)
|
||||
KOLP1PF = $D005 ; kolizja gracza 1 z polem gry (O)
|
||||
KOLP2PF = $D006 ; kolizja gracza 2 z polem gry (O)
|
||||
KOLP3PF = $D007 ; kolizja gracza 3 z polem gry (O)
|
||||
KOLM0P = $D008 ; kolizja pocisku 0 z graczem (O)
|
||||
KOLM1P = $D009 ; kolizja pocisku 1 z graczem (O)
|
||||
KOLM2P = $D00A ; kolizja pocisku 2 z graczem (O)
|
||||
KOLM3P = $D00B ; kolizja pocisku 3 z graczem (O)
|
||||
KOLP0P = $D00C ; kolizja gracza 0 z innym graczem (O)
|
||||
KOLP1P = $D00D ; kolizja gracza 1 z innym graczem (O)
|
||||
KOLP2P = $D00E ; kolizja gracza 2 z innym graczem (O)
|
||||
KOLP3P = $D00F ; kolizja gracza 3 z innym graczem (O)
|
||||
TRIG0 = $D010 ; stan przycisku joysticka 0 (O)
|
||||
TRIG1 = $D011 ; stan przycisku joysticka 1 (O)
|
||||
TRIG3 = $D013 ; znacznik dołączenia cartridge-a (O)
|
||||
PAL = $D014 ; znacznik systemu TV (O)
|
||||
|
||||
GTICTL = $D01B ; rejestr kontroli układu GTIA
|
||||
GTIACTL = gtictl
|
||||
|
||||
VDELAY = $D01C ; licznik opóźnienia pionowego P/MG
|
||||
PMCNTL = $D01D ; rejestr kontroli graczy i pocisków
|
||||
HITCLR = $D01E ; rejestr kasowania rejestrów kolizji
|
||||
CONSOL = $D01F ; rejestr stanu klawiszy konsoli Start (bit 0), Select (bit 1), Option (bit 2)
|
||||
|
||||
* ---------------------------------------------------------------------------------------------
|
||||
* --- POKEY
|
||||
* ---------------------------------------------------------------------------------------------
|
||||
|
||||
IRQENS = $0010 ; rejestr-cień IRQEN
|
||||
IRQSTAT = $0011 ; rejestr-cień IRQST
|
||||
|
||||
AUDF3 = $D204 ; częstotliwość pracy generatora 3 (Z)
|
||||
AUDCTL = $D208 ; rejestr kontroli generatorów dźwięku (Z)
|
||||
STIMER = $D209 ; rejestr zerowania liczników (Z)
|
||||
KBCODE = $D209 ; kod ostatnio naciśniętego klawisza (O)
|
||||
SKSTRES = $D20A ; rejestr statusu złącza szeregowego (Z)
|
||||
RANDOM = $D20A ; rejestr liczby losowej (O)
|
||||
SEROUT = $D20D ; szeregowy rejestr wyjściowy (Z)
|
||||
SERIN = $D20D ; szeregowy rejestr wejściowy (O)
|
||||
IRQEN = $D20E ; zezwolenie przerwań IRQ (Z)
|
||||
IRQST = $D20E ; status przerwań IRQ (O)
|
||||
SKCTL = $D20F ; rejestr kontroli złącza szeregowego (Z)
|
||||
SKSTAT = $D20F ; rejestr statusu złącza szeregowego (O)
|
||||
|
||||
* ---------------------------------------------------------------------------------------------
|
||||
* --- PIA
|
||||
* ---------------------------------------------------------------------------------------------
|
||||
PORTA = $D300 ; port A układu PIA
|
||||
PORTB = $D301 ; port B układu PIA
|
||||
PACTL = $D302 ; rejestr kontroli portu A
|
||||
PBCTL = $D303 ; rejestr kontroli portu B
|
||||
|
||||
* ---------------------------------------------------------------------------------------------
|
||||
* --- ANTIC
|
||||
* ---------------------------------------------------------------------------------------------
|
||||
DMACTL = $D400 ; rejestr kontroli dostępu do pamięci
|
||||
CHRCTL = $D401 ; rejestr kontroli wyświetlania znaków
|
||||
DLPTR = $D402 ; adres programu ANTIC-a
|
||||
HSCROL = $D404 ; znacznik poziomego przesuwu obrazu
|
||||
VSCROL = $D405 ; znacznik pionowego przesuwu obrazu
|
||||
PMBASE = $D407 ; adres pamięci graczy i pocisków
|
||||
CHBASE = $D409 ; adres zestawu znaków
|
||||
WSYNC = $D40A ; znacznik oczekiwania na synchronizację poziomą
|
||||
VCOUNT = $D40B ; licznik linii obrazu
|
||||
LPENH = $D40C ; poziome położenie pióra świetlengo
|
||||
LPENV = $D40D ; pionowe położenie pióra świetlnego
|
||||
NMIEN = $D40E ; rejestr zezwoleń na przerwania NMI
|
||||
NMIST = $D40F ; rejestr statusu przerwań NMI
|
||||
|
||||
;-------------------------------------
|
||||
;additional system variables
|
||||
;-------------------------------------
|
||||
COLPM0S = $02C0 ;- - rejestr-cień COLPM0
|
||||
COLPM1S = $02C1 ;- - rejestr-cień COLPM1
|
||||
COLPM2S = $02C2 ;- - rejestr-cień COLPM2
|
||||
COLPM3S = $02C3 ;- - rejestr-cień COLPM3
|
||||
COLPF0S = $02C4 ;- - rejestr-cień COLPF0
|
||||
COLPF1S = $02C5 ;- - rejestr-cień COLPF1
|
||||
COLPF2S = $02C6 ;- - rejestr-cień COLPF2
|
||||
COLPF3S = $02C7 ;- - rejestr-cień COLPF3
|
||||
|
||||
COLBAKS = $02C8
|
||||
GTICTLS = $026F ;- - rejestr-cień GTIACTL
|
||||
|
||||
DMACTLS = $022F ;- - rejestr kontroli dostępu do pamięci - cień
|
||||
DLPTRS = $0230 ;- - adres programu ANTIC-a - cień
|
||||
CHBAS = $02F4 ;- - rejestr-cień CHBASE
|
||||
KBCODES = $02FC ;- - rejestr-cień KBCODE
|
||||
|
||||
SETVBV = $E45C
|
||||
XITVBV = $E462
|
||||
SYSVBV = $E45F
|
||||
RTCLOK = $0012
|
||||
|
||||
MEMTOP = $02E5 ;- - adres górnej granicy wolnej pamięci RAM
|
||||
MEMLO = $02E7 ;- - adres dolnej granicy wolnej pamięci RAM
|
||||
|
||||
JSTICK0 = $0278 ;- - położenie joysticka 0
|
||||
JSTICK1 = $0279 ;- JSTICK1 - położenie joysticka 1
|
||||
JSTICK2 = $027A ;- JSTICK2 - położenie joysticka 0
|
||||
JSTICK3 = $027B ;- JSTICK3 - położenie joysticka 1
|
||||
PTRIG0 = $027C ;- PTRIG0 - przycisk potencjometru 0
|
||||
PTRIG1 = $027D ;- PTRIG1 - przycisk potencjometru 1
|
||||
TRIG0S = $0284 ;- TRIG0S - przycisk joysticka 0, rejestr-cień TRIG0
|
||||
TRIG1S = $0285 ;- TRIG1S - przycisk joysticka 1, rejestr-cień TRIG1
|
||||
TRIG2S = $0286 ;- TRIG2S - rejestr-cień TRIG0
|
||||
TRIG3S = $0287 ;- TRIG3S - rejestr-cień TRIG1
|
||||
|
||||
|
||||
/*
|
||||
Rejestry OS w pamięci RAM
|
||||
|
||||
$08 - WARMST - znacznik gorącego startu
|
||||
$0E - APPMHI - najwyższy adres RAM zajęty przez program
|
||||
$10 - IRQENS - rejestr-cień IRQEN
|
||||
$11 - IRQSTAT - rejestr-cień IRQST
|
||||
$12 - RTCLOK - zegar czasu rzeczywistego
|
||||
$15 - BUFADR - adres bufora dla operacji dyskowych
|
||||
$17 - ICCOMT - rejestr przejściowy kodu operacji I/O
|
||||
$20 - ZIOCB - zerostronicowy blok kontroli I/O
|
||||
$20 - ICHIDZ - indeks wpisu urządzenia w HATABS
|
||||
$21 - ICDNOZ - numer urządzenia
|
||||
$22 - ICCOMZ - kod operacji wejścia/wyjścia
|
||||
$23 - ICSTZ - status operacji wejścia/wyjścia
|
||||
$24 - ICBAZ - adres bufora danych dla operacji I/O
|
||||
$26 - ICPTZ - adres procedury obsługi dla operacji
|
||||
$28 - ICBLZ - długość bufora danych dla operacji I/O
|
||||
$2A - ICAX1Z - rejestr pomocniczy ZIOCB
|
||||
$2B - ICAX2Z - rejestr pomocniczy ZIOCB
|
||||
$2C - ICAX3Z - rejestr pomocniczy ZIOCB
|
||||
$2D - ICAX4Z - rejestr pomocniczy ZIOCB
|
||||
$2E - ICAX5Z - rejestr pomocniczy ZIOCB
|
||||
$2F - ICAX6Z - rejestr pomocniczy ZIOCB
|
||||
$30 - STATUS - status aktualnej operacji SIO
|
||||
$31 - CHKSUM - suma kontrolna dla operacji SIO
|
||||
$32 - BUFR - adres bufora danych dla SIO
|
||||
$34 - BUFEN - adres końca bufora danych dla SIO
|
||||
$36 - LTEMP - pomocniczy wektor odczytu listy liniowej
|
||||
$38 - BUFRFL - znacznik zapełnienia bufora SIO
|
||||
$39 - RECVND - znacznik końca odczytu
|
||||
$3A - XMTDON - znacznik końca transmisji
|
||||
$3B - CHKSNT - znacznik nadania sumy kontrolnej
|
||||
$3C - NOCKSM - znacznik braku sumy kontrolnej
|
||||
$3D - BPTR - licznik bufora magnetofonu
|
||||
$3E - GAPTYP - znacznik długości przerwy między blokami
|
||||
$3F - FEOF - znacznik końca zbioru
|
||||
$40 - FREQ - licznik dźwięku przy otwarciu magnetofonu
|
||||
$41 - IOSNDEN - znacznik dźwięku przy transmisji
|
||||
$42 - CRITIC - znacznik krytycznych czasowo operacji I/O
|
||||
$4A - ZCHAIN - rejestr następstwa listy liniowej
|
||||
$4C - DSTAT - status klawiatury i ekranu
|
||||
$50 - TEMP - pomocniczy rejestr przejściowy
|
||||
$51 - HOLD1 - pomocniczy rejestr przejściowy
|
||||
$52 - LMARGIN - lewy margines obrazu
|
||||
$53 - RMARGIN - prawy margines obrazu
|
||||
$54 - ROWCRS - pionowa pozycja kursora
|
||||
$55 - COLCRS - pozioma pozycja kursora
|
||||
$57 - DINDEX - numer trybu graficznego OS
|
||||
$58 - SAVMSC - adres pamięci obrazu
|
||||
$5A - OLDROW - poprzednia pionowa pozycja kursora
|
||||
$5B - OLDCOL - poprzednia pozioma pozycja kursora
|
||||
$5D - OLDCHR - poprzedni znak na ekranie
|
||||
$5E - OLDADR - poprzedni adres znaku na ekranie
|
||||
$60 - FKDEFP - wektor tabeli definicji klawiszy F1-F4
|
||||
$62 - PALNTS - wskaźnik systemu TV
|
||||
$63 - LOGCOL - adres kursora w wierszu logicznym
|
||||
$64 - ADRESS - rejestr adresowy dla procedur edytora
|
||||
$66 - MLTTMP - pomocniczy rejestr przejściowy
|
||||
$68 - SAVADR - pomocniczy rejestr adresowy
|
||||
$6A - RAMTOP - liczba stron pamięci RAM
|
||||
$6B - BUFCNT - licznik bufora edytora
|
||||
$6C - BUFSTR - adres bufora dla edytora
|
||||
$6E - BITMSK - maska bitowa do wyświetlenia znaku
|
||||
$6F - SHFAMT - liczba przesunięć punktu
|
||||
$70 - ROWAC - aktualny wiersz przy rysowaniu
|
||||
$72 - COLAC - aktualna kolumna przy rysowaniu
|
||||
$74 - ENDPT - znacznik końca rysowanej linii
|
||||
$76 - DELTAR - przyrost pionowej pozycji kursora
|
||||
$77 - DELTAC - przyrost poziomej pozycji kursora
|
||||
$79 - KEYDEFP - wektor tabeli definicji klawiszy
|
||||
$7B - SWPFLG - znacznik kursora w trybach z oknem
|
||||
$7C - HOLDCH - przechowywanie wartości znaku
|
||||
$7D - INSDAT - rejestr pomocniczy edytora
|
||||
$7E - COUNTR - licznik pamięci obrazu dla DOSCR i DRAW
|
||||
$0100 - STACK - stos mikroprocesora 6502
|
||||
$0200 - DLIV - wektor przerwania programu ANTIC-a
|
||||
$0210 - VTIMR1 - wektor przerwania licznika 1 POKEY-a
|
||||
$0212 - VTIMR2 - wektor przerwania licznika 2 POKEY-a
|
||||
$0214 - VTIMR4 - wektor przerwania licznika 4 POKEY-a
|
||||
$0218 - TIMCNT1 - pierwszy licznik systemu
|
||||
$0226 - TIMVEC1 - wektor przerwania licznika TIMCNT1
|
||||
$022A - TIMFLG3 - znacznik wyzerowania licznika TIMCNT3
|
||||
$022F - DMACTLS - rejestr-cień DMACTL
|
||||
$0230 - DLPTRS - rejestr-cień DLPTR
|
||||
$0232 - SKCTLS - rejestr-cień SKCTL
|
||||
$0233 - LCOUNT - licznik odczytu dla nowego urządzenia
|
||||
$0234 - LPENHS - rejestr-cień LPENH
|
||||
$0235 - LPENVS - rejestr-cień LPENV
|
||||
$023A - CDEVIC - kod urządzenia dla SIO
|
||||
$023B - CCMND - kod operacji dla SIO
|
||||
$023C - CAUX1 - pierwszy bajt pomocniczy dla SIO
|
||||
$023D - CAUX2 - drugi bajt pomocniczy dla SIO
|
||||
$023E - TEMP - tymczasowy rejestr odpowiedzi urządzenia
|
||||
$023F - ERRFLG - znacznik błędu operacji SIO
|
||||
$0244 - COLDST - znacznik zimnego startu systemu
|
||||
$0245 - RECLEN - długość rekordu z nowego urządzenia
|
||||
$0246 - DSKTIM - wartość Timeout dla stacji dysków
|
||||
$0247 - PDVMSK - maska obecności nowych urządzeń
|
||||
$0248 - PDVRS - rejestr-cień PDVREG
|
||||
$024A - RELADR - adres procedury przemieszczalnej
|
||||
$024C - PPTMPA - rejestr przechowania zawartości akumulatora
|
||||
$024D - PPTMPX - rejestr przechowania zawartości rejestru X
|
||||
$026B - CHSPTR - wektor nieużywanego zestawu znaków
|
||||
$026C - VSFLAG - znacznik przesuwu pionowego obrazu
|
||||
$026E - FINE - znacznik delikatnego przesuwu obrazu
|
||||
$026F - GTICTLS - rejestr-cień GTIACTL
|
||||
$0270 - PADDL0 - rejestr-cień POT0
|
||||
$0278 - JSTICK0 - położenie joysticka 0
|
||||
$0279 - JSTICK1 - położenie joysticka 1
|
||||
$027A - JSTICK2 - położenie joysticka 0
|
||||
$027B - JSTICK3 - położenie joysticka 1
|
||||
$027C - PTRIG0 - przycisk potencjometru 0
|
||||
$027D - PTRIG1 - przycisk potencjometru 1
|
||||
$0284 - TRIG0S - przycisk joysticka 0, rejestr-cień TRIG0
|
||||
$0285 - TRIG1S - przycisk joysticka 1, rejestr-cień TRIG1
|
||||
$0286 - TRIG2S - rejestr-cień TRIG0
|
||||
$0287 - TRIG3S - rejestr-cień TRIG1
|
||||
$0288 - HIBYTE - indeks operacji nowego urządzenia
|
||||
$0289 - WMODE - znacznik sposobu dostępu do magnetofonu
|
||||
$028A - BLIM - długość bufora magnetofonu
|
||||
$028E - NEWADR - adres procedury nowego urządzenia
|
||||
$0290 - TXTROW - wiersz kursora w oknie tekstowym
|
||||
$0291 - TXTCOL - kolumna kursora w oknie tekstowym
|
||||
$0293 - TINDEX - tryb graficzny OS w oknie tekstowym
|
||||
$0294 - TXTMSC - adres pamięci okna tekstowego
|
||||
$029C - CRETRY - liczba powtórzeń rozkazu operacji
|
||||
$029D - HOLD3 - pomocniczy rejestr przejściowy
|
||||
$029E - SUBTMP - pomocniczy rejestr przejściowy
|
||||
$02A0 - DMASK - maska punktów obrazu
|
||||
$02A2 - ESCFLG - znacznik klawisza ESC
|
||||
$02A3 - TABMAP - mapa pozycji tabulacji
|
||||
$02B2 - LOGMAP - mapa linii logicznych
|
||||
$02B6 - INVFLG - znacznik klawisza inverse video
|
||||
$02B7 - FILFLG - znacznik wypełniania obrazu
|
||||
$02B8 - TMPROW - tymczasowy rejestr pozycji kursora
|
||||
$02B9 - TMPCOL - tymczasowy rejestr pozycji kursora
|
||||
$02BB - SCRFLG - znacznik przesuwu obrazu
|
||||
$02BC - HOLD4 - pomocniczy rejestr przejściowy
|
||||
$02BD - DRETRY - liczba powtórzeń wywołań urządzenia
|
||||
$02BE - SHFLOK - znacznik klawiszy SHIFT i CONTROL
|
||||
$02BF - BOTSCR - liczba wierszy tekstu
|
||||
$02C0 - COLPM0S - rejestr-cień COLPM0
|
||||
$02C1 - COLPM1S - rejestr-cień COLPM1
|
||||
$02C2 - COLPM2S - rejestr-cień COLPM2
|
||||
$02C3 - COLPM3S - rejestr-cień COLPM3
|
||||
$02C4 - COLPF0S - rejestr-cień COLPF0
|
||||
$02C5 - COLPF1S - rejestr-cień COLPF1 ;gr.8 letters
|
||||
$02C6 - COLPF2S - rejestr-cień COLPF2 ;gr.8 background
|
||||
$02C7 - COLPF3S - rejestr-cień COLPF3
|
||||
$02C8 - COLBAKS - rejestr-cień COLBAK
|
||||
$02C9 - RUNADR - adres procedury nowego urządzenia
|
||||
$02CB - HIUSED - adres końcowy procedury nowego urządzenia
|
||||
$02CF - GBYTEA - adres procedury nowego urządzenia
|
||||
$02D1 - LOADAD - adres wczytywania z nowego urządzenia
|
||||
$02D3 - ZLOADA - pomocniczy rejestr adresu wczytywania
|
||||
$02D5 - DSCTLN - długość sektora dyskowego
|
||||
$02DB - NOCLIK - znacznik dźwięku klawiatury
|
||||
$02DE - PBPNT - licznik bufora drukarki
|
||||
$02DF - PBUFSZ - długość bufora drukarki
|
||||
$02E5 - MEMTOP - adres górnej granicy wolnej pamięci RAM
|
||||
$02E7 - MEMLO - adres dolnej granicy wolnej pamięci RAM
|
||||
$02E9 - HNDLOD - znacznik relokowalnej procedury obsługi I/O
|
||||
$02EA - DVSTAT - dodatkowy rejestr statusu urządzenia
|
||||
$02EC - DVTMOT - dodatkowy rejestr Timeout urządzenia
|
||||
$02ED - REVNUM - numer wersji nowego urządzenia
|
||||
$02EE - CBAUD - prędkość transmisji z magnetofonu
|
||||
$02F0 - CRSINH - znacznik widoczności kursora
|
||||
$02F3 - CHACT - rejestr-cień CHRCTL
|
||||
$02F4 - CHBAS - rejestr-cień CHBASE
|
||||
$02F5 - NEWROW - nowa pozycja pionowa kursora
|
||||
$02F6 - NEWCOL - nowa pozycja pozioma kursora
|
||||
$02F8 - ROWINC - zmiana pionowej pozycji kursora
|
||||
$02F9 - COLINC - zmiana poziomej pozycji kursora
|
||||
$02FA - CHAR - kod wewnętrzny znaku
|
||||
$02FB - ATACHR - kod ATASCII znaku
|
||||
$02FC - KBCODES - rejestr-cień KBCODE
|
||||
$02FD - FILDAT - numer koloru dla wypełniania
|
||||
$02FE - DSPFLG - znacznik wyświetlania znaków kontrolnych
|
||||
$02FF - SSFLAG - znacznik start/stop dla przesuwu obrazu
|
||||
$0300 - DDEVIC - kod identyfikacyjny urządzenia
|
||||
$0301 - DUNIT - numer identyfikacyjny urządzenia
|
||||
$0302 - DCMND - bajt rozkazu dla urządzenia
|
||||
$0303 - DSTATS - status urządzenia
|
||||
$0304 - DBUFA - adres bufora danych
|
||||
$0306 - DTIMLO - wartość Timeout dla urządzenia
|
||||
$0308 - DBYT - długość bufora danych
|
||||
$030A - DAUX1 - rejestr pomocniczy dla operacji I/O
|
||||
$030B - DAUX2 - rejestr pomocniczy dla operacji I/O
|
||||
$030C - INTIM1 - rejestr czasu przy odczycie z magnetofonu
|
||||
$030F - CASFLG - znacznik operacji z magnetofonem
|
||||
$0310 - INTIM2 - rejestr czasu przy odczycie z magnetofonu
|
||||
$0312 - TEMP1 - pomocniczy rejestr przejściowy
|
||||
$0313 - TEMP2 - pomocniczy rejestr przejściowy
|
||||
$0314 - PTIMOT - wartość Timeout dla drukarki
|
||||
$0315 - TEMP3 - pomocniczy rejestr przejściowy
|
||||
$0316 - SAVIO - rejestr przejściowy dla operacji SIO
|
||||
$0317 - TIMFLG - znacznik upłynięcia czasu Timeout
|
||||
$0318 - STACKP - rejestr wskaźnika stosu dla SIO
|
||||
$0319 - TSTAT - przejściowy rejestr statusu SIO
|
||||
$031A - HATABS - tabela wektorów procedur obsługi
|
||||
$0340 - IOCB0 - blok kontroli I/O numer 0
|
||||
$0350 - IOCB1 - blok kontroli I/O numer 1
|
||||
$0360 - IOCB2 - blok kontroli I/O numer 2
|
||||
$0370 - IOCB3 - blok kontroli I/O numer 3
|
||||
$0380 - IOCB4 - blok kontroli I/O numer 4
|
||||
$0390 - IOCB5 - blok kontroli I/O numer 5
|
||||
$03A0 - IOCB6 - blok kontroli I/O numer 6
|
||||
$03B0 - IOCB7 - blok kontroli I/O numer 7
|
||||
$0340 - ICCHID - indeks wpisu urządzenia w HATABS
|
||||
$0341 - ICDNO - numer urządzenia
|
||||
$0342 - ICCMD - kod rozkazu operacji I/O
|
||||
$0343 - ICSTAT - status operacji I/O
|
||||
$0344 - ICBUFA - adres bufora danych dla operacji I/O
|
||||
$0346 - ICPUTB - adres procedury przesyłania danych
|
||||
$0348 - ICBUFL - długość bufora danych dla operacji I/O
|
||||
$034A - ICAX1 - rejestr pomocniczy dla operacji I/O
|
||||
$034B - ICAX2 - rejestr pomocniczy dla operacji I/O
|
||||
$034C - ICAX3 - rejestr pomocniczy dla operacji I/O
|
||||
$034D - ICAX4 - rejestr pomocniczy dla operacji I/O
|
||||
$034E - ICAX5 - rejestr pomocniczy dla operacji I/O
|
||||
$034F - ICAX6 - rejestr pomocniczy dla operacji I/O
|
||||
$03C0 - PRNBUF - bufor drukarki
|
||||
$03E8 - SUPERF - znacznik stosowany przy odczycie klawiatury
|
||||
$03E9 - CKEY - znacznik klawisza START przy zimnym starcie
|
||||
$03EC - DERRF - znacznik błędu przy otwieraniu edytora
|
||||
$03FB - CHLINK - rejestr elementów listy liniowej
|
||||
$03FD - CSCB - bajty kontroli szybkości magnetofonu
|
||||
$03FF - CRCB - bajt długości rekordu magnetofonowego
|
||||
$0400 - CASBUF - bufor magnetofonu
|
||||
$047F - CASBEN - koniec bufora magnetofonu
|
||||
$D000 - HPOSP0 - pozioma pozycja gracza 0 (Z)
|
||||
$D000 - KOLM0PF - kolizja pocisku 0 z polem gry (O)
|
||||
$D001 - HPOSP1 - pozioma pozycja gracza 1 (Z)
|
||||
$D001 - KOLM1PF - kolizja pocisku 1 z polem gry (O)
|
||||
$D002 - HPOSP2 - pozioma pozycja gracza 2 (Z)
|
||||
$D002 - KOLM2PF - kolizja pocisku 2 z polem gry (O)
|
||||
$D003 - HPOSP3 - pozioma pozycja gracza 3 (Z)
|
||||
$D003 - KOLM3PF - kolizja pocisku 3 z polem gry (O)
|
||||
$D004 - HPOSM0 - pozioma pozycja pocisku 0 (Z)
|
||||
$D004 - KOLP0PF - kolizja gracza 0 z polem gry (O)
|
||||
$D005 - HPOSM1 - pozioma pozycja pocisku 1 (Z)
|
||||
$D005 - KOLP1PF - kolizja gracza 1 z polem gry (O)
|
||||
$D006 - HPOSM2 - pozioma pozycja pocisku 2 (Z)
|
||||
$D006 - KOLP2PF - kolizja gracza 2 z polem gry (O)
|
||||
$D007 - HPOSM3 - pozioma pozycja pocisku 3 (Z)
|
||||
$D007 - KOLP3PF - kolizja gracza 3 z polem gry (O)
|
||||
$D008 - SIZEP0 - poziomy rozmiar gracza 0 (Z)
|
||||
$D008 - KOLM0P - kolizja pocisku 0 z graczem (O)
|
||||
$D009 - SIZEP1 - poziomy rozmiar gracza 1 (Z)
|
||||
$D009 - KOLM1P - kolizja pocisku 1 z graczem (O)
|
||||
$D00A - SIZEP2 - poziomy rozmiar gracza 2 (Z)
|
||||
$D00A - KOLM2P - kolizja pocisku 2 z graczem (O)
|
||||
$D00B - SIZEP3 - poziomy rozmiar gracza 3 (Z)
|
||||
$D00B - KOLM3P - kolizja pocisku 3 z graczem (O)
|
||||
$D00C - SIZEM - poziomy rozmiar pocisków (Z)
|
||||
$D00C - KOLP0P - kolizja gracza 0 z innym graczem (O)
|
||||
$D00D - GRAFP0 - rejestr grafiki gracza 0 (Z)
|
||||
$D00D - KOLP1P - kolizja gracza 1 z innym graczem (O)
|
||||
$D00E - GRAFP1 - rejestr grafiki gracza 1 (Z)
|
||||
$D00E - KOLP2P - kolizja gracza 2 z innym graczem (O)
|
||||
$D00F - GRAFP2 - rejestr grafiki gracza 2 (Z)
|
||||
$D00F - KOLP3P - kolizja gracza 3 z innym graczem (O)
|
||||
$D010 - GRAFP3 - rejestr grafiki gracza 3 (Z)
|
||||
$D010 - TRIG0 - stan przycisku joysticka 0 (O)
|
||||
$D011 - GRAFM - rejestr grafiki pocisków (Z)
|
||||
$D011 - TRIG1 - stan przycisku joysticka 1 (O)
|
||||
$D012 - COLPM0 - rejestr koloru gracza i pocisku 0 (Z)
|
||||
$D013 - COLPM1 - rejestr koloru gracza i pocisku 1 (Z)
|
||||
$D013 - TRIG3 - znacznik dołączenia cartridge'a (O)
|
||||
$D014 - COLPM2 - rejestr koloru gracza i pocisku 2 (Z)
|
||||
$D014 - PAL - znacznik systemu TV (O)
|
||||
$D015 - COLPM3 - rejestr koloru gracza i pocisku 3 (Z)
|
||||
$D016 - COLPF0 - rejestr koloru pola gry 0 (Z)
|
||||
$D017 - COLPF1 - rejestr koloru pola gry 1 (Z)
|
||||
$D018 - COLPF2 - rejestr koloru pola gry 2 (Z)
|
||||
$D019 - COLPF3 - rejestr koloru pola gry 3 (Z)
|
||||
$D01A - COLBAK - rejestr koloru tła (Z)
|
||||
$D01B - GTIACTL - rejestr kontroli układu GTIA
|
||||
$D01C - VDELAY - licznik opóźnienia pionowego P/MG
|
||||
$D01D - PMCNTL - rejestr kontroli graczy i pocisków
|
||||
$D01E - HITCLR - rejestr kasowania rejestrów kolizji
|
||||
$D01F - CONSOL - rejestr stanu klawiszy konsoli
|
||||
$D1FF - PDVREG - rejestr wyboru nowego urządzenia
|
||||
$D200 - AUDF1 - częstotliwość pracy generatora 1 (Z)
|
||||
$D200 - POT0 - rejestr położenia potencjometru 0 (O)
|
||||
$D201 - AUDC1 - rejestr kontroli dźwięku generatora 1 (Z)
|
||||
$D201 - POT1 - rejestr położenia potencjometru 1 (O)
|
||||
$D202 - AUDF2 - częstotliwość pracy generatora 2 (Z)
|
||||
$D202 - POT2 - rejestr położenia potencjometru 2 (O)
|
||||
$D203 - AUDC2 - rejestr kontroli dźwięku generatora 2 (Z)
|
||||
$D203 - POT3 - rejestr położenia potencjometru 3 (O)
|
||||
$D204 - AUDF3 - częstotliwość pracy generatora 3 (Z)
|
||||
$D205 - AUDC3 - rejestr kontroli dźwięku generatora 3 (Z)
|
||||
$D206 - AUDF4 - częstotliwość pracy generatora 4 (Z)
|
||||
$D207 - AUDC4 - rejestr kontroli dźwięku generatora 4 (Z)
|
||||
$D208 - AUDCTL - rejestr kontroli generatorów dźwięku (Z)
|
||||
$D208 - POTST - status odczytu potencjometrów (O)
|
||||
$D209 - STIMER - rejestr zerowania liczników (Z)
|
||||
$D209 - KBCODE - kod ostatnio naciśniętego klawisza (O)
|
||||
$D20A - SKSTRES - reset statusu złącza szeregowego (Z)
|
||||
$D20A - RANDOM - rejestr liczby losowej (O)
|
||||
$D20B - POTG0 - znacznik przetwornika analogowo-cyfrowego (Z)
|
||||
$D20D - SEROUT - szeregowy rejestr wyjściowy (Z)
|
||||
$D20D - SERIN - szeregowy rejestr wejściowy (O)
|
||||
$D20E - IRQEN - zezwolenia przerwań IRQ (Z)
|
||||
$D20E - IRQST - status przerwań IRQ (O)
|
||||
$D20F - SKCTL - rejestr kontroli złącza szeregowego (Z)
|
||||
$D20F - SKSTAT - rejestr statusu złącza szeregowego (O)
|
||||
$D300 - PORTA - port A układu PIA
|
||||
$D301 - PORTB - port B układu PIA
|
||||
$D302 - PACTL - rejestr kontroli portu A
|
||||
$D303 - PBCTL - rejestr kontroli portu B
|
||||
$D400 - DMACTL - rejestr kontroli dostępu do pamięci
|
||||
$D401 - CHRCTL - rejestr kontroli wyświetlania znaków
|
||||
$D402 - DLPTR - adres programu ANTIC-a
|
||||
$D404 - HSCROL - znacznik poziomego przesuwu obrazu
|
||||
$D405 - VSCROL - znacznik pionowego przesuwu obrazu
|
||||
$D407 - PMBASE - adres pamięci graczy i pocisków
|
||||
$D409 - CHBASE - adres zestawu znaków
|
||||
$D40A - WSYNC - znacznik oczekiwania na synchronizację poziomą
|
||||
$D40B - VCOUNT - licznik linii obrazu
|
||||
$D40C - LPENH - poziome położenie pióra świetlengo
|
||||
$D40D - LPENV - pionowe położenie pióra świetlnego
|
||||
$D40E - NMIEN - rejestr zezwoleń na przerwania NMI
|
||||
$D40F - NMIST - rejestr statusu przerwań NMI
|
||||
*/
|
||||
@@ -0,0 +1,146 @@
|
||||
;-------------------------------------
|
||||
.MACRO ROLW
|
||||
ROL :1
|
||||
ROL :1+1
|
||||
.ENDM
|
||||
;-------------------------------------
|
||||
.MACRO ASLW
|
||||
ASL :1
|
||||
ROL :1+1
|
||||
.ENDM
|
||||
;-------------------------------------
|
||||
.MACRO RORW
|
||||
ROR :1+1
|
||||
ROR :1
|
||||
.ENDM
|
||||
;-------------------------------------
|
||||
.MACRO LSRW
|
||||
LSR :1+1
|
||||
ROR :1
|
||||
.ENDM
|
||||
|
||||
;-------------------------------------
|
||||
.MACRO VMAIN
|
||||
; VMAIN #WORD,interrupt.vector
|
||||
; interrupt.vector:
|
||||
; 0 - VIMIRQ
|
||||
; 1 - TIMCNT1
|
||||
; 2 - TIMCNT2
|
||||
; 3 - TIMCNT3
|
||||
; 4 - TIMCNT4
|
||||
; 5 - TIMCNT5
|
||||
; 6 - VVBLKI
|
||||
; 7 - VVBLKD
|
||||
; 8 - TIMVEC1
|
||||
; 9 - TIMVEC2
|
||||
; Initialises Vertical Blank Interrupts
|
||||
; (works only with system interrupts ON)
|
||||
LDY # <:1
|
||||
LDX # >:1
|
||||
LDA #:2
|
||||
JSR SETVBV
|
||||
.ENDM
|
||||
;-------------------------------------
|
||||
.MACRO VDLI
|
||||
; VDLI #WORD
|
||||
; Initialises Display List Interrupts
|
||||
LDY # <:1
|
||||
LDX # >:1
|
||||
LDA #$C0
|
||||
STY $0200
|
||||
STX $0201
|
||||
STA NMIEN
|
||||
.ENDM
|
||||
;-------------------------------------
|
||||
.MACRO halt
|
||||
?stop
|
||||
.if :1
|
||||
lda RANDOM
|
||||
and #:1
|
||||
sta COLBAK
|
||||
.endif
|
||||
jmp ?stop
|
||||
.ENDM
|
||||
;-------------------------------------
|
||||
.MACRO KEY
|
||||
; KEY
|
||||
; waits for releasing and pressing "any key"
|
||||
PHA
|
||||
?CK1 LDA SKSTAT
|
||||
AND #$04
|
||||
BEQ ?CK1
|
||||
?CK LDA SKSTAT
|
||||
AND #$04
|
||||
BNE ?CK
|
||||
PLA
|
||||
.ENDM
|
||||
;-------------------------------------
|
||||
.MACRO WAIT ;waits one frame (1/50 s(PAL) or 1/60s(NTSC))
|
||||
;uses: A
|
||||
LDA VCOUNT
|
||||
STA WSYNC
|
||||
STA WSYNC
|
||||
STA WSYNC
|
||||
@ CMP VCOUNT
|
||||
BNE @-
|
||||
.ENDM
|
||||
;-------------------------------------
|
||||
.macro negw
|
||||
; negate the given word (0-a)
|
||||
;-------------------------------------
|
||||
sec
|
||||
lda #$00
|
||||
sbc :1
|
||||
sta :1
|
||||
lda #$00
|
||||
sbc :1+1
|
||||
sta :1+1
|
||||
.endm
|
||||
;-------------------------------------
|
||||
.macro randomize ;returns (in A) a random .byte between "floor" (incl) and "ceiling" (excl)
|
||||
;usage: randomize floor ceiling AND
|
||||
;uses: A
|
||||
|
||||
?rand
|
||||
lda random
|
||||
.if :3
|
||||
and #:3
|
||||
.endif
|
||||
cmp #:1 ;floor
|
||||
bcc ?rand
|
||||
cmp #:2+1 ;ceiling
|
||||
bcs ?rand
|
||||
.endm
|
||||
;-------------------------------------
|
||||
.macro phx
|
||||
txa
|
||||
pha
|
||||
.endm
|
||||
;-------------------------------------
|
||||
.macro phy
|
||||
tya
|
||||
pha
|
||||
.endm
|
||||
;-------------------------------------
|
||||
.macro plx
|
||||
pla
|
||||
tax
|
||||
.endm
|
||||
;-------------------------------------
|
||||
.macro ply
|
||||
pla
|
||||
tay
|
||||
.endm
|
||||
;-------------------------------------
|
||||
.macro pause ;waits :1 number (byte) of frames
|
||||
;uses: AX
|
||||
.if :1 > 0
|
||||
ldx #:1
|
||||
loop wait
|
||||
dex
|
||||
bne loop
|
||||
.else
|
||||
wait
|
||||
.endif
|
||||
.ENDM
|
||||
|
||||
@@ -0,0 +1,148 @@
|
||||
mads 2.0.6 build 58 (28 Jan 17)
|
||||
Source: C:\jac\wudsn\Workspace\no_internet\macro.asm
|
||||
1 ;-------------------------------------
|
||||
2 .MACRO ROLW
|
||||
3 ROL :1
|
||||
4 ROL :1+1
|
||||
5 .ENDM
|
||||
6 ;-------------------------------------
|
||||
7 .MACRO ASLW
|
||||
8 ASL :1
|
||||
9 ROL :1+1
|
||||
10 .ENDM
|
||||
11 ;-------------------------------------
|
||||
12 .MACRO RORW
|
||||
13 ROR :1+1
|
||||
14 ROR :1
|
||||
15 .ENDM
|
||||
16 ;-------------------------------------
|
||||
17 .MACRO LSRW
|
||||
18 LSR :1+1
|
||||
19 ROR :1
|
||||
20 .ENDM
|
||||
21
|
||||
22 ;-------------------------------------
|
||||
23 .MACRO VMAIN
|
||||
24 ; VMAIN #WORD,interrupt.vector
|
||||
25 ; interrupt.vector:
|
||||
26 ; 0 - VIMIRQ
|
||||
27 ; 1 - TIMCNT1
|
||||
28 ; 2 - TIMCNT2
|
||||
29 ; 3 - TIMCNT3
|
||||
30 ; 4 - TIMCNT4
|
||||
31 ; 5 - TIMCNT5
|
||||
32 ; 6 - VVBLKI
|
||||
33 ; 7 - VVBLKD
|
||||
34 ; 8 - TIMVEC1
|
||||
35 ; 9 - TIMVEC2
|
||||
36 ; Initialises Vertical Blank Interrupts
|
||||
37 ; (works only with system interrupts ON)
|
||||
38 LDY # <:1
|
||||
39 LDX # >:1
|
||||
40 LDA #:2
|
||||
41 JSR SETVBV
|
||||
42 .ENDM
|
||||
43 ;-------------------------------------
|
||||
44 .MACRO VDLI
|
||||
45 ; VDLI #WORD
|
||||
46 ; Initialises Display List Interrupts
|
||||
47 LDY # <:1
|
||||
48 LDX # >:1
|
||||
49 LDA #$C0
|
||||
50 STY $0200
|
||||
51 STX $0201
|
||||
52 STA NMIEN
|
||||
53 .ENDM
|
||||
54 ;-------------------------------------
|
||||
55 .MACRO halt
|
||||
56 ?stop
|
||||
57 .if :1
|
||||
58 lda RANDOM
|
||||
59 and #:1
|
||||
60 sta COLBAK
|
||||
61 .endif
|
||||
62 jmp ?stop
|
||||
63 .ENDM
|
||||
64 ;-------------------------------------
|
||||
65 .MACRO KEY
|
||||
66 ; KEY
|
||||
67 ; waits for releasing and pressing "any key"
|
||||
68 PHA
|
||||
69 ?CK1 LDA SKSTAT
|
||||
70 AND #$04
|
||||
71 BEQ ?CK1
|
||||
72 ?CK LDA SKSTAT
|
||||
73 AND #$04
|
||||
74 BNE ?CK
|
||||
75 PLA
|
||||
76 .ENDM
|
||||
77 ;-------------------------------------
|
||||
78 .MACRO WAIT ;waits one frame (1/50 s(PAL) or 1/60s(NTSC))
|
||||
79 ;uses: A
|
||||
80 LDA VCOUNT
|
||||
81 STA WSYNC
|
||||
82 STA WSYNC
|
||||
83 STA WSYNC
|
||||
84 @ CMP VCOUNT
|
||||
85 BNE @-
|
||||
86 .ENDM
|
||||
87 ;-------------------------------------
|
||||
88 .macro negw
|
||||
89 ; negate the given word (0-a)
|
||||
90 ;-------------------------------------
|
||||
91 sec
|
||||
92 lda #$00
|
||||
93 sbc :1
|
||||
94 sta :1
|
||||
95 lda #$00
|
||||
96 sbc :1+1
|
||||
97 sta :1+1
|
||||
98 .endm
|
||||
99 ;-------------------------------------
|
||||
100 .macro randomize ;returns (in A) a random .byte between "floor" (incl) and "ceiling" (excl)
|
||||
101 ;usage: randomize floor ceiling AND
|
||||
102 ;uses: A
|
||||
103
|
||||
104 ?rand
|
||||
105 lda random
|
||||
106 .if :3
|
||||
107 and #:3
|
||||
108 .endif
|
||||
109 cmp #:1 ;floor
|
||||
110 bcc ?rand
|
||||
111 cmp #:2+1 ;ceiling
|
||||
112 bcs ?rand
|
||||
113 .endm
|
||||
114 ;-------------------------------------
|
||||
115 .macro phx
|
||||
116 txa
|
||||
117 pha
|
||||
118 .endm
|
||||
119 ;-------------------------------------
|
||||
120 .macro phy
|
||||
121 tya
|
||||
122 pha
|
||||
123 .endm
|
||||
124 ;-------------------------------------
|
||||
125 .macro plx
|
||||
126 pla
|
||||
127 tax
|
||||
128 .endm
|
||||
129 ;-------------------------------------
|
||||
130 .macro ply
|
||||
131 pla
|
||||
132 tay
|
||||
133 .endm
|
||||
134 ;-------------------------------------
|
||||
135 .macro pause ;waits :1 number (byte) of frames
|
||||
136 ;uses: AX
|
||||
137 .if :1 > 0
|
||||
138 ldx #:1
|
||||
139 loop wait
|
||||
140 dex
|
||||
141 bne loop
|
||||
142 .else
|
||||
143 wait
|
||||
144 .endif
|
||||
145 .ENDM
|
||||
146
|
||||
@@ -0,0 +1,78 @@
|
||||
; @com.wudsn.ide.asm.mainsourcefile=ni.asm
|
||||
icl 'atari.asm'
|
||||
icl 'macro.asm'
|
||||
|
||||
.zpvar tmp, tmp0, tmp1, tmp2, tmp3 .word
|
||||
sw = $80 ;screen width in bytes
|
||||
sh = 128 ; screen height in lines
|
||||
screen = $4000
|
||||
pmgraph = $9000
|
||||
org $2000
|
||||
dl
|
||||
.byte $70,$70,$70
|
||||
dl_addrs ;start of lines
|
||||
.REPT sh
|
||||
.byte $5f
|
||||
.word screen+#*sw
|
||||
.ENDR
|
||||
.byte $41
|
||||
.word DL
|
||||
start
|
||||
mva #%00100011 DMACTLS
|
||||
mwa #dl DLPTRS
|
||||
mva #12 move_scr.hscr_state ;hscroll initialisation
|
||||
sta HSCROL
|
||||
|
||||
mva #0 COLPF1S
|
||||
mva #$0F COLBAKS
|
||||
mva #$0f COLPF2S
|
||||
|
||||
|
||||
jsr sprites_init
|
||||
pause 1
|
||||
jsr ground_init
|
||||
|
||||
ldx #20
|
||||
ldy #0
|
||||
jsr cactus
|
||||
ldx #30
|
||||
ldy #1
|
||||
jsr cactus
|
||||
ldx #40
|
||||
ldy #2
|
||||
jsr cactus
|
||||
|
||||
xx ldx #0 ; anim phaze
|
||||
yy ldy #54
|
||||
jsr dino_pm
|
||||
inc:lda xx+1
|
||||
cmp #3
|
||||
sne
|
||||
mva #0 xx+1
|
||||
key
|
||||
jsr move_scr
|
||||
jmp xx
|
||||
|
||||
|
||||
llp
|
||||
mva #0 ntmp
|
||||
lp
|
||||
ldx ntmp
|
||||
ldy #98
|
||||
jsr dino
|
||||
key
|
||||
jsr dino_clear
|
||||
key
|
||||
inc:lda ntmp
|
||||
cmp #3
|
||||
bne lp
|
||||
jmp llp
|
||||
|
||||
|
||||
halt 03
|
||||
|
||||
run start
|
||||
ntmp .by 0
|
||||
|
||||
icl 'procs.asm'
|
||||
icl 'artwork.asm'
|
||||
@@ -0,0 +1,6 @@
|
||||
.sourcemode on
|
||||
.echo
|
||||
.echo "Loading executable..."
|
||||
.echo
|
||||
bc *
|
||||
.onexerun .echo "Launching executable..."
|
||||
@@ -0,0 +1,212 @@
|
||||
mads 2.0.6 build 58 (28 Jan 17)
|
||||
Label table:
|
||||
00 D000 HPOSP0
|
||||
00 D001 HPOSP1
|
||||
00 D002 HPOSP2
|
||||
00 D003 HPOSP3
|
||||
00 D004 HPOSM0
|
||||
00 D005 HPOSM1
|
||||
00 D006 HPOSM2
|
||||
00 D007 HPOSM3
|
||||
00 D008 SIZEP0
|
||||
00 D009 SIZEP1
|
||||
00 D00A SIZEP2
|
||||
00 D00B SIZEP3
|
||||
00 D00C SIZEM
|
||||
00 D00D GRAFP0
|
||||
00 D00E GRAFP1
|
||||
00 D00F GRAFP2
|
||||
00 D010 GRAFP3
|
||||
00 D011 GRAFM
|
||||
00 D012 COLPM0
|
||||
00 D013 COLPM1
|
||||
00 D014 COLPM2
|
||||
00 D015 COLPM3
|
||||
00 D016 COLPF0
|
||||
00 D017 COLPF1
|
||||
00 D018 COLPF2
|
||||
00 D019 COLPF3
|
||||
00 D01A COLBAK
|
||||
00 D016 COLOR0
|
||||
00 D017 COLOR1
|
||||
00 D018 COLOR2
|
||||
00 D019 COLOR3
|
||||
00 D000 KOLM0PF
|
||||
00 D001 KOLM1PF
|
||||
00 D002 KOLM2PF
|
||||
00 D003 KOLM3PF
|
||||
00 D004 KOLP0PF
|
||||
00 D005 KOLP1PF
|
||||
00 D006 KOLP2PF
|
||||
00 D007 KOLP3PF
|
||||
00 D008 KOLM0P
|
||||
00 D009 KOLM1P
|
||||
00 D00A KOLM2P
|
||||
00 D00B KOLM3P
|
||||
00 D00C KOLP0P
|
||||
00 D00D KOLP1P
|
||||
00 D00E KOLP2P
|
||||
00 D00F KOLP3P
|
||||
00 D010 TRIG0
|
||||
00 D011 TRIG1
|
||||
00 D013 TRIG3
|
||||
00 D014 PAL
|
||||
00 D01B GTICTL
|
||||
00 D01B GTIACTL
|
||||
00 D01C VDELAY
|
||||
00 D01D PMCNTL
|
||||
00 D01E HITCLR
|
||||
00 D01F CONSOL
|
||||
00 0010 IRQENS
|
||||
00 0011 IRQSTAT
|
||||
00 D204 AUDF3
|
||||
00 D208 AUDCTL
|
||||
00 D209 STIMER
|
||||
00 D209 KBCODE
|
||||
00 D20A SKSTRES
|
||||
00 D20A RANDOM
|
||||
00 D20D SEROUT
|
||||
00 D20D SERIN
|
||||
00 D20E IRQEN
|
||||
00 D20E IRQST
|
||||
00 D20F SKCTL
|
||||
00 D20F SKSTAT
|
||||
00 D300 PORTA
|
||||
00 D301 PORTB
|
||||
00 D302 PACTL
|
||||
00 D303 PBCTL
|
||||
00 D400 DMACTL
|
||||
00 D401 CHRCTL
|
||||
00 D402 DLPTR
|
||||
00 D404 HSCROL
|
||||
00 D405 VSCROL
|
||||
00 D407 PMBASE
|
||||
00 D409 CHBASE
|
||||
00 D40A WSYNC
|
||||
00 D40B VCOUNT
|
||||
00 D40C LPENH
|
||||
00 D40D LPENV
|
||||
00 D40E NMIEN
|
||||
00 D40F NMIST
|
||||
00 02C0 COLPM0S
|
||||
00 02C1 COLPM1S
|
||||
00 02C2 COLPM2S
|
||||
00 02C3 COLPM3S
|
||||
00 02C4 COLPF0S
|
||||
00 02C5 COLPF1S
|
||||
00 02C6 COLPF2S
|
||||
00 02C7 COLPF3S
|
||||
00 02C8 COLBAKS
|
||||
00 026F GTICTLS
|
||||
00 022F DMACTLS
|
||||
00 0230 DLPTRS
|
||||
00 02F4 CHBAS
|
||||
00 02FC KBCODES
|
||||
00 E45C SETVBV
|
||||
00 E462 XITVBV
|
||||
00 E45F SYSVBV
|
||||
00 0012 RTCLOK
|
||||
00 02E5 MEMTOP
|
||||
00 02E7 MEMLO
|
||||
00 0278 JSTICK0
|
||||
00 0279 JSTICK1
|
||||
00 027A JSTICK2
|
||||
00 027B JSTICK3
|
||||
00 027C PTRIG0
|
||||
00 027D PTRIG1
|
||||
00 0284 TRIG0S
|
||||
00 0285 TRIG1S
|
||||
00 0286 TRIG2S
|
||||
00 0287 TRIG3S
|
||||
00 0080 SW
|
||||
00 0080 SH
|
||||
00 4000 SCREEN
|
||||
00 9000 PMGRAPH
|
||||
00 0080 TMP
|
||||
00 0082 TMP0
|
||||
00 0084 TMP1
|
||||
00 0086 TMP2
|
||||
00 0088 TMP3
|
||||
00 2000 DL
|
||||
00 2003 DL_ADDRS
|
||||
00 2186 START
|
||||
00 21B1 PAUSE0.LOOP
|
||||
00 21BD PAUSE0.WAIT0.0@
|
||||
00 21DD XX
|
||||
00 21DF YY
|
||||
00 2209 LLP
|
||||
00 220E LP
|
||||
00 2251 NTMP
|
||||
00 2252 DINO
|
||||
00 0080 DINO._DINO
|
||||
00 0084 DINO._MASK
|
||||
00 0086 DINO._SCR
|
||||
00 0088 DINO._BACK
|
||||
00 2290 DINO.LOOP1
|
||||
00 2292 DINO.DN1
|
||||
00 22D5 DINO_CLEAR
|
||||
00 0086 DINO_CLEAR._SCR
|
||||
00 0088 DINO_CLEAR._BACK
|
||||
00 22F7 DINO_CLEAR.LOOP1
|
||||
00 22F9 DINO_CLEAR.DN1
|
||||
00 231C GROUND
|
||||
00 0084 GROUND._GND
|
||||
00 0086 GROUND._SCR
|
||||
00 233B GROUND.LOOP1
|
||||
00 233D GROUND.1@
|
||||
00 2361 GROUND.LOOP2
|
||||
00 2363 GROUND.2@
|
||||
00 2389 GROUND_INIT
|
||||
00 238D GROUND_INIT.GROUND_LOOP
|
||||
00 23AA CACTUS
|
||||
00 0084 CACTUS._CACT
|
||||
00 0086 CACTUS._SCR
|
||||
00 23C6 CACTUS.NO_INC
|
||||
00 23D0 CACTUS.LOOP
|
||||
00 23D2 CACTUS.3@
|
||||
00 23F9 CACTUS.CACT_W
|
||||
00 23FA SPRITES_INIT
|
||||
00 002A SPRITES_INIT.DX
|
||||
00 2432 DINO_PM
|
||||
00 0084 DINO_PM._DINO
|
||||
00 0086 DINO_PM._DINO_SAV
|
||||
00 0088 DINO_PM._SPR
|
||||
00 244A DINO_PM.LOOP0
|
||||
00 245D DINO_PM.4@
|
||||
00 248D DINO_PM.5@
|
||||
00 24B5 DINO_PM.6@
|
||||
00 24E0 DINO_PM.COUNTER
|
||||
00 24E1 DINO_PM.DINO_SAVE_PM_Y
|
||||
00 24E2 DINO_PM.DINO_SAVE_PM_Y_PREV
|
||||
00 24E3 MOVE_DL
|
||||
00 24EF MOVE_DL.INCR
|
||||
00 2504 MOVE_SCR
|
||||
00 251F MOVE_SCR.7@
|
||||
00 2520 MOVE_SCR.HSCR_STATE
|
||||
00 2521 DINO0
|
||||
00 2569 DINO1
|
||||
00 25B1 DINO2
|
||||
00 25F9 DINO_MASK0
|
||||
00 2641 DINO_MASK1
|
||||
00 2689 DINO_MASK2
|
||||
00 26D1 DINO_TAB_L
|
||||
00 26D4 DINO_TAB_H
|
||||
00 26D7 DINO_MASK_TAB_L
|
||||
00 26DA DINO_MASK_TAB_H
|
||||
00 26DD DINO_BACK
|
||||
00 2725 DINO_SAVE_Y
|
||||
00 2726 GND_0
|
||||
00 2736 GND_1
|
||||
00 2746 GND_2
|
||||
00 2756 GND_TAB_L
|
||||
00 2759 GND_TAB_H
|
||||
00 275C SCR_ADDRS_L
|
||||
00 27DC SCR_ADDRS_H
|
||||
00 0003 CACTI
|
||||
00 285C CACT0
|
||||
00 28E8 CACT1
|
||||
00 29A8 CACT2
|
||||
00 2AC0 CACT_WIDTHS
|
||||
00 2AC3 CACT_HEIGHTS
|
||||
00 2AC6 CACT_TAB_L
|
||||
00 2AC9 CACT_TAB_H
|
||||
@@ -0,0 +1,366 @@
|
||||
; @com.wudsn.ide.asm.mainsourcefile=ni.asm
|
||||
|
||||
.proc dino ; dino to the screen
|
||||
; uses: AXY tmp0 tmp1 tmp2 tmp3
|
||||
; Y - ypos in lines
|
||||
; X - dino phase (0,1,..)
|
||||
|
||||
_dino = tmp ; _underscore means pointer here and else
|
||||
_mask = tmp1 ; local vars for reusing zero page variables
|
||||
_scr = tmp2
|
||||
_back = tmp3
|
||||
sty dino_save_y ;save for clearing
|
||||
; get line address offset
|
||||
lda scr_addrs_l,y
|
||||
sta _scr
|
||||
lda scr_addrs_h,y
|
||||
sta _scr+1
|
||||
; add x position (hardcoded, dino does not move)
|
||||
adw _scr #10
|
||||
;was: mwa #screen+10+96*sw scr_ ;10 = xpos, 96 == ypos on the screen
|
||||
|
||||
lda dino_tab_l,x
|
||||
sta _dino
|
||||
lda dino_tab_h,x
|
||||
sta _dino+1
|
||||
|
||||
lda dino_mask_tab_l,x
|
||||
sta _mask
|
||||
lda dino_mask_tab_h,x
|
||||
sta _mask+1
|
||||
|
||||
mwa #dino_mask2 _mask
|
||||
mwa #dino_back _back
|
||||
ldx #24
|
||||
loop1
|
||||
ldy #0
|
||||
dn1
|
||||
lda (_scr),y ; get screen contents
|
||||
sta (_back),y ; save background for sprite removal
|
||||
lda (_mask),y ; mask
|
||||
eor #$ff ; inverse, 'cause mads does not inverse OK with '*'
|
||||
and (_scr),y ; get screen contents
|
||||
ora (_dino),y
|
||||
sta (_scr),y
|
||||
iny
|
||||
cpy #3
|
||||
bne dn1
|
||||
adw _dino #3
|
||||
adw _mask #3
|
||||
adw _back #3
|
||||
adw _scr #sw
|
||||
dex
|
||||
bne loop1
|
||||
rts
|
||||
.endp
|
||||
;----------
|
||||
.proc dino_clear ; remove old dino
|
||||
; uses: AXY tmp2 tmp3
|
||||
_scr = tmp2
|
||||
_back = tmp3
|
||||
ldy dino_save_y ;ypos
|
||||
; get line address offset
|
||||
lda scr_addrs_l,y
|
||||
sta _scr
|
||||
lda scr_addrs_h,y
|
||||
sta _scr+1
|
||||
; add x position (hardcoded, dino does not move)
|
||||
adw _scr #10
|
||||
;mwa #screen+10+96*sw scr_ ;10 = xpos, 96 == ypos on the screen
|
||||
|
||||
mwa #dino_back _back
|
||||
ldx #24
|
||||
loop1
|
||||
ldy #0
|
||||
dn1
|
||||
lda (_back),y ; give back background for sprite removal
|
||||
sta (_scr),y
|
||||
iny
|
||||
cpy #3
|
||||
bne dn1
|
||||
adw _back #3
|
||||
adw _scr #sw
|
||||
dex
|
||||
bne loop1
|
||||
rts
|
||||
.endp
|
||||
;----------
|
||||
.proc ground ; ground breaking, i.e. drawing
|
||||
; uses: AXY tmp1 tmp2
|
||||
; X: x on screen in words (2 bytes)
|
||||
; Y: ground tile number (0 - plain ground)
|
||||
_gnd = tmp1
|
||||
_scr = tmp2
|
||||
|
||||
lda gnd_tab_l,y
|
||||
sta _gnd
|
||||
lda gnd_tab_h,y
|
||||
sta _gnd+1
|
||||
mwa #screen+112*sw _scr ;112 is ypos of ground level
|
||||
txa
|
||||
asl ;add X to xpos on screen
|
||||
clc
|
||||
adc _scr
|
||||
sta _scr
|
||||
scc
|
||||
inc _scr+1
|
||||
|
||||
ldx #8 ; tile height in bytes
|
||||
loop1
|
||||
ldy #0
|
||||
@
|
||||
lda (_gnd),y
|
||||
sta (_scr),y
|
||||
iny
|
||||
cpy #2 ; tile width in bytes
|
||||
bne @-
|
||||
adw _gnd #2
|
||||
adw _scr #sw ;next screen line
|
||||
dex
|
||||
bne loop1
|
||||
; add some debris below
|
||||
|
||||
ldx #6 ; debris height
|
||||
loop2
|
||||
ldy #1
|
||||
@
|
||||
lda RANDOM
|
||||
:5 AND RANDOM
|
||||
sta (_scr),y
|
||||
dey
|
||||
bpl @-
|
||||
adw _scr #sw ;next screen line
|
||||
dex
|
||||
bpl loop2
|
||||
|
||||
rts
|
||||
.endp
|
||||
.proc ground_init ;draws first 48 segments of a ground
|
||||
mva #0 tmp
|
||||
ground_loop
|
||||
lda tmp
|
||||
tax
|
||||
randomize 0 2 3
|
||||
tay
|
||||
jsr ground
|
||||
inc tmp
|
||||
lda tmp
|
||||
cmp #24 ; screen width in wide mode /2
|
||||
bne ground_loop
|
||||
rts
|
||||
.endp
|
||||
;----------
|
||||
.proc cactus ; drawing cactii
|
||||
; uses: AXY tmp1 tmp2
|
||||
; X: x on screen in bytes
|
||||
; Y: cactus number
|
||||
; draws from bottom up, utilising the fact that .bmp is saved this way
|
||||
; updt.: was not able to load .bmp files for unknown reason, so the pics are flipped with WUDSN script
|
||||
|
||||
_cact = tmp1
|
||||
_scr = tmp2
|
||||
|
||||
lda cact_tab_l,y
|
||||
sta _cact
|
||||
lda cact_tab_h,y
|
||||
sta _cact+1
|
||||
mwa #screen+122*sw _scr ;112 is ypos of bottom of the cactii
|
||||
txa
|
||||
clc
|
||||
adc _scr
|
||||
sta _scr
|
||||
bcc no_inc
|
||||
inc _scr+1
|
||||
no_inc
|
||||
|
||||
|
||||
lda cact_widths,y
|
||||
sta cact_w ; width in bytes
|
||||
|
||||
lda cact_heights,y
|
||||
tax
|
||||
loop
|
||||
ldy #0
|
||||
@
|
||||
lda (_scr),y
|
||||
ora (_cact),y
|
||||
sta (_scr),y
|
||||
iny
|
||||
cpy cact_w
|
||||
bne @-
|
||||
;adw _cact cact_w ;!!!DOES NOT WORK :(((((
|
||||
clc
|
||||
lda cact_w
|
||||
adc _cact
|
||||
sta _cact
|
||||
scc
|
||||
inc _cact+1
|
||||
|
||||
sbw _scr #sw
|
||||
dex
|
||||
bne loop
|
||||
rts
|
||||
cact_w .by 0
|
||||
.endp
|
||||
;----------
|
||||
|
||||
.proc sprites_init
|
||||
;setting up P/M graphics
|
||||
lda #>pmgraph
|
||||
sta pmbase
|
||||
lda dmactls
|
||||
ora #%00001100 ; Players and Missiles single lined
|
||||
sta dmactls
|
||||
lda #$03 ; P/M on
|
||||
sta pmcntl
|
||||
lda #$00
|
||||
sta sizem ; there will be only M0, double width
|
||||
sta sizep0 ; P0-P3 widths
|
||||
sta sizep0+1
|
||||
sta sizep0+2
|
||||
sta sizep0+3
|
||||
lda #$11 ; P/M priorities (bit 4 joins missiles), bit 0 - players on top
|
||||
sta gtictls
|
||||
/*
|
||||
; temporary colours of sprites
|
||||
mva #$52 COLPM0
|
||||
mva #$34 COLPM1
|
||||
mva #$76 COLPM2
|
||||
mva #$90 COLPM3
|
||||
mva #$B0 COLPF3S
|
||||
*/
|
||||
dx = 42
|
||||
mva #dx HPOSP0
|
||||
mva #dx+8 HPOSP1
|
||||
MVA #dx+8*2 HPOSP2
|
||||
|
||||
rts
|
||||
.endp
|
||||
|
||||
.proc dino_pm
|
||||
; uses: AXY tmp tmp1 tmp2 tmp3
|
||||
; X: dino animation phase
|
||||
; Y: Y position of dino
|
||||
|
||||
_dino = tmp1 ; _underscore means pointer here and else
|
||||
_dino_sav = tmp2 ; local vars for reusing zero page variables
|
||||
_spr = tmp3
|
||||
;tmp = tmp
|
||||
|
||||
mva dino_save_pm_y dino_save_pm_y_prev
|
||||
sty dino_save_pm_y ;save for clearing
|
||||
|
||||
|
||||
lda dino_tab_l,x
|
||||
;sta _dino
|
||||
sta _dino_sav
|
||||
lda dino_tab_h,x
|
||||
;sta _dino+1
|
||||
sta _dino_sav+1
|
||||
|
||||
|
||||
mva #0 counter
|
||||
|
||||
loop0
|
||||
; sprite address calc
|
||||
mwa #(pmgraph+$200) _spr ;1st sprite starts at PMBASE + $200
|
||||
;counter *$80
|
||||
mwa #-$80 tmp ;so first add gives "0"
|
||||
ldy counter
|
||||
@
|
||||
adw tmp #$80 ;tmp = counter*$80 - calc addr of the sprite to put gfx
|
||||
dey
|
||||
bpl @-
|
||||
|
||||
adw _spr tmp
|
||||
mwa _spr tmp ; save address - it will be used in clearing and then drawing
|
||||
|
||||
lda dino_save_pm_y_prev ;clearing old sprite, same way as drawing a new one
|
||||
clc ;add ypos to the sprite address
|
||||
adc _spr
|
||||
sta _spr
|
||||
;scc
|
||||
;inc _spr+1 ;not necessary, sprites are not crossing pages
|
||||
|
||||
ldy #0 ;delete old sprite here
|
||||
tya
|
||||
ldx #24 ;dino height
|
||||
@
|
||||
sta (_spr),y
|
||||
iny
|
||||
dex
|
||||
bne @-
|
||||
|
||||
|
||||
|
||||
;--------------------------
|
||||
mwa tmp _spr
|
||||
lda dino_save_pm_y ;drawing sprite at a new position
|
||||
clc ;add ypos to the sprite address
|
||||
adc _spr
|
||||
sta _spr
|
||||
;scc
|
||||
;inc _spr+1 ;not necessary, sprites are not crossing pages
|
||||
|
||||
|
||||
clc ;beginning of the next column of dino to the sprite
|
||||
lda _dino_sav ;0- first column, 1 - 2nd, 2 - 3rd
|
||||
adc counter
|
||||
sta _dino
|
||||
;bcc @+ ;needs to be removed as both bytes must be copied
|
||||
lda _dino_sav+1 ;original address
|
||||
adc #0
|
||||
sta _dino+1
|
||||
;@
|
||||
|
||||
ldy #0
|
||||
|
||||
ldx #24 ;dino height
|
||||
@
|
||||
lda (_dino),y
|
||||
sta (_spr),y
|
||||
adw _dino #3 ;+3 ==> next line in dino
|
||||
adw _spr #1
|
||||
dex
|
||||
bne @-
|
||||
|
||||
|
||||
|
||||
inc:lda counter
|
||||
cmp #3
|
||||
jne loop0
|
||||
|
||||
|
||||
|
||||
rts
|
||||
counter .by 0
|
||||
dino_save_pm_y .by 0
|
||||
dino_save_pm_y_prev .by 0
|
||||
|
||||
.endp
|
||||
|
||||
.proc move_dl ;screen window one byte right
|
||||
;uses: AXY
|
||||
|
||||
mwa #dl_addrs+1 incr+1 ;self mod
|
||||
ldx #sh
|
||||
incr inc $ffff
|
||||
adw incr+1 #3
|
||||
dex
|
||||
bne incr
|
||||
rts
|
||||
.endp
|
||||
|
||||
.proc move_scr ;screen window one step (1/4 th of byte) right
|
||||
dec:lda hscr_state
|
||||
sta HSCROL
|
||||
cmp #4
|
||||
bne @+
|
||||
mva #12 hscr_state
|
||||
sta HSCROL
|
||||
jsr move_dl
|
||||
jsr move_dl
|
||||
@
|
||||
rts
|
||||
hscr_state .by 0
|
||||
.endp
|
||||