home *** CD-ROM | disk | FTP | other *** search
/ io Programmo 23 / IOPROG_23.ISO / SOFT / ASM / BCDASM.ZIP / BCDASM / EXAMPLES / EXPAS.PAS < prev    next >
Encoding:
Pascal/Delphi Source File  |  1997-06-03  |  1.2 KB  |  33 lines

  1.         (* Sample Turbo Pascal DOS app using BCDASM routines *)
  2. {$G+}   (* 80286 CPU *) (* Optional: $X+ use extended syntax *)
  3.  
  4. uses    BCD;
  5.  
  6. const
  7.         BCDSZ = 10;
  8.         BUFSZ = 256;
  9. var
  10.         bnum : array[1..BCDSZ] of byte; (* BCD variable goes here *)
  11.         buf  : array[1..BUFSZ] of char; (* String output buffer   *)
  12.         pbcd : pbyte;                   (* ^byte, from BCD.PAS    *)
  13.         nstr : string;
  14.         acc  : integer;
  15.         slen : word;
  16.  
  17. begin
  18.         nstr := '61728394506172839'#0;  (* Note trailing zero     *)
  19.         pbcd := Addr(bnum);             (* Ptr to BCD variable    *)
  20.  
  21.         acc  := bcdA2p(pbcd, BCDSZ,     (* Convert nstr to BCD    *)
  22.                    Addr(nstr[1]) );     (* Point past length byte *)
  23.         acc  := bcdAdd(pbcd, pbcd, BCDSZ);  (* Add to self        *)
  24.         acc  := bcdNeg(pbcd, BCDSZ);    (* Reverse sign           *)
  25.  
  26.                                         (* Convert BCD to Ascii   *)
  27.         slen := bcdFmt(Addr(buf),BUFSZ, pbcd,BCDSZ,
  28.                 32,$ffff,$ffff,$ff, #$ff,#$ff,#$ff,#$ff);
  29.         write('Hello from BCDASM: ');
  30.         slen := WriteZStr(Addr(buf));   (* Display Ascii string   *)
  31.         writeln;
  32.         Halt(0);
  33. end.