Update sketch to suggest use of `*ADDR`
This commit is contained in:
parent
4e01a0943c
commit
8f9f50e28c
|
|
@ -1,5 +1,10 @@
|
|||
;; sketching around subroutines with return stack
|
||||
|
||||
; I think the sketching below contains some useful ideas,
|
||||
; but the new `*ADDR` assembly op should make this a whole lot simpler
|
||||
|
||||
; sketches follow ..........
|
||||
|
||||
; jump table
|
||||
; ----------
|
||||
; each function has a label
|
||||
|
|
@ -10,18 +15,23 @@
|
|||
; then when the subroutine ends, it jumps here
|
||||
; where that number gets mapped back onto the function's label
|
||||
|
||||
lda $1
|
||||
=*reentryPoint
|
||||
=routine1 $1
|
||||
|
||||
lda =routine1
|
||||
sto $19 ; contains ID # for the next fn to jump to
|
||||
|
||||
@jump_table
|
||||
hop $1
|
||||
jmp @jt2
|
||||
jmp @example_computation
|
||||
|
||||
@jt2
|
||||
hop $2
|
||||
; jmp @jt3
|
||||
nop
|
||||
; etc …
|
||||
|
||||
jmp @end
|
||||
|
||||
@example_computation
|
||||
|
|
@ -59,4 +69,5 @@ sto $1
|
|||
jmp $jmp_table
|
||||
; ok this isn’t quite it… we also need to chexk if we hit 0 by just deceementinf and if so retuen 0
|
||||
|
||||
jmp @jump_table
|
||||
@end
|
||||
END
|
||||
Loading…
Reference in New Issue