TriOS/forth/bel.lib

82 lines
2.1 KiB
Plaintext

hex
ifnot: lib:bel
: lib:bel ;
ifnot: [b.w!]
: [b.w!] \ ( 16b -- ) - word an bellatrix senden
dup 8 rshift [b!] [b!] ;
\ kommandoformate
ifnot: bel:fkt! \ ( fkt -- )
: bel:fkt! b[ 0 [b!] [b!] ]b ;
ifnot: bel:fkt!b! \ ( b fkt -- )
: bel:fkt!b! b[ 0 [b!] [b!] [b!] ]b ;
ifnot: bel:fkt!b!l@ \ ( b fkt -- l )
: bel:fkt!b!l@ b[ 0 [b!] [b!] [b!] [b.l@] ]b ;
ifnot: bel:fkt!b!l! \ ( l b fkt -- )
: bel:fkt!b!l! b[ 0 [b!] [b!] [b!] [b.l!] ]b ;
ifnot: bel:fkt!l@ \ ( fkt -- l )
: bel:fkt!l@ b[ 0 [b!] [b!] [b.l@] ]b ;
ifnot: bel:fkt!b@ \ ( fkt -- b )
: bel:fkt!b@ b[ 0 [b!] [b!] [b@] ]b ;
\ chipmanagment-funktionen
ifnot: bel:wscr \ ( scrnr -- ) - schreibscreen setzen
: bel:wscr 58 bel:fkt!b! ;
ifnot: bel:dscr \ ( scrnr -- ) - displayscreen setzen
: bel:dscr 59 bel:fkt!b! ;
ifnot: bel:getcol \ ( colnr -- col ) - farbe abfragen
: bel:getcol 5A bel:fkt!b!l@ ;
ifnot: bel:setcol \ ( col colnr -- ) - farbe setzen
: bel:setcol 5B bel:fkt!b!l! ;
ifnot: bel:getresx \ ( -- resx ) - abfrage x-auflösung
: bel:getresx 5C bel:fkt!l@ ;
ifnot: bel:getresy \ ( -- resy ) - abfrage y-auflösung
: bel:getresy 5D bel:fkt!l@ ;
ifnot: bel:getcols \ ( -- cols ) - abfrage textspalten
: bel:getcols 5E bel:fkt!b@ ;
ifnot: bel:getrows \ ( -- rows ) - abfrage textzeilen
: bel:getrows 5F bel:fkt!b@ ;
ifnot: bel:getcogs \ ( -- cogs ) - abfrage belegte cogs
: bel:getcogs 60 bel:fkt!b@ ;
ifnot: bel:getspec \ ( -- spec ) - abfrage codespezifikation
: bel:getspec 61 bel:fkt!l@ ;
ifnot: bel:getver \ ( -- ver ) - abfrage codeversion
: bel:getver 62 bel:fkt!l@ ;
ifnot: bel:load \ ( cstr -- ) - bellatrix-code laden
: bel:load
52 adm:open .err \ datei öffnen
b[
0 [b!] 57 [b!] \ bella-loader starten
10 0 do 06 [a!] [a@] [b!] loop \ header einlesen
0A [a!] 0 [a.l!] \ 0 adm:seek
[b@] <8 [b@] or \ dateilänge empfangen
0 do 06 [a!] [a@] [b!] loop \ datei senden
]b
adm:close .err \ datei schließen
;