Voici la liste des nouvelles fonctions et proc‚dures d‚finies par MOS. {ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» º UNITES TEXTES º ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ} {*----------------------------- Unit‚ ZUUL_ASM -----------------------------*} Procedure PRINT_SCREEN; {*Print Contenue Ecran*} Procedure WARM_REBOOT; {*Reboot Propre … Chaud*} Procedure COLD_REBOOT; {*Reboot Propre … Froid*} Procedure PURGE_BUFFER_CLAVIER; {*Vide Buffer Clavier*} Procedure WAIT_VBL; {*Wait Synchronisation*} Procedure LOCK_CTRLB; {*Detourne CTRL Break*} Procedure UNLOCK_CTRLB; {*Restore CTRL Break*} Procedure LOCK_CRITICAL; {*Detourne Critical Errors*} Procedure UNLOCK_CRITICAL; {*Restore Critical Errors*} Function GET_DOS_VERSION:String; {*Version du DOS*} Function GET_MOUSE_VERSION:String; {*Version Gestionnaire Souris*} Function GET_MOUSE_TYPE:String; {*Type de Souris*} Function GET_PROCESSOR:Byte; {*Renvoi le Type de Processor*} Function GET_COPRO:Byte; {*Renvoi le Type de CoPro*} Function GET_SPEED:String; {*Renvoi la Vitesse du CPU*} Procedure SET_TASK(Status:Boolean); {*Enable/Disable Multitasking*} Procedure PROTECTED_MODE; {*Passe en Mode Prot‚g‚*} Procedure ENDING_PROGRAM; {*Termine un Prog et Ferme tout*} Procedure SCREEN(Status:Boolean); {*Vid‚o Screen On/Off*} Procedure SETHORLOGETIMER(Freq:Real); {*Set Frequence Horloge*} Procedure SET_TIMER(Freq:Real); {*Init & Begin Timer*} Procedure RESTORE_TIMER; {*Restore Old Normal Timer*} Function PEEK(S,O:Word):Byte; {*Equivalent Basic du Peek*} Procedure PARK; {*Park Tˆtes Lecteures C et D*} Procedure EXG(Var A,B:Integer); {*Echange Both Values*} Procedure INIT_PRINTER; {*Initilaise Printer*} Procedure INIT_ASM; {*Initialise All for Hardware*} Procedure DONE_ASM; {*Restore All for Hardware*} {*----------------------------- Unit‚ ZUUL_COL -----------------------------*} Procedure TC(C:Integer); {*Change Text Color*} Procedure BGC(C:Integer); {*Change Background Color*} Procedure EXTENDEDCOLS; {*Etend les Couleurs*} Procedure NORMALCOLS; {*Restreint les Couleurs*} {*----------------------------- Unit‚ ZUUL_DIR -----------------------------*} Function TEST_DEVICE(Dev:Byte):Boolean; {*Teste la Pr‚sence d'un Device*} Procedure GIVEDIR(PX,PY:Integer;Var Si:LongInt; Var DirSel,FilSel:String);{*File Requester*} {*----------------------------- Unit‚ ZUUL_GAD -----------------------------*} Procedure BUTTON(X,Y,Cp,Cu,Cg:Word; Var GadBut:But; Name:String); Function GADMSG(Var GadBut:But; B:Word):Boolean; {*Test T_Button Msg*} {*----------------------------- Unit‚ ZUUL_MEN -----------------------------*} Procedure MENU_BAR_DISP(Var TbMem:Men_Dat); Procedure GIVEMENU(FreeM,FreeP,HelpL:Boolean; Var MS,IS:Integer); {*----------------------------- Unit‚ ZUUL_MSE -----------------------------*} Function INITMOUSE:Bool; {Positionne Souris au Centre Screen} Procedure SHOWMOUSE; {Affiche la Souris} Procedure HIDEMOUSE; {Hide la Souris} Function BOXMOUSET(X1,Y1,X2,Y2,B:Word):Bool; {TXT | Test if Mouse is in Box} Procedure GETMOUSET(Var X,Y:Word;Var G,M,D:Bool); {TXT | OUT: X/Y = Coord Mouse. G/M/D = States Buttons} Procedure PUTMOUSET(X,Y:Word); {TXT | Put Mouse on X,Y} Procedure LIMITMOUSET(X1,Y1,X2,Y2:Word); {TXT | Limit Mouse on Box (X1,Y1,X2,Y2)} Procedure CURSON; {*Deplanque le Curseur TXT*} Procedure CURSOFF; {*Planque le Curseur TXT*} Procedure DEFCURSOR(H,B:Word); {*Definit le Curseur*} Procedure MASKCURSOR(Maskand,Maskxor:Word); {*Mask Cursor*} {*----------------------------- Unit‚ ZUUL_REQ -----------------------------*} Procedure EZ_REQUEST(TXT,GAD:String; Var NUM:ShortInt; Esc:Boolean); Procedure ST_REQUEST(TXT,GAD:String; Var REP:STring; Var NUM:ShortInt; LEN:Word; Esc:Boolean); Procedure CO_REQUEST(X,Y,Cet,Len:Word; Var Cin:String); {*Command Line*} Procedure VA_REQUEST(TXT,GAD:String; BMIN,BMAX:Longint; Var NUM:ShortInt; Var VAI:LongInt; Esc:Boolean); {*----------------------------- Unit‚ ZUUL_SWA -----------------------------*} Procedure SWAPHIDE(X1,Y1,X2,Y2:Byte; Var SW:Savewin); Procedure SWAPSHOW(X1,Y1:Byte; SW:Savewin); Procedure SWAP_SHADOW(X1,Y1,X2,Y2:Byte); Procedure GOPAGE(X:Byte); {*Definit la Page de Travail*} Procedure COPYPAGE(Source,Target:Byte); {*Copy une page/une autre*} Function GETACTIVEPAGE:Byte; {*Renvois le Num‚ro de la Page Active*} Procedure SAVESCREEN(Page:Byte); {*Save Screen on Memory*} Procedure LOADSCREEN(Page:Byte); {*Set Mem Screen on Page*} {*----------------------------- Unit‚ ZUUL_TOO -----------------------------*} Procedure CLS3(X1,Y1,Y2,LEN,T:Integer); {*Clear Screen Type 3*} Procedure BEEP; {*Produit sound of PVL Sound BB/AG*} Procedure BOX(X1,Y1,X2,Y2:Integer;B1,B2,B3:Boolean); {*----------------------------- Unit‚ ZUUL_TXT -----------------------------*} Procedure DISP(CH:String); {*Print String With Beep*} Procedure DISPLN(CH:String); {*Print String With Beep & CR*} Procedure WAIT; {*Attend une Touche Press‚e*} Function UPPER(SUP:String):String; {*Passe en Majuscule*} Function LOWER(SUP:String):String; {*Passe en Minuscules*} Function MIDDER(SUP:String):String; {*Minuscules & 1ere Lette en Maj*} Function CRYPT(Str1,Str2,Ph1:String):String;{*Cryp & Uncrypt String*} Function GETCHAR(Var Ac,Sc:Byte):Boolean;{*Teste sans Bloquer le Clavier*} Function CHAR_TO_HEX(H:Char):Byte; {*Convertit Char -> Byte*} Function WORD_TO_STRING(D:Word):ShortString;{*Convertit Word -> String*} Function SPECIAL_KEY(Num:Byte):Boolean; {*Teste Touche Sp‚ciale Clavier*} {ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» º UNITES GRAPHIQUES º ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ} {*----------------------------- Unit‚ ZUUL_ASM -----------------------------*} Procedure PRINT_SCREEN; {*Print Contenue Ecran*} Procedure WARM_REBOOT; {*Reboot Propre … Chaud*} Procedure COLD_REBOOT; {*Reboot Propre … Froid*} Procedure PURGE_BUFFER_CLAVIER; {*Vide Buffer Clavier*} Procedure WAIT_VBL; {*Wait Synchronisation*} Procedure LOCK_CTRLB; {*Detourne CTRL Break*} Procedure UNLOCK_CTRLB; {*Restore CTRL Break*} Procedure LOCK_CRITICAL; {*Detourne Critical Errors*} Procedure UNLOCK_CRITICAL; {*Restore Critical Errors*} Function GET_DOS_VERSION:String; {*Version du DOS*} Function GET_MOUSE_VERSION:String; {*Version Gestionnaire Souris*} Function GET_MOUSE_TYPE:String; {*Type de Souris*} Function GET_PROCESSOR:Byte; {*Renvoi le Type de Processor*} Function GET_COPRO:Byte; {*Renvoi le Type de CoPro*} Function GET_SPEED:String; {*Renvoi la Vitesse du CPU*} Procedure SET_TASK(Status:Boolean); {*Enable/Disable Multitasking*} Procedure PROTECTED_MODE; {*Passe en Mode Prot‚g‚*} Procedure ENDING_PROGRAM; {*Termine un Prog et Ferme tout*} Procedure SCREEN(Status:Boolean); {*Vid‚o Screen On/Off*} Procedure SETHORLOGETIMER(Freq:Real); {*Set Frequence Horloge*} Procedure SET_TIMER(Freq:Real); {*Init & Begin Timer*} Procedure RESTORE_TIMER; {*Restore Old Normal Timer*} Function PEEK(S,O:Word):Byte; {*Equivalent Basic du Peek*} Procedure PARK; {*Park Tˆtes Lecteures C et D*} Procedure EXG(Var A,B:Integer); {*Echange Both Values*} Procedure INIT_PRINTER; {*Initilaise Printer*} Procedure INIT_ASM; {*Initialise All for Hardware*} Procedure DONE_ASM; {*Restore All for Hardware*} {*----------------------------- Unit‚ ZUUL_BAS -----------------------------*} Function INITGFX:Integer; {*Initialisation Graphique*} {*----------------------------- Unit‚ ZUUL_COL -----------------------------*} Procedure GetRGBPalette(C:Byte;Var R,G,B:Byte);{*Recupere Valeurs RGB Couleur*} Procedure DEFINE_PALETTE; {*D‚finition de la Palette*} {*----------------------------- Unit‚ ZUUL_DIR -----------------------------*} Function TEST_DEVICE(Dev:Byte):Boolean; {*Teste la Pr‚sence d'un Device*} Function GET_DEVICE_NAME(Root:String):String; {*Renvois le Nom du Volume*} Procedure GET_FILEDIR(X1,Y1,Sv:Integer; Name,OkBut,Mask:String; Filordir:Byte; Var DirSel,FilSel:String; Var Size:LongInt);{*File Requester*} {*----------------------------- Unit‚ ZUUL_GAD -----------------------------*} Procedure DEFINE_GADGETS; {*Definit Gadgets Sp*} Procedure KILL_GADGETS; {*Libere Mem des Gadgets*} Procedure INIT_SCREEN; {*Init Screen Gfx*} Procedure DONE_SCREEN; {*Restore Normal Screen*} Procedure BUTTONG(X,Y,Size:Integer; Lock:Boolean; Var But:ButG; St:String);{*Draw & Define*} Procedure RADIO_BOX(X,Y,Style:Integer; Status:Boolean; Var R:Rad); Procedure CYCLER_BUT(X,Y,Size,Num:Integer; Var But:ButG; St:String); Procedure SLIDER(X1,Y1,X2,Y2,Qtt,Aff,Typ:Integer; GDep:Boolean; Var S:Slide; Psl:Integer); Procedure DRAW_RADIO_BOX(R:Rad); {*Redraw Gadgets*} Procedure DRAW_BUTTONG(B:ButG); Procedure DRAW_SLIDER(Var S:SLide); Function GETMSG_BUT(Var B:ButG; M:Word):Boolean;{*Get Messages*} Function GETMSG_RADIO(Var R:Rad; M:Word):Boolean; Function GETMSG_SLIDER(Var S:Slide; M:Word):Boolean; {*----------------------------- Unit‚ ZUUL_MSE -----------------------------*} Function INITMOUSE:Bool; {Positionne Souris au Centre Screen} Procedure SHOWMOUSE; {Affiche la Souris} Procedure HIDEMOUSE; {Hide la Souris} Function BOXMOUSEG(X1,Y1,X2,Y2,B:Word):Bool; {GFX | Test if Mouse is in Box} Procedure GETMOUSEG(Var X,Y:Word;Var G,M,D:Bool); {GFX | OUT: X/Y = Coord Mouse. G/M/D = States Buttons} Procedure PUTMOUSEG(X,Y:Word); {GFX | Put Mouse on X,Y} Procedure LIMITMOUSEG(X1,Y1,X2,Y2:Word); {GFX | Limit Mouse on Box (X1,Y1,X2,Y2)} Procedure SPEEDMOUSE(X,Y:Integer); {Speed Mouse. Mickeys/Pixels} Procedure INIT_MOUSE; {*Initialise Mouse for Gfx*} Procedure DONE_MOUSE; {*Reinstalle Normal Mouse*} Procedure MOUSE_BLANKER; {*GŠre le Mouse Blanker*} Procedure SET_POINTER(Style:Byte); {*Redefinit Pointeur MSE*} Function CLICK_MOUSE(Num:Integer):Boolean; {Teste si la Souris est Cliqu‚e} Function DOUBLE_CLICK:Boolean; {Teste Double Click Souris} Procedure DEF_DOUBLE_CLICK(T:Integer); {Definition Double Click} Procedure DEF_MOUSE_DELAY(T:Integer); {Definition Mouse Delay} Function MOUSE_DELAY:Boolean; {True=Mouse Delay Pass‚} Procedure INIT_CURSOR(Style,Blink:Integer; Var Loc:LocG);{*Positionne Curseur Graphique*} Procedure LOCATE(X,Y:Integer; Var Loc:LocG); Procedure CURSONG(Var Loc:LocG); {*Affiche Curseur GFX*} Procedure CURSOFFG(Var Loc:LocG); {*Cache le Curseur GFX*} {*----------------------------- Unit‚ ZUUL_REQ -----------------------------*} Procedure MAIN_TASK; {*GŠre All Main*} Procedure EZ_REQUESTG(Name,TXT,GAD:String; Var NUM:Integer);{*EZ Requester*} Procedure STRING_REQUESTG(Name,TXT,GAD:String; NbCar,Size:Integer; Var Cin:String; Var NUM:Integer); Procedure PALETTE_REQUESTG(X1,Y1:Integer; Name:String; Var NUM:Integer);{*GŠre Couleurs*} Procedure MEMORY_REQUESTG(X1,Y1:Integer; Name:String); {*Aff Qtt M‚moire*} Procedure PROGRESS_REQUESTG(Name,Explain:String; Val,CoB:Integer; Var P:TProgress); Procedure HARDWARE_REQUESTG(X1,Y1:Integer; Name:String); {*Display Hardware*} Procedure SYSTEM_REQUESTG(X1,Y1:Integer; Name:String); {*Systeme MOS Config*} Function CO_REQUESTG(Var C:TCoReq; Var Cin:String):Boolean;{*Command Requester*} Procedure DRAW_CO_REQUESTG(X,Y,Siz:Word; Len,CoB,Sty:Byte;{*Affiche C_Request*} Var C:TCoReq; Var Cin:String); {*----------------------------- Unit‚ ZUUL_SWA -----------------------------*} Type TSWAP = Object IMG1:Pointer; {*GETIMAGE Variable*} IMG2:Pointer; Size1,Size2:Word; X,Y,L,H:Word; {*Coordonn‚es de Travail*} CONSTRUCTOR INIT; DESTRUCTOR STOP; PROCEDURE SAVE(DebX,DebY,Hauteur,Longueur:Word); PROCEDURE LOAD(DebX,DebY:Word); PROCEDURE SWAP; {*Inverse les pages de TRAVAIL*} End; Function GETACTIVEPAGE:Byte; {*Renvois le Num‚ro de la Page Active*} {*----------------------------- Unit‚ ZUUL_TOO -----------------------------*} Procedure BEEP; {*Produit sound of PVL Sound BB/AG*} Procedure BEVEL(X1,Y1,X2,Y2,Style,Co:Integer; Cave,Fill:Boolean);{*Affiche un Box en Relief*} Procedure STRING_BOX(X1,Y1,X2,Y2,C1,C2:Integer; Style:Boolean);{*Box Sp‚cial pour String*} Function LIGHT_BOX(Var LB:LightB; M:Word):Boolean;{*Draw Box Clicking Mouse*} {*----------------------------- Unit‚ ZUUL_TXT -----------------------------*} Procedure DISPG(X,Y,C:Integer; St:String);{*Display Texte*} Procedure WAIT; {*Attend une Touche Press‚e*} Function UPPER(SUP:String):String; {*Passe en Majuscule*} Function LOWER(SUP:String):String; {*Passe en Minuscules*} Function MIDDER(SUP:String):String; {*Minuscules & 1ere Lette en Maj*} Function CRYPT(Str1,Str2,Ph1:String):String;{*Cryp & Uncrypt String*} Function GETCHAR(Var Ac,Sc:Byte):Boolean;{*Teste sans Bloquer le Clavier*} Function CHAR_TO_HEX(H:Char):Byte; {*Convertit Char -> Byte*} Function WORD_TO_STRING(D:Word):ShortString;{*Convertit Word -> String*} Function SPECIAL_KEY(Num:Byte):Boolean; {*Teste Touche Sp‚ciale Clavier*} {*----------------------------- Unit‚ ZUUL_WIN -----------------------------*} Procedure INIT_WINDOW(X1,Y1,X2,Y2:Integer; IDCMP:Word; Name:String; Var W:Win); {*D‚finit la Fenˆtre*} Procedure SUP_WINDOW(Xu,Yu,Xv,Yv,XMin,YMin,XMax,YMax,BarSld,Coul:Integer; IDRES:Word; Var W:Win);{*D‚finitions Sup*} Procedure KILL_WINDOW(Var W:Win); {*D‚truit la Fenˆtre*} Procedure DRAW_WINDOW(Var W:Win); {*Redraw Window*} Function ACTIVE_WINDOW(Var W:Win):Integer; {*Gere Activ + Gadgets*} Function MOVE_WINDOW(Var W:Win):Boolean; {*D‚placement Window*} Function BOXE_WINDOW(W1,W2:Win):Boolean; {*Test Intersection 2 Box*} Procedure TASK_WINDOW(Var W:Win); {*Gere Multifenetrage*} Procedure CLIP_WINDOW(Clip:Boolean; Var W:Win); {*Clipping Window*} Procedure ZOOM_WINDOW(Mode:Boolean; Var W:Win); {*Comme Zoom Window v1.2*} Procedure IDCMP_WINDOW(IDCMP:Word; Var W:Win); {*Change IDCMP Fenˆtre*} Procedure IDRES_WINDOW(IDRES:Word; Var W:Win); {*Change IDRES Fenˆtre*} Procedure CLEAR_WINDOW(Var W:Win); {*Clear Window = CLS*} Procedure RENAME_WINDOW(NewName:String; Var W:Win);{*Rename Window Title*} Function WINDOW_READY(Var W:Win):Boolean; {*Teste si Fenˆtre Prˆte*} {*----------------------------- Unit‚ ZUUL_XMS -----------------------------*} Function XMSDriver:Boolean; {*XMS Driver Installed ?*} Function XMSControlAdr:Pointer;{*Returns Pointer to the XMS Controller*} Function XMSVer:Word; {*Version of the XMS Driver*} Function XMSRev:Word; {*Returns XMS Revision Number*} Function XMSGetFreeMem:Word; {*Total XMS Memory Free*} Function XMSGetLargeBlock:Word;{*Size of the Largest Free XMS Block*} Function XMSGetMem(Blocks:Word):Word;{*Allocate XMS for Program use*} Procedure XMSFreeMem(Handle:Word);{*Free Previously Allocated XMS Memory*} Procedure XMSMoveblock(Var Movstruct:XMSMovStruct);{*Move Memory Blocks Around in XMS Memory*} Procedure XMSLockBlock(Handle:Word);{*Lock an XMS block*} Procedure XMSUnLockBlock(Handle:Word);{*Unlock a Previously Locked XMS Block*} Procedure XMSReallocate(Handle,NewSize:Word);{*Reallocate and XMS Block*} Function HMAExists:Boolean; {*Returns Whether or not HMA Exists*} Procedure HMARequest(RequestType:Word);{*Attempt to Reserve the 64k HMA Area for the Caller*} Procedure HMARelease; {*Release Previously Allocated HMA*} Procedure GlobaleEnableA20; {*Enable the A20 Line. Must have HMA*} Procedure GlobaleDisableA20; {*Disable the A20 Line. On Some Systems*} Procedure LocalEnableA20; {*Enable the A20 Line for current Program*} Procedure LocalDisableA20; {*Locally Disable the A20 Line*} Function QueryA20:Boolean; {*Test whether the A20 is Physically Enabled or not*} Function PtrToLong(P:Pointer):Longint;{*Convert a Pointer to a 32 Bit Number*}