MACRO EXOS n
RST 30H
DB n
ENDM
ORG 0F0H
;16 bájtos EXOS fejléc
DB 0,5 ;5-ös típus, vagyis gépi kódú felhasználói program
DW VEGE-100H ;hossz 16 biten
DB 0,0,0,0,0,0,0,0,0,0,0,0 ;többi bájt nem használt
;program kezdete, 100H-ra töltödik be
LD SP,100H ;felhasználói veremmutató beállítása, 164 bájt szabad
;Az EXOS-nak saját belsõ verme van a rendszerszegmensben
;EXOS hívások vagy EXOS megszakítás kiszolgálása esetén
;8 bájt kerül felhasználásra a felhasználói verembõl
LD HL,HIBA
LD (0BFF8H),HL ;EXOS melegindítási rutin címének beállítása
;ez a rutin fut le a Reset gomb egyszeri megnyomásakor
;jelen esetben ugyanazt a kilépési rutint használjuk,
;amit egyéb hibák esetén is. A HIBA rutin felszabadítja
;a programunk által használt memóriát, majd szabályosan
;kilép a villogó ENTERPRISE felírathoz.
;így a reset megnyomásakor a program szabályosan kilép,
;nem történik teljes hidegindítás, így a gépben lévõ
;adatok (pl RAMDISK vagy rendszerbõvítõk) megõrzõdnek
LD A,12 ;memória várakozások
OUT (191),A ;tiltása (opcionális :-)
;keretszín feketére állítása
LD BC,100H+27 ;B=1 írás kódja
;C=27 rendszerváltozó száma (BORDER)
LD D,0 ;változó új értéke
EXOS 16 ;EXOS változó kezelése
CALL VID ;egy videó szegmens igénylése
JP NZ,HIBA ;ha nem sikerült, akkor kilépés
LD A,C ;kapott szegmens számának
LD (VIDS),A ;letárolása
OUT (0B3H),A ;szegmens belapozása a 3. lapra
......