Here is an old program I found. This was for a machine with manual tool change. I think for an automatic tool change you'd just add in the tool number, such as T1 and an M6. However, if I looked, there may be a bunch of M codes for each step of the tool change if your machine does not execute the M6.
I had a special editor I used to use that would number line numbers with a L instead of an N, and would strip the line numbers when the program was uploaded. This is because line numbers are not line numbers, they are word numbers. Note that line numbers increment by the number of words in the line before. And, using subroutines, you'd need N in there for a proper pointer to the right spot in memory to jump to. So N had a special purpose for some uses, and had to be kept in there, whereas, word numbers were for tracking where a subroutine actually ended up being loaded in memory.
All program comments had to be stripped out with the communications software.
When I think of the giant PITA this is, it is really not worth Bobcad's effort to make this post processor. Your control is totally obsolete, and only holds 1024 'words' of command. Modern CAM is not very conservative with code, so you need some pretty special techniques to shorten and condense your program to get it to fit memory. For example, Bandit will cut full circles with a single word, but your CAM will need to output in 4 quadrants, probably 4 words each, so that is 16 words of your precious 1024 memory just to cut a circle with CAM
;Drilling holes in edges of these parts that were supplied punched.
;The first program is for drilling and threading the holes in the
;part (NTP04.1) .25" deep. The second program (line53) is for the thru holes
;Tapping subroutines are slightly different for each program,
;and there are two different subroutines listed at the end of this
;program
;X0Y0=BACK LEFT CORNER OF PART
L1 N1& G90
L2 X0 Y0 Z.1 G92 (sets datum at current position)
L6 X0 Y0 Z.1 G93 (sets coordinate displays to match the datum)
L10 F2.0
L11 S80 (speed is a percentage of full motor rpm, no direct rpm commands are possible)
L12 /X.125 /Y-0.0625
L14 T100 ;1/8 CENTER DRILL (this is the length offset call for T1)
L15 M3
L16 Z-.075 G81
L18 /Z0
L19 /X.625
L20 G80
L21 /Z.1
L22 M5
L23 T0
L24 M0
L25 F2.0
L26 S95
L27 T200 ;#50DRILL
L28 M3
L29 /Z-.360 Z.04 /Z-.01 G83
L33 /Z0
L34 /X.125
L35 G80
L36 /Z.1
L37 M5
L38 T0
L39 M0
L40 F6.4
L41 S15
L42 T300 ;#2-56 TAP
L43 /N105 ;to tapping subroutine
L44 /X.625
L45 /N105 ;to tapping subroutine
L46 T0
L47 /Z.1
L48 /X0 /Y0
L50 M2
L51 M0
L52 M0
;Second program for part # NTP04.2 with thru holes
;X0Y0=BACK LEFT CORNER OF PART
L53 G90
L54 X0 Y0 Z.1 G92
L58 X0 Y0 Z.1 G93
L62 F2.0
L63 S80
L64 /X.125 /Y-0.0625
L66 T100 ;1/8 CENTER DRILL
L67 M3
L68 Z-.075 G81
L70 /Z0
L71 /X.625
L72 G80
L73 /Z.1
L74 M5
L75 T0
L76 M0
L77 F2.0
L78 S95
L79 T200 ;#50DRILL
L80 M3
L81 /Z-.437 Z.04 /Z-.01 G83
L85 /Z0
L86 /X.125
L87 G80
L88 /Z.1
L89 M5
L90 T0
L91 M0
L92 F6.4
L93 S15
L94 T300 ;#2-56 TAP
L95 /N116
L96 /X.625
L97 /N116 ;to tapping subroutine
L98 T0
L99 /Z.1
L100 /X0 /Y0
L102 M0
L103 N53
L104 M0
L105 Z-.220 G84 ;START SUBROUTINE FOR TAPPING BLIND HOLE
L107 /Z0
L108 G80
L109 Z-.320 G84
L111 /Z0
L112 G80
L113 /Z.1
L114 /N0
L115 M0
L116 Z-.220 G84 ;START SUBROUTINE FOR TAPPING THROUGH HOLE
L118 /Z0
L119 G80
L120 Z-.320 G84
L122 /Z0
L123 G80
L124 Z-.47 G84
L126 /Z0
L127 G80
L128 /N0