diff --git a/presentation.fs b/presentation.fs index 3b660f4..d059187 100755 --- a/presentation.fs +++ b/presentation.fs @@ -334,6 +334,8 @@ Create line-buffer max-line 2 + allot : pres_page_from ( addr -- addr ) cell+ ; : pres_page_to ( addr -- addr ) 2 cells + ; +variable pres-restore 3 cells allot + \ faddr: erste Seitenzeigeradresse (letzte Presentationsseite) \ laddr: letzte Seitenzeigeradresse (erste Presentationsseite) \ paddr: derzeitige Seitenzeigeradresse @@ -367,12 +369,16 @@ Create line-buffer max-line 2 + allot validpage? 0 tuck 2-rot drop \ i 0 faddr laddr paddr0 dup showpage' 0 2rot drop \ faddr laddr paddr0 0 i if beep then + 2over swap pres-restore ! + pres-restore cell+ ! + over pres-restore 2 cells + ! ; : n ( faddr laddr paddr 0 [u] -- faddr laddr paddr 0 ) page_steps cells - showpage ; : g ( faddr laddr paddr 0 u -- faddr laddr paddr 0 ) cells nip nip over swap - showpage ; : p ( faddr laddr paddr 0 [u] -- faddr laddr paddr 0 ) page_steps cells + showpage ; : u ( faddr laddr paddr X -- faddr laddr paddr 0 ) drop showpage ; : q bye ; +: r ( -- faddr laddr paddr 0 ) pres-restore @ pres-restore cell+ @ pres-restore 2 cells + @ 0 ; : ( -- addr0 0 addr1 , xt-{np} ) here 0 here ['] {np} , ; : ( 0 -- faddr laddr paddr 0 !! endaddr 0 0 0 0 <...addr> ) diff --git a/presentation.p.fs b/presentation.p.fs index e6026a1..d1f2e41 100644 --- a/presentation.p.fs +++ b/presentation.p.fs @@ -38,6 +38,18 @@ ; immediate : farbendemo farbendemo' ; +: interner-ablauf + { a b c d } + !" Interner Ablauf" +

+ 71 <-> + 1 <|> !" Speicheraufbau" 18 <|> s\" {p} 5 {i} {!!} addr len {/i} {/p} " !! 56 <|> s\" here-\"stack\"" !! 71 <|> +
+ 1 <|> a b !! 18 <|> c d !! 56 <|> 71 <|> + 71 <-> +

+; +

s" header.txt" 0 100 @@ -134,15 +146,14 @@ 1 <|> !" Speicheraufbau" 18 <|> s\" {p} 5 {i} {!!} addr len {/i} {/p} " !! 56 <|> !\" here-\"stack\"" 71 <|> 71 <->

- - !" Interner Aublauf" -

- 71 <-> - 1 <|> !" Speicheraufbau" 18 <|> s\" {p} 5 {i} {!!} addr len {/i} {/p} " !! 56 <|> !\" here-\"stack\"" 71 <|> -
- 1 <|> !" Execute" 18 <|> s\" ^" !! 56 <|> 71 <|> - 71 <-> -

+ + s" Execute" s" ^" interner-ablauf + s" {p}" s" ^" interner-ablauf + s" Execute" s" ^" interner-ablauf + s" Execute" s" ^" interner-ablauf + s" {!!}" s" ^---^" interner-ablauf + s" Execute" s" ^" interner-ablauf + s" Execute" s" ^" interner-ablauf