DOS\pHQ(OB,xCOpNhJg,@)n&A"C( N @*h">(&/0<@2<N)@g~ l2< 'p Q$HC2< Q4<z9909EEvraRCBQ6<rarCBQ6<ra\CBQ6<raFSCBQ A ,"(H@0XHH@0XHHA0XHHA0,|?.?.-|=|-J=|Bn"lA~(rpg8 fr@` f@`$I&M@ p(QRA`<<=| 9g0.g=| Q-|=_=_-lBn,_Jg l0<@2<N"N,xNbPL,xCfd|oNJg @ hpNupNuJEf8`x0@@0@H@0000Nutopaz.fontgraphics.library" f" ,x,8 Where Amiga Memories Live On AMIGA DB  https://amigadb.net --- YOUR PORTAL TO AMIGA HISTORY --- ! Press mouse to boot !p@bconmlkjihgfedc(E+.demopbd=ZH~$H$I,xGr <?`&Q)O)N &n +g @ (4` :")A|dT ,)@4"<N:Jg)@0)@|Ь" n$m)@ )A4A N$`.@)O,)O(A$ | n$mN$Bp"<0N&nCpN)@fpd`)kJg~ k"h r)IЁ^@)@H@@"<N:LJfp/g: @)@ Sԁ SQ S"  Q"/`JA\NA\N)@/$@ *$g,l @"(N)@"N l/HlbeߘF= h$)hN$Jf Np` /$l%)l$|,xY, n$m A$N$`.l, ,g @NN,x n$mJg AY N$.J ,4g "l0,xN.Jg ,l",gN,xN|"lN`,x ,g"lN."lNb L~Nudos.libraryH *HI g ll&"MfpaL0NuH .IGh l8C@,xN lB8+B:*E؅XXJjjD7Dk*43HBB7Hש&)n f:Jg4 , @f )i` hf!i ),xN.LL2V nn&,g"Cn2", f(EJRkB8*D匰oB8*kEH`&)gf"C`GBg<,Yf `0JjjF*7F7E5EzJFk42Hb l۞BB5H&)#C XLL|Nu*j ,(",,xN:Jf )| `"@E#l)I#D#l &g(Yg$#CGX5|5E7EC7C`B5|D5D XLL|Nu /H.*l0` mN*U f L `dNq / oYOH.|GrAҁ*H­f p`Zr3­UgbrLF­p@ЀfB m+H`>-gp`rnF­pnFfB m+H` r+A ` - l: mR R -gr f Ma,Jg `r `-g.B -rAa,Rf`r Sglb m `dJf MaJg p`Xp+@ +m - m MaL, mR R -gr f Ma ,Jg `r L XONuNq oH*H gpAЀf, mC"BB- p"-g`JgD - jr+A - g("-A ma~"Rf` g+mB p0f-gpp`&p`"*l~`Jg MaDJg~*U f L NuNq4H16C,xp*HN&@Jf ,KN.`AH"$<,KN.JgnA/ CG",x$HAN&_A"HJfS$,K& "N MJfS&"$ Nb nߖG}Ap"$vNJgrdҁN:"N"K,xNbNrz @!ALl4Nudos.libraryCan't open version %ld of Nu Nq/C* ,,xN)@)@f Aap @p,_Nuutility.library/ ,g"@,xNb)H)H,_NuNq //.gXrgmPrznAr0 `>r6Fm4r FnAr0 ` /m 1lAhr0  @p.NuNqH 6A)H)HA)HA)HA)HBA)HBBB)|)|)|,lNJfBJg lJ g"( $<N)@`AH"HJfS$ p/" AG0b oR_f"KlJg "l i$*h MJfSԈ l h$eA4"HJfSԉ RaD&@Jfp` KCHab$@ g J"MaT$@ l h$e JC4a<" $<,lN)@ KaJfA"N)@ד ,,x$@N @!jA"$<,lN)@f@A"N)@`0N)@N)@Ap"$<N)@fAT"N)@VpJf <B"A)Ar)A@B)@r)A)@pLlNuOutputNIL:*Nq$z< This a CNetC prob <\gram! Couldn't create replyport! cstuffcnet.libraryCouldn't open library! Enter handle: udatad,` x    /auto/close/waitcon:10/10/320/80/   H\b~{ uxrqE+.AmigaDBE+.E#1rUsB\ JTpst]A^t =T EDIT-BACKUPrs -*^df0:demo uwv_devspvwۤwsystem-configurationuvp+y||x|ni`@ " ,EpsonX[CBM_MPS-1250]P BxyB\spyzu>z;B\startup-sequencexy;3)df0:c/border on df0:c/climaxx -c -t df0:boot.txt df0:demo {|n}|B\boot.txtp{}U Where Amiga Memories Live On __ _____ (__) / _ \ _____ __ _________ / /_\ \ / \| |/ ___\__ \ / | \ Y Y \ / /_/ > __ \_ \____|__ /__|_| /__\___ (____ / {;Z \/ \/ /_____/ \/DB https://AmigaDB.net --- YOUR PORTAL TO AMIGA HISTORY --- ~hB\cp7B\cls~m-] ?g $<Lv`$<Mv,yC@pN*@N"N"MNbpNudos.library Parameters are not required  7tB\border~󫔿HzHHI&TNJg,$! !N. n (gB" & @I<(X/BrQ >D@ Ư!RC":c4@g=3sUE_(ր`J`J7BkpS ЃaZ,o>܄U!H mp9Q>h@9*k7QGB G dmTQ ҫۮ[$E[5:!{a+Pă[Oҥ`*t4e$#> OJo"=@a1ܩ)7-$Ĥ@Z*1'ػ;/=I8 B[_`F<Brp;(uT{Ch9>6- F9X@#~lTNa"2S|w1 yd Qd=qh3a'1p@4Ґ $a*GB*1 p0p$0pI(40k 49@oyfMg\Al1 FF43xL3< <&͆o iac%yΆ>rJFOfLf90Mh1@ɋ|  IcE9BNo8ÙeQΆmq 'N8 SԹ[)tļ2@n䅽FxI)ɨ!Ii|%|HDR)Hћl:A9AІ@ZJ B\htype~ ,`mmNUH720|&P~Cp$,KN$@ J gprAQA"M$v,JN+@JfN|"$N&`N+@ <rHA,KNT+@Jf,JN|"$N&`nr @1|!| m+A+A+HgR mHHHg@phfp+@`pnfp+@`(HH+@A"C$ ,JNF`zJgzJgSJjAn~+H`zA+m~+HJfd"m Y+H+I gPB"$-,JNJg*N|.ptЀf~+mAB"C$ NF`~Jf"m i"(,JN m+@"$<N+@-N|."-NJf m+HA"C$ NF` -g8Jf2"$<N+@JfN|.+mA"C$ NF`Z -g"N "- Ja.Jg "-,JN"-,JNBJf"-NJgN|.ptЀf~"-,JN` -g"A$,JNF`Jgm "t,JN& 0f~`~ -g",JN -g",JN"m,KNN"-,JN"J,KNb`0|"P ipz!@ LLN]Nudos.libraryFROM/A/M,TO/K,OPT/K,HEX/S,NUMBER/S$VER: type 37.2 (21.1.91) Option '%lc' ignored Type can't do both HEX and NUMBER 2 No files to type TYPE can't open %s 0123456789ABCDEF%04lx: %s %5ld %sNUH72.,&Hp*+@",KN+@Rg2JfJf p m,zN8A`\9fNuRaC  gfBA"$<A,zhN+@g"tvN"-tvN+@ g,r,xN:+@g"-$-&- ,z N mB0"-,z NJg(Aca maAXa"m - ,xN.Nu m"h. iX (g"|0) 2) i,zN,zNNuJxgNur < ,xN: @(@C0< QNAp0RB RԈJfR RԈ 0fC,xNhr&Ё @"PrA 3@H@2B97A!xNuH瀀AHpR(T( V(X( Q9L3 Nsgraphics.library"<,xx N(N:JfNu  gSNu zg" -ff ( gJ(f NupNu"$vRJf,z0NAC!IC!I,xN+@pN+@C#mx;|"m) fJ iCg>EL" C8#A #AE#Jr#AE| #@(NAN+m -N -Nu1mCLIMax v1.0 0m33mby RIFF RAFF of UNITED FORCES 0mUsage: CLIMax [options] Options... -f Fullsize, -b Borderless, -c Clear window, -a Add21k, -t Type text, -s CLI Stars -n No Fastmem, -w Wait for mouse d-'0 p pb`E (|x#0z9B-E+.VDEd.docpq_ _____. __________. __________. __ _____ / |_/ __ |_/ __ | \// / | || / || / | / / | || || | / /__ |____/|__________/|__________/ \___/ \/ ========================================== Name: C/VDEd Author: Devil/1oo% Type: CNet door Release: 02-Jul-98 Vers: 0.87 ...READ THIS FIRST! --. - - ----------------------------------------------------------------------' This is just another piece of software which took really long finishing it. I worked *many* hours to make this door what it is now, like I did with any other of my CNet doors. I'm kind of frustrated because I haven't received much feedback about my other projects until now. To be precise, I have not received one damn  single message. I don't know what's wrong with you guys out there, but please send me a message if you think this program is kind of useful, good, bad, whatever, just please write *something*. If I don't receive at least a single message, I'll probably stop developing CNet doors! ...introduction --. - - ----------------------------------------------------------------------' C/VDEd is the first (public?) editor for@ CNet's VDE (Visual Data Editor) Files. The idea for this nifty tool arose while I started programming my first huge CNet door, which should handle a large number of configuration possibilities. But reading/writing/parsing plain text configs came out to be not exactly what I wanted. Hence I decided to learn a little about CNet's VDE. After hours of testing (thanks to missing developer support for CNet!) and help from Fate I figured out how the elements of VDE work^# together. When I was about to create my own VDE mask I recognized that this is really a lot of hard hand-work. At that point, it was clear that I had to write an editor for VDE datafiles - you're about to see the result now: C/VDEd! ...credits --. - - ----------------------------------------------------------------------' * Tomato Kid > He came up with the really good suggestions for the design and theh user interface * Fate > He helped me with the special bits & pieces of the VDE datatype, especially the "ghosted" member. Even though I'm not sure if I really understood that! ;) * Neurodancer > For being the most charming asshole in the universe, and for constant resistance against mails from someone whom everybody hates. (hehe!) ...installation --. - - ----------------------------------------------------------------------' The archiv should, amongst various ads, at least contain these files: o "VDEd" - main program (CNetC) o "V2T" - small tool to convert VDE to Ascii o "VDEd.doc" - guess what... o "Systext/VDE/VDEd-item" - VDE Datafile o "Sources/AccED" - simple replacement for CNet's "EA" o "Sources/AccED.C" - sourcecode of "AccED", meant as demo o "Sources/DataBase" - little database with own VDE file o "Sources/DataBase.C" - sourcecode of "DataBase", meant as demo o "Sources/MyDataBase.vde" - VDE file for "DataBase" o "Sources/CNetFunctions.C" - all required CNet functions for the demo sourcecodes o "Sources/General.h" - general header file o "Sources/SCOPTIONS" - options file for SAS/C Copy the main program "VDEd" to any directory you wish (something like "PFiles:1oo/VDEd/"). Copy the datafile "VDEd H3D-item" to "Systext:VDE/". Load CNet's BBSMENU into an editor and add the following command to the END of the "1; Maintenance menu ..": VDEd |#2PFiles:1oo/VDEd/VDEd}| If you want to have a look at the sourcecodes, copy them anywhere you like and keep them, learn from them, laugh about them... :) ...usage --. - - ----------------------------------------------------------------------' Basics: o The cursor should  "ALWAYS be at the position of the item you want to change or create. o ALL options except "Preview" can be reached via CTRL-X (just like in CNet's VisEd you should be familiar with) The "Status-Line": File: screen: 0 item: 0 xpos/ypos 01/01 Shown is the file that is currently being edited, the actual "screen number" of the VDE file (you know, VDE masks may have multiple "screens"!) and the X/Y position of the cursor. The options t g6R hat can be reached via CTRL-X: o Save, Load, eXit Should be clear, eh? o New Removes all currently displayed items from memory and initializes a new VDE file with 3 standard items: "Save changes" (Exit Screen) "Exit without saving" (Exit Screen) "<< Exit" (Main Screen) o Jump2scr Jumps to the screen you specify in the current VDE list/file o Rename Renames item fields. This functions allows you to have leading spaces! o Edit Starts CNet's VDE (hehe) with   all data of the item under the cursor in order to allow you to change these o Add Appends a new item at the cursor position and starts VDE (like "Edit") to configure the data of the item. o deF. Items If the current screen is "empty" (no items created), this function will add the "standard" items to it, those being "<< Exit" and "<< Previous screen" o Copy Copies an item (really, ha-ha). Move the cursor to the item you want to copy, select the copy-function ( ;ݧCTRL-X C) and move the cursor to the position you want the item to be copied to. Press RETURN to stamp the item to the new location. o Move Works the same as copy, but moves the item under the cursor from one position to the other. o Delete Will remove the item under the cursor from the VDE list. It won't be really deleted, it's just not shown anymore. As soon as you add a NEW item, old "deleted" items will be overwritten. ҫ\ ...visual data --. - - ----------------------------------------------------------------------' Now some introducing words about the Visual Data Editor (VDE, did you guess that? good!) and the data format. VDE is an interface to view AND edit data in a more "graphical" way. Every CNet sysop will be familiar with the VDE concept. If you edit an account, create a new subboard, edit the group settings or whatever - each time you'll work with the VDE. o The VDE Kstructure: struct VDEentry { char text[ 48 ]; // 0 (Offset) short xpos, // 48 ypos; // 50 LONG min, // 52 max; // 56 short lenght, // 60 type; // 62 LONG offset; // 64 short screen0, // 68 screen2; // M ) 70 short goup, // 72 godown, // 74 goleft, // 76 goright; // 78 UWORD ghost; // 80 // --- // 82 bytes length }; o The elements of the VDEentry structure: * text (char [48]) The field name of the item * xpos, ypos (short) The ߞx/y ANSI coordinates of the item. x is the row, y is the column. "1/1" means: first line, first column * min, max (LONG) These variables have different meanings: - if the element "type" is numeric (BYTE, short, LONG etc.), those vars define the two extremes the item may have. If min=4 and max=10, only numbers between 4 and 10 may be entered. - if the element "type" is "ordered BBSTEXT list (UBYTE)", they describe the FIRST position $of a list from CNet's BBSTEXT (z -> bm[ x ]), and the NUMBER of lines on from the FIRST position the list will contain. Counting of BBSText lines starts from "0", so remember: if you want the first line in BBSTEXT to be the FIRST in the list, the min-value must be "0", because the first element in the C-List of the C-Pointer (z -> bm[ x ]) is always NULL and not ONE. * length (short) This variable also has different meanings:y0 - if "type" is "Text (char *)", "length" defines the length of the string, thus how many bytes the input structure will preserve for the "char entry". - otherwise, "length" defines the maximum *chars* of the item. - if "type" is "ULONG BIT 0/1", "length" describes which BIT will be changed (from right to left in the bit field) - if "type" is "UBYTE 0/1" length *must* be NULL! * type (short) This field may have the followiߋ6ng values: -1 - "UNDEFINED!" All items that don't have a "real" sense should be set to this type, plus items that jump to another VDE screens etc. 0 - "UBYTE 0/1" Logic NO/YES or FALSE/TRUE 1 - "ULONG BIT 0/1" Logic NO/YES or FALSE/TRUE, however, bits are cleared/set. The "length" entry defines with bit will be used. 2 - "Text (char *) Simple text input 3 - "BYTE numeric" 4 - "short numeric"  5 - "USHORT numeric" 6 - "LONG numeric" Numeric entries. Depending on the "type", 1, 2, 2 (unsigned!) or 4 bytes will be used. The "min" and "max" elements define the limits. 7 - "struct IsDate" A date with time, following the CNet format. Important: must point to an IsDate structure and NOT to the pointer to an IsDate structure! (Confused?) 8 - "Flags" Will clear/set the bits for access groups (o3tr whatever) in one LONG (32 bits). 9 - "ordered BBSTEXT list (UBYTE)" This is a "switch type" that will use lines from BBSTEXT for the entry. The elements "min" and "max" define the START of the list and its LENGTH (see above). 10 - "ordered BBSMENU list (UBYTE)" I'm not sure yet which elements hold information for this type, sorry. 11 - "char **" Unclear at present, too. Possibly this type is similar t|o the "ordered BBSTEXT list (UBYTE)", with the difference that a user defined string array will be used instead of lines from BBSTEXT. 12 - "UBYTE BIT 0/1" Works *exactly* like "ULONG BIT 0/1", except that only one byte (8 bits) will be used. * offset (LONG) Describes the offset (position) of the item in the input structure. * screen0 (short) Defines to which "screen" the item belongs =\=(0=the main screen) * screen2 (short) Defines to which "screen" the item will jump if it is activated, -10 means QUIT. o goup, godown, goleft, goright (short) Describes the logic "VDE Item" that follows the item if the cursor is moved up, down, left or right. However, "goup" has a second usage: if you set "goup" to -1, the item is used only for displaying of variables. VDE will lock the item, making it inaccessible via cursor or mouseq! ...history --. - - ----------------------------------------------------------------------' Changes/Fixes Date: v0.1 Haven't got the foggiest idea what I built in or removed ~27-Feb-97 -0.46 during that time/versions... but it definitely doesn't matter anymore. :) v0.47 The first running version, even with some options already 26-Feb-98 working. v0.Mb48 Added the "move" function, fixed some bugs in "add" 02-Mar-98 v0.5 Existing VDE items will be edited on own VDE screen 04-Mar-98 instead of a dull ANSI "window". v0.6 Added "rename" function since CNet's VDE strings leading 05-Mar-98 spaces from the string; some bugfixes. v0.61 Removed a nasty bug in the "edit" routine. Empty field 08-Mar-98 names are not allowed anymore; little fix in the display for cursor positions etc. v0.7ן Added the "delete" function, see above for details 17-Mar-98 v0.71 Removed a deadly bug from the "add" function 19-May-98 v0.72 Added "preview" and squashed many bugs! 20-May-98 -0.81 25-May-98 v0.82 The "type" member can now have the "UNDEFINED (-1)" 02-Jun-98 state. Fixed some little bugs in the "preview", "save" and "edit" functions. v0.83 Some cosmetical) changes and fixes. Added "deF. items" 03-Jun-98 -0.85 v0.86 Final fixes (mostly internal) and changes. 09-Jun-98 -0.87 Add some more info-texts. 02-Jul-98 _ ...how the hell can I contact this Devil? --. .--- - --\/-- - ----------------------------------------------------------' | (email) | (coco-net) | <7091602> _ (ICQ) `------ - - "http://p-lost.home.ml.org" - - -------------- --\/-- --- - - ...get in touch with 1oo% --. - - -----------------------------------------------------------------------' If you like and use this program, or if you have suggestions of what could be added or done better, send email, call us, just please don't keep y քour feedback a secret! It motivates like nothing else to hear it from YOU! Area BBS Hosted by Number(s) Modem ==== ================== ======================= =============== ============ AUS: Verbal Verbatim Veg +61-7-3396-4054 [v.34 ] ==== (telnet) ========= ============== ============ DEN: The 4th Dimension Daze +45-7592-7385 [v.34+] ==== ================== ======================= =============== ============ GER: Aurora Borealis Neurodancer +49-8621-64260 [v.34+/x.75] +49-8621-979551 [x.75 16k] (email) ==== ================== ======================= =============== ============ Dan's House Count Dan +49-34298-35720 [v.34] +49-34298-35729  I! [x.75] ==== ================== ======================= =============== ============ Digital Dungeons Fate +49-6192-910718 [v.34+] ==== (email) ========== ====== =============== ============ Paradise Lost Devil +49-9131-66661 [v.34+] ==== (email) ========== ============= ============ The Crypt Hellhound +49-6102-328626 [v.34 ] !O +49-6102-328726 [v.34+] ==== ================== ======================= +49-6102-733403 ==== [x.75 ] USA: Ill Communication Adolescent +1-310-329-2283 [v.34+] ==== (email) ========== ==== +1-310-329-2591 ==== [v.34+] Page URL ------------------------------- -------------------------------------------- 1oo% Homepage - files, info... http://1oo.home.ml.org C/Base - everything ",Yaround CNet http://cnetbbs.home.ml.org ------------------------------- -------------------------------------------- If you want to become a distribution site of 1oo% products in your country, please do contact us. We are hatching new files thru "Coconet" and can of course send files via email or our internal mailinglist to you. We are currently covering Ansi/Ascii, CNet, Tempest and term/bbs/comm related stuff. If you think you are doing nice doors for *your* preferre#]F1d BBS package and seem to have the same approach as we have, maybe you want to join us? Do NOT add our addresses to any mailing list without express written permission. Unsolicited commercial email will be proofread at our consulting rate of $75/hour, 4 hour minimum. b a r i n g a n y s e n s e /JR `E+. DataBase.cp^4/***************************************************************************** Database.c - sample database using VDE > copy "MyDataBase.vde" to "CNet:Systext/VDE/" bad demo source by Devil/1oo% Part of the C/VDEd distribution! *****************************************************************************/ #include "General.H" #include "CNetFunctions.C" #define MDBFILE "Ram:MyDataBase.mdb" #define VDEFILE # "MyDataBase.vde" struct MyDataBase { // OFFSET DESC char Handle[ 22 ]; // 0 user's handle char RealName[ 32 ]; // 22 user's real name char Phone[ 26 ]; // 54 user's phone# struct IsDate BirthDay; // 80 user's birthdate UBYTE Married; // 86 married? UBYTE Childs; // 87 number of childs UBYTE Gender; // 88 user's gender UBYT݅E dummy; // 89 LONG Flags; // 90 some flags LONG HighNum; // 94 a huge number >= 666 // ====== // 98 bytes length } mdb; int main( int argc, char **argv) { LONG fh, lock; /******** init stuff *****/ Forbid(); if( argc > 1) { cport = (struct CPort *)FindPort( argv[ 1 ]); } Permit(); if( argc < 2 || !(cport)) { printf( "This a CNetC program!\n"); return( 20); } if( !(replyp = CreatePort( NULL, NULL))) { printf( "Couldn't create replyport!\n"); return( 20); } cmess.cn_Message.mn_ReplyPort = replyp; cmess.cn_Message.mn_Length = sizeof( struct CMessage); cmess.cn_Message.mn_Node.ln_Name = "cstuff"; if( cport -> ack == 30) { cport -> ack = FALSE; z = cport -> zW9.p; myp = cport -> myp; if( !(CNetBase = OpenLibrary( "cnet.library", NULL))) { printf( "Couldn't open library!\n"); return( 20); } } else { return( 20); } /**** main code *******/ PutText( "Loading database from file... "); /* check for existing file - otherwise fill in some stuff */ if( lock = Lock( MDBFILE, ACCESS_READ)) { fh = OpenFromLock( lock); Read( fh, &mdb, sizeof( strnjuct MyDataBase)); Close( fh); PutText( "done!\n"); } else { strcpy( mdb.Handle, "Devil"); strcpy( mdb.RealName, "Chris ..."); strcpy( mdb.Phone, "+49-9131-66661"); mdb.BirthDay.Year = 78; mdb.BirthDay.Month = 3; mdb.BirthDay.Date = 11; mdb.BirthDay.Hour = 12; mdb.BirthDay.Minute = 47; mdb.BirthDay.Second = 24; mdb.Married = FALSE; mdb.Gender = 1; mdb.!Flags = 0xFFFFFFFF; mdb.HighNum = 666; PutText( "failed - using defaults!\n"); } PutText( "\nPress any key: g0"); /* now edit the "database" */ VisualDataEditor( VDEFILE, &mdb, sizeof( struct MyDataBase)); /* save the data */ fh = Open( MDBFILE, MODE_NEWFILE); Write( fh, &mdb, sizeof( struct MyDataBase)); Close( fh); /**** clean up *******/ ShutDown( NULL); DeletePort( replyp); CloseLibrary( (struct Library *)CNetBcase); } y 5E+.AccED.CpXg/***************************************************************************** AccED.c - simple replacement for CNet's "Edit Account" Command! bad demo source by Devil/1oo% Part of the C/VDEd distribution! *****************************************************************************/ #include "General.H" #include "CNetFunctions.C" int main( int argc, char **argv) { short accnr; /******** init stuff *****/ Forb id(); if( argc > 1) { cport = (struct CPort *)FindPort( argv[ 1 ]); } Permit(); if( argc < 2 || !(cport)) { printf( "This a CNetC program!\n"); return( 20); } if( !(replyp = CreatePort( NULL, NULL))) { printf( "Couldn't create replyport!\n"); return( 20); } cmess.cn_Message.mn_ReplyPort = replyp; cmess.cn_Message.mn_Length = sizeof( struct CMessage); cmess.cn_Message.mn_Node.ln_Name = "cstuff"; ibzf( cport -> ack == 30) { cport -> ack = FALSE; z = cport -> zp; myp = cport -> myp; if( !(CNetBase = OpenLibrary( "cnet.library", NULL))) { printf( "Couldn't open library!\n"); return( 20); } } else { return( 20); } /**** main code *******/ if( EnterLine( 21, 8+16+128+512, "Enter handle: ")) { accnr = FindAccount( z -> InBuffer, &z -> user2); if( accnr != }fH~NULL) { /* ok, we got an account. Call VDE! */ VisualDataEditor( "udata", &z -> user2, sizeof( struct UserData)); /* ^^ CNet's VDE file for "struct UserData" */ } } /**** clean up *******/ ShutDown( NULL); DeletePort( replyp); CloseLibrary( (struct Library *)CNetBase); } XE+. SCOPTIONSpGST=Include:< !! your global symbol table !! > GSTIMM LINK NOMULTIPLEINCLUDES SAVEDS UTILITYLIBRARY PARAMETERS=REGISTERS NOSTACKCHECK COMMENTNEST MEMSIZE=HUGE SMALLCODE SMALLDATA STRIPDEBUG NOICONS ƸeE+.MyDataBase.vdepSave changes  Exit without saving  << Exit   Handle : Realname ::  Phone # :6† 8 Birthday : P  Married : V  Number of childs::. W  Gender : u X Some flags : : Z High Number :. ^ 1xtE+.DataBasep4MMH~$H$I,xGr <X`&Q)O|)N&n +g @ (4` :")Ax`dT ,`)@"<N:Jg)@)@xЬ`" n$m)@)AA N$`.@)O)OA x n$mN$Bp"<0N&nCpN)@fpd`)kJg~ k"h r)IЁ^@)@H@@"<N:LJfp/g: @)@ Sԁ SQ S"  Q"/`JA\NA\N)@/$@ *$g,l @"(N)@"N l/Hl : h$)hNJf N@p` /$l|%)lx,xY n$m AN$`.l ,g @NN,x n$mJg AYN$.J ,g "l,xN.Jg ,l",gN,xN|"lN`,x ,g"lN."lNb L~Nudos.libraryH *HI g l&"MfpaL0NuH .IG lC,xN lN lNLPNuH *HI)MpaL0Nu/ I l ha(_NuH ,.*HIp)@)F)Mpav l"HJfS L0NuH&I*HI)M)Kpa@ ,L8NuH.&I*HI)M)Kͨwu)Gp(a ,L8NuH7.*HI,xN|po "mNz)@NvpmJfHlaXOp`pa)@fHlaXOp`n)@9|,A4)H l(,rf:B(, l)h()h$CB8+B:*E؅XXJjjD7Dk*43HBB7Hש&)4n f:Jg4 , @f )i` hf!i ),xN.LLfpNuH>2V n4n&,g"Cn2", f(EJRkB8*D匰oB8*kEH`&)gf"C`GBg<,Yf `0JjjF*7F7E5EzJFk42HBB5H&)#C XLL|Nu*4j ,4(",,xN:Jf )| `"@E#l)I#D#l &g(Yg$#CGX5|5E7EC7C`B5|D5D XLL|Nu /H.*l` mN*U f L `dNq / oYOH.|GrAҁ*H­f p`Zr3­UgbrLF­p@ЀfB m+H F 5`>-gp`rnF­pnFfB m+H` r+A ` - l: mR R -gr f Ma,Jg `r `-g.B -rAa,Rf`r Sgl`dJf MaJg p`Xp+@ +m - m MaL, mR R -gr f Ma ,Jg `r L XONuNq oH*H gpAЀf, mC"BB- p"-g`JgD - jr+A - g("-A ma~"Rf` g+mB p0f-gpp`&p`"*l LI~`Jg MaDJg~*U f L NuNq4H16C,xp*HN&@Jf ,KN.`A"$<,KN.JgnA/ CG",x$HAN&_A"HJfS$,K& "N MJfS&"$ NAp"$vNJgrdҁN:"N"K,xNbNrz @!ALl4Nudos.libraryCan't open version %ld of Nu Nq/C* ,,xN)@)@f Aap @p,_Nuutility.library/ ,g"@,xNb)H)H,_NuNq //.gXrgmPrznAr0 `>r6Fm4r FnA>r0 ` /m 1lAr0 և$  @p.NuNqH 6A4)H)HAV)HA)HA)HBA)HlBBB)|)|)|,lNJfBJg lJ g"( $<N)@`A"HJfS$ p/" A߰0f"KlJg "l i$*h MJfSԈ l h$eA"HJfSԉ RaD&@Jfp` KCab$@ g J"MaT$@ l h$e JCa<" $<,lN)@ KaJfA"N)@ӓ ,,x$@N @!jA"$<,lN)@f@A"N)@`0N)@N)@Ap"$<N)@fAT"N)@V ŕhpJpf <BP"A)ALr)Ar@B)@nr)A)@pLlNuOutputNIL:*Nqz< This a CNetC program! Couldn't create replyport! cstuffcnet.libraryCouldn't open library! Loading database from file... Ram:MyDataBase.mdbdone! DevilChris ...+49-9131-66661failed - using defaults! Press any key: g0MyDataBase.vdeRam:MyDataBase.mdbp |Vn  x  /auto/close/waitcon:10/10/320/80/   Vx ,($ V4\bE+. General.hpm/* --- CNet's globals --- */ struct CPort *cport; struct MsgPort *replyp; struct CMessage cmess; struct PortData *z; struct MainPort *myp; struct Library *CNetBase; LONG i; ۪&p 5E+.CNetFunctions.cpVsvoid ShutDown( char *spawn ) { /* spawn = full path/file to run */ if( spawn ) strcpy( z->CSpawn, spawn ); CallHost( 0 ); } void CallHost( UBYTE c ) { cmess.command = c; PutMsg ( (struct MsgPort *)cport, (struct Message *)&cmess ); WaitPort( replyp ); GetMsg ( replyp ); } void PutText( char *text ) { cmess.arg1 = (ULONG)text; /* text to print */ CallHost( 1 ); } void PutA( void ) { PutText( z->ABuffer ); } /*********************************************************ݴѦ***************** * ENTERLINE FLAGS: * * 1: All capitalized * * 2: FILENAME. Don't allow =":; or asterisk * * 4: Begin with existing z.InBuffer * * 8: Chop leading spaces * * 16: Force 1st letter of word caps * * 32: ForPce all others lower case * * 64: Numeric input only * * 128: Print input box (.) * * 256: DO allow MCI * * 512: HANDLES/SPECIAL. Don't allow ^_`{|}~@ * * 1024: Exit for . or / at beginning of line * * 2048: Exit for backspace at beginning of xline * * 4096: Do not allow OLM's to appear while editing * * 8192: Allow Chat break in at this prompt. COMMAND PROMPT. * * 16384: Don't allow SPACE, either * * 32768: DON'T ALLOW MOVEMENT * * 65536: Don't allow forward slash * **************************************************************************/ i<%nt EnterLine( UBYTE len, ULONG flags, char *prompt ) { cmess.arg1 = (ULONG)len; /* how many chars max to input */ cmess.arg2 = (ULONG)flags; /* 1=UpperCase */ cmess.arg3 = (ULONG)prompt; /* text to print before input */ CallHost( 2 ); /* result is in z->InBuffer */ return( (int)strlen( z->InBuffer )); } short FindAccount( char *a, struct UserData *b ) { cmess.arg1 = (ULONG)a; cmess.arg2 = (ULONG)b; CallHost( 20 ); return( (short)cmess.result ); } short VisualDataEdito`Rfr( char *file, void *data, long size ) { cmess.arg1 = (ULONG)file; cmess.arg2 = (ULONG)data; cmess.arg3 = (ULONG)size; CallHost( 40 ); return( (short)cmess.result ); } TE+.v2tp H>I0|)P"l iJfp`$C0Hr2(P4(0H6(2H8(%s is on work...z4c7 Sc6ave c7Lc6oad ec7Xc6it c7Nc6ew c7Jc6ump2scr - c7Rc6ename c7Ec6dit c7Ac6dd (dec7Fc6. items) c7Cc6opy c7Mc6ove c7Dc6elete? q1q1Enter #׉ӯ of screen: c6Jumped to screen #%ld.Item #%04ldVDEd-itemItem#%04ld added.Editing item#%04ld... done.q1Enter new name: c6Item#%04ld renamed.Removed item#%04ld.Move the cursor to the desired position and hit [return]Copied to item#%04ld. Move cursor to desired position and hit [return].q1Enter filename c2[return=current]q1: c6CNet:Systext/VDE/%sq1%s already exists. Overwrite itSaving aborted!%04ld items written to "%s".Z*Couldn't open "%s" for output!q1Enter filename: c6*Can't access/open file!"%s" loaded. (%ld items)Save changes Exit without saving << Exit Added default items for new file.<< Previous screen Added default items.You may no add the default items to the main screen!Item#%04ld moved.Preparing preview...Systext:VDE/VDEd_%ld.tmp*Couldn't calculate memory block!*Couldn't open tempfile!VDEd_%ld.tmp*Not enough memory![%ld;1Hq13[K[%ld;%ldHz4c7%sq1 z3c4 q1c4-c7q1%-79sH:A$H o&oIC,xNL\Nu/ I)Htpa(_NuH I@ lXC`,xN lnN lnNLPNu/ I"H l&fpa(_Nu/ I)Htpa(_NuH:IA$H o&lC,xN laL\Nu/ Ipa^ ,(_NuH .IKtp***pa6 l"HJfS L0NuHI o)ot)Hx)o|Br"l iCK #C!qR*X mp(aBGK " "l i![R* m ,L8Nu/ IHzLHzap.//,HzZaaO(_Nu/ Ia l(nHH(oHH///(dHzla"l i. H/( DHzav l(oHHT(nHH./Hz|aTO (_Nu/ SIf"l i/(Hz`a,`"l i/(HzbaPOr1 l(2WDH(_NuYOH?>I"lAL~|faHzHzBaPO` Nap l(g Darf .SFfaA|aarXf~pJf:AprHa la l1@lav l0(lH/HzaPOpAf*a P)@o l!@d`0*l`/&P"-h+Ad"-h*lpRrHA,xNT* lRh l"(d"l l/)hHzD/0a: l (d""l,q(nH=A0(oH=A2Bn>2(lKD::l::::"lRf l"(d"l#A"(d l PpR,xNHx/,Hza l"(d l/HD"oD"Q lpRNaD l.dHzahOpEfa nJg lR"lf l"(d"l#A"(d l PpR,xNHx/,Hz0aD l"(d lO /H,"o,"Q lpRN l (d" l"p2)>tB^DHHtB]DHHgBi>ar l/(dHza POpRfla t Jgd"l")d"l l,qfp.rBҁAaZJg l"(d l"l,pfa l/(dHza $POpDfa ,Jg l"(d l,pCf&l"+d*l,u=|dDB@"+d,u=|>B` ,"+dg$U2*H lH$(df"l,q(5nHH0*J lH"(df "l,q5nJJ0*L lH"(df "l,q5nLL0*N lH"(df l"p5iNNRX ,hmTa l/(dHza POpMfa Jg Hz|a XOpCfpa Jgh l"(h*lpRrHA,xNT* l"(d"l"( h,lpR Q"v,xN l (h!@dRh|/Hz^a pPOpSf>Axp#"<P aT)@ro lHhHz/,aHO ",t,lN)@g*"N/,HzapatPOJf Hza XOxSf",$<N)@gB`L", l*pp m>f;|>",$ vR,lN", l"pri>f3| >R , lhm",,lN/, l/(hHza VO `&/,Hza DPO` lCRfJffpLfbAp#"<P a)@roF lBhl"lHiHz\/aO ",t,lN)@fHza XOA"lf` Q"N)@"$,Nz l (hS)@`", l"p,xNNS ,j l (|rR lNd"l#@hB`X",*lpRrHA,xNT*", l",$vR,lN", l"pri>f3| >R , lhm",,lN lBhla l/(h/HzaO pNf" l (hS)@`", l"p,xNNS ,jB",*lpRrHA,xNT*R m,l"VAf l"Pp3@03|2r3A>3| D3AF3@NC,hf l"h3|03|23A>KD: :::3@NCd,hf"l i1@01| 2!21A>MF=hlDKH::::a)@o. l!@d l*pBM V B5R Re`0*l"-h+Ad"-h*lpRrHA,xNT* lRh l"(d"l/I, o,"PMf l (d""l,q=|0=|2=|>=hlDKF:::::aHza`HzaXO l f0(lH/(p//HzaaO`pfaarAf lS(of p l@opBf lR(op l(of r lAopCf> lR(npP l(nf*R(op l@nr(ofr lAotO lBnpDf6 lS(nf,M VS(o V|On ^J(ofp l@o l@np@f* l"(d$(n"lH,q(=A0(oH=A2`SFfa l/(dHzaPO|pgpfHza l0(H.Hz/,aO ",$<,lN)@gB`L", l*pp m>f;|>",$ vR,lN", l"pri>f3| >R , lhm",,lNaJg a,a`Hz,a`HzDaXO S@gL|XONuH I l (tPrHA,xNT)@gb l0(H/Hz/,a l.t/,/,a l0(H.Hz/,abO",,lN"l,xNN` Hza(XOLPNuH4,I"lBtBxB*l`8",$urdjDg" j>g"*@ lto !At ,!@xR ,hm l (tnp`p"l )x"l q6(>tBWDHHrAWDHHŊg4UCf0(f l\t` lXtpL4,NuH(IB l"l`$$Ppdj-DfJ@f j>f ,`RX ,hmpLNuH! IB` ," l*p0-D lhlfj(oHH2-2HfX0-0H(nH MH\DHH.JfS0-0H" lЁ(nHHUDHH΂g , l!@dp`R , lhmfpL0NuH9 It/HzaRpPOoB`", l*p g2-2tBW lDHHvCWDHH8-DhlWDHHÆg|HT0-0H/ //Hzraf ," l"p2)>t BWODHHSAWDHHg AVa`(~` ALa R ," l"p0)UY-Position :(2Maximum Value : 8 Minimum Value :( gi4 Structure Offset : @ Byte Length ::( < Item Type :# ?M Screen0 : D  Screen2 :( F  Go UP Item# : H Go DOWN Item# :( J Go LEFT Item# : LGo RIGHT Item# :( NwS~Ghosted? :PItem# :: C/VDEd written by Devil/1oo% . EE+. Chaos.nfopc 1oo% GHQ - Phase^D dist. site .... . . .... ....................... . ____ :.::::::::::::::::::::::::: ___________ _______________ _____________/ |_____ _____ _______________ _\ __ / _ _ / _ _ | / __/_____ _ / | /____/ _ /_____/ _ / | \__ \ /_____/_ |______|______|________| ______|_______________|_______________ /__________/ <-----------------/-----. . . .. .................... - ----------' . . .:..:.::::::: ____ ::::: - -- -------. _______ ___________ _____ _| |______ .----------------' _\ /____/ _ / __/______\_ _ / `-------. | / | \__ \ /____/. .-----------' mrc|___________________________________/_______| ..: `---------------------------------u/h----------------> . .. . .........::: host: Devil/1oo% number: +49.9131.66661 [v34+] . :.. .. ::.:::::: 7  E+.1ooVDE08.readmep+mShort: 1oo% C/VDEd - editor for VDE files + "SDK" Author: devil@p-lost.franken.de (Devil/1oo%) Uploader: devil@p-lost.franken.de (Devil/1oo%) Type: comm/cnet Requires: CNet/4.x _____. __________. __________. __ _____ / |_/ __ |_/ __ | \// / | || / || / | / / | || || | / /__ |____/|__________/|__________/ \___/ \/ >U ========================================== Name: C/VDEd Author: Devil/1oo% Type: CNet door Release: 02-Jul-98 Vers: 0.87 ...READ THIS FIRST! --. - - ----------------------------------------------------------------------' This is just another piece of software which took really long finishing it. I worked *many* hours to make this door what it is now, like" I did with any other of my CNet doors. I'm kind of frustrated because I haven't received much feedback about my other projects until now. To be precise, I have not received one damn single message. I don't know what's wrong with you guys out there, but please send me a message if you think this program is kind of useful, good, bad, whatever, just please write *something*. If I don't receive at least a single message, I'll probably stop developing CNet doors! W ...introduction --. - - ----------------------------------------------------------------------' C/VDEd is the first (public?) editor for CNet's VDE (Visual Data Editor) Files. The idea for this nifty tool arose while I started programming my first huge CNet door, which should handle a large number of configuration possibilities. But reading/writing/parsing plain text configs came out to be not exactly what I wanted. Hen ;4Bce I decided to learn a little about CNet's VDE. After hours of testing (thanks to missing developer support for CNet!) and help from Fate I figured out how the elements of VDE work together. When I was about to create my own VDE mask I recognized that this is really a lot of hard hand-work. At that point, it was clear that I had to write an editor for VDE datafiles - you're about to see the result now: C/VDEd! b a r i n g a n y s e n s e D   `a E+. file_id.dizp ~?f- 1oo% C/VDEd v0.87 (02-Jul-98) by Devil - The first (public?) editor for CNet's VDE files. Very _comfortable_ and easy to use. Including some _C_ demosources and detailed documentation about barely everything you need to know about VDE. (CNet/3+)