all repos — xyw @ 12959899d893742d178fa40c30533b31c8063a97

A minimal virtual machine and assembler for terminals.

examples/lib/length.xyw

 1
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
; returns the length of a string (max: 255)
; a16 -> a8
.label length
   POPxw ; store start address
   $00 POPx ; counter
   .label length.loop
     ; if at end of string, go to end
     LDBxw $00 EQU length.end JCNw
     ; otherwise increment address and counter
     INCxw
     INCx
     length.loop JMPw
     .label length.end
       PSHx RTS