hex code curs-on ( -- ) \ Cursor einschalten ds di mov \ Datensegment aufbewahren, bx bx xor bx ds mov \ dann auf 0 setzen. 460 [bx] cx mov \ Rasterzeilen: ch oben, cl unten di ds mov \ Datensegment wiederherstellen 1f # ch and \ Bits 5-7 der obersten Rasterzeile auf 0 1 # ah mov \ Interrupt-Funktion nach ah 10 int \ Bildschirm-Interrupt aufrufen next end-code code curs-off ( -- ) \ Cursor ausschalten ds di mov \ mov-Operationen beziehen sich bx bx xor bx ds mov \ auf das Datensegment ds 460 [bx] cx mov di ds mov e0 # ch or \ Bits 5-7 der obersten Rasterzeile auf 1 1 # ah mov 10 int next end-code code curs-togg ( -- ) \ Cursor umschalten ds di mov bx bx xor bx ds mov 460 [bx] cx mov di ds mov e0 # ch xor \ Bits 5-7 der obers. Rasterz. 0/1 -> 1/0 1 # ah mov 10 int next end-code code curs-shape ( anf end -- ) \ Cursor-Formgebung ds di mov bx bx xor bx ds mov 460 [bx] cx mov di ds mov ax pop \ Unterste Cursor-Rasterzeile auf 1f # al and al cl mov \ (0..1f) beschränken und nach cl legen. ax pop \ Oberste Cursor-Rasterzeile auf 1f # al and \ (0..1f) beschränken, dann bisherigen e0 # ch and \ Einschaltzustand (Bits 5-7) retten al ch or \ und beides nach ch zusammenführen. 1 # ah mov 10 int next end-code \ Der so implementierte Cursor kann auch im ausgeschalteten \ Zustand (im Verborgenen) neu geformt werden, ohne dass er \ sich dadurch schon einschaltet. Beim anschließenden \ Einschalten zeigt er dann seine neueingestellte Form.