Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
forth:fgforth:multitasking [2020/11/18 12:58] – [Multitasking] volkerpforth:fgforth:multitasking [2025/07/09 11:21] (aktuell) – [Funktionsweise] volkerp
Zeile 85: Zeile 85:
   * return stack pointer ist Register IY   * return stack pointer ist Register IY
  
-Das F83 ist bereits von vornherein auf Multitasking vorbereitet. Ein kooperatives Multitasking muss beim Taskwechsel so nur 4 Register sichern/restaurieren: SP (parameter stack pinter), RP (return stack pointer), IP (interpreter pointer) und UP (user area pointer). Das erledigen die Worte PAUSE und RESTART.+Das F83 ist bereits von vornherein auf Multitasking vorbereitet. Ein kooperatives Multitasking muss beim Taskwechsel so nur 4 Register sichern/restaurieren: SP (parameter stack pointer), RP (return stack pointer), IP (interpreter pointer) und UP (user area pointer). Das erledigen die Worte PAUSE und RESTART.
  
 Jeder Task hat seinen eigenen User-Variablen-Bereich. Mit den User-Variablen ENTRY und LINK wird eine geschlossene Taskkette (round-robin-Task list) aufgebaut. Jeder Task hat seinen eigenen User-Variablen-Bereich. Mit den User-Variablen ENTRY und LINK wird eine geschlossene Taskkette (round-robin-Task list) aufgebaut.
Zeile 91: Zeile 91:
  
 {{:forth:fgforth:mtask_fgforth.jpg?400|}}\\ Bild nach „Inside F83“, leicht modifiziert {{:forth:fgforth:mtask_fgforth.jpg?400|}}\\ Bild nach „Inside F83“, leicht modifiziert
 +
 +Hinweis: der Code ist adress-unabhängig!
  
  • forth/fgforth/multitasking.1605704308.txt.gz
  • Zuletzt geändert: 2020/11/18 12:58
  • von volkerp