implement inplace bitwise operations on long struct fields

This commit is contained in:
Irmen de Jong
2025-10-28 23:44:34 +01:00
parent 9c2bcab4a5
commit 34061c5a63
2 changed files with 237 additions and 21 deletions

View File

@@ -2,28 +2,31 @@
%zeropage basicsafe
main {
struct Node {
^^Node next
struct element {
ubyte type
long l
}
sub start() {
^^Node node = 6000
long @shared lvar = 999999
^^long @shared lptr = 5000
^^bool bptr
^^ubyte ubptr
pokel(5000, 11223344)
^^element ptr = 5000
ptr^^.l = 123456789
txt.print_l(ptr^^.l)
txt.nl()
lptr^^ = 0
lptr^^ = lvar
lptr^^ = 82348234+lvar
txt.print_l( lptr^^)
lvar = lptr^^+1111111
long @shared l1 = 1111110
long @shared l2 = 2222220
long @shared l3 = 3333330
^^Node next = 8888
node.next = next
ptr.l &= l1+1
txt.print_l(ptr^^.l)
txt.nl()
bptr^^=false
ubptr^^=0
ptr.l |= l2+2
txt.print_l(ptr^^.l)
txt.nl()
ptr.l ^= l3+3
txt.print_l(ptr^^.l)
txt.nl()
}
}