[comp.sources.bugs] Hp 41c assembler and bar code generator --- PATCH #1

markb@sm.unisys.com.UUCP (Mark Biggar) (09/24/88)

The following patches correct some spelling and formatting errors in the
manual pages and some errors in the test files that are a hold over from
before the Sigma character was represented by '~' (SIG was used instead).

Run this file with "patch -N -p0" in the directory where the distribution
was unshared.

Mark Biggar
{allegra,burdvax,cbosgd,hplabs,ihnp4,akgua,sdcsvax}!sdcrdcf!markb
markb@rdcf.sm.unisys.com
-----------------------------

*** doc/asm41c.l.old	Wed Sep  7 14:45:02 1988
--- doc/asm41c.l	Fri Sep 23 12:59:46 1988
***************
*** 1,4 ****
! .TH ASM41C 1 "Sep  7,1988"
  .UC 4
  .SH NAME
  asm41c \- HP 41c assembler
--- 1,4 ----
! .TH ASM41C 1 "Sep 17,1988"
  .UC 4
  .SH NAME
  asm41c \- HP 41c assembler
***************
*** 16,22 ****
  The available flags are:
  .TP
  .B \-n
! Specifies that all numbers in programs are to be proceded by a zero
  byte just as if the program had been entered via the 41c keyboard.
  The default action of the assembler is to not include zero bytes before
  numbers unless they are necessary to separate two consecutive numbers.
--- 16,22 ----
  The available flags are:
  .TP
  .B \-n
! Specifies that all numbers in programs are to be proceeed by a zero
  byte just as if the program had been entered via the 41c keyboard.
  The default action of the assembler is to not include zero bytes before
  numbers unless they are necessary to separate two consecutive numbers.
***************
*** 40,50 ****
  The default is that error messages be produced on stderr.
  .TP
  .B \-t
! Specifies the title to be used on listings and barcode output.
  This may also be specified in the input using the ".title" directive.
  .TP
  .B -o
! Specifies the output barcode file name.
  The default is "bar.out".
  .bp
  .SH DIRECTIVES
--- 40,50 ----
  The default is that error messages be produced on stderr.
  .TP
  .B \-t
! Specifies the title to be used on listings and bar code output.
  This may also be specified in the input using the ".title" directive.
  .TP
  .B -o
! Specifies the output bar code file name.
  The default is "bar.out".
  .bp
  .SH DIRECTIVES
***************
*** 64,70 ****
  If the file
  .I module.rom
  is not found in the current directory, then a search is made of
! the default rom library directory "/usr/local/lib/hprom".
  This directive has the same effect as the "-r" flag on the command
  line.
  Example:
--- 64,70 ----
  If the file
  .I module.rom
  is not found in the current directory, then a search is made of
! the default rom library directory "/usr/local/lib/hp41c".
  This directive has the same effect as the "-r" flag on the command
  line.
  Example:
***************
*** 71,77 ****
  .sp 1
  \&.rom wand
  .sp 1
! Loads the entry points for the barcode wand.
  .sp 1
  Note: if a rom module entry point has the same name as a builtin operator
  then the builtin operator will hide the rom entry point.
--- 71,77 ----
  .sp 1
  \&.rom wand
  .sp 1
! Loads the entry points for the bar code wand.
  .sp 1
  Note: if a rom module entry point has the same name as a builtin operator
  then the builtin operator will hide the rom entry point.
***************
*** 116,122 ****
  .I name .
  the optional keyword
  .I private
! specifices the barcode produced sould be for a private program
  (one that can not be listed by the 41c).
  the following lines in the input are take to be 41c assembly instructions
  that make up the program.
--- 116,122 ----
  .I name .
  the optional keyword
  .I private
! specifices the bar code produced should be for a private program
  (one that can not be listed by the 41c).
  the following lines in the input are take to be 41c assembly instructions
  that make up the program.
***************
*** 123,157 ****
  The program ends at the end of the input or at the first following directive.
  THis means that and roms or defined symbols should be specified before the
  start of the program.
! See the section below for a discription of the assembler instruction format.
  .TP
  .B .exec \fR\fItext
  .br
