Initial commit

This commit is contained in:
2018-06-19 23:44:59 +02:00
commit ae702381be
67 changed files with 3498 additions and 0 deletions
+2
View File
@@ -0,0 +1,2 @@
# Auto detect text files and perform LF normalization
* text=auto
+12
View File
@@ -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>
+24
View File
@@ -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>
+1
View File
@@ -0,0 +1 @@
# no_internet
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
+40
View File
@@ -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=
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 814 B

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 270 B

+42
View File
@@ -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}
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 322 B

BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 410 B

+42
View File
@@ -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}
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 230 B

+42
View File
@@ -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}
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 227 B

+42
View File
@@ -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}
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 273 B

+42
View File
@@ -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}
BIN
View File
Binary file not shown.
Binary file not shown.
Binary file not shown.

After

Width:  |  Height:  |  Size: 212 B

+42
View File
@@ -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}
Binary file not shown.
Binary file not shown.
Binary file not shown.

After

Width:  |  Height:  |  Size: 212 B

+42
View File
@@ -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}
Binary file not shown.
Binary file not shown.
Binary file not shown.

After

Width:  |  Height:  |  Size: 213 B

+42
View File
@@ -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}
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 99 B

BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 131 B

BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 208 B

BIN
View File
Binary file not shown.
+76
View File
@@ -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
+483
View File
@@ -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
*/
+146
View File
@@ -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
+2
View File
@@ -0,0 +1,2 @@
mads 2.0.6 build 58 (28 Jan 17)
Label table:
+148
View File
@@ -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
+78
View File
@@ -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'
+6
View File
@@ -0,0 +1,6 @@
.sourcemode on
.echo
.echo "Loading executable..."
.echo
bc *
.onexerun .echo "Launching executable..."
+212
View File
@@ -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
+1566
View File
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.
+366
View File
@@ -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