The g MERGE function allows you to load a part of a program or a data card; instead of all of it. There’s not much in the microcode for the function but here it is:
; 0x45 is the hexcode for the g MERGE program step 06047 shift left a[x] ; A= 00000000000450 06050 delayed rom 016 06051 a -> rom address ; 0x45 =01 000 101 =0105 do_45_g_merge: 07105 if n/c go to 07055 07055 CRC 1200 ; set merge flag 07056 delayed rom 00 07057 if n/c go to 0125 00125 binary 00126 0 -> s 3 00127 delayed rom 02 00130 jsb 01205 ; 0->s4,6,7,8,10,13 00131 CRC 1500 ; test/clear pause flag 00132 if 1 = s 3 00133 then go to 0257 00134 jsb 0116 ; if run or SST then ... 00135 ...
All it does is set a flag in the card reader circuit (then clear all prefixes and check for SST or run mode – just like every other function).
The smarts are in the card read microcode. You can see this in HP-67 Card Reader.
You can see more of the g MERGE microcode in:
67-g-merge.txt