! The following single line of 41c code is assembled and the barcode
! output is set up for an executable barcode line.
! The line of barcode is labeled with the text from the rest of the line.
  .TP
  .B .string \fR\fI[append] \"string\" text
  .br
! Generate a string data barcode line labeled with the text.
  The optional
  .I append
  keyword specifies that the string data is to be append on to the alpha
! buffer, otherwise the alpha buffer will be cleared when the barcode line
  is read.
  .TP
  .B .data \fR\fI'number' text
  .br
! Generate a numeric data barcode line labeled with the text.
  .TP
  .B .bytes \fR\fI[checksum] bytes... text
! Generate a barcode line consisting of the specified decimal bytes
  labeled with the text.
  The optional
  .I checksum
  keyword specifies that a checksum is to be computer and placed
! at the front of the barcode line.
! The directive can be used ot create arbitrary line of barcode such as the
  one and two byte paper keyboard lines.
  .TP
  .B ".clear rom"
--- 123,157 ----
  The program ends at the end of the input or at the first following directive.
  THis means that and roms or defined symbols should be specified before the
  start of the program.
! See the section below for a description of the assembler instruction format.
  .TP
  .B .exec \fR\fItext
  .br
! The following single line of 41c code is assembled and the bar code
! output is set up for an executable bar code line.
! The line of bar code is labeled with the text from the rest of the line.
  .TP
  .B .string \fR\fI[append] \"string\" text
  .br
! Generate a string data bar code line labeled with the text.
  The optional
  .I append
  keyword specifies that the string data is to be append on to the alpha
! buffer, otherwise the alpha buffer will be cleared when the bar code line
  is read.
  .TP
  .B .data \fR\fI'number' text
  .br
! Generate a numeric data bar code line labeled with the text.
  .TP
  .B .bytes \fR\fI[checksum] bytes... text
! Generate a bar code line consisting of the specified decimal bytes
  labeled with the text.
  The optional
  .I checksum
  keyword specifies that a checksum is to be computer and placed
! at the front of the bar code line.
! The directive can be used to create arbitrary line of bar code such as the
  one and two byte paper keyboard lines.
  .TP
  .B ".clear rom"
***************
*** 164,170 ****
  .SH "ASSEMBLER CODES"
  All the 41c assembler code are just as they are displayed on the 41c except
  that the greek sigma character has be replaced with the '~' character,
! the arrow character has been relaced with the '}' charecter,
  the not equal symbol has be replaced with the string '!=' and the
  angle character has been replaced with the string 'ANG' in the one place
  it was used so far (the advantage module).
--- 164,170 ----
  .SH "ASSEMBLER CODES"
  All the 41c assembler code are just as they are displayed on the 41c except
  that the greek sigma character has be replaced with the '~' character,
! the arrow character has been relaced with the '}' character,
  the not equal symbol has be replaced with the string '!=' and the
  angle character has been replaced with the string 'ANG' in the one place
  it was used so far (the advantage module).
***************
*** 195,205 ****
  Because some of the operators have both short and long forms
  (RCL STO GTO LBL),
  the operators RCL2, STO2, GTO3 and LBL2 have been defined to
! force the long form (RCL 0 assmebles to 032 while RCL2 0 assembles
  to 144 000.)
  The two spare two-byte operators are included as SPARE1 and SPARE2,
  and the W string operator is defined (not that these actually do anything
! usefull.)
  There is the operator "XROM\ dd,dd" and a special operator "BYTE\ ddd" that
  just includes the value into the output.
  .SH FILES
--- 195,205 ----
  Because some of the operators have both short and long forms
  (RCL STO GTO LBL),
  the operators RCL2, STO2, GTO3 and LBL2 have been defined to
! force the long form (RCL 0 assembles to 032 while RCL2 0 assembles
  to 144 000.)
  The two spare two-byte operators are included as SPARE1 and SPARE2,
  and the W string operator is defined (not that these actually do anything
! useful.)
  There is the operator "XROM\ dd,dd" and a special operator "BYTE\ ddd" that
  just includes the value into the output.
  .SH FILES
***************
*** 233,243 ****
  .br
  \&.../time.rom      time module
  .br
! \&.../wand.rom      barcode wand internal rom
  .br
! bar.out           default barcode output file
  .SH SEE ALSO
