mirror of
https://github.com/irmen/prog8.git
synced 2025-08-15 14:27:37 +00:00
added list of software to docs
This commit is contained in:
@@ -1538,11 +1538,6 @@ internal class AssignmentAsmGen(private val program: PtProgram,
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun attemptAssignToByteCompareZero(expr: PtBinaryExpression, assign: AsmAssignment): Boolean {
|
private fun attemptAssignToByteCompareZero(expr: PtBinaryExpression, assign: AsmAssignment): Boolean {
|
||||||
// TODO optimized code for (word1 & word2) == 0 :
|
|
||||||
// if(expr.left.type in WordDatatypes && (expr.operator=="==" || expr.operator=="!=") && expr.left is PtBinaryExpression) {
|
|
||||||
// println("TODO optimize logical word expr ${expr.position}")
|
|
||||||
// }
|
|
||||||
|
|
||||||
when (expr.operator) {
|
when (expr.operator) {
|
||||||
"==" -> {
|
"==" -> {
|
||||||
when(val dt = expr.left.type) {
|
when(val dt = expr.left.type) {
|
||||||
|
@@ -201,6 +201,7 @@ Look in the `syntax-files <https://github.com/irmen/prog8/tree/master/syntax-fil
|
|||||||
targetsystem.rst
|
targetsystem.rst
|
||||||
technical.rst
|
technical.rst
|
||||||
portingguide.rst
|
portingguide.rst
|
||||||
|
software.rst
|
||||||
todo.rst
|
todo.rst
|
||||||
|
|
||||||
|
|
||||||
|
34
docs/source/software.rst
Normal file
34
docs/source/software.rst
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
|
||||||
|
=========================
|
||||||
|
Software written in Prog8
|
||||||
|
=========================
|
||||||
|
|
||||||
|
Apart from the many `examples <https://github.com/irmen/prog8/tree/master/examples>`_ available in the source code repository,
|
||||||
|
there are also larger pieces of software written using Prog8. Here's a list.
|
||||||
|
|
||||||
|
|
||||||
|
`Assembler <https://github.com/irmen/cx16assem>`_
|
||||||
|
File-based assembler for the Commander X16.
|
||||||
|
|
||||||
|
`Chess <https://github.com/irmen/cx16chess>`_
|
||||||
|
Chess game for the Commander X16, with 2-player or computer opponent game modes.
|
||||||
|
|
||||||
|
`Image viewer <https://github.com/irmen/cx16imageviewer>`_
|
||||||
|
Multi-format image viewer for the Commander X16.
|
||||||
|
Can display C64 Koala, BMP, PCX and Amiga IFF images, including color cycling.
|
||||||
|
|
||||||
|
`Petaxian <https://github.com/cyborgar/Petaxian>`_
|
||||||
|
Galaga type shoot em up game using only petscii graphics. Runs on C64 and Commander X16.
|
||||||
|
|
||||||
|
`Rock Runner <https://github.com/irmen/cx16rockrunner>`_
|
||||||
|
Faithful Boulderdash clone, a well known arcade puzzle game from the 80's.
|
||||||
|
where you must collect all diamonds in a level while avoiding the hazards to reach the exit.
|
||||||
|
Can load the thousands of available fan made level files.
|
||||||
|
This game is for the Commander X16.
|
||||||
|
|
||||||
|
`Shell <https://github.com/irmen/cx16shell>`_
|
||||||
|
Unix like command shell for the Commander X16.
|
||||||
|
|
||||||
|
`Streaming Music Demo <https://github.com/irmen/cx16musicdemo>`_
|
||||||
|
Demoscene like "music demos" for the Commander X16.
|
||||||
|
They display graphics, animated song lyrics, and play a high quality sampled song streamed from disk.
|
@@ -1,10 +1,6 @@
|
|||||||
TODO
|
TODO
|
||||||
====
|
====
|
||||||
|
|
||||||
- possibly optimize assembly output for (word1 & word2 ==0)
|
|
||||||
see attemptAssignToByteCompareZero() for assignment.
|
|
||||||
see testZeroOrJumpElsewhere() for if condition.
|
|
||||||
|
|
||||||
- [on branch: shortcircuit] investigate McCarthy evaluation again? this may also reduce code size perhaps for things like if a>4 or a<2 ....
|
- [on branch: shortcircuit] investigate McCarthy evaluation again? this may also reduce code size perhaps for things like if a>4 or a<2 ....
|
||||||
- IR: reduce the number of branch instructions such as BEQ, BEQR, etc (gradually), replace with CMP(I) + status branch instruction
|
- IR: reduce the number of branch instructions such as BEQ, BEQR, etc (gradually), replace with CMP(I) + status branch instruction
|
||||||
- IR: reduce amount of CMP/CMPI after instructions that set the status bits correctly (LOADs? INC? etc), but only after setting the status bits is verified!
|
- IR: reduce amount of CMP/CMPI after instructions that set the status bits correctly (LOADs? INC? etc), but only after setting the status bits is verified!
|
||||||
|
@@ -25,6 +25,7 @@ main {
|
|||||||
cbm.SETTIM(0,0,0)
|
cbm.SETTIM(0,0,0)
|
||||||
|
|
||||||
while cbm.GETIN()==0 {
|
while cbm.GETIN()==0 {
|
||||||
|
; sys.waitvsync()
|
||||||
doplasma()
|
doplasma()
|
||||||
frames ++
|
frames ++
|
||||||
}
|
}
|
||||||
@@ -64,15 +65,15 @@ main {
|
|||||||
|
|
||||||
for y in 0 to txt.DEFAULT_HEIGHT-1 {
|
for y in 0 to txt.DEFAULT_HEIGHT-1 {
|
||||||
ybuf[y] = math.sin8u(c1a) + math.sin8u(c1b)
|
ybuf[y] = math.sin8u(c1a) + math.sin8u(c1b)
|
||||||
c1a += 4
|
c1a += 2
|
||||||
c1b += 9
|
c1b += 5
|
||||||
}
|
}
|
||||||
c1A += 3
|
c1A += 3
|
||||||
c1B -= 5
|
c1B -= 5
|
||||||
for x in 0 to txt.DEFAULT_WIDTH-1 {
|
for x in 0 to txt.DEFAULT_WIDTH-1 {
|
||||||
xbuf[x] = math.sin8u(c2a) + math.sin8u(c2b)
|
xbuf[x] = math.sin8u(c2a) + math.sin8u(c2b)
|
||||||
c2a += 3
|
c2a += 4
|
||||||
c2b += 7
|
c2b += 1
|
||||||
}
|
}
|
||||||
c2A += 2
|
c2A += 2
|
||||||
c2B -= 3
|
c2B -= 3
|
||||||
|
Reference in New Issue
Block a user