mirror of
https://github.com/irmen/prog8.git
synced 2025-01-11 13:29:45 +00:00
use bool type in examples and libraries
This commit is contained in:
parent
81b3d2db4f
commit
8acb37b6c2
@ -28,7 +28,7 @@ gfx2 {
|
||||
uword width = 0
|
||||
uword height = 0
|
||||
ubyte bpp = 0
|
||||
ubyte monochrome_dont_stipple_flag = false ; set to false to enable stippling mode in monochrome displaymodes
|
||||
bool monochrome_dont_stipple_flag = false ; set to false to enable stippling mode in monochrome displaymodes
|
||||
|
||||
sub screen_mode(ubyte mode) {
|
||||
when mode {
|
||||
@ -127,7 +127,7 @@ gfx2 {
|
||||
position(0, 0)
|
||||
}
|
||||
|
||||
sub monochrome_stipple(ubyte enable) {
|
||||
sub monochrome_stipple(bool enable) {
|
||||
monochrome_dont_stipple_flag = not enable
|
||||
}
|
||||
|
||||
@ -683,7 +683,7 @@ _done
|
||||
}
|
||||
}
|
||||
|
||||
sub position2(uword @zp x, uword y, ubyte also_port_1) {
|
||||
sub position2(uword @zp x, uword y, bool also_port_1) {
|
||||
position(x, y)
|
||||
if also_port_1 {
|
||||
when active_mode {
|
||||
|
@ -6,7 +6,7 @@
|
||||
|
||||
diskio {
|
||||
|
||||
sub directory(ubyte drivenumber) -> ubyte {
|
||||
sub directory(ubyte drivenumber) -> bool {
|
||||
; -- Prints the directory contents of disk drive 8-11 to the screen. Returns success.
|
||||
|
||||
c64.SETNAM(1, "$")
|
||||
@ -61,12 +61,12 @@ io_error:
|
||||
|
||||
|
||||
; internal variables for the iterative file lister / loader
|
||||
ubyte list_skip_disk_name
|
||||
bool list_skip_disk_name
|
||||
uword list_pattern
|
||||
uword list_blocks
|
||||
ubyte iteration_in_progress = false
|
||||
bool iteration_in_progress = false
|
||||
ubyte @zp first_byte
|
||||
ubyte have_first_byte
|
||||
bool have_first_byte
|
||||
str list_filename = "?" * 32
|
||||
|
||||
|
||||
@ -98,7 +98,7 @@ io_error:
|
||||
|
||||
; ----- iterative file lister functions (uses io channel 12) -----
|
||||
|
||||
sub lf_start_list(ubyte drivenumber, uword pattern_ptr) -> ubyte {
|
||||
sub lf_start_list(ubyte drivenumber, uword pattern_ptr) -> bool {
|
||||
; -- start an iterative file listing with optional pattern matching.
|
||||
; note: only a single iteration loop can be active at a time!
|
||||
lf_end_list()
|
||||
@ -127,7 +127,7 @@ io_error:
|
||||
return false
|
||||
}
|
||||
|
||||
sub lf_next_entry() -> ubyte {
|
||||
sub lf_next_entry() -> bool {
|
||||
; -- retrieve the next entry from an iterative file listing session.
|
||||
; results will be found in list_blocks and list_filename.
|
||||
; if it returns false though, there are no more entries (or an error occurred).
|
||||
@ -199,7 +199,7 @@ close_end:
|
||||
|
||||
; ----- iterative file loader functions (uses io channel 11) -----
|
||||
|
||||
sub f_open(ubyte drivenumber, uword filenameptr) -> ubyte {
|
||||
sub f_open(ubyte drivenumber, uword filenameptr) -> bool {
|
||||
; -- open a file for iterative reading with f_read
|
||||
; note: only a single iteration loop can be active at a time!
|
||||
f_close()
|
||||
@ -343,7 +343,7 @@ _end rts
|
||||
|
||||
; ----- iterative file saver functions (uses io channel 14) -----
|
||||
|
||||
sub f_open_w(ubyte drivenumber, uword filenameptr) -> ubyte {
|
||||
sub f_open_w(ubyte drivenumber, uword filenameptr) -> bool {
|
||||
; -- open a file for iterative writing with f_write
|
||||
f_close_w()
|
||||
|
||||
@ -358,7 +358,7 @@ _end rts
|
||||
return false
|
||||
}
|
||||
|
||||
sub f_write(uword bufferpointer, uword num_bytes) -> ubyte {
|
||||
sub f_write(uword bufferpointer, uword num_bytes) -> bool {
|
||||
; -- write the given umber of bytes to the currently open file
|
||||
if num_bytes!=0 {
|
||||
void c64.CHKOUT(14) ; use #14 as input channel again
|
||||
@ -408,7 +408,7 @@ io_error:
|
||||
goto done
|
||||
}
|
||||
|
||||
sub save(ubyte drivenumber, uword filenameptr, uword address, uword size) -> ubyte {
|
||||
sub save(ubyte drivenumber, uword filenameptr, uword address, uword size) -> bool {
|
||||
c64.SETNAM(string.length(filenameptr), filenameptr)
|
||||
c64.SETLFS(1, drivenumber, 0)
|
||||
uword @shared end_address = address + size
|
||||
@ -478,7 +478,7 @@ io_error:
|
||||
|
||||
; Internal routine, only to be used on Commander X16 platform if headerless=true,
|
||||
; because this routine uses kernal support for that to load headerless files.
|
||||
sub load_headerless_cx16(ubyte drivenumber, uword filenameptr, uword address_override, ubyte headerless) -> uword {
|
||||
sub load_headerless_cx16(ubyte drivenumber, uword filenameptr, uword address_override, bool headerless) -> uword {
|
||||
c64.SETNAM(string.length(filenameptr), filenameptr)
|
||||
ubyte secondary = 1
|
||||
cx16.r1 = 0
|
||||
|
@ -53,7 +53,7 @@ main {
|
||||
repeat {
|
||||
ubyte current_question = 1
|
||||
txt.print("\n\nanimal guessing game!\nthink of an animal.\n")
|
||||
ubyte guessed = false
|
||||
bool guessed = false
|
||||
while not guessed {
|
||||
txt.print(questions[current_question])
|
||||
txt.print("? ")
|
||||
|
@ -26,7 +26,7 @@ main {
|
||||
|
||||
ubyte target_height = 10
|
||||
ubyte active_height = 24
|
||||
ubyte upwards = true
|
||||
bool upwards = true
|
||||
|
||||
repeat {
|
||||
;txt.plot(0,0)
|
||||
|
@ -11,8 +11,8 @@ main {
|
||||
ubyte[255] BX
|
||||
ubyte[255] BY
|
||||
ubyte[255] BC
|
||||
ubyte[255] DX
|
||||
ubyte[255] DY
|
||||
bool[255] DX
|
||||
bool[255] DY
|
||||
|
||||
txt.print("number of balls (1-255)? ")
|
||||
void txt.input_chars(input)
|
||||
@ -37,28 +37,28 @@ main {
|
||||
; Clear existing Location the ball is at
|
||||
txt.setclr(BX[lp], BY[lp], 0)
|
||||
|
||||
if DX[lp] == 0 {
|
||||
if not DX[lp] {
|
||||
if (BX[lp] == 0)
|
||||
DX[lp] = 1
|
||||
DX[lp] = true
|
||||
else
|
||||
BX[lp]=BX[lp]-1
|
||||
} else if DX[lp] == 1 {
|
||||
} else if DX[lp] {
|
||||
if (BX[lp] == txt.DEFAULT_WIDTH-1) {
|
||||
BX[lp] = txt.DEFAULT_WIDTH-2
|
||||
DX[lp] = 0
|
||||
DX[lp] = false
|
||||
} else {
|
||||
BX[lp]=BX[lp]+1
|
||||
}
|
||||
}
|
||||
if DY[lp] == 0 {
|
||||
if not DY[lp] {
|
||||
if (BY[lp] == 0)
|
||||
DY[lp] = 1
|
||||
DY[lp] = true
|
||||
else
|
||||
BY[lp]=BY[lp]-1
|
||||
} else if DY[lp] == 1 {
|
||||
if (BY[lp] == txt.DEFAULT_HEIGHT-1) {
|
||||
BY[lp] = txt.DEFAULT_HEIGHT-2
|
||||
DY[lp] = 0
|
||||
DY[lp] = false
|
||||
} else {
|
||||
BY[lp]=BY[lp]+1
|
||||
}
|
||||
|
@ -103,7 +103,7 @@ main {
|
||||
|
||||
widget {
|
||||
|
||||
sub highlightedrect(uword x, uword y, uword width, uword height, ubyte fill, ubyte active) {
|
||||
sub highlightedrect(uword x, uword y, uword width, uword height, bool fill, bool active) {
|
||||
gfx2.horizontal_line(x, y, width, 2)
|
||||
gfx2.vertical_line(x, y+1, height-1, 2)
|
||||
gfx2.vertical_line(x+width-1, y+1, height-1, 1)
|
||||
@ -128,7 +128,7 @@ widget {
|
||||
}
|
||||
|
||||
|
||||
sub window_titlebar(uword x, uword y, uword width, uword titlestr, ubyte active) {
|
||||
sub window_titlebar(uword x, uword y, uword width, uword titlestr, bool active) {
|
||||
const ubyte height = 11
|
||||
widget.highlightedrect(x+widget.window_close_icon.width, y, width-64, height, true, active)
|
||||
gfx2.plot(x+widget.window_close_icon.width, y+height-1, 1) ; correct bottom left corner
|
||||
@ -138,7 +138,7 @@ widget {
|
||||
widget.window_flipsize_icon(x+width-44, y, active)
|
||||
}
|
||||
|
||||
sub window_flipsize_icon(uword x, uword y, ubyte active) {
|
||||
sub window_flipsize_icon(uword x, uword y, bool active) {
|
||||
const uword width = 22
|
||||
const uword height = 11
|
||||
highlightedrect(x, y, width, height, true, active)
|
||||
@ -148,7 +148,7 @@ widget {
|
||||
gfx2.fillrect(x+6, y+3, 5, 2, 2)
|
||||
}
|
||||
|
||||
sub window_order_icon(uword x, uword y, ubyte active) {
|
||||
sub window_order_icon(uword x, uword y, bool active) {
|
||||
const uword width = 22
|
||||
const uword height = 11
|
||||
highlightedrect(x, y, width, height, true, active)
|
||||
@ -158,7 +158,7 @@ widget {
|
||||
gfx2.rect(x+8, y+4, 10, 5, 1) ; front
|
||||
}
|
||||
|
||||
sub window_close_icon(uword x, uword y, ubyte active) {
|
||||
sub window_close_icon(uword x, uword y, bool active) {
|
||||
const uword width = 20
|
||||
const uword height = 11
|
||||
highlightedrect(x, y, width, height, true, active)
|
||||
@ -167,7 +167,7 @@ widget {
|
||||
gfx2.fillrect(x+8, y+4, 3, 3, 2)
|
||||
}
|
||||
|
||||
sub window_leftborder(uword x, uword y, uword height, ubyte active) {
|
||||
sub window_leftborder(uword x, uword y, uword height, bool active) {
|
||||
gfx2.vertical_line(x, y, height, 2)
|
||||
ubyte color = 0
|
||||
if active
|
||||
@ -181,7 +181,7 @@ widget {
|
||||
gfx2.horizontal_line(x, y+height-1, width, 1)
|
||||
}
|
||||
|
||||
sub window_rightborder(uword x, uword y, uword width, uword height, ubyte active) {
|
||||
sub window_rightborder(uword x, uword y, uword width, uword height, bool active) {
|
||||
gfx2.vertical_line(x+width-1-16, y+11, height-13,2)
|
||||
gfx2.vertical_line(x+width-1, y+11, height-11,1)
|
||||
ubyte color = 0
|
||||
|
@ -186,7 +186,7 @@ _ones pla
|
||||
}
|
||||
}
|
||||
|
||||
sub facing_away(ubyte edgePointsIdx) -> ubyte {
|
||||
sub facing_away(ubyte edgePointsIdx) -> bool {
|
||||
; simplistic visibility determination by checking the Z component of the surface normal
|
||||
; TODO: actually take the line of sight vector into account
|
||||
ubyte p1 = shipdata.facesPoints[edgePointsIdx]
|
||||
|
@ -13,7 +13,7 @@ main {
|
||||
cx16.KEYHDL = &main.keyboard_scancode_handler.asm_shim
|
||||
sys.clear_irqd()
|
||||
|
||||
ubyte escape_pressed
|
||||
bool escape_pressed
|
||||
while not escape_pressed {
|
||||
; just sit here
|
||||
}
|
||||
@ -22,7 +22,7 @@ main {
|
||||
sys.clear_irqd()
|
||||
}
|
||||
|
||||
sub keyboard_scancode_handler(ubyte prefix, ubyte scancode, ubyte updown) {
|
||||
sub keyboard_scancode_handler(ubyte prefix, ubyte scancode, bool updown) {
|
||||
txt.print_ubhex(prefix, true)
|
||||
txt.chrout(':')
|
||||
txt.print_ubhex(scancode, true)
|
||||
|
@ -27,7 +27,7 @@ main {
|
||||
ubyte nextBlock
|
||||
ubyte speedlevel
|
||||
ubyte holding
|
||||
ubyte holdingAllowed
|
||||
bool holdingAllowed
|
||||
|
||||
|
||||
sub start() {
|
||||
@ -390,7 +390,7 @@ waitkey:
|
||||
}
|
||||
}
|
||||
|
||||
sub drawBlock(ubyte x, ubyte y, ubyte erase) {
|
||||
sub drawBlock(ubyte x, ubyte y, bool erase) {
|
||||
ubyte char = 79 ; top left edge
|
||||
if erase
|
||||
char = 32 ; space
|
||||
@ -538,21 +538,21 @@ blocklogic {
|
||||
; The full play area is bordered by (in)visible characters that will collide.
|
||||
; Collision is determined by reading the screen data directly.
|
||||
|
||||
sub canRotateCW(ubyte xpos, ubyte ypos) -> ubyte {
|
||||
sub canRotateCW(ubyte xpos, ubyte ypos) -> bool {
|
||||
rotateCW()
|
||||
ubyte nocollision = noCollision(xpos, ypos)
|
||||
bool nocollision = noCollision(xpos, ypos)
|
||||
rotateCCW()
|
||||
return nocollision
|
||||
}
|
||||
|
||||
sub canRotateCCW(ubyte xpos, ubyte ypos) -> ubyte {
|
||||
sub canRotateCCW(ubyte xpos, ubyte ypos) -> bool {
|
||||
rotateCCW()
|
||||
ubyte nocollision = noCollision(xpos, ypos)
|
||||
bool nocollision = noCollision(xpos, ypos)
|
||||
rotateCW()
|
||||
return nocollision
|
||||
}
|
||||
|
||||
sub noCollision(ubyte xpos, ubyte ypos) -> ubyte {
|
||||
sub noCollision(ubyte xpos, ubyte ypos) -> bool {
|
||||
ubyte @zp i
|
||||
for i in 15 downto 0 {
|
||||
if currentBlock[i] and txt.getchr(xpos + (i&3), ypos+i/4)!=32
|
||||
@ -561,14 +561,14 @@ blocklogic {
|
||||
return true
|
||||
}
|
||||
|
||||
sub isGameOver(ubyte xpos, ubyte ypos) -> ubyte {
|
||||
sub isGameOver(ubyte xpos, ubyte ypos) -> bool {
|
||||
main.drawBlock(xpos, ypos, true)
|
||||
ubyte result = ypos==main.startYpos and not noCollision(xpos, ypos+1)
|
||||
bool result = ypos==main.startYpos and not noCollision(xpos, ypos+1)
|
||||
main.drawBlock(xpos, ypos, false)
|
||||
return result
|
||||
}
|
||||
|
||||
sub isLineFull(ubyte ypos) -> ubyte {
|
||||
sub isLineFull(ubyte ypos) -> bool {
|
||||
ubyte x
|
||||
for x in main.boardOffsetX to main.boardOffsetX+main.boardWidth-1 {
|
||||
if txt.getchr(x, ypos)==32
|
||||
|
@ -6,7 +6,7 @@
|
||||
|
||||
main {
|
||||
|
||||
ubyte[256] sieve
|
||||
bool[256] sieve
|
||||
ubyte candidate_prime = 2 ; is increased in the loop
|
||||
|
||||
sub start() {
|
||||
|
@ -1,17 +1,17 @@
|
||||
%import textio
|
||||
%zeropage basicsafe
|
||||
|
||||
main {
|
||||
|
||||
bool[] barray = [true, false, 1, 0, 222]
|
||||
main {
|
||||
|
||||
sub noCollision(ubyte xpos, ubyte ypos) -> bool {
|
||||
if xpos
|
||||
return false
|
||||
else
|
||||
return true
|
||||
}
|
||||
|
||||
sub start() {
|
||||
bool bb
|
||||
ubyte xx
|
||||
|
||||
for bb in barray {
|
||||
if bb
|
||||
xx++
|
||||
}
|
||||
}
|
||||
bool z=noCollision(1,2)
|
||||
}
|
||||
}
|
||||
|
@ -488,7 +488,7 @@ galaxy {
|
||||
travel_to(number, current_planet)
|
||||
}
|
||||
|
||||
sub starmap(ubyte local) {
|
||||
sub starmap(bool local) {
|
||||
ubyte current_planet = planet.number
|
||||
ubyte px = planet.x
|
||||
ubyte py = planet.y
|
||||
@ -908,7 +908,7 @@ planet {
|
||||
}
|
||||
}
|
||||
|
||||
sub display(ubyte compressed, ubyte distance) {
|
||||
sub display(bool compressed, ubyte distance) {
|
||||
if compressed {
|
||||
print_name_uppercase()
|
||||
if distance {
|
||||
|
@ -30,7 +30,7 @@ turtle {
|
||||
float xpos
|
||||
float ypos
|
||||
float angle
|
||||
ubyte pendown
|
||||
bool pendown
|
||||
|
||||
sub init() {
|
||||
xpos = 160.0
|
||||
|
Loading…
x
Reference in New Issue
Block a user