- ;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 
- ;@                                                                            @ 
- ;@                    S y m b O S   -   C o n s t a n t s                     @ 
- ;@                                                                            @ 
- ;@             (c) 2000-2015 by Prodatron / SymbiosiS (JЎrn Mika)             @ 
- ;@                                                                            @ 
- ;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 
-   
-   
- ;P R O C E S S - I D S 
- PRC_ID_KERNEL   equ 1   ;kernel process 
- PRC_ID_DESKTOP  equ 2   ;desktop manager process 
- PRC_ID_SYSTEM   equ 3   ;system manager process 
-   
-   
- ;M E S S A G E S 
- ;General 
- MSC_GEN_QUIT    equ 0   ;application is beeing asked, to quit itself 
- MSC_GEN_FOCUS   equ 255 ;application is beeing asked, to focus its window 
-   
- ;Kernel Commands 
- MSC_KRL_MTADDP  equ 1   ;add process (P1/2=stack, P3=priority (7 high - 1 low), P4=ram bank (0-8)) 
- MSC_KRL_MTDELP  equ 2   ;delete process (P1=ID) 
- MSC_KRL_MTADDT  equ 3   ;add timer (P1/2=stack, P4=ram bank (0-8)) 
- MSC_KRL_MTDELT  equ 4   ;delete timer (P1=ID) 
- MSC_KRL_MTSLPP  equ 5   ;set process to sleep mode 
- MSC_KRL_MTWAKP  equ 6   ;wake up process 
- MSC_KRL_TMADDT  equ 7   ;add counter service (P1/2=address, P3=ram bank, P4=process, P5=frequency) 
- MSC_KRL_TMDELT  equ 8   ;delete counter service (P1/2=address, P3=ram bank) 
- MSC_KRL_TMDELP  equ 9   ;delete all counter services of one process (P1=process ID) 
- MSC_KRL_MTPRIO  equ 10  ;changes the priority of a process (P1=ID, P2=new priority) 
-   
- ;Kernel Responses 
- MSR_KRL_MTADDP  equ 129 ;process has been added (P1=0/1->ok/failed, P2=ID) 
- MSR_KRL_MTDELP  equ 130 ;process has been deleted 
- MSR_KRL_MTADDT  equ 131 ;timer process has been deleted (P1=0/1->ok/failed, P2=ID) 
- MSR_KRL_MTDELT  equ 132 ;timer has been removed 
- MSR_KRL_MTSLPP  equ 133 ;process is sleeping now 
- MSR_KRL_MTWAKP  equ 134 ;process has been waked up 
- MSR_KRL_TMADDT  equ 135 ;counter service has been added (P1=0/1->ok/failed) 
- MSR_KRL_TMDELT  equ 136 ;counter service has been deleted 
- MSR_KRL_TMDELP  equ 137 ;all counter services of a process have been deleted 
- MSR_KRL_MTPRIO  equ 138 ;priority of a process has been changed 
-   
- ;System Manager Commands 
- MSC_SYS_PRGRUN  equ 16  ;load application or document (P1/2=address filename, P3=ram bank filename) 
- MSC_SYS_PRGEND  equ 17  ;quit application (P1=ID) 
- MSC_SYS_SYSWNX  equ 18  ;open dialogue to change current window (next) (-) 
- MSC_SYS_SYSWPR  equ 19  ;open dialogue to change current window (previouse) (vorheriges) (-) 
- MSC_SYS_PRGSTA  equ 20  ;open dialogue to load application or document (-) 
- MSC_SYS_SYSSEC  equ 21  ;open system secuity dialogue (-) 
- MSC_SYS_SYSQIT  equ 22  ;open shut shown dialogue (-) 
- MSC_SYS_SYSOFF  equ 23  ;shut down (-) 
- MSC_SYS_PRGSET  equ 24  ;start control panel (P1=submodul -> 0=main window, 1=display settings, 2=date/time) 
- MSC_SYS_PRGTSK  equ 25  ;start taskmanager (-) 
- MSC_SYS_SYSFIL  equ 26  ;call filemanager function (P1=number, P2-13=AF,BC,DE,HL,IX,IY) 
- MSC_SYS_SYSHLP  equ 27  ;start help (-) 
- MSC_SYS_SYSCFG  equ 28  ;call config function (P1=number, 0=load, 1=save, 2=reload background) 
- MSC_SYS_SYSWRN  equ 29  ;open message/confirm window (P1/2=adresse, P3=ram bank, P4=number of buttons) 
- MSC_SYS_PRGSRV  equ 30  ;shared service function (P4=type [0=search, 1=start, 2=release], P1/2=addresse 12char ID, P3=ram bank 12char ID or P3=program ID, if type=2) 
- MSC_SYS_SELOPN  equ 31  ;open fileselect dialogue (P6=filename ram bank, P8/9=filename address, P7=forbidden attributes, P10=max entries, P12=max buffer size) 
-   
- ;System Manager Responses 
- MSR_SYS_PRGRUN  equ 144 ;application has been started (P1=result -> 0=ok, 1=file doesnt exist, 2=file is not executable, 3=error while loading  [P8=filemanager error code], 4=memory full, P8=app ID, P9=process ID) 
- MSR_SYS_SYSFIL  equ 154 ;filemanager function returned (P1=number, P2-13=AF,BC,DE,HL,IX,IY) 
- MSR_SYS_SYSWRN  equ 157 ;message/confirm window response (P1 -> 0=already in use, 1=opened [P2=number], 2=ok, 3=yes, 4=no, 5=cancel/close) 
- MSR_SYS_PRGSRV  equ 158 ;shared service function response (P1=state [5=not found, other codes see MSR_SYS_PRGRUN], P8=app ID, P9=process ID) 
- MSR_SYS_SELOPN  equ 159 ;message from fileselect dialogue (P1 -> 0=Ok, 1=cancel, 2=already in use, 3=no memory free, 4=no window free, -1=open ok, modal window has been opened [P2=number]) 
-   
- ;Desktop Manager Commands 
- MSC_DSK_WINOPN  equ 32  ;open window (P1=ram bank, P2/3=address data record) 
- MSC_DSK_WINMEN  equ 33  ;redraw menu bar (P1=window ID) [only if focus] 
- MSC_DSK_WININH  equ 34  ;redraw window content (P1=window ID, P2=-1/-Num/Object, P3=Object) [only if focus] 
- MSC_DSK_WINTOL  equ 35  ;redraw window toolbar (P1=window ID) [only if focus] 
- MSC_DSK_WINTIT  equ 36  ;redraw window title (P1=window ID) [only if focus] 
- MSC_DSK_WINSTA  equ 37  ;redraw window status lien (P1=window ID) [only if focus] 
- MSC_DSK_WINMVX  equ 38  ;set content x offset (P1=window ID, P2/3=XPos) [only if focus] 
- MSC_DSK_WINMVY  equ 39  ;set content y offset (P1=window ID, P2/3=XPos) [only if focus] 
- MSC_DSK_WINTOP  equ 40  ;takes window to the front (P1=window ID) [always] 
- MSC_DSK_WINMAX  equ 41  ;maximize window (P1=window ID) [always] 
- MSC_DSK_WINMIN  equ 42  ;minimize window (P1=window ID) [always] 
- MSC_DSK_WINMID  equ 43  ;restore window size (P1=window ID) [always] 
- MSC_DSK_WINMOV  equ 44  ;moves window to a new position (P1=window ID, P2/3=XPos, P4/5=YPos) [always] 
- MSC_DSK_WINSIZ  equ 45  ;resize the window (P1=window ID, P2/3=XPos, P4/5=YPos) [always] 
- MSC_DSK_WINCLS  equ 46  ;closes and removes window (P1=window ID) [always] 
- MSC_DSK_WINDIN  equ 47  ;redraw window content, even if it hasnt focus (P1=window ID, P2=-1/-Num/Objekt, P3=Object) [always] 
- MSC_DSK_DSKSRV  equ 48  ;desktop service request (P1=type, P2-P5=parameters) 
- MSC_DSK_WINSLD  equ 49  ;redraw window scrollbars (P1=window ID) [only if focus] 
- MSC_DSK_WINPIN  equ 50  ;redraw window content part (P1=window ID, P2=-1/-Num/Object, P3=Object, P4/5=Xbeg, P6/7=Ybeg, P8/9=Xlen, P10/11=Ylen) [always] 
- MSC_DSK_WINSIN  equ 51  ;redraw content of a super control (P1=window ID, P2=super control ID, P3=SubObject) [always] 
- MSC_DSK_MENCTX  equ 52  ;opens context menu (P1=ram bank, P2/3=address data record, P4/5=Xbeg [-1=mouse position], P6/7=Ybeg) ##!!## doc+lib 
- MSC_DSK_STIADD  equ 53  ;adds systray-icon (P1=ram bank, P2/3=address, P4=ID) 
- MSC_DSK_STIREM  equ 54  ;removes systray-icon (P1=number) 
- MSC_DSK_STIUPD  equ 55  ;updates systray-icon (P1=number) 
- MSC_DSK_CONPOS  equ 56  ;move a virtual control to a new position (P2/3=xpos, P4/5=ypos, P6/7=xlen, P8/9=ylen) 
-   
- ;Desktop Manager Responses 
- MSR_DSK_WOPNER  equ 160 ;open window failed; the maximum of 32 windows has been reached 
- MSR_DSK_WOPNOK  equ 161 ;open window successfull (P4=number) 
- MSR_DSK_WCLICK  equ 162 ;window has been clicked (P1=window number, P2=action, P3=subspezification, P4/5,P6/7,P8/9=parameters) 
- MSR_DSK_DSKSRV  equ 163 ;desktop service answer (P1=type, P2-P5=parameters) 
- MSR_DSK_WFOCUS  equ 164 ;window got/lost focus (P1=window number, P2=type [0=blur, 1=focus]) 
- MSR_DSK_CFOCUS  equ 165 ;control focus changed (P1=window number, P2=control number, P3=reason [0=mouse click/wheel, 1=tab key]) 
- MSR_DSK_WRESIZ  equ 166 ;window has been resized (P1=window number) 
- MSR_DSK_WSCROL  equ 167 ;window content has been scrolled (P1=window number) 
- MSR_DSK_MENCTX  equ 168 ;menu has been clicked or canceled (P1=1 ok, P2/3=value, P4=type [0=normal, 1=check]) ##!!## doc+lib 
- MSR_DSK_STIADD  equ 169 ;result of adding systray-icon (P1=1 ok, P2=number) 
- MSR_DSK_EVTCLK  equ 170 ;defined event click (P1=event, P2=mouse key) 
- MSR_DSK_CONPOS  equ 171 ;virtual control has been moved or canceled (P1=1 ok, P2/3=new xpos, P4/5=new ypos) ##!!## doc+lib 
-   
- MSR_DSK_EXTDSK  equ 191 ;command for extended desktop (used internally; P1=command, P2-x=parameters) 
-   
- FNC_DXT_DSKBGR  equ 001 ;background has been updated 
- FNC_DXT_FILRUN  equ 002 ;file has been opened via prgrun (P2/3=address, P4=bank) 
- FNC_DXT_FILBRW  equ 003 ;file has been selected via file browser (P2/3=address, P4=bank) 
- FNC_DXT_MENCLK  equ 004 ;startmenu has been clicked (P2/3=value) 
- FNC_DXT_DSKCLK  equ 005 ;desktop window has been clicked (P2=action, P3=subspezification, P4/5,P6/7,P8/9=parameters) 
- FNC_DXT_CFGLOD  equ 006 ;load configuration 
- FNC_DXT_CFGSAV  equ 007 ;save configuration 
- FNC_DXT_WDGOKY  equ 008 ;widget is prepared and (re)sized (P2/3=data record address, P4=bank) 
- FNC_DXT_STMDAT  equ 009 ;askes for data area (answer -> P2/3=address behind 256 byte header) 
- FNC_DXT_STMCOP  equ 010 ;memory should be copied 
- FNC_DXT_STMIIN  equ 011 ;icons should be reinitialized 
-   
- ;Shell Commands 
- MSC_SHL_CHRINP  equ 64  ;char is requested (P1=channel [0=standard, 1=keyboard]) 
- MSC_SHL_STRINP  equ 65  ;line is requested (P1=channel [0=standard, 1=keyboard], P2=ram bank, P3/4=address) 
- MSC_SHL_CHROUT  equ 66  ;char should be writtten (P1=channel [0=standard, 1=screen], P2=char) 
- MSC_SHL_STROUT  equ 67  ;line should be writtten (P1=channel [0=standard, 1=screen], P2=ram bank, P3/4=address, P5=length) 
- MSC_SHL_EXIT    equ 68  ;application released focus or quit itself (P1 -> 0=quit, 1=blur) 
- MSC_SHL_PTHADD  equ 69  ;add additional path to current one (P1=base path, P3=addition path, P5=final path, P7=ram bank) 
-   
- ;Shell Responses 
- MSR_SHL_CHRINP  equ 192 ;char has been received (P1=EOF-flag [0=no EOF], P2=char, P3=error status) 
- MSR_SHL_STRINP  equ 193 ;line has been received (P1=EOF-flag [0=no EOF], P3=error status) 
- MSR_SHL_CHROUT  equ 194 ;char has been written (P3=error status) 
- MSR_SHL_STROUT  equ 195 ;line has been written (P3=error status) 
- MSR_SHL_PTHADD  equ 197 ;path has been combined (P1=total end address, P3=directory end address, P5=flags) 
-   
- ;Screensaver Messages 
- MSC_SAV_INIT    equ 1   ;initialises the screen saver (P1=bank of config data, P2/3=address of config data [64bytes]) 
- MSC_SAV_START   equ 2   ;start screen saver 
- MSC_SAV_CONFIG  equ 3   ;open screen savers own config window (at the end the screen saver has to send the result back to the sender) 
- MSR_SAV_CONFIG  equ 4   ;returns user adjusted screen saver config data (P1=bank of config data, P2/3=address of config data [64bytes]) 
-   
- ;Widget Messages 
- MSC_WDG_SIZE    equ 188 ;widget must prepare and (re)size (P1=desktop window ID, P2=control collection ID, P3=size) 
- MSC_WDG_CLICK   equ 189 ;widget has been clicked (P1=desktop window ID, P2=action, P3=subspezification, P4/5,P6/7,P8/9=parameters) 
- MSC_WDG_PROP    equ 190 ;widget should open property dialogue 
-   
-   
- ;D E S K T O P - A C T I O N S 
- DSK_ACT_CLOSE   equ 5   ;close button has been clicked or ALT+F4 has been pressed 
- DSK_ACT_MENU    equ 6   ;menu entry has been clicked (P8/9=menu entry value) 
- DSK_ACT_CONTENT equ 14  ;a control of the content has been clicked (P3=sub spec [see dsk_sub...], P4=key or P4/5=Xpos within the window, P6/7=Ypos, P8/9=control value) 
- DSK_ACT_TOOLBAR equ 15  ;a control of the toolbar has been clicked (see DSK_ACT_CONTENT) 
- DSK_ACT_KEY     equ 16  ;key has been pressed without touching/modifying a control (P4=Ascii Code) 
-   
- DSK_SUB_MLCLICK equ 0   ;left mouse button has been clicked 
- DSK_SUB_MRCLICK equ 1   ;right mouse button has been clicked 
- DSK_SUB_MDCLICK equ 2   ;double click with the left mouse button 
- DSK_SUB_MMCLICK equ 3   ;middle mouse button has been clicked 
- DSK_SUB_KEY     equ 7   ;keyboard has been clicked and did modify/click a control (P4=Ascii Code) 
- DSK_SUB_MWHEEL  equ 8   ;mouse wheel has been moved (P4=Offset) 
-   
-   
- ;D E S K T O P - S E R V I C E S 
- DSK_SRV_MODGET  equ 1   ;get screen mode (output P2=mode, P3=virtual desktop) 
- DSK_SRV_MODSET  equ 2   ;set screen mode (input P2=mode, P3=virtual desktop) 
- DSK_SRV_COLGET  equ 3   ;get colour      (input P2=number, output P2=number, P3/4=RGB value) 
- DSK_SRV_COLSET  equ 4   ;set colour      (input P2=number, P3/4=RGB value) 
- DSK_SRV_DSKSTP  equ 5   ;freeze desktop  (input P2=type [0=Pen0, 1=Raster, 2=background, 255=no screen modification, switch off mouse]) 
- DSK_SRV_DSKCNT  equ 6   ;continue desktop 
- DSK_SRV_DSKPNT  equ 7   ;clear desktop   (Eingabe P2=Typ [0=Pen0, 1=Raster, 2=background]) 
- DSK_SRV_DSKBGR  equ 8   ;initialize and redraw desktop background 
- DSK_SRV_DSKPLT  equ 9   ;redraw the complete desktop 
- DSK_SRV_DSKOPN  equ 11  ;open desktop background window 
- DSK_SRC_SCRCNV  equ 12  ;converts 4 colour graphics to 4/16 indexed graphics (input P2/3=table address, P4=banknumber) 
- DSK_SRC_DSKBIN  equ 13  ;initialize desktop background (no redraw) 
-   
- ;C L I P B O A R D - T Y P E S 
- CLPTYP_TEXT     equ 1   ;plain text 
- CLPTYP_GRAPHIC  equ 2   ;graphic with extended header 
- CLPTYP_ITEMS    equ 3   ;item list (*not defined yet*) 
- CLPTYP_ICON     equ 4   ;desktop icon shortcut 
-   
-   
- ;J U M P S 
- jmp_memsum  equ #8100 ;MEMSUM 
- jmp_sysinf  equ #8103 ;SYSINF 
- jmp_clcnum  equ #8106 ;CLCNUM 
- jmp_mtgcnt  equ #8109 ;MTGCNT 
- jmp_timget  equ #810C ;TIMGET 
- jmp_timset  equ #810F ;TIMSET 
- jmp_memget  equ #8118 ;MEMGET 
- jmp_memfre  equ #811B ;MEMFRE 
- jmp_memsiz  equ #811E ;MEMSIZ 
- jmp_meminf  equ #8121 ;MEMINF 
- jmp_bnkrwd  equ #8124 ;BNKRWD 
- jmp_bnkwwd  equ #8127 ;BNKWWD 
- jmp_bnkrbt  equ #812A ;BNKRBT 
- jmp_bnkwbt  equ #812D ;BNKWBT 
- jmp_bnkcop  equ #8130 ;BNKCOP 
- jmp_bnkget  equ #8133 ;BNKGET 
- jmp_scrset  equ #8136 ;SCRSET (cpc only) 
- jmp_scrget  equ #8139 ;SCRGET 
- jmp_mosget  equ #813C ;MOSGET 
- jmp_moskey  equ #813F ;MOSKEY 
- jmp_bnk16c  equ #8142 ;BNK16C 
- jmp_keytst  equ #8145 ;KEYTST 
- jmp_keysta  equ #8148 ;KEYSTA 
- jmp_keyput  equ #814B ;KEYPUT 
- jmp_bufput  equ #814E ;BUFPUT 
- jmp_bufget  equ #8151 ;BUFGET 
- jmp_bufsta  equ #8154 ;BUFSTA 
- jmp_iominp  equ #8157 ;IOMINP (cpc only) 
- jmp_iomout  equ #815A ;IOMOUT (cpc only) 
- jmp_txtlen  equ #815D ;TXTLEN 
-   
- jmp_bnkcll  equ #ff03 ;BNKCLL 
- jmp_bnkret  equ #ff00 ;BNKRET 
-   
-   
- ;Filemanager Functions (call via MSC_SYS_SYSFIL) 
- FNC_FIL_STOINI  equ 000 ;Storage Init (Removes all mass storage devices) 
- FNC_FIL_STONEW  equ 001 ;Storage New (Adds a new mass storage device) 
- FNC_FIL_STORLD  equ 002 ;Storage Reload (Reloads a mass storage device, if its "removeable media" status is activated) 
- FNC_FIL_STODEL  equ 003 ;Storage Delete (Removes an existing mass storage device) 
- FNC_FIL_STOINP  equ 004 ;Storage ReadSector (Reads a sector from a mass storage device (no memory banking)) 
- FNC_FIL_STOOUT  equ 005 ;Storage WriteSector (Write a sector to a mass storage device (no memory banking)) 
- FNC_FIL_STOACT  equ 006 ;Storage Activate (Loads the format and the file system type of a mass storage device) 
- FNC_FIL_STOINF  equ 007 ;Storage Information (Returns information about a mass storage device) 
- FNC_FIL_STOTRN  equ 008 ;Storage DataTransfer (Reads or writes a number of sectors (512 bytes) from/to the mass storage device) 
-   
- FNC_FIL_DEVDIR  equ 013 ; 
- FNC_FIL_DEVINI  equ 014 ; 
- FNC_FIL_DEVSET  equ 015 ; 
-   
- FNC_FIL_FILINI  equ 016 ;File Init (Initialises the whole file manager) 
- FNC_FIL_FILNEW  equ 017 ;File New (Creates a new file and opens it for read/write access) 
- FNC_FIL_FILOPN  equ 018 ;File Open (Opens an existing file for read/write access) 
- FNC_FIL_FILCLO  equ 019 ;File Close (Closes an opened file) 
- FNC_FIL_FILINP  equ 020 ;File Input (Reads a specified amount of bytes out of an opened file) 
- FNC_FIL_FILOUT  equ 021 ;File Output (Writes a specified amount of bytes into an opened file) 
- FNC_FIL_FILPOI  equ 022 ;File Pointer (Moves the file pointer to another position) 
- FNC_FIL_FILF2T  equ 023 ;File Decode Timestamp (Decodes the file timestamp, which is used for the file system) 
- FNC_FIL_FILT2F  equ 024 ;File Encode Timestamp (Encodes the file timestamp, which is used for the file system) 
- FNC_FIL_FILLIN  equ 025 ;File LineInput (Reads one text line out of an opened file) 
-   
- FNC_FIL_DIRDEV  equ 032 ;Directory Device (Selects the current drive) 
- FNC_FIL_DIRPTH  equ 033 ;Directory Path (Selects the current path for the current or a different drive) 
- FNC_FIL_DIRPRS  equ 034 ;Directory Property Set (Changes a property of a file or a directory) 
- FNC_FIL_DIRPRR  equ 035 ;Directory Property Get (Reads a property of a file or a directory) 
- FNC_FIL_DIRREN  equ 036 ;Directory Rename (Renames a file or a directory) 
- FNC_FIL_DIRNEW  equ 037 ;Directory New (Creates a new directory) 
- FNC_FIL_DIRINP  equ 038 ;Directory Input (Reads the content of a directory) 
- FNC_FIL_DIRDEL  equ 039 ;Directory Delete (Deletes one or more files) 
- FNC_FIL_DIRRMD  equ 040 ;Directory Delete Directory (Deletes a sub directory) 
- FNC_FIL_DIRMOV  equ 041 ;Directory Move (Moves a file or sub directory into another directory of the same drive) 
- FNC_FIL_DIRINF  equ 042 ;Directory Drive Information (Returns information about one drive) 
-   
- ;Network Daemon Functions 
- FNC_NET_CFGGET  equ 001 ;config information 
- FNC_NET_CFGSET  equ 002 ;config setting 
- FNC_NET_CFGSCK  equ 003 ;config socket status 
-   
- FNC_NET_TCPOPN  equ 016 ;TCP open 
- FNC_NET_TCPCLO  equ 017 ;TCP close 
- FNC_NET_TCPSTA  equ 018 ;TCP status 
- FNC_NET_TCPRCV  equ 019 ;TCP receive 
- FNC_NET_TCPSND  equ 020 ;TCP send 
- FNC_NET_TCPSKP  equ 021 ;TCP skip received data 
- FNC_NET_TCPFLS  equ 022 ;TCP flush send buffer 
- FNC_NET_TCPDIS  equ 023 ;TCP disconnect 
- FNC_NET_TCPRLN  equ 024 ;TCP receive line 
- MSR_NET_TCPEVT  equ 159 ;TCP event 
-   
- FNC_NET_UDPOPN  equ 032 ;UDP open 
- FNC_NET_UDPCLO  equ 033 ;UDP close 
- FNC_NET_UDPSTA  equ 034 ;UDP status 
- FNC_NET_UDPRCV  equ 035 ;UDP receive 
- FNC_NET_UDPSND  equ 036 ;UDP send 
- FNC_NET_UDPSKP  equ 037 ;UDP skip received data 
- MSR_NET_UDPEVT  equ 175 ;UDP event 
-   
- FNC_NET_DNSRSV  equ 112 ;DNS resolve 
- FNC_NET_DNSVFY  equ 113 ;DNS verify 
-