mirror of
https://github.com/irmen/prog8.git
synced 2024-09-09 02:54:28 +00:00
todo
This commit is contained in:
parent
970642244b
commit
e520921746
@ -13,8 +13,8 @@
|
|||||||
; SCREEN MODE LIST:
|
; SCREEN MODE LIST:
|
||||||
; mode 0 = reset back to default text mode
|
; mode 0 = reset back to default text mode
|
||||||
; mode 1 = bitmap 320 x 240 monochrome
|
; mode 1 = bitmap 320 x 240 monochrome
|
||||||
; mode 2 = bitmap 320 x 240 x 4c (TODO not yet implemented)
|
; mode 2 = bitmap 320 x 240 x 4c (not yet implemented: just use 256c, there's enough vram for that)
|
||||||
; mode 3 = bitmap 320 x 240 x 16c (TODO not yet implemented)
|
; mode 3 = bitmap 320 x 240 x 16c (not yet implemented: just use 256c, there's enough vram for that)
|
||||||
; mode 4 = bitmap 320 x 240 x 256c (like SCREEN $80 but using this api instead of kernal)
|
; mode 4 = bitmap 320 x 240 x 256c (like SCREEN $80 but using this api instead of kernal)
|
||||||
; mode 5 = bitmap 640 x 480 monochrome
|
; mode 5 = bitmap 640 x 480 monochrome
|
||||||
; mode 6 = bitmap 640 x 480 x 4c
|
; mode 6 = bitmap 640 x 480 x 4c
|
||||||
@ -47,7 +47,7 @@ gfx2 {
|
|||||||
height = 240
|
height = 240
|
||||||
bpp = 1
|
bpp = 1
|
||||||
}
|
}
|
||||||
; TODO modes 2, 3 not yet implemented
|
; TODO modes 2, 3
|
||||||
4 -> {
|
4 -> {
|
||||||
; lores 256c
|
; lores 256c
|
||||||
cx16.VERA_DC_VIDEO = (cx16.VERA_DC_VIDEO & %11001111) | %00100000 ; enable only layer 1
|
cx16.VERA_DC_VIDEO = (cx16.VERA_DC_VIDEO & %11001111) | %00100000 ; enable only layer 1
|
||||||
@ -110,7 +110,7 @@ gfx2 {
|
|||||||
repeat 240/2/8
|
repeat 240/2/8
|
||||||
cs_innerloop640()
|
cs_innerloop640()
|
||||||
}
|
}
|
||||||
; TODO mode 2, 3
|
; TODO modes 2, 3
|
||||||
4 -> {
|
4 -> {
|
||||||
; lores 256c
|
; lores 256c
|
||||||
repeat 240/2
|
repeat 240/2
|
||||||
@ -241,8 +241,7 @@ _done
|
|||||||
}}
|
}}
|
||||||
}
|
}
|
||||||
6 -> {
|
6 -> {
|
||||||
; highres 4c
|
; highres 4c ....also mostly usable for mode 2, lores 4c?
|
||||||
; TODO also mostly usable for lores 4c?
|
|
||||||
color &= 3
|
color &= 3
|
||||||
ubyte[4] colorbits
|
ubyte[4] colorbits
|
||||||
ubyte ii
|
ubyte ii
|
||||||
@ -601,7 +600,7 @@ _done
|
|||||||
}}
|
}}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
; TODO mode 2,3
|
; TODO modes 2, 3
|
||||||
4 -> {
|
4 -> {
|
||||||
; lores 256c
|
; lores 256c
|
||||||
void addr_mul_24_for_lores_256c(y, x) ; 24 bits result is in r0 and r1L (highest byte)
|
void addr_mul_24_for_lores_256c(y, x) ; 24 bits result is in r0 and r1L (highest byte)
|
||||||
@ -653,8 +652,7 @@ _done
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
6 -> {
|
6 -> {
|
||||||
; highres 4c
|
; highres 4c ....also mostly usable for mode 2, lores 4c?
|
||||||
; TODO also mostly usable for lores 4c?
|
|
||||||
void addr_mul_24_for_highres_4c(y, x) ; 24 bits result is in r0 and r1L (highest byte)
|
void addr_mul_24_for_highres_4c(y, x) ; 24 bits result is in r0 and r1L (highest byte)
|
||||||
cx16.r2L = lsb(x) & 3 ; xbits
|
cx16.r2L = lsb(x) & 3 ; xbits
|
||||||
; color &= 3
|
; color &= 3
|
||||||
@ -708,7 +706,7 @@ _done
|
|||||||
+
|
+
|
||||||
}}
|
}}
|
||||||
}
|
}
|
||||||
; TODO mode 2 and 3
|
; TODO modes 2, 3
|
||||||
4 -> {
|
4 -> {
|
||||||
; lores 256c
|
; lores 256c
|
||||||
void addr_mul_24_for_lores_256c(y, x) ; 24 bits result is in r0 and r1L (highest byte)
|
void addr_mul_24_for_lores_256c(y, x) ; 24 bits result is in r0 and r1L (highest byte)
|
||||||
@ -888,7 +886,7 @@ skip:
|
|||||||
cx16.r0 = y*(320/8) + x/8
|
cx16.r0 = y*(320/8) + x/8
|
||||||
cx16.vaddr(0, cx16.r0, 0, 1)
|
cx16.vaddr(0, cx16.r0, 0, 1)
|
||||||
}
|
}
|
||||||
; TODO modes 2,3
|
; TODO modes 2, 3
|
||||||
4 -> {
|
4 -> {
|
||||||
; lores 256c
|
; lores 256c
|
||||||
void addr_mul_24_for_lores_256c(y, x) ; 24 bits result is in r0 and r1L (highest byte)
|
void addr_mul_24_for_lores_256c(y, x) ; 24 bits result is in r0 and r1L (highest byte)
|
||||||
|
@ -33,7 +33,6 @@ Compiler:
|
|||||||
- ir: the @split arrays are currently also split in _lsb/_msb arrays in the IR, and operations take multiple (byte) instructions that may lead to verbose and slow operation and machine code generation down the line.
|
- ir: the @split arrays are currently also split in _lsb/_msb arrays in the IR, and operations take multiple (byte) instructions that may lead to verbose and slow operation and machine code generation down the line.
|
||||||
- ir: for expressions with array indexes that occur multiple times, can we avoid loading them into new virtualregs everytime and just reuse a single virtualreg as indexer? (simple form of common subexpression elimination)
|
- ir: for expressions with array indexes that occur multiple times, can we avoid loading them into new virtualregs everytime and just reuse a single virtualreg as indexer? (simple form of common subexpression elimination)
|
||||||
- PtAst/IR: more complex common subexpression eliminations
|
- PtAst/IR: more complex common subexpression eliminations
|
||||||
- can we get rid of pieces of asmgen.AssignmentAsmGen by just reusing the AugmentableAssignment ? generated code should not suffer
|
|
||||||
- [problematic due to using 64tass:] better support for building library programs, where unused .proc shouldn't be deleted from the assembly?
|
- [problematic due to using 64tass:] better support for building library programs, where unused .proc shouldn't be deleted from the assembly?
|
||||||
Perhaps replace all uses of .proc/.pend/.endproc by .block/.bend will fix that with a compiler flag?
|
Perhaps replace all uses of .proc/.pend/.endproc by .block/.bend will fix that with a compiler flag?
|
||||||
But all library code written in asm uses .proc already..... (textual search/replace when writing the actual asm?)
|
But all library code written in asm uses .proc already..... (textual search/replace when writing the actual asm?)
|
||||||
@ -47,10 +46,9 @@ Libraries:
|
|||||||
- fix the problems in atari target, and flesh out its libraries.
|
- fix the problems in atari target, and flesh out its libraries.
|
||||||
- c128 target: make syslib more complete (missing kernal routines)?
|
- c128 target: make syslib more complete (missing kernal routines)?
|
||||||
- c64: make the graphics.BITMAP_ADDRESS configurable (VIC banking)
|
- c64: make the graphics.BITMAP_ADDRESS configurable (VIC banking)
|
||||||
- actually implement modes 3 and perhaps even 2 to gfx2 (lores 16 color and 4 color)
|
|
||||||
|
|
||||||
|
|
||||||
Expressions:
|
Expressions: (see remove_evalstack branch):
|
||||||
|
|
||||||
- Once the evalstack-free expression codegen is in place, the Eval Stack can be removed from the compiler.
|
- Once the evalstack-free expression codegen is in place, the Eval Stack can be removed from the compiler.
|
||||||
Machinedefinition, .p8 and .asm library files, all routines operationg on estack, and everything saving/restoring the X register related to this stack.
|
Machinedefinition, .p8 and .asm library files, all routines operationg on estack, and everything saving/restoring the X register related to this stack.
|
||||||
|
Loading…
Reference in New Issue
Block a user