mirror of
https://github.com/irmen/prog8.git
synced 2025-12-19 20:17:17 +00:00
implement inplace bitwise operations on long struct fields
This commit is contained in:
@@ -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()
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user