! bar41c(l)         barcode file to troff translator
  .br
  Auxiliary documentation:
  .in +.5i
--- 233,243 ----
  .br
  \&.../time.rom      time module
  .br
! \&.../wand.rom      bar code wand internal rom
  .br
! bar.out           default bar code output file
  .SH SEE ALSO
! bar41c(l)         bar code file to troff translator
  .br
  Auxiliary documentation:
  .in +.5i



*** doc/bar41c.l.old	Thu Sep  8 10:16:27 1988
--- doc/bar41c.l	Fri Sep 23 13:04:50 1988
***************
*** 1,7 ****
  .TH BAR41C 1 "Sep  7,1988"
  .UC 4
  .SH NAME
! bar41c \- HP 41c barcode generator
  .SH SYNOPSIS
  .B bar41c
  [
--- 1,7 ----
  .TH BAR41C 1 "Sep  7,1988"
  .UC 4
  .SH NAME
! bar41c \- HP 41c bar code generator
  .SH SYNOPSIS
  .B bar41c
  [
***************
*** 10,33 ****
  .SH DESCRIPTION
  .I Bar41c
  is a filter that takes files like those produced by asm41c(1) and generates
! *roff macros to print the barcodes.
  The available flags are:
  .TP
  .B \-w
! The integer argument specifies the maximun width of a program barcode line
  in narrow bar widths.
! Value is used to fill out the line of program barcode to a given width.
! The default value of 312 is the equivlent to 6.5 inches using the versitec
  macro set.
! Narrow bars are half the width of wide bars and the spaces inbetween are
  the same width as the narrow bars.
! As a line of barcode can not contain more then 16 bytes the maximum usefull
  value for -w is 456 (16 bytes * 8 bits * 3 bars (width of wide bar + space)
  + 9 (start and stop bars (3 narrow and 1 wide))).
  .TP
  .B \-t
  Specifies that byte tags are to be generated.
! The *roff macros will be called so that each byte in a line of barcode
  is labeled with its value.
  .SH DIRECTIVES
  An input file for bar41c consists of a sequence of directives
--- 10,33 ----
  .SH DESCRIPTION
  .I Bar41c
  is a filter that takes files like those produced by asm41c(1) and generates
! *roff macros to print the bar codes.
  The available flags are:
  .TP
  .B \-w
! The integer argument specifies the maximum width of a program bar code line
  in narrow bar widths.
! Value is used to fill out the line of program bar code to a given width.
! The default value of 312 is the equivalent to 6.5 inches using the versitec
  macro set.
! Narrow bars are half the width of wide bars and the spaces in between are
  the same width as the narrow bars.
! As a line of bar code can not contain more then 16 bytes the maximum useful
  value for -w is 456 (16 bytes * 8 bits * 3 bars (width of wide bar + space)
  + 9 (start and stop bars (3 narrow and 1 wide))).
  .TP
  .B \-t
  Specifies that byte tags are to be generated.
! The *roff macros will be called so that each byte in a line of bar code
  is labeled with its value.
  .SH DIRECTIVES
  An input file for bar41c consists of a sequence of directives
***************
*** 35,41 ****
  .PP
  The directives are:
  .TP
! .B title /fR/fItext
  The
  .I text
  is used as the argument for the .Tl macro.
--- 35,41 ----
  .PP
  The directives are:
  .TP
! .B title \fR\fItext
  The
  .I text
  is used as the argument for the .Tl macro.
***************
*** 42,83 ****
  This directive has no other effect.
  .TP
  .B data \fR\fI'number' text
! A numeric data barcode line type 6 is produced with
  .I text
! as the barcode line's label.
  .B string \fR\fI[append] text
! A string data barcode line is produced with
  .I text
  as its label.
  If the optional keyword
  .I append
! is present then an append barcode line of type 8 is produced, otherwise
! a normal string barcode line type 7 is produced.
! The foolowing line in the input should be a single line of byte values
  consisting of the character values for the string data.
  .TP
  .B bytes \fR\fI[checksum] text
! A barcode line is produced using the following line of byte values
  and using
  .I text
  as the label.
  If the optional keyword
  .I checksum
! is present a checksum is first conputed and append on the front of the
  list of byte values.
  Only the first 16 values (15 if a checksum is specified) are used,
  others are ignored.
  .TP
  .B program \fR\fI[private] name
! Start generating barcode line for the program
  .I name.
  The following lines of byte values terminated by a line starting with
  the keyword "end" consist of the instructions for the program, one
  instruction per line (this is used to generate the instruction numbers
! in the standard barcode line labels which look like "Line 1 (1 - 3)".)
  If the optional keyword
  .I private
! is used then program barcode line of type 2 (private) are produced,
  otherwise type 1 is used.
  .SH FILES
  .ta 1.5i
--- 42,83 ----
  This directive has no other effect.
  .TP
  .B data \fR\fI'number' text
! A numeric data bar code line type 6 is produced with
  .I text
! as the bar code line's label.
  .B string \fR\fI[append] text
! A string data bar code line is produced with
  .I text
  as its label.
  If the optional keyword
  .I append
! is present then an append bar code line of type 8 is produced, otherwise
! a normal string bar code line type 7 is produced.
! The following line in the input should be a single line of byte values
  consisting of the character values for the string data.
  .TP
  .B bytes \fR\fI[checksum] text
! A bar code line is produced using the following line of byte values
  and using
  .I text
  as the label.
  If the optional keyword
  .I checksum
! is present a checksum is first computed and append on the front of the
  list of byte values.
  Only the first 16 values (15 if a checksum is specified) are used,
  others are ignored.
  .TP
  .B program \fR\fI[private] name
! Start generating bar code line for the program
  .I name.
  The following lines of byte values terminated by a line starting with
  the keyword "end" consist of the instructions for the program, one
  instruction per line (this is used to generate the instruction numbers
! in the standard bar code line labels which look like "Line 1 (1 - 3)".)
  If the optional keyword
  .I private
! is used then program bar code line of type 2 (private) are produced,
  otherwise type 1 is used.
  .SH FILES
  .ta 1.5i
***************
*** 93,99 ****
  .I "Creating Your Own HP-41 Bar Code Manual. 82153-90019"
  .in -.5i
  .SH BUGS
! There is no provision made for the sequenced data barcode types
  (9, 10 & 11).
  .SH AUTHORS
  Mark A. Biggar
--- 93,99 ----
  .I "Creating Your Own HP-41 Bar Code Manual. 82153-90019"
  .in -.5i
  .SH BUGS
! There is no provision made for the sequenced data bar code types
  (9, 10 & 11).
  .SH AUTHORS
  Mark A. Biggar



*** test/single.test.old	Wed Aug 24 13:22:29 1988
--- test/single.test	Fri Sep 23 13:08:21 1988
***************
*** 7,14 ****
  X<Y?    # 068
  X>Y?    # 069
  X<=Y?   # 070
! SIG+    # 071
! SIG-    # 072
  HMS+    # 073
  HMS-    # 074
  MOD     # 075
--- 7,14 ----
  X<Y?    # 068
  X>Y?    # 069
  X<=Y?   # 070
! ~+      # 071
! ~-      # 072
  HMS+    # 073
  HMS-    # 074
  MOD     # 075
***************
*** 51,57 ****
  ->HR    # 109
  RND     # 110
  ->OCT   # 111
! CLSIG   # 112
  X<>Y    # 113
  PI      # 114
  CLST    # 115
--- 51,57 ----
  ->HR    # 109
  RND     # 110
  ->OCT   # 111
! CL~     # 112
  X<>Y    # 113
  PI      # 114
  CLST    # 115



*** test/twobyte.test.old	Fri Aug 19 14:34:13 1988
--- test/twobyte.test	Fri Sep 23 13:06:57 1988
***************
*** 11,17 ****
  ISG     0       # 150 000
  DSE     0       # 151 000
  VIEW    0       # 152 000
! SIGREG  0       # 153 000
  ASTO    0       # 154 000
  ARCL    0       # 155 000
  FIX     0       # 156 000
--- 11,17 ----
  ISG     0       # 150 000
  DSE     0       # 151 000
  VIEW    0       # 152 000
! ~REG    0       # 153 000
  ASTO    0       # 154 000
  ARCL    0       # 155 000
  FIX     0       # 156 000