1 INFO-VAX	Sat, 26 Jul 2003	Volume 2003 : Issue 410       Contents:G Re: Does RT-11 run on the PDP-11/70?  (was Re: PDP-11 OS Release Dates) F Re: Does RT-11 run on the PDP-11/70? (was Re: PDP-11 OS Release Dates)# Re: Elevate privileges in a program # Re: Elevate privileges in a program # Re: Elevate privileges in a program # Re: Elevate privileges in a program # Re: Elevate privileges in a program # Re: Elevate privileges in a program # Re: Elevate privileges in a program P Re: Intel's had Dirty Bombs Anthrax and everything! (Was: Re: HP World: Why AlphP Re: Intel's had Dirty Bombs Anthrax and everything! (Was: Re: HP World: Why AlphP Re: Intel's had Dirty Bombs Anthrax and everything! (Was: Re: HP World: Why Alph2 Re: Migrate obsolete VAX/VMS SW to OpenVMS Itanium  Re: NEWBIE: DECWindows Bit Depth# NH1 =?Big5?B?ue+n3KSjtLqu8A==?= NH1 " Re: Packed decimal arithmetic in C" Re: Packed decimal arithmetic in C" Re: Packed decimal arithmetic in C" Re: Packed decimal arithmetic in C" RE: Packed decimal arithmetic in C" Re: Packed decimal arithmetic in C" Re: Packed decimal arithmetic in C" Re: Packed decimal arithmetic in C" RE: Packed decimal arithmetic in C" Re: Packed decimal arithmetic in C" Re: Packed decimal arithmetic in C" Re: Packed decimal arithmetic in C" Re: Packed decimal arithmetic in C" Re: Packed decimal arithmetic in C" RE: Packed decimal arithmetic in C" RE: Packed decimal arithmetic in C+ Problem sending SMTP mail:  SMTP_NOSUCHUSER / Re: Problem sending SMTP mail:  SMTP_NOSUCHUSER  Re: Sun and SCO # Re: Sun Micro Profit, Revenues Fall   F ----------------------------------------------------------------------  % Date: Sat, 26 Jul 2003 11:09:27 +0200 A From: Christian Corti <Christian.Corti@studserv.uni-stuttgart.de> P Subject: Re: Does RT-11 run on the PDP-11/70?  (was Re: PDP-11 OS Release Dates)* Message-ID: <7ggtfb.chi.ln@news.online.de>    paramucho <ian@hammo.com> wrote:& > LIGH$t in RMONFB.MAC does the trick:  E It works! Thank you! Defining LIGH$T in SYSGEN.CND and rebuilding the  monitor is all I had to do. G The next step would be porting MUSIC.PA from the PDP-8 to the PDP-11...   	 Christian    ------------------------------   Date: 26 Jul 2003 08:20:25 GMT( From: stanb45@dial.pipex.com (Stan Barr)O Subject: Re: Does RT-11 run on the PDP-11/70? (was Re: PDP-11 OS Release Dates) = Message-ID: <slrnbi4e7s.lr4.stanb45@citadel.metropolis.local>   N On 26 Jul 2003 04:25:25 GMT, Zane H. Healy <healyzh@shell1.aracnet.com> wrote:0 >In comp.os.rsts Megan <mbg@theworld.com> wrote:# >> 	. . . . o o o o o o o o o o . . # >> 	. . . . . o o o o o o o o o o . # >> 	. . . . . . o o o o o o o o o o # >> 	. . . . . . . o o o o o o o o o  > @ >> (I hope you get the idea, my fingers are getting tired... :-) > M >Unfortunatly I get the idea....  You do realize that you're making me want a K >Unibus PDP-11 with a real front panel even more than I already did, right?   H You can always do what I did, get an old 486/Pentium, download Ersatz-11C and make up a display and driver board as detailed in the manual...    --   Cheers, 3 Stan Barr     stanb .at. dial .dot. pipex .dot. com 7 (Remove any digits from the addresses when mailing me.)    The future was never like this!    ------------------------------  + Date: Sat, 26 Jul 2003 09:17:30 +0000 (UTC) 3 From: "Richard Maher" <maher_rj@hotspamnotmail.com> , Subject: Re: Elevate privileges in a program0 Message-ID: <bftgv8$j8q$1@sparta.btinternet.com>   Hi Mark,  H UWSSs are definitely the right way to go. (Exactly why Hoff continues toH persue his Nanny-State/Ferenheit-451 agenda of banning people from usingJ UWSSs and in particular the MACRO compiler is beyond me! Certainly doesn'tF bode well for how these facilities will be implemented on Itanium :-()  K Simply drop the /PROTECT and /NOSYSSHR qualifiers on your $LINK and you now > have the ability to call whatever RTL you like. I believe it'sH SECURESHRP.EXE if you want $GETUAI. That's the easy part. You are now atK your most vulnerable!!! It is up to you to protect your working-storage and ? I/O channels and everything else from outer-mode corruption and A exploitation. (See the COLLECT and PROTECT linker options bellow)   E So now you've made sure that your memory is protected from a dodgy or G mallicious user-mode pointers and all *your* channels are $ASSIGNed and K $QIOed at EXEC mode but how can you vouch for $getuai or other RTL routine? I How can you trust them to do the right thing? What if a hacker is writing H $QIOs to a random channel selector seeing if he gets a result 'cos PRIVsL were used to access SYSUAF but the channel was mistakenly open in USER mode?. What if *they* forget to protect their memory?  L All wonderful questions which undoubtedly can be answered by the VMS and RdbK engineering people who do this every day. (Please run an analyze/image over F a couple of privileged shareables (eg: RDB$COSIP) and see *all* of theK plethora of other RTLs that these images are linked against. So don't do as H they do just do as they say? I don't think so. *SOME OF THESE LAND MINESH EVEN CALL OUT to CRTL!!!* Let's all pray that it's not from inner-mode!)  J Anyway please search through the COV archives (search for blade guard) forI other fruitless discussions on this subject. I have asked for guidence on K dropping /PROTECT (but still being secure) hundreds of bloody times without I any joy. I even dragged myself across North London to a "Hints and Kinks" H session that supposed to discuss this stuff but the room was packed withJ System Managers and not Developers and tha air-conditioning was off so you know what a hoot that was :-)   K I'm also about to post another UWSS example that let's an unprivileged user , wait until a file is created in a directory!  L (Did you know that any user can do a $dir/fid on any file. I thought tellingL you whether or not a file exists (if you don't have priv) was wrong? See, myH RTL with tell you the filename that I'm waiting for but if (when it getsK created) you don't have priv to see it then your AST will fire and give you H SS$_NOPRIV in the IOSB. But that sought of defeats the purpose don't you think?)    Regards Richard Maher      $ on warning then exitH $ if .not. f$privilege("cmkrnl,sysprv,pfnmap,bypass")  then goto no_priv9 $ if f$getsyi("arch_name") .nes. "Alpha" then goto no_vax  $! $ create maher$share.mar ;++  ; 4 ; (c) Copyright Tier3 Software. All rights reserved. ; @ ;     Ownership of this software and all associated intellectual@ ;     property rights remain vested in Tier3 Software Ltd.  This@ ;     software  or any other copies thereof  may not be provided6 ;     or otherwise made available to any other person. ; * ;     Do not remove this copyright notice. ;  ;     Author: Richard Maher  ;  ;-- =         .macro define_service,name,narg=0,mode=exec,?endmacro   3         'mode'_routine_count='mode'_routine_count+1   0         .call_entry     max_args=narg,         -0                         home_args=true,        -"                         label=name  "         .save_psect    local_block           .psect  'mode'_list            .address        name           .restore_psect           .if not_equal narg            cmpb    (ap),#narg           bgeq    endmacro            movzwl  #ss$_insfarg,r0          ret  	 endmacro:   
         .endc 
         .endm   ?         .title  maher$share - Demo User Written System Services          .ident  "V2.0"  &         .library "sys$library:lib.mlb"           $plvdef          $prvdef          $psldef          $dscdef          $ssdef         $uaidef   
 usrnam_max=12 
 out_len=94 enable=1	 disable=0    kernel_routine_count=0 exec_routine_count=0  C         .psect  exec_list,pic,con,rel,lcl,noshr,noexe,rd,nowrt,long  exec_table:   E         .psect  kernel_list,pic,con,rel,lcl,noshr,noexe,rd,nowrt,long 
 kernel_table:   
         .page C         .psect  _maher$data,pic,con,rel,lcl,noshr,noexe,rd,wrt,quad    uai_ctx:         .long   0    uai_lst:         .word   32, uai$_defdev          .address -                 def_dev          .long   0            .word   64, uai$_defdir          .address -                 def_dir          .long   0            .long   0    def_dev:         .blkb   32 def_dir:         .blkb   64 fao_ctl:         .ascid  "!AC!AC" out_dsc:         .long   out_len  out_adr:         .blkl   1            .align  quad sys_prv:D         .quad   <prv$m_sysprv!prv$m_audit>      ; Just to test HO-LW del_prv:         .quad   0  old_prv:         .blkq   1    persona_id:          .long   0 	 byte_cnt:          .long   10 vm_addr:         .blkl   1  msg_vec:         .long   1          .long   ss$_abort   F         .psect  _maher$scratch,pic,con,rel,lcl,noshr,noexe,rd,wrt,quad   scratch_lw:          .long   0   A         .psect  _maher$code,pic,con,rel,lcl,shr,exe,rd,nowrt,quad   "         .sbttl  Get directory info  +         define_service maher$get_user_dir,3   H          ifnord  #8,@4(ap),99$                  ; Can descriptor be readB          movzwl  @4(ap),r8                      ; Get username lenF          bnequ   10$                            ; Check length <> zero!          movzwl  #ss$_badparam,r0           ret  D 10$:     cmpw    #usrnam_max,r8                 ; Check length <= 12          bgequ   20$!          movzwl  #ss$_badparam,r0           ret  G 20$:     addl3   #dsc$a_pointer,4(ap),r7        ; Get -> to username -> F          ifnord  r8,(r7),99$                    ; R access to username stringI          ifnowrt #out_len,@8(ap),99$            ; W access to output buff H          ifnowrt #2,@12(ap),99$                 ; W access to output len          brb     100$   K 99$:     movzwl  #ss$_accvio,r0                 ; Indicate access violation           ret   100$:    $setprv_s -!                  enbflg=#enable,- !                  prvadr=sys_prv,-                   prvprv=old_prv             $getuai_s -!                  contxt=uai_ctx,-                    usrnam=@4(ap),-                  itmlst=uai_lst           blbc    r0, 999$   2          $persona_create_s -                    ;\3                  persona=scratch_lw,-           ; \ 4                  usrnam=@4(ap)                  ;  |4          blbc    r0, 999$                       ;  |B          movl    scratch_lw,persona_id          ;  > Just a coupleC                                                 ;  > of dodgy tests 4          pushl   #0                             ;  |4          pushal  vm_addr                        ;  |3          pushal  byte_cnt                       ; / 2          calls   #3,g^lib$get_vm                ;/          blbc    r0, 999$   H          movl    8(ap),out_adr                  ; Set descriptor address!          $fao_s  ctrstr=fao_ctl,- !                  outlen=@12(ap),- !                  outbuf=out_dsc,-                   p1=#def_dev,-                  p2=#def_dir   999$:    movl    r0,r5          evax_bic - G                  sys_prv,old_prv,del_prv        ; Turn off privs before  exit!           $setprv_s -"                  enbflg=#disable,-                  prvadr=del_prv           movl    r5,r0          ret    I exec_rundown:   .jsb_entry                      ; Entry point for rundown 9                                                 ; handler   J         $putmsg_s -                             ; sys$examples:uwss.c says no? E                 msgvec=msg_vec                  ; but Exec mode is ok            rsb     
         .PAGE )         .SBTTL  Privileged Library Vector    ;+K ; Any psect with the VEC attribute will be automatically moved to the start  ; of the image.  ;-6         .psect  dickie$services,page,vec,pic,nowrt,exe  G         .long    plv$c_typ_cmod          ; Set type of vector to change :                                          ; mode dispatcher3         .long    0                       ; Reserved G         .long    kernel_routine_count    ; # of Kernel    mode routines G         .long    exec_routine_count      ; # of Executive mode routines >         .address kernel_table            ; Kernel routine list<         .address exec_table              ; Exec routine listA         .long    0                       ; Kernel rundown handler A         .address exec_rundown            ; Exec   rundown handler 9         .long    0                       ; RMS Dispatcher ?         .long    0                       ; Kernel routine flags ?         .long    0                       ; Exec   routine flags            .end   $!$ $ macro/list/enable=quad maher$share $! $ link  /share=maher$share -         /sysexe -          /map -         /cross -         /full -          /notrace -         /section_binding -         maher$share, -         sys$input:/options   gsmatch=lequal,2,0  . symbol_vector = (maher$get_user_dir=procedure)  
 protect=no collect=scratch,_maher$scratch   protect=yes  collect=safe,_maher$data   $!- $copy/log maher$share.exe sys$common:[syslib]  $!: $if f$file_attributes("sys$share:maher$share.exe","KNOWN") $then 2 $       installx replace sys$share:maher$share.exe $else 0 $       installx add sys$share:maher$share.exe -2                 /open/header/share=address/protect $!C $! If you have your GH_RSRVPGCNT SYSGEN parameter geared up for it, 2 $! you can install maher$share as /RESIDENT as in: $!. $!      installx add sys$share:maher$share.exe4 $!              /open/share=address/protect/resident $endif $!- $! Need SYSPRV to link against these services  $!4 $set file/protection=(w:e) sys$share:maher$share.exe  $purge sys$share:maher$share.exe $! $create maher$user.cob identification division.1 program-id.    ef_get_user_dir with ident "V2.0".  *  data division. working-storage section.J 01  ss$_normal          pic 9(9)        comp    value external ss$_normal.H 01  rms$_rnf            pic 9(9)        comp    value external rms$_rnf.- 01  sys_status          pic 9(9)        comp.  *  linkage section. * ! 01  username_desc       pic x(8).  *  01  out_dir.-     03  out_dir_len     pic 9(4)        comp. "     03  out_dir_text    pic x(94). *  procedure division         using   out_dir,                 username_desc. 00.       move spaces to out_dir_text.     move zeroes to out_dir_len.        call "maher$get_user_dir" 8         using   username_desc, out_dir_text, out_dir_len         giving  sys_status.      if sys_status = rms$_rnf"         move "NL:" to out_dir_text         move 3 to out_dir_len      else&         if sys_status not = ss$_normal6             call "lib$stop" using by value sys_status.       exit program.  *  end program ef_get_user_dir. $! $cobol/lis maher$user.cob 7 $link/share=maher$user.exe maher$user.obj,sys$input/opt    sys$library:maher$share/share   ) symbol_vector=(ef_get_user_dir=procedure)    gsmatch=lequal,2,0 $!3 $define/nolog maher$user 'f$parse("maher$user.exe")  $sql:==$sql$ $sql attach 'file mf_personnel';    drop function ef_get_user_dir;  < create  function ef_get_user_dir (in char(32) by descriptor)(         returns varchar(94) by reference         language sql ; %         external name ef_get_user_dir ?         location 'maher$user' with all logical_name translation          language cobol'         general parameter style variant ?         comment is 'Get UAF device and directory info for user'          BIND ON CLIENT SITE          bind scope connect ;  commit;  exit;  $exit  $!	 $no_priv:  $       write sys$output -H         "Insufficient privilege. You need (CMKRNL,SYSPRV,PFNMAP,BYPASS)" $       exit 44  $no_vax:8 $       write sys$output "This code only works on alpha" $       exit 44   3 Mark Hemker <hemker@insightbb.com> wrote in message 2 news:5752ivskpr05bvsve4iikpnvscjlggbaee@4ax.com...G > I'm working with some of our programmers on a new product and we have C > run into a stumbling block with regards to needing privileges for G > certain system function calls.  What we have is a PASCAL program that G > needs to be able to make several function calls where the code in the D > functions requires elevated privileges.  We looked at installing aG > shareable image with these functions, but as you know that won't work ? > We also looked into writing a User-Written System Service and D > discovered that some of system service calls that we need can't be > used in a UWSS.  > H > To take this in baby steps, we have cut back to just trying to get oneG > of the functions implemented.  This one function really just issues a @ > series of about 5 DCL commands that work with a very protectedH > directory and the files in it.  We are currently creating a standaloneG > image that issues the needed commands and I can install that with the H > necessary privileges.  I know this isn't the best solution because nowG > anyone can run the image from DCL and get to the protected directory. F > For this standalone image, we are looking writing it in C so that weG > can use the SYSTEM() function or one of the EXEC() functions.  We are G > planning to use LIB$SPAWN from the PASCAL code to run this new image. @ > Is there a PASCAL equivalent to SYSTEM() or EXEC() or is there > something better?  > ; > If anyone has any suggestions, I would love to hear them.  > 8 > By the way, if you reply via private email, please use5 > mhemker@remember.com since that is my work address.  > 	 > Thanks, 
 > Mark Hemker  > hemker@insightbb.com   ------------------------------  + Date: Sat, 26 Jul 2003 09:31:36 +0000 (UTC) 3 From: "Richard Maher" <maher_rj@hotspamnotmail.com> , Subject: Re: Elevate privileges in a program0 Message-ID: <bfthpn$km2$1@sparta.btinternet.com>   Hi,   ! >   Everyone can use a UWSS, too.   L Bullshit! Everyone can have Execute access to a UWSS but that's not much useL to a hacker without Read access. Unless they have Read access to it they canI only "use" the UWSS in the context of what the privileged designer of the K system intended. (For those that don't know you need Read access to LINK or ' LIB$FIS against a UWSS shareable image)    Regards Richard Maher.  . Hoff Hoffman <hoff@hp.nospam> wrote in message* news:s8dUa.890$cf5.665@news.cpqcorp.net...F > In article <5752ivskpr05bvsve4iikpnvscjlggbaee@4ax.com>, Mark Hemker <hemker@insightbb.com> writes:H > :I'm working with some of our programmers on a new product and we haveD > :run into a stumbling block with regards to needing privileges forH > :certain system function calls.  What we have is a PASCAL program thatH > :needs to be able to make several function calls where the code in theE > :functions requires elevated privileges.  We looked at installing a H > :shareable image with these functions, but as you know that won't work > D >   Correct.  (For those that are not familiar with shareable imagesC >   and privileged shareable images, please see the shareable image , >   cookbook referenced in the OpenVMS FAQ.) > @ > :We also looked into writing a User-Written System Service andE > :discovered that some of system service calls that we need can't be  > :used in a UWSS. > ! >   I here assume you are seeing:  > F >     NOSHRIMG,  privileged shareable image cannot have outbound calls > E >   Everything referenced from a UWSS must be trusted code.  Outbound H >   references to untrusted (unprotected) shareable images are verboten. > D >   See the support article (available via AskQ, see the OpenVMS FAQF >   for pointers to AskQ) "SYSTEM-F-NOSHRIMG Error When A User-Written >   System Service Is Called". > ? >   To find which shareables the code is referencing, try this:  > 0 >     $ analyze/image/output=x.tmp imagename.exe4 >     $ search/exact/window=(0,20) x.tmp "Shareable" > C >   SYS$PUBLIC_VECTORS and SYS$BASE_IMAGE are OK, and references to E >   other shareable images will typically trigger the NOSHRIMG error. D >   You can use LINK/NOSYSSHR to help capture and to eliminate these >   references.  > H >   The abovementioned information is similar to information in the AskQF >   article: "NOSHRIMG Privileged Shareable Image Cannot Have Outbound >   Calls".  >  > I > :To take this in baby steps, we have cut back to just trying to get one H > :of the functions implemented.  This one function really just issues aA > :series of about 5 DCL commands that work with a very protected ! > :directory and the files in it.  > E >   This particular use is trivially easy with subsystem identifiers, B >   and the subsystem identifiers avoid most of the risks that areF >   involved with the "big hammer" approach using enhanced privileges. > F > :                             We are currently creating a standaloneH > :image that issues the needed commands and I can install that with theI > :necessary privileges.  I know this isn't the best solution because now H > :anyone can run the image from DCL and get to the protected directory. > ! >   Everyone can use a UWSS, too.  > G > :For this standalone image, we are looking writing it in C so that we H > :can use the SYSTEM() function or one of the EXEC() functions.  We areH > :planning to use LIB$SPAWN from the PASCAL code to run this new image. > 2 >   Ugh.  That's slow, and probably not necessary. > A > :Is there a PASCAL equivalent to SYSTEM() or EXEC() or is there  > :something better? > D >   system() is lib$spawn().   vfork() and exec*() are not somethingF >   that you will likely want to tangle with, well, not unless you areE >   or wish to become very familiar with the full and somewhat arcane D >   meaning of this part of the C language and also with the OpenVMS@ >   implementation of the fork-related process-level processing. > < > :If anyone has any suggestions, I would love to hear them. > J >   Your current approach is a hugely BAD IDEA.  (No offense is intended.) > C >   I would first look to subsystem identifiers -- depending on the C >   particulars of the access(es) required -- and I would then look B >   to using an installed image.  I would then look to the persona@ >   services, and then to DECnet or IP server tasks running withC >   privileges, and then to an installed image.  I would not bother A >   to implement a UWSS that grants privileges -- I'd issue every D >   user on the system the privilege(s) granted first, since that isC >   exactly what the UWSS-based approach would effectively provide.  > B >   Adding privileges via user-written system service is certainly? >   possible, but it tends to create monstrously-large security 
 >   holes. > A >   If you do start writing inner-mode code (as a UWSS requires), C >   you cannot call user-mode RTL routines nor the user-mode C RTL. B >   Most inner-mode code uses LINK/NOSYSSHJRRYSEXE, with /NOSYSSHRE >   locking out the user-mode access and with /SYSEXE enabling access C >   to the C kernel-mode RTL and to the kernel entry points; to the  >   SYS$BASE_IMAGE definitions.  > A >   Related Ask The Wizard topics include (1547), (1073), (1719), C >   (2524), (2774), (5172), (5639), (5895), (6056), (6363), (7368), " >   (7870), and (numerous) others. > * >     http://www.hp.com/go/openvms/wizard/ > G >   I would also strongly recommend a trip through the OpenVMS Security F >   Manual -- whenever writing privileged-mode code, you must and haveG >   to assume that your code will be specifically sought after and will E >   be specifically targeted by any nefarious-minded user or cracker.  >  > ( >  ---------------------------- #include' <rtfaq.h> ----------------------------- 3 >     For additional, please see the OpenVMS FAQ --  www.hp.com/go/openvms/faq , >  --------------------------- pure personal# opinion --------------------------- G >         Hoff (Stephen) Hoffman   OpenVMS Engineering   hoff[at]hp.com  >    ------------------------------  # Date: Sat, 26 Jul 2003 11:41:44 GMT ( From: Mark Hemker <hemker@insightbb.com>, Subject: Re: Elevate privileges in a program8 Message-ID: <c0p4ivcsmap28uimrrvo9ot3kaujkaevuh@4ax.com>  F On 25 Jul 2003 18:05:58 -0500, Kilgallen@SpamCop.net (Larry Kilgallen) wrote:  i >In article <df640d0b.0307251014.5c73aad9@posting.google.com>, mhemker@remember.com (Mark Hemker) writes: k >> Kilgallen@SpamCop.net (Larry Kilgallen) wrote in message news:<H2QYa+x5nlwY@eisner.encompasserve.org>... g >>> In article <5752ivskpr05bvsve4iikpnvscjlggbaee@4ax.com>, Mark Hemker <hemker@insightbb.com> writes: K >>> > I'm working with some of our programmers on a new product and we have G >>> > run into a stumbling block with regards to needing privileges for K >>> > certain system function calls.  What we have is a PASCAL program that K >>> > needs to be able to make several function calls where the code in the H >>> > functions requires elevated privileges.  We looked at installing aK >>> > shareable image with these functions, but as you know that won't work C >>> > We also looked into writing a User-Written System Service and H >>> > discovered that some of system service calls that we need can't be >>> > used in a UWSS.  >>> K >>> You would get a better quality answer by specifying the system services J >>> involved.  There are _many_ ways to introduce vulnerabilities to a VMSM >>> system trying to do this sort of thing, and a User-Written System Service 3 >>> is a method of avoiding most of those problems.  >>>  >>  = >> I need to use $GETUAI to validate a username and password.  > I >If you are doing this on Alpha, use the $ACM system service under V7.3-1 D >or greater to do this safely.  I believe it requires no privileges. > H >>> 95% of the time when people try something like this they introduce a >>> security hole. >>  F >> I am trying to avoid creating any security holes and I just haven'tF >> had much luck finding a way of accomplishing my needed goal without >> creating one. > ; >$ACM was provided because of the difficulty of doing this.  > B I'll definitely have to take a look at $ACM.  Since we support ourD application on older versions of VMS, I hadn't considered looking atC $ACM.  At this point, I may need to consider requiring the users to F upgrade to the current version of VMS if they want this functionality.  ? >> Thanks for the help.  I am also looking into using protected I >> subsystems, but we still run into an issue with the user being able to ? >> run the program from DCL and gaining access to the protected 
 >> directory.  >>  ; >> Let me explain what the protected directory is used for: G >>   -Copy a file from a public directory into the protected directory. H >>   -Run a program that manipulates the file in the protected directory >> and creates a new file.0 >>   -Delete the input file we just manipulated.H >>   -Queue the resulting file to a print queue with /DELETE so that the! >> file is automatically deleted.  >>  E >> We have a requirement that the files not be accessible to the user I >> except through our program and that is why we have all of the hoops to  >> jump through. > J >"Protected Subsystems" is the specific nature of a particular VMS featureI >on both VAX and Alpha.  It will allow you to do what you described there K >just fine, but it would seem you need to read and understand documentation ! >related to protected subsystems.  > G >But what you describe there has nothing at all to do with validating a C >username and password.  Do you really have two problems to solve ?   B Your right, there are two different problems that are trying to be? solved.  In my own confusion, I kept putting them into the same  program.  B The first problem and most important at this point is handling theC protected directory.  Let me give some more background and describe D the problem in more detail if I can.  Our application creates a fileF in a public directory.  We then run a third-party application at a DCLB prompt that reads this file, merges the data with a template file,F adds some additional calculated data and then writes out the resultingD file which we then send to a printer.  We need to be able to preventE someone from modifying the original data file in the public directory F and running it through the third-party application and reprinting withA the new data.  We also need to prevent someone from modifying the ! resulting file and reprinting it.   F I know this is ugly and I know the path I am currently following stillF has some security holes, but I am trying to minimize the size of those- holes and the length of time that they exist.   D The second problem is to implement an override functionality.  ThereA are certain functions in my application that require a manager to E approve their use.  Currently, they enter their username and password F that they use to log into my application.  I would like for them to be= able to enter their VMS username and password to provide this > override.  That is where the $GETUAI call comes in so that theE manager's login credentials can be validated from the user's context.    Mark   ------------------------------    Date: 26 Jul 2003 07:43:17 -0500- From: Kilgallen@SpamCop.net (Larry Kilgallen) , Subject: Re: Elevate privileges in a program3 Message-ID: <CzBAEKdrzxun@eisner.encompasserve.org>   c In article <c0p4ivcsmap28uimrrvo9ot3kaujkaevuh@4ax.com>, Mark Hemker <hemker@insightbb.com> writes: H > On 25 Jul 2003 18:05:58 -0500, Kilgallen@SpamCop.net (Larry Kilgallen) > wrote: > j >>In article <df640d0b.0307251014.5c73aad9@posting.google.com>, mhemker@remember.com (Mark Hemker) writes:  G >>> I am trying to avoid creating any security holes and I just haven't G >>> had much luck finding a way of accomplishing my needed goal without  >>> creating one.  >>< >>$ACM was provided because of the difficulty of doing this. >>D > I'll definitely have to take a look at $ACM.  Since we support ourF > application on older versions of VMS, I hadn't considered looking atE > $ACM.  At this point, I may need to consider requiring the users to H > upgrade to the current version of VMS if they want this functionality.  D If you can do that from a product management standpoint, it would be _much_ better.  D > Your right, there are two different problems that are trying to beA > solved.  In my own confusion, I kept putting them into the same 
 > program.  C There is nothing wrong with having them in the same program -- they C just need to be separated when describing the issues to those of us  in comp.os.vms :-)  D > The first problem and most important at this point is handling theE > protected directory.  Let me give some more background and describe F > the problem in more detail if I can.  Our application creates a fileH > in a public directory.  We then run a third-party application at a DCLD > prompt that reads this file, merges the data with a template file,H > adds some additional calculated data and then writes out the resultingF > file which we then send to a printer.  We need to be able to preventG > someone from modifying the original data file in the public directory H > and running it through the third-party application and reprinting withC > the new data.  We also need to prevent someone from modifying the # > resulting file and reprinting it.   F That is the sort of thing for which Protected Subsystems were designed- (accessing data only with specific programs).   E But why must this be a "public" directory ?   Can't it be a directory > private to this application (as distinguished from this user).  B The tough part is queueing a print job for data which the user canB temporarily access (via the Protected Subsystem) but cannot accessD normally (when the job starts to print).  Have you considered havingJ a background mechanism whose job is to "print everything in Directory X" ?H Or do the print jobs need to have the ownership of the individual user ?  F > The second problem is to implement an override functionality.  ThereC > are certain functions in my application that require a manager to G > approve their use.  Currently, they enter their username and password H > that they use to log into my application.  I would like for them to be? > able to enter their VMS username and password to provide this @ > override.  That is where the $GETUAI call comes in so that theG > manager's login credentials can be validated from the user's context.   F So if I wanted to attack your $GETUAI design, I would sit there at theC override prompt, guessing the manager's password.  Depending on the D nature of your managers, I might succeed, and you would not know it.  H Of course you could try to implement something like VMS Breakin Evasion,D keeping me out and notifying you that attempts were being made.  ButB $ACM provides all of that, integrated into the normal VMS securityB mechanisms.  If you were to do it yourself you would have to writeC some considerably privileged code, which is fraught with peril.  It7= seems better to me to depend on that which is built into VMS.h  B Saying your feature is only for those running on newer versions of, non-VAX VMS seems to me the wisest decision.   ------------------------------  % Date: Sat, 26 Jul 2003 12:15:05 -0400r* From: JF Mezei <jfmezei.spamnot@istop.com>, Subject: Re: Elevate privileges in a program) Message-ID: <3F22A907.A887AEAC@istop.com>    Richard Maher wrote:J > UWSSs are definitely the right way to go. (Exactly why Hoff continues toJ > persue his Nanny-State/Ferenheit-451 agenda of banning people from using; > UWSSs and in particular the MACRO compiler is beyond me!    L Hoff is well respected and his presence here is appreciated. So don't insultJ him... (even if you have a point). The only insult you can make of Hoff is+ when he has those catfights with Andrew :-)d    H > a couple of privileged shareables (eg: RDB$COSIP) and see *all* of theM > plethora of other RTLs that these images are linked against. So don't do ashJ > they do just do as they say? I don't think so. *SOME OF THESE LAND MINESJ > EVEN CALL OUT to CRTL!!!* Let's all pray that it's not from inner-mode!)  N It is my understanding that a user written system service does not necessarilyK inherit all mighty privs, they must be enabled and disabled from within thedH system service (making sure you disable the priv before returning to theL caller). If one were to change the mode back to user and disable privileges,K woudln't it then be safe for the user written system service to call out to- external routines ?    ------------------------------  % Date: Sat, 26 Jul 2003 12:24:42 -0400r* From: JF Mezei <jfmezei.spamnot@istop.com>, Subject: Re: Elevate privileges in a program) Message-ID: <3F22AB48.558BB6A9@istop.com>.   Mark Hemker wrote:D > The first problem and most important at this point is handling the > protected directory.    I This can be handled with protected subsystem and giving the directory thet5 right ACLs to allow that *image* to access the files.e  I Similarly, perhaps one of the VMS engineers can confirm this, but if youraE application is a protected subsystem that auytomatically inherits the J "PAYCHECK" identifier, couldn't you then add an ACL to SYSUAF.DAT to grantK "PAYCHECK" the right to read the file ? Wouldn't $GETUAI then automatically K allow you to read any record in the SYSUAF without any special privileges ?   F (Note that you would still have the responsability of making sure thatE application option cannot be used to try combinations of passwords to L eventually find the right password. (Perhaps simply emailing a warning to anL application manager that user X has attempted more than Y times to guess the6 password of user Z, and then exiting the application).   ------------------------------  % Date: Sat, 26 Jul 2003 12:31:07 -0400o* From: JF Mezei <jfmezei.spamnot@istop.com>, Subject: Re: Elevate privileges in a program) Message-ID: <3F22ACC7.10F0ECF0@istop.com>u   Larry Kilgallen wrote:E > some considerably privileged code, which is fraught with peril.  Its? > seems better to me to depend on that which is built into VMS.k  L Unless $ACM comes to VAX, you can't say it is built into VMS. You can say it is built into Alpha-VMS.  D Having the right version number for VMS is no longer an assurance ofN compatibility since VAX VMS 7.2 is quite different and lacks a growing list of# features available on Alpha VMS 7.2o   ------------------------------  % Date: Sat, 26 Jul 2003 02:09:43 -0400d* From: "Bill Todd" <billtodd@metrocast.net>Y Subject: Re: Intel's had Dirty Bombs Anthrax and everything! (Was: Re: HP World: Why Alphi2 Message-ID: <naacncXNYIOohr-iXTWJiQ@metrocast.net>  3 "jlsue" <jefflsxxxz@sbcglobal.net> wrote in messageN2 news:h7d3iv0dd82odeq3u9lplj4dv0pisdgbrq@4ax.com...H > On Tue, 22 Jul 2003 12:48:48 -0400, David Froble <davef@tsoft-inc.com> > wrote:   ...r   > >Some of the holes:r > >!J > >Some HP employees now publically embrace the questionable story put out byF > >Compaq.  There may be more self interest for them doing so than the
 actions ofK > >others.  While I can understand such self interest, I can also recognizec it.r >aK > Some of us don't embrace or non-embrace it.  Some (many?  most?) are justeH > working to make a success of that busines in which we're living.  What5 > might have been really just doesn't matter anymore.g  K One can understand why it may not matter to *you* (though the reputation of H my employer would matter at least somewhat to *me*), and why *you* wouldD just like to move on with minimal fuss.  However, customers may haveJ significantly different goals than yours are - and therefore significantlyJ more interest in ascertaining whether the kinds of things that happened to Alpha might happen to VMS.   >g > >aJ > >Compaq used statements from those who may have had differences with the AlphagJ > >CPU developers to support it's story, but not one word from those Alpha CPUkG > >developers, the very ones who you'd expect to have the most relaventt
 statementsI > >to make.  Now there were some rumors of off-the-record statements from  someH > >Alpha CPU developers, it's understandable if they fear to dispute the
 'official'J > >statements of their employer, who can exert enormous financial pressure on suchnI > >employees.  I'd think that if the Alpha CPU developers agreed with thee story,- > >there would have not been any such rumors.w  I Those weren't 'rumors', they were (at least in my case) direct reports ofaE statements made by Alpha architects with the proviso that they not beaH attributed (and in some cases with the requirement that they be somewhatK paraphrased, and in a few cases just as deep background not for publicationaL at all).  Of course, Brannon Batson made a few *on- the-record comments both here and in comp.arch as well.  E Those architects made it clear that  1) there were *no* unanticipatedaK problems with EV8 (for example, Terry's suggestion that SMT would have cost_K 1 GHz in processor speed was complete crap),  2) that they had every reason G to believe - right up until *after* the Alphacide - that EV8 would haveiJ beaten the pants off contemporary Itanics, and  3) that they felt that hadL Compaq wished to back Alpha rather than marginalize it Alpha would have been0 both highly successful and immensely profitable.   ...   G > >Now these people who declared IA-64 surperior to Alpha, and on who'sr	 judgementtJ > >Compaq made a major business decision, they'll have a significant place in HP'srK > >future plans I'd assume?  Can't lose such prestigeous, knowledgable, ando capable  > >folks, can they?s >pL > Look, superior is judged on many levels.  More than architecture elegance,F > and speed.  The desire for the business to continue investing in the entireL > internal infrastructure to support the Alpha, and including the real majorF > investment they'd have to make in marketting to "catch up" in market share,  H Even with lack-lustre support, Tru64 was *already* catching up in marketJ share:  it was growing far faster than the larger Unixes (and they weren'tK *infinitely* larger anyway:  IIRC HP-UX had about 3x Tru64's market share -mH when you add in VMS's market, that made Alpha a *significant* competitor even without half-trying).  J > may have just been outweighed by the easier route of using the IA64, and7 > tagging-along on the marketing of that large company.   D Unfortunately, that's not what they *said*:  they claimed that AlphaF couldn't be profitable (a lie:  it already *was* profitable, even withC minimal marketing - zero marketing for VMS) and couldn't maintain alL significant performance lead over Itanic (another lie, at least based on theB statements of the architects in the best position to evaluate that
 question).     And it would have toF > last some number of years for the Alpha investment to recover market share,1 > and begin paying back and making it worthwhile.   J Alpha *already* was profitable despite being sorely neglected:  to suggestG that visible (and credible) better treatment by its owner wouldn't have F significantly improved its market penetration (and started paying back  *immediately*) is more bullshit.     Many many people wereAK > calling it a dying chip already - even our most infamous Sun contributor.   I The *reason* they were calling it a dying chip was because of the visibleu* presence of its owner's knife in its back.   >lC > Taking all that in (and it's not the complete story), include thecL > Micro-Econ 101 concept of opportunity cost, and a past of least resistance > makes a lot of sense.s  J If you're not intersted in exploiting proprietary advantages for profit, II suppose.  Which is why treating VMS the same way would also make a lot of,! 'sense' to these kinds of people.   5   When it's said that IA64 is superior, or that AlpharF > wouldn't keep up, that must be taken into account with the amount ofI > investment the BOD was willing to make.  NOBODY in here knows what that  is.   J After the fact it's rather clear, isn't it?  As close to zero as possible.I And this skimping hardly dates from the Alphacide:  it was evident in thepE cancellation of NT and Win64 efforts on Alpha in August, 1999, in theuL drastic slow-down in VMS release schedules starting in late 1999, and in the? jerking around the Alpha team experienced (cut-backs, temporaryi@ reassignments) in the two years leading up to the day of infamy.   ...   D  I'm really kind of surprised by some of this business analysis thatH > contends that Alpha was such a winner for the company.  There were/areL > folks inside who called Alpha the sink-hole that never made a dime for theJ > company.  some of these people are very loud in extolling their opinions onK > this topic.  I wished they showed up in c.o.v, becasue you'd be surprisedrI > at how vitriolic THEY get - they make Bill Todd look positively docile.   L Guess I'll have to work more on being assertive, then.  As for their showingG up here, I'd welcome it - *if* they had any credible numbers to back up I their contentions (as I do for mine) rather than just wanted to blow more) smoke.  G If you'd like to become informed about this issue, you could start with J back-copies of quarterly reports for the duration of Compaq's ownership ofK Alpha - or you could dig around in some of my old posts.  Suffice it to say K that Alpha systems made a *great deal* more money for Compaq than any other J business it conducted (Tandem may have had better margins, but it was only* about 1/5 the size of the Alpha business).   - bill   ------------------------------   Date: 26 Jul 2003 09:36:02 GMT/ From: "Dave Weatherall" <djweath@attglobal.net>tY Subject: Re: Intel's had Dirty Bombs Anthrax and everything! (Was: Re: HP World: Why Alph 5 Message-ID: <DTiotGxQ0bj6-pn2-bL93qWUVjzdb@localhost>   C On Fri, 25 Jul 2003 22:47:29 UTC, jlsue <jefflsxxxz@sbcglobal.net> v wrote:  H > On 25 Jul 2003 06:40:57 GMT, "Dave Weatherall" <djweath@attglobal.net> > wrote:  F > >Ok, then just accept Bill and the other people who've feel they've I > >been let down, or other, stronger, emotions, as one of the risks. Theyn6 > >will complain and seek to document their complaint. > M > And they continue to complain, and complain, and complain, as if it's goings > to change the past.  > J > If you want to effect a positive change, that's not going to do it.  AndH > besides, who in this forum is in any position to do anything about it. > I > If I have to accept that they will complain about it, then they have to I > accept that I'll continue to complain about their complaints... ;-) ;-)   F Well as Dave D, with echoes from Bill, pointed out, forgetting how youE were done over once leads you getting done over again (and again and l again....).   F You can probably dismiss this as the response of someone who has seen E yet another Sun machine arrive and on the same day be told that some ;F mangement figures have decided they will remove the dependency on VMS C systems and move all our stuff to Unix. It won't be on HP machines e either.    --   Cheers - Dave.   ------------------------------  # Date: Sat, 26 Jul 2003 16:09:10 GMTu# From: "John Smith" <a@nonymous.com>dY Subject: Re: Intel's had Dirty Bombs Anthrax and everything! (Was: Re: HP World: Why Alph H Message-ID: <GIxUa.92189$zwL.41993@news04.bloor.is.net.cable.rogers.com>  3 "jlsue" <jefflsxxxz@sbcglobal.net> wrote in message 2 news:cbb3ivg2tfbquv39ustoo7oojqg55sel4t@4ax.com...1 > On Wed, 23 Jul 2003 18:27:52 -0400, "Bill Todd"- <billtodd@metrocast.net> > wrote: > > 6 > >"jlsue" <jefflsxxxz@sbcglobal.net> wrote in message5 > >news:n6fthvkgjj86fl5iuac20dqqab9m1tk3he@4ax.com...l4 > >> On Fri, 18 Jul 2003 18:10:44 -0400, "Bill Todd" <billtodd@metrocast.net> > >> wrote:s > >> > >> >9 > >> >"jlsue" <jefflsxxxz@sbcglobal.net> wrote in messageh8 > >> >news:h5aghvkavsukjcto77hkv3qsd1ciu3g7le@4ax.com... > >> ry.	 > >> >> >e > >> >>N> > >> >> Right.  Somehow you feel they owe you an apology.(???) > >> >C > >> >No, I feel they owe those who made decisions based upon theire specific > >and4 > >> >unequivocal 'commitments to Alpha' an apology. > >>8 > >> You can only claim this "requirement" for yourself. > >RE > >What part of "I feel that..." do you find difficult to understand?  > = > The part where you start saying the rest of "those who madee decisions basedaF > upon ...".  That's the part where  you transfer your own unhappiness onto > the rest of the world. >a> > I'm working with many, many customers, and though nobody was entirely happy' > about this, almost all have moved on.a >v > >. > >  You don't get tooD > >> decide whether the way they did it was satisfactory for most of their. > >> customers.  > > A > >But I *do* get to decide whether I think the behavior is worth  making clearC > >to people who might be interested in or affected by it - so thati they can > >decide for themselves.u >iB > Making predictions about supposed future behavior is nothing but FUD, noc" > matter how you like to couch it. >, > > C > >  Again, in the end, if you (or any other specific customer) are B > >> not satisfied, you are fully able to vote with your feet.  At
 that point? > >> you have no other reason to continue this ranting, though,t because you've/ > >> made your decision on how to deal with it.i > >tE > >Au contraire:  that would be a very self-centered attitude to take  (sort of: > >like driving by an accident because it didn't affect me personally).  I D > >don't know about you, but when I see something dramatically wrong	 I'm oftenaE > >motivated to try to correct it even if it doesn't really affect mehC > >personally - and this *is* my 'decision on how to deal with it'.2 > E > Ah, so now you're saving the world from DEC/CPQ/HPQ?  I know that's  not B > what you're really saying, but you're just trying to rationalize	 continuedi0 > harrassment based on some past dissapointment. > @ > It would be different if you stated your case, and then took a wait-and-seeD > attitude.  And if you're proved to be right, I'd even give you the "I toldl
 > you so". > F > It's the constant pounding, and using that to drive home that nobody can beC > trusted anymore, so why try, that makes the effort so much waste.T This is F > just my opinion, I'm not trying to brow-beat you with it.  But trust thatB > there are many, many people working to improve on the past.  Why detractN= > from their efforts before you see if they'll be successful?p >" >s > >>D > >> Yeah, right.  They decide that the direction the company should
 go to meetE > >> business goals, and they incur the risks to take it there.  Hey,  it's > >theirD > >> responsibility to keep the company profitable, if they don't do it, it's: > >> their job on the line.  Armchair refs need not apply. > >oD > >I really don't have any problem with that characterization, if it will getD > >people to stop complaining about my efforts to make sure that the
 risks theyB > >took by throwing away a business with immense potential profit, breaking; > >commitments in the process, and then lying about it haves appropriatesB > >consequences.  Treachery, perfidy, and/or incompetence *should* haveA > >consequences, after all:  that's the free-market philosophy in  action.u >aD > First of all, your point is based on lots of conjecture, one-sidedA > information, and a complete rejection of all counter arguments.t	 With suchtF > closed-mindedness, how do you really think this activity is helping? >tF > And the "consequences" that would befall them in this free-market is a F > significant loss of customers.  That hasn't happened, so maybe, just maybe, > there's more to the story. >a > >>E > >> There's a world of difference between saying "I don't believe in, 'X'r: > >> because of past behavior", and ranting constantly, in excruciating detail,- > >> that your beliefs and opinions are fact.  > >PE > >Ah, but they're mostly *not* opinions:  I document them carefully.q And youtB > >might note that they don't sprout up at random:  they're mostly
 offered inD > >rebuttal to some whack-a-mole who pops up thinking it may finally
 be safe toD > >start spewing the party-line lies again (or who starts reassuring people5 > >about cHumPaq's 'commitments' to VMS's future...).  > >- >-F > I commed you on your research and analysis.  Really I do.  However I justF > don't understand how you really think the public numbers really tell theeF > whole story.  And even beyond that, take it to the extremes that you do in  > these conversations. >o0 > In this scenario, it can never get any better. >     D I think that many of the complaints and concerns about the Alphacide stem from a few basic issues:n  F 1) The feeling that Compaq was 'two-faced' about the future of Alpha -D cheerfully promoting the future of Alpha to all until the day of the announcement on June 25, 2001.  > 2) That all public documents from Compaq until the date of the@ announcement indicated a substanital chip performance and systemD advantage for Alpha over IA64 for as far out as any foreseeable time& horizon could be reasonably predicted.  F 3) A stated 25-year minimum life span for Alpha (whether that was fromE the date somebody first thought of an Alpha-like architecture in 1961r; ;-)  or from the date of first-ship in 1992 can be argued).   E 4) That the manner in which the announcement was done, ie. everythingeE you've told your bosses about Alpha based on Compaq's committments toiB you is now null and void and one now looks like a total asshole toC your organization - kiss any chance of promotion, or bonus, or evenrB having a job tomorrow goodbye - your personal credibility is shot.  F 5) That there isn't any indication in the commercial market even todayF that uptake of IA64 is approaching any kind of commercially successfulC volumes - which appears to negate any statements about lower costs.   A 6) The sudden impact the announcement had on sales of Alpha & VMSOF which in the minds of many customers created a very real threat to theF survival of VMS, notwithstanding the greasy similitudes of Capellas toA the contrary. In other words, FUD of Comapq's own creation due to.7 distrust of the organization and the senior management.e   ------------------------------  % Date: Sat, 26 Jul 2003 01:32:59 -0400   From: John Santos <JOHN@egh.com>; Subject: Re: Migrate obsolete VAX/VMS SW to OpenVMS Itaniumr5 Message-ID: <1030726012406.1344A-100000@Ives.egh.com>t  - On Fri, 25 Jul 2003, David J. Dachtera wrote:2   > "Stanley F. Quayle" wrote: > > 4 > > On 25 Jul 2003 at 9:56, David J. Dachtera wrote:M > > > See my response to Didier. Getting that last 5% on board will be key to # > > > regrowing the OpenVMS market.t > > > K > > > Kind of like putting out 95% of a fire. The remaining 5% can rekindlei6 > > > and once again you have a roaring conflagration. > > = > > I don't think it's "key" -- we need to be developing more G > > applications.  Take that 5% and DOUBLE IT -- it only becomes 10% ofe > > the market.  > F > BUT - take that same 5% and raise it to the second power, it becomes! > 25%, the third power: 125%, ...h  C Bad math.  5% raised to the second power is .25%, raised to the 3rdr power is .0125%.  ( I think the whole fire analogy is bogus.  C Some people are perfectly happy on their VAXes (or PDP-11's or ...)n; They work, they don't have sources or development staffs ore? (non-defunct) vendors.  These people are never going to migrate ? and wouldn't even if there were brand-new 500 VUP MicroVAX-XVIIi" systems for sale in every CompUSA.  = I don't know if this is 5% or 1%, but HP will never get thesea; people onto Itanium and there is no reason for them to try.e  ? The market to double is the 95% who are interested in upgradingn- their systems.  Double that and you get 190%.      > & > Rather like nuclear fission, get it? > A > > In reference to your example, fighting the last 5% of a fire h > I > ...unless you're trying to keep warm. Put tinder and kindling on top ofo) > still-glowing embers, and what happens?v > J > THAT's the analogy I was going for: taking the barely still-alive (i.e.,& > VMS) and making it vital once again.   -- s John Santos  Evans Griffiths & Hart, Inc. 781-861-0670 ext 539   ------------------------------  % Date: Sat, 26 Jul 2003 07:55:41 +0200h From: Dirk Munk <munk@home.nl>) Subject: Re: NEWBIE: DECWindows Bit Depthe2 Message-ID: <bft59b$b1e$1@news4.tilbu1.nb.home.nl>   Hoff Hoffman wrote: d > In article <bfs881$s2l$1@pcls4.std.com>, moroney@world.std.spaamtrap.com (Michael Moroney) writes:J > :Semi-related:  What is the highest resolution now available on VMS, and  > :what card supports that size? > E >   The HP 3X-PBXGG-AB (Radeon 7500) AGP card, AFAIK, at 2048 x 1536?  > I >     http://h18002.www1.hp.com/alphaserver/products/graphics/radeon.html  > I >   Check the support for the card, as there are (or at least were) some  J >   (at least initial) platform restrictions around OpenVMS Alpha support I >   for this graphics controller, and I don't know off-hand if there is ar; >   PCI version that (presently) has OpenVMS Alpha support.p  O The PCI version is officially supported on the DS10. I'm using a clone version eO on my (hobby) DS10, works like a dream. If I'm not mistaken the Radeon is only cN supported on the systems with EV6x and EV7x cpu's. I suppose there is no real T reason to assume a PCI Radeon 7500 would not work on other such systems then a DS10.  O But please read the release notes for the Radeon driver (in the graphics patch  : for VMS7.3-1), because there are certain restrictions etc.   >  (And mostI >   Alpha systems do not have an AGP slot -- but since you indicated onlysJ >   "VMS" in your question and (unfortunately) did not indicate a specificK >   architecture or specific platform, this answer might be too generic...)7 > I >   Please check the AlphaServer and AlphaStation hardware compatibility  K >   lists for details of supported peripherals on specific Alpha platforms, J >   of course.  (I expect you know the location of these support matrixes,F >   but for those that do not, please see the URL in the OpenVMS FAQ.) > K >   Other high-end cards include the PowerStorm 350 and 3DLabs Oxygen VX1, -/ >   with both having support for 1920 x 1200.  - > / >   PowerStorm 4D20 gets as far as 1600 x 1200.e > L >   There may well be some other moderate-resolution cards around (and that I >   also have OpenVMS Alpha support, of course), this list has various ofpI >   the higher-resolution (and supported) graphics cards I am immediately-
 >   aware of.  > P >  ---------------------------- #include <rtfaq.h> -----------------------------M >     For additional, please see the OpenVMS FAQ -- www.hp.com/go/openvms/faqkP >  --------------------------- pure personal opinion ---------------------------G >         Hoff (Stephen) Hoffman   OpenVMS Engineering   hoff[at]hp.como >    ------------------------------  % Date: Sat, 26 Jul 2003 12:05:46 +0800t# From: "Sohoman" <sohoman@yahoo.com>e, Subject: NH1 =?Big5?B?ue+n3KSjtLqu8A==?= NH1+ Message-ID: <bfu33b$qpj$1@news.giga.net.tw>l   ܤ>>>>bau@W[J www.cashcome.net
 bGsohoman            *W3h   ------------------------------   Date: 26 Jul 03 09:08:10 +0200) From: p_sture@elias.decus.ch (Paul Sture)g+ Subject: Re: Packed decimal arithmetic in Co) Message-ID: <zOh+1QbEVrKR@elias.decus.ch>t  V In article <3F1F378B.63490175@istop.com>, JF Mezei <jfmezei.spamnot@istop.com> writes: > Tom Linden wrote:eL >> Well not Float Binary, but you can use Float Decimal.  A lot of financialK >> application also use picture data type, available in both Cobol and PL/InO >> which for those not familiar, is character like string  version of a decimaleL >> with embedded currency symbols, decimal points, db, cr and other goodies. > L > Aren't those used for display purposes only and not for file access ? As IP > recall, COBOL is unable to parse such data when it reads a record from a file. >r  K I seem to remember that it could deal with such data, but then I'm thinkingtI of DEC COBOL rather than the IBM variety. Believe or not, COBOL has movedeD on over the years. The last time I used it seriously was in 1998, onM Alpha/VMS, and I was pleasantly surprised to see that it could do things likeq  :   accept some_item from line 10 column 20 with conversion.  = where some_item could be binary, packed decimal, or whatever.>  aK > When I worked on IBM mainframes, I had the opportunity to examine program P > dumps to find out where/why they bombed (abended in IBM world) and I found outL > that COBOL generated IBM 370 assembler code that was very compact. A basicL > MOVE chocolate-bar to mouth. instruction might, if the fields matched sizeF > etc, generate a single MVC instruction in assembler (as opposed to a- > subroutine call for strcpy or memcpy in C).p > P > When you read a record from a file, the data was simply moved to the structure2 > without conversion. (same for writing to file).  >s  D True, and it was efficient. VAX^JDEC^J VMS/Tru64 COBOL can also readK and write EBCDIC files with no more than a couple of lines of code added toy the program.  mJ > If the applicatioon has a file that contains packed decimal data, then aZ > single image should adapt to that. Rewriting the whole application may not be practical. > L > Also, there is a big issue with floating point when dealing with financialM > calculations. If the corporate rule stipulate that all calculations MUST beiP > with only 3 decimals points, rounded a certain way to 2 decimals at the end ofK > the calculation, then using floating point variable does not allow you to  > implement this rule.   > P > Packed decimal or integer are the only way to ensure that you maintain decimal! > limits during the calculations.u  G And something else that no-one so far has mentioned. When doing integerrH arithmetic, the intermediate fields have to be large enough to cope too.  K As Tom reminded me, there is also display decimal, up to 31 bytes, which iss3 extremely useful for cross platform data transfers.n  J And a nice little surprise yesterday, when this thread prompted me to read@ the latest COBOL manuals. I found that Compaq COBOL now supports octaword integers.   That can be found atL http://h71000.www7.hp.com/doc/73final/6296/6296_profile_015.html#index_x_463   ------------------------------   Date: 26 Jul 03 09:28:19 +0200) From: p_sture@elias.decus.ch (Paul Sture)a+ Subject: Re: Packed decimal arithmetic in Ci) Message-ID: <hz3vtQzdKjS1@elias.decus.ch>l  V In article <3F20A53C.CA1A0DEC@istop.com>, JF Mezei <jfmezei.spamnot@istop.com> writes: > David Froble wrote:aK >> or group of calculations.  Sure, there are values that cannot exactly betR >> represented in a floating point number, but, what's the difference between 1.35 >> and 1.34999999999999?   > N > If a contract specifies a unit price of 1.35 in a specific currency, but theO > supplier, due to rounding errors, charges 1.351 when calculating the cost for G > selling 200,000 widgets, that makes a $200 difference in the invoice.s > P > Also consider those "urban legend" cases of bank employees diverting sub-pennyO > amounts from transactions to their own accounts and collecting tons of money.vO > This is one reason one would require full specification of monetary precisione% > when handling other people's money.r > O > If your amounts are big enough that they do not fit in a 32 bit integer, theniE > the precision *IS* important because any error will be significant.p  I There is also the problem of scale. If I want to work out a percentage ofsH free space on a disk, well here's a bit of code change from 1998 when an> NFS server suddenly grew the disk it served to our VMS systems  : $!           freeblocks = (percentage * totalblocks) / 100G $!     18/mar/98  this led to negative freeblocks for very large disks!E7 $           freeblocks = totalblocks / 100 * percentages  G On the smaller disks of 10 years ago, the original calculation was moret	 accurate.2   ------------------------------   Date: 26 Jul 03 10:13:57 +0200) From: p_sture@elias.decus.ch (Paul Sture)1+ Subject: Re: Packed decimal arithmetic in Ce) Message-ID: <gZFKFQLILAfW@elias.decus.ch>t  U In article <3F207DAA.3040308@tsoft-inc.com>, David Froble <davef@tsoft-inc.comwrites:    <snip>  H > I've found double precision floating point to be entirely adequate forH > storing  monetary amounts.  I'll note that I've only used it for US$. F > I'll also note  that $1,000,000.00 is a rather large monetary amountD > for any of the work I've  done, and $100 million is more than ever@ > required.  I'll concede that there are  places where much moreB > magnitude is required, while still requiring preciseness  to the > penny.  C Well I don't know US accountancy practices, but every UK accounting @ system I have worked on used/uses control totals. Take a companyF which turns over 1 million a month, and the turnover is 12 million per@ year. That easily fits into two billion pennies/cents. But no it@ doesn't in year 2, because those control totals on the sales and@ general ledgers are not zeroed at the end of the financial year.  F > As for calculations, that's a bit different.  To do so, a programmerF > must  routinely perform a rounding calculation after, or as part of,E > any calculation,  or group of calculations.  Sure, there are valueseF > that cannot exactly be  represented in a floating point number, but,B > what's the difference between 1.35  and 1.34999999999999?  If anG > amount is added to this value, and the result is  rounded to 2 digitsnD > after the decimal point, that's adequate for counting  dollars and? > cents.  Multiply it by 100, and still, what's the meaningful  G > difference between 134.99999999999 and 135?  Once rounded, it becomesa > 135.  C But back to totals again. If you have a lot of items on an invoice,pE each item line can print out as 1.35 (or 135.00), but the total mightsE end up the odd cent out, depending on the combinations of values. AddhF in the complication of detailing sales tax or VAT on a per line basis,E and the tax total is highly likely to be incorrect as well. BTDTGTTS.a  C Now add that lot up for a year's line items and invoice totals, andeF you are asking for trouble. In the words of a former colleague who was; (an extremely switched on and computer savvy) bean-counter:d  6 "WHAT? WE HAVE A COMPUTER THAT CAN'T ADD UP PROPERLY?"   ------------------------------   Date: 26 Jul 03 10:34:54 +0200) From: p_sture@elias.decus.ch (Paul Sture)p+ Subject: Re: Packed decimal arithmetic in Cr) Message-ID: <$gQ3LEVx5y+G@elias.decus.ch>r  n In article <JfTTa.30079$vz%.13428@news01.bloor.is.net.cable.rogers.com>, "John Smith" <a@nonymous.com> writes: >    <snip> >  > G > Floating point errors (differences) once made the difference of aboutpH > $50,000 in a deal (about $300MM) I was involved in, due to differences3 > in intermediate results which propagated forward.e > B > So when using floating point, one has to consider the real-worldH > implications - do you write a cheque for $300,050,000 or $300,000,000?C > A wrong decision in that case is enough to get one or more peoples > fired. >   @ Ooh. You have just reminded me of an insurance application whichA was miles out in the suspense account. A multi-currency affair as B well, just to make the figures wilder, and in pre-Euro days we had< things like 200 pesetas to the UKP vs 1.67 USD for the same.  E But RMS fans will love this one. Written by an ex-ICL software house,wE this app used the idea of overlaid records, distinguished by a recordwE type field, much like the idea of record types for punched cards, butn@ this time in RMS indexed files. Yes, you guessed it, some of theF secondary changeable index keys for the main record type were occupied0 by floating point fields for other record types.  ' And they wondered why it ran slowly :-)r  ? Fortunately, or unfortunately, depending on your viewpoint, thetA inaccuracies didn't matter. The foreign currency insurance claimsoD usually took enough time between the claim and final settlement that? currency fluctations brought in enough differences to drown out  floating point errors.  F PS. The first computer I worked on was paid for in its entirety out ofC the previous year's currency fluctuations. 180 days credit on ForexsA transactions was a big money earner when the UKP was tumbling :-)r   ------------------------------   Date: 26 Jul 03 09:11:53 +0200) From: p_sture@elias.decus.ch (Paul Sture) + Subject: RE: Packed decimal arithmetic in Cs) Message-ID: <1zulqm5mvvWN@elias.decus.ch>   W In article <23JUL200321594635@gerg.tamu.edu>, carl@gerg.tamu.edu (Carl Perkins) writes:t/ > p_sture@elias.decus.ch (Paul Sture) writes...eK > }You don't need to reach to the figures a bank or insurance company uses.dO > }A signed 32-bit integer including pennies/cents cannot cope with a figure ofr > }30 million. >  > So use 64 bit integers.n > J > If your base unit is 1/1000000 of a dollar you can almost fit the entireN > US GDP into a signed 64 bit integer (the US GDP is a smidge over 10 trillionL > in the most recent figures I've seen; using a millionth of a dollar as theL > unit you can fit a litle over 9.3 trillion into a signed 64 bit integer).  > I > If you switch the unit to 1/100000 of a dollar you can actually fit therK > entire Earth's combined GDP into a signed 64 bit integer (and then some -.K > it's roughtly a factor of two under the maximum number that will fit). IfhK > that isn't big enough for any conceivable financial transaction, there isaJ > something seriously wrong with your software. If you are trying to trackL > the entire planet't GDP to an accuracy better than a thousandth of a cent,5 > then you need to rethink what you are trying to do.P > ? > ("Trillion" as used in the US, of course: 1 000 000 000 000.)a > D But it worth mentioning that in spite of COBOL's reputation of being? for dinosaurs, it can handle 18 digits on VAX, 31 on Alpha. :-)    ------------------------------  % Date: Sat, 26 Jul 2003 03:42:57 -0400p* From: JF Mezei <jfmezei.spamnot@istop.com>+ Subject: Re: Packed decimal arithmetic in Cn) Message-ID: <3F223100.ACB1F492@istop.com>p   Paul Sture wrote: F > But it worth mentioning that in spite of COBOL's reputation of beingA > for dinosaurs, it can handle 18 digits on VAX, 31 on Alpha. :-)0  N And pass  arguments by descriptor, which makes calling systems services easier than from C.  U DEC Cobol also has a report generator which saves a lot of time when writing reports.    ------------------------------   Date: 26 Jul 2003 09:36:03 GMT/ From: "Dave Weatherall" <djweath@attglobal.net> + Subject: Re: Packed decimal arithmetic in Ci5 Message-ID: <DTiotGxQ0bj6-pn2-T4dywFE1XLjj@localhost>M  " On Fri, 25 Jul 2003 13:23:43 UTC, < koehler@eisner.nospam.encompasserve.org (Bob Koehler) wrote:   > > 
 > > 0.2 what?e > > I > > 0.2 pennies doesn't need to be expressed precisely.  We are operating-# > > on whole pennies by assumption.  > C >    When you sell millions of copies of a product you need to workjH >    units out to less than the whole penny level.  A change of .01 centB >    over a million units is $10K, and you will answer to the nextD >    level of management if you screw up that much since that may be- >    close to the size of their annual bonus.2  A I understood John to be saying that using pennies, not fractions :F thereof, as the minimum unit, you can use floating point Add, Subtract? and Multiplication without any loss of exactness. i.e all your r? calculations have a minimum size of one, just like an integer. f  B John Reagan went on to explain that the advantage is that you can B represent larger numbers in FP than you can in the same number of  bytes of an integere  A When you do division, you have the same challenges to exactness, v however you do it.   -- e Cheers - Dave.   ------------------------------    Date: 26 Jul 2003 06:41:16 -0700! From: tom@kednos.com (Tom Linden)y+ Subject: Re: Packed decimal arithmetic in Cm= Message-ID: <ef893e89.0307260541.5f412e31@posting.google.com>s  [ JF Mezei <jfmezei.spamnot@istop.com> wrote in message news:<3F1F378B.63490175@istop.com>...g > Tom Linden wrote:rM > > Well not Float Binary, but you can use Float Decimal.  A lot of financialaL > > application also use picture data type, available in both Cobol and PL/IP > > which for those not familiar, is character like string  version of a decimalM > > with embedded currency symbols, decimal points, db, cr and other goodies.o > L > Aren't those used for display purposes only and not for file access ? As IP > recall, COBOL is unable to parse such data when it reads a record from a file. > I No, it is housekeeping information that the compiler keeps about the datacI type as supplied in the declaration of the picture variable.  I have seenaL programs where PICs were used as induction variables! So they are veery much computational types.  K > When I worked on IBM mainframes, I had the opportunity to examine programaP > dumps to find out where/why they bombed (abended in IBM world) and I found outL > that COBOL generated IBM 370 assembler code that was very compact. A basicL > MOVE chocolate-bar to mouth. instruction might, if the fields matched sizeF > etc, generate a single MVC instruction in assembler (as opposed to a- > subroutine call for strcpy or memcpy in C).d > P > When you read a record from a file, the data was simply moved to the structure2 > without conversion. (same for writing to file).  > J > If the applicatioon has a file that contains packed decimal data, then aZ > single image should adapt to that. Rewriting the whole application may not be practical. > L > Also, there is a big issue with floating point when dealing with financialM > calculations. If the corporate rule stipulate that all calculations MUST beyP > with only 3 decimals points, rounded a certain way to 2 decimals at the end ofK > the calculation, then using floating point variable does not allow you to  > implement this rule.    G For Forex trading you would need at least 5 decimal places rounded to 4gH (maybe even 6 rounded to 5, not sure, if the other currency is less thanJ 1 in relation to the base currency then you would have 0.12345 in order to< maintain 5 charaterisitic digits, but this is out of my ken) > P > Packed decimal or integer are the only way to ensure that you maintain decimal! > limits during the calculations.    ------------------------------  % Date: Sat, 26 Jul 2003 06:45:49 -0700l# From: "Tom Linden" <tom@kednos.com> + Subject: RE: Packed decimal arithmetic in Cx9 Message-ID: <CIEJLCMNHNNDLLOOGNJIAEGEHKAA.tom@kednos.com>U   >-----Original Message-----h5 >From: Dave Weatherall [mailto:djweath@attglobal.net] & >Sent: Saturday, July 26, 2003 2:36 AM >To: Info-VAX@Mvb.Saic.Com, >Subject: Re: Packed decimal arithmetic in C >t >I" >On Fri, 25 Jul 2003 13:23:43 UTC,= >koehler@eisner.nospam.encompasserve.org (Bob Koehler) wrote:t >e >> > >> > 0.2 what? >> >J >> > 0.2 pennies doesn't need to be expressed precisely.  We are operating$ >> > on whole pennies by assumption. >>D >>    When you sell millions of copies of a product you need to workI >>    units out to less than the whole penny level.  A change of .01 cent C >>    over a million units is $10K, and you will answer to the next E >>    level of management if you screw up that much since that may be . >>    close to the size of their annual bonus. >wA >I understood John to be saying that using pennies, not fractionscG >thereof, as the minimum unit, you can use floating point Add, Subtracte? >and Multiplication without any loss of exactness. i.e all youra? >calculations have a minimum size of one, just like an integer.y >nB >John Reagan went on to explain that the advantage is that you canB >represent larger numbers in FP than you can in the same number of >bytes of an integer >   B Yes, but in general, the precision has to be greater than a penny,G possibly 1/1000th of a penny (actually of the smallest unit of the base1* currency, e.g. rappen, centime, re, etc.)A >When you do division, you have the same challenges to exactness,s >however you do it.p >t >--d >Cheers - Dave.i >I >---' >Incoming mail is certified Virus Free.w; >Checked by AVG anti-virus system (http://www.grisoft.com).eA >Version: 6.0.502 / Virus Database: 300 - Release Date: 7/18/2003l >t --- & Outgoing mail is certified Virus Free.: Checked by AVG anti-virus system (http://www.grisoft.com).@ Version: 6.0.502 / Virus Database: 300 - Release Date: 7/18/2003   ------------------------------  # Date: Sat, 26 Jul 2003 15:51:16 GMTy# From: "John Smith" <a@nonymous.com>i+ Subject: Re: Packed decimal arithmetic in CfH Message-ID: <UrxUa.92027$zwL.82663@news04.bloor.is.net.cable.rogers.com>  : "Larry Kilgallen" <Kilgallen@SpamCop.net> wrote in message- news:C0RlVnjo0YnT@eisner.encompasserve.org... A > In article <bfs9e5$ieqqm$1@ID-120847.news.uni-berlin.de>, "John & Travell" <john@travell.uk.net> writes: >m@ > > For the benefit of us Brit's, to whom a penny is part of our currency, ahB > > coin valued at precisely 100th part of one pound sterling, can someonet8 > > explain EXACTLY what America refers to as a 'penny'. >aC > In the US, "penny" is a colloquial term for the coin whose actual  nameE > is a "cent".  It has the value of precisely 100th part of a dollar.  > > > Now you know how we in the US feel about Australian dollars, CanadianE > dollars, etc.  Those countries should follow the example of "dinar"o and E > "franc" by using a word from their own native language, rather than  ours :-)  A Don't get me started about 'Thalers" and which language has firsto 'rights' on a word usage.   @ Now if you want to take about native languages, 'American' isn't? really anything...not a language really...just a hodge-podge ofoE colloquialisms from the 'hood. Perhaps people living in the USA oughtd> to take up Iroquis or Apache as the language of the land.  :-)   ------------------------------  % Date: Sat, 26 Jul 2003 12:02:11 -0400/* From: JF Mezei <jfmezei.spamnot@istop.com>+ Subject: Re: Packed decimal arithmetic in C6( Message-ID: <3F22A601.236723F@istop.com>   Paul Sture wrote:bE > But back to totals again. If you have a lot of items on an invoice,(G > each item line can print out as 1.35 (or 135.00), but the total mightlC > end up the odd cent out, depending on the combinations of values.g  * Or in Qubec, where we have 2 sales taxes.  , We have the canadian GST of 7% on the total.S And the qubec 7.5%. But it isn't added on the total, it is added on the total+GST.   L There are various "official" methods of calculating this tax, and they oftenI yield a difference of one cent in the final result. And we're not talkingu4 billions here, we're talking you monthly cable bill.  L One way of calculating the second tax is to use its real rate: 7.5% * 1.07 =L 8.025% on the pre-tax total.  (the QST taxes the federal tax - this was doneI such that shoudl the federal government increase the GST, the Quebec govtiM would automatically get more money out of its QST without taking the heat forh a tax increase).  M The other way is to calculate a sub total that includes the GST, on which youuI then apply the 7.5% QST and then get the total. But when calculating thatgL sub-total, if you round the number down to cents, you end up with 2 rounding> operations, one for the sub-total and one for the final total.  M If you keep the subtotal in a float with all the decimals, but only print off M the rounded amount, then your imvoice may look like it cannot add because thehV final total may be one cent off from the sum of pre-tax total, GST amount, QST amount.   ------------------------------   Date: 26 Jul 03 18:39:09 +0200) From: p_sture@elias.decus.ch (Paul Sture)n+ Subject: Re: Packed decimal arithmetic in C ) Message-ID: <UPRMkwBamuYO@elias.decus.ch>c  a In article <ef893e89.0307260541.5f412e31@posting.google.com>, tom@kednos.com (Tom Linden) writes:o   <snip>   > I > For Forex trading you would need at least 5 decimal places rounded to 4cJ > (maybe even 6 rounded to 5, not sure, if the other currency is less thanL > 1 in relation to the base currency then you would have 0.12345 in order to> > maintain 5 charaterisitic digits, but this is out of my ken) >> w  N OK Tom, here's a puzzle for you. This is a real table, valid yesterday, middle0 rates with the buying and selling rates snipped.   Foreign exchange rates CHF: for non-cash transactions as of 25.07.2003, 16:45:00 (MET)    USA           USD   1  1.33975   EMU           EUR   1  1.54575 o Great Britain GBP   1  2.17225   Sweden        SEK 100 16.775 m Norway        NOK 100 18.8   Denmark       DKK 100 20.8   s Japan         JPY 100  1.12825 R Australia     AUD   1  0.89075 " Canada        CAD   1  0.9695s  F Why are Norway and Denmark  only given to 3 significant figures, where the rest are 5 or 6?    Q >> Packed decimal or integer are the only way to ensure that you maintain decimalo" >> limits during the calculations.   ------------------------------   Date: 26 Jul 03 19:16:07 +0200) From: p_sture@elias.decus.ch (Paul Sture).+ Subject: Re: Packed decimal arithmetic in C ) Message-ID: <twRfkkhfoY1e@elias.decus.ch>s  U In article <3F22A601.236723F@istop.com>, JF Mezei <jfmezei.spamnot@istop.com> writes:a > Paul Sture wrote:gF >> But back to totals again. If you have a lot of items on an invoice,H >> each item line can print out as 1.35 (or 135.00), but the total mightD >> end up the odd cent out, depending on the combinations of values. > , > Or in Qubec, where we have 2 sales taxes. > . > We have the canadian GST of 7% on the total.U > And the qubec 7.5%. But it isn't added on the total, it is added on the total+GST.v > N > There are various "official" methods of calculating this tax, and they oftenK > yield a difference of one cent in the final result. And we're not talkinge6 > billions here, we're talking you monthly cable bill. > N > One way of calculating the second tax is to use its real rate: 7.5% * 1.07 =N > 8.025% on the pre-tax total.  (the QST taxes the federal tax - this was doneK > such that shoudl the federal government increase the GST, the Quebec govt O > would automatically get more money out of its QST without taking the heat fort > a tax increase). > O > The other way is to calculate a sub total that includes the GST, on which yourK > then apply the 7.5% QST and then get the total. But when calculating that N > sub-total, if you round the number down to cents, you end up with 2 rounding@ > operations, one for the sub-total and one for the final total. > O > If you keep the subtotal in a float with all the decimals, but only print offoO > the rounded amount, then your imvoice may look like it cannot add because theuX > final total may be one cent off from the sum of pre-tax total, GST amount, QST amount.  M Yes, I see what you mean. Way back when, the UK had 2 methods for calculatingrO income tax, social contributions and VAT. One was by printed lookup tables, and>I the later one (in the case of payroll  a special dispensation to computertH users), was pure percentages. It was a swings and roundabouts thing, but6 you were supposed to stick to one method for each tax.  K For several years on the trot, changes to payroll rules gave me well payingh, work somewhere in between April and June :-)   ------------------------------  % Date: Sat, 26 Jul 2003 12:55:25 -0400 * From: JF Mezei <jfmezei.spamnot@istop.com>+ Subject: Re: Packed decimal arithmetic in Cn) Message-ID: <3F22B278.C15A744C@istop.com>o   Tom Linden wrote:mK > No, it is housekeeping information that the compiler keeps about the dataeK > type as supplied in the declaration of the picture variable.  I have seennN > programs where PICs were used as induction variables! So they are veery much > computational types.  N Sorry, but if in my data record, I have a 8 byte field containing " $234.67" ,M no matter what picture clause I have in the record definition, COBOL will nott% allow any computation of that number.   % Similarly, if I have an item such as:t    05 chocolate-cake PIC $$$$9.99 .  F I can move a numeric item to it,  which causes the numeric value to be@ converted to a numeric edited character field. But I cannot moveN chocolate-cake to another numeric field whose usage is computational because I* would then be moving a string to a number.   ------------------------------  % Date: Sat, 26 Jul 2003 10:32:52 -0700e# From: "Tom Linden" <tom@kednos.com>h+ Subject: RE: Packed decimal arithmetic in Ct9 Message-ID: <CIEJLCMNHNNDLLOOGNJIIEGHHKAA.tom@kednos.com>   2 Does this expose a triangular trade opportunity:-)  D I would be currious to know as well.  My guess is that they suppress printing non-significant '0's  C I just checked www.forex-markets.com and that looks to be the case.   / But it is obvious from looking at the data that I 1) you need to run computations in more than 5 decimals places, certainlymA    at least 6 (depending on the error propogation analysis of thei computations    you are performing.L 2) Although ues of the mantissa of a floating point number is a clever trick for H    for providing longer integers, it won't work, is cumbersome and makes	 each user K    have to provide their own exception handling routines and maybe runtime. J 3. These computations can only be reliably done using one of the following
 data types 	1.  Scaled fixed decimal  	2.  Float decimal 	3.  Picture  L Summary, this is not an application well-suited for C or C++ you need to use either Cobol or PL/I.g  ? Maybe it is time to haul this horse off to the rendering plant?o   >-----Original Message-----.1 >From: Paul Sture [mailto:p_sture@elias.decus.ch] & >Sent: Saturday, July 26, 2003 9:39 AM >To: Info-VAX@Mvb.Saic.Com, >Subject: Re: Packed decimal arithmetic in C >  >f> >In article <ef893e89.0307260541.5f412e31@posting.google.com>,$ >tom@kednos.com (Tom Linden) writes: >n ><snip>e >l >>J >> For Forex trading you would need at least 5 decimal places rounded to 4K >> (maybe even 6 rounded to 5, not sure, if the other currency is less thanyA >> 1 in relation to the base currency then you would have 0.12345d >in order to? >> maintain 5 charaterisitic digits, but this is out of my ken)i >>>  >m= >OK Tom, here's a puzzle for you. This is a real table, validy >yesterday, middle1 >rates with the buying and selling rates snipped.  >t >Foreign exchange rates CHF ; >for non-cash transactions as of 25.07.2003, 16:45:00 (MET)  >O >USA           USD   1  1.33975o >EMU           EUR   1  1.54575o >Great Britain GBP   1  2.17225n >Sweden        SEK 100 16.775C >Norway        NOK 100 18.8o >Denmark       DKK 100 20.8w >Japan         JPY 100  1.12825h >Australia     AUD   1  0.89075a >Canada        CAD   1  0.9695 >-G >Why are Norway and Denmark  only given to 3 significant figures, where@ >the rest are 5 or 6?M >a >oA >>> Packed decimal or integer are the only way to ensure that you1 >maintain decimalh# >>> limits during the calculations.J >a >---' >Incoming mail is certified Virus Free. ; >Checked by AVG anti-virus system (http://www.grisoft.com). A >Version: 6.0.502 / Virus Database: 300 - Release Date: 7/18/2003e >y --- & Outgoing mail is certified Virus Free.: Checked by AVG anti-virus system (http://www.grisoft.com).@ Version: 6.0.502 / Virus Database: 300 - Release Date: 7/18/2003   ------------------------------  % Date: Sat, 26 Jul 2003 10:34:49 -0700g# From: "Tom Linden" <tom@kednos.com>5+ Subject: RE: Packed decimal arithmetic in C 9 Message-ID: <CIEJLCMNHNNDLLOOGNJIMEGHHKAA.tom@kednos.com>t   >-----Original Message----- 2 >From: JF Mezei [mailto:jfmezei.spamnot@istop.com]& >Sent: Saturday, July 26, 2003 9:55 AM >To: Info-VAX@Mvb.Saic.Com, >Subject: Re: Packed decimal arithmetic in C >  >o >Tom Linden wrote:L >> No, it is housekeeping information that the compiler keeps about the dataL >> type as supplied in the declaration of the picture variable.  I have seen@ >> programs where PICs were used as induction variables! So they >are veery muchi >> computational types.r >oB >Sorry, but if in my data record, I have a 8 byte field containing
 >" $234.67" ,t? >no matter what picture clause I have in the record definition,t >COBOL will not5& >allow any computation of that number. >y& >Similarly, if I have an item such as: > ! >05 chocolate-cake PIC $$$$9.99 .g >iG >I can move a numeric item to it,  which causes the numeric value to behA >converted to a numeric edited character field. But I cannot moven7 >chocolate-cake to another numeric field whose usage is  >computational because I+ >would then be moving a string to a number.   I Ah, but that is because you are using Cobol.  Had you used PL/I you wouldr not have had this limitation.6   >t >---' >Incoming mail is certified Virus Free. ; >Checked by AVG anti-virus system (http://www.grisoft.com).nA >Version: 6.0.502 / Virus Database: 300 - Release Date: 7/18/2003$ >$ ---s& Outgoing mail is certified Virus Free.: Checked by AVG anti-virus system (http://www.grisoft.com).@ Version: 6.0.502 / Virus Database: 300 - Release Date: 7/18/2003   ------------------------------    Date: 26 Jul 2003 00:41:58 -0700, From: mcbill20@hotmail.com (Bill McLaughlin)4 Subject: Problem sending SMTP mail:  SMTP_NOSUCHUSER= Message-ID: <e9cbc4f2.0307252341.26cebb96@posting.google.com>/  C Hello all. I've seen this error message mentioned in C.O.V. before,aB but only in relation to receiving mail and spam. I am getting this# error when I try to send smtp mail.   A I have a DSL connection with a domain name and static IP and NAT. 6 Everything else seems to work-- telnet, DNS, FTP, etc.  6 As soon as I send the mail, I get the following back:   ' ---- Transcript of session follows ----   A 553  %TCPIP-E-SMTP_NOSUCHUSER, no such user, MCBILL20@HOTMAIL.COMu  % ---- Recipients of this delivery ----    MCBILL20@HOTMAIL.COM (bounced)    ---- Unsent message follows ----  % Date: Sat, 26 Jul 2003 01:37:27 -0600n5 Message-Id: <03072601372726@shaggy.mcbill_nospam.com>a& From: user123@shaggy.mcbill_nospam.com To: MCBILL20@hotmail.com Subject: Testing X-VMS-To: MCBILL20@HOTMAIL.COM   This is a test5 ================== RFC 822 Headers ================== % Date: Sat, 26 Jul 2003 01:37:38 -0600n. Message-Id: <03072601373817@shaggy.mcbill.com>) From: TCPIP$SMTP@shaggy.mcbill_nospam.comt$ To: user123@shaggy.mcbill_nospam.com Subject: Returned mail   MAIL>   F The "_nospam"'s were added by me-- they are not really in the message.  D Does anyone have any ideas? I have tried just letting the VMS box goB straight out and I've also tried using my ISP's SMTP server as the? alternate gateway. My SMTP logfiles just have one line for eachc- message saying the same thing-- no such user.e  
 Any ideas?   Thanks.a Bill McLaughlin1   ------------------------------  % Date: Sat, 26 Jul 2003 03:59:42 -0400 * From: JF Mezei <jfmezei.spamnot@istop.com>8 Subject: Re: Problem sending SMTP mail:  SMTP_NOSUCHUSER) Message-ID: <3F2234EC.7FEE91A5@istop.com>s   Bill McLaughlin wrote:C > I have a DSL connection with a domain name and static IP and NAT. 8 > Everything else seems to work-- telnet, DNS, FTP, etc. > 7 > As soon as I send the mail, I get the following back:e > ) > ---- Transcript of session follows ----  > C > 553  %TCPIP-E-SMTP_NOSUCHUSER, no such user, MCBILL20@HOTMAIL.COM-    $ DEFINE/SYSTEM TCPIP$SMTP_LOG_LEVEL 2  DEFINE/SYSTEM TCPIP$SMTP_NOSEY 1% DEFINE/SYSTEM TCPIP$SMTP_SYMB_TRACE 1-   Then, TCPIP> STOP MAIL 	 TCPIP> START MAILr  L Then you send your message. In the TCPIP$SMTP_COMMON: directory, look at theN log file and you will sed the actual dialogue between your machine and that of+ hotmail and may see a more obvious problem.   I When using NAT etc, one often has problems with domain names. If your VMSmN machines thinks of itself as "pastry.chocolate.com", but beyond the router andJ onto the internet, reverse translation of your internet IP address revealsN that you are  customer76382.yourisp.com, some mailers may balk at your message and think it is spam.    ------------------------------  % Date: Sat, 26 Jul 2003 01:07:29 -0700a$ From: "Eric Bruno" <eric@ebruno.org> Subject: Re: Sun and SCO0 Message-ID: <gnOdnaq4Ntxkq7-iU-KYvw@comcast.com>  H "Bob Koehler" <koehler@eisner.nospam.encompasserve.org> wrote in message- news:4jPXVjhbY4yr@eisner.encompasserve.org...o5 > In article <uqpPmMr5zJvw@eisner.encompasserve.org>,s= koehler@eisner.nospam.encompasserve.org (Bob Koehler) writes:rJ > > In article <bfgvpg$lik$1@new-usenet.uk.sun.com>, Andrew Harrison SUNUK; Consultancy <Andrew_No.Harrison_No@nospamn.sun.com> writes:t > >>C > >> You didn't consider that the deal could simply be a technologysB > >> licensing deal that has nothing to do with SCO's ongoing case > >> against IBM ??? > >a > >    Nope. >nG >    And the July 21 interview with Scott McNealy in eWeek supports our 3 >    skepticism on Sun's true feelings about Linux.h >vH Two years ago Sun as going to kill it's Solaris x86 platform in favor of Linux.   This now hasoJ flipped 180%.  The Solaris x86 community fought long and hard change Sun's	 position.nI Since Sun has a solid x86 Unix with Solaris x86 offering. Linux is not asa( critical to Sun in order to get into x86H installations, unlike HP and IBM which do not have x86 versions of their
 Unix flavors.oH Installing Solaris x86 from a sales and marketing position will possible allow Sun a betterB opportunity to sell Ultrasparc technology as machines come due for replacement. Since the OS is the same.n  I Due to neglect Sun is way behind in drivers for current hardware for x86.C	 Access to 9 SCO's source base provides access to current x86 drivers.a   Eric Bruno.e   ------------------------------   Date: 26 Jul 2003 09:36:04 GMT/ From: "Dave Weatherall" <djweath@attglobal.net>e, Subject: Re: Sun Micro Profit, Revenues Fall5 Message-ID: <DTiotGxQ0bj6-pn2-dME3yCYBldWy@localhost>e  4 On Thu, 24 Jul 2003 13:21:24 UTC, "Fred Kleinsorge" ( <my-last-name@stardotzko.dec.com> wrote:  = > "mist dragon" <mistdragon@zdnetonebox.com> wrote in messagei9 > news:7500353b.0307232325.7a8c9a6b@posting.google.com...p   <Snip>  M > Sun is conflicted.  Solaris vs Linux.  Sounds like the VMS vs UNIX struggleeJ > DEC went through.  In the end DEC could not focus on either.  Solaris isE > their bread & butter legacy revenue stream... mostly tied to a slow.I > proprietary CPU that costs real money to attempt to speed up.  Linux iseM > starting to deliver the promise of the UNIX makers (in particular Sun) when3N > they attacked the "proprietary" OS market with "Open" systems... but can SunN > make money if they go to both a commodity HW base *and* a commodity OS base?  E And cHumPaq isn't?  HP-UX, Tru-64 and Linux. You've not been reading r the ads in your Dr.Dobbs Fred.  @ I can still see Sun going PowerPC for Big-Endian an Opteron for E Litlle-endian machines. They already have  the customer base. Now if 0> they did a deal to sell Charon-VAX (or -AXP) on Opteron under C Little-Endian Solaris, could they become the biggest source of VMS l+ license revenue? Oh well, dreams are cheap.    -- i Cheers - Dave.  C PS If Scott and Robert take me up on the idea, I'll require only a n small fee :-)    ------------------------------   End of INFO-VAX 2003.410 ************************