import stdlib.sl import io.sl # dump takes the firts element from the stack # and prints that much consequent elements # from the stack while not modifying it #dump [* | n] -> [*] word dump 1 swap for dup pick puti cr 1 + end drop end #rdump [* | n] -> [*] # dump return stack word rdump 1 swap for dup rpick puti cr 1 + end drop end #fdump [* | n] -> [*] #dump the stack with additional formatting word fdump "[*, " write_buf 1 swap 1 + while dup 3 > do dup pick puti 1 - ", " write_buf end 1 - pick puti " | " write_buf 1 - pick puti "]\n" write_buf end #frdump [* | n] -> [*] #dump the return stack with additional formatting word frdump "[*, " write_buf 1 swap 1 - while dup 2 > do dup rpick puti 1 - ", " write_buf end rpick puti ", " write_buf rpick puti " | " write_buf rpick puti "]\n" write_buf end #int3 [*] -> [*] :asm int3 { int3 } ;