.:=.data base.: &0 group.: &0 functs.: &0 wrdsze.: &010 stopsze.: 0154 parity.: 0156 eoparty.: 0145 dtr.: 0156 rts.: 0156 threint.: 0156 drint.: 0156 rlint.: 0156 modint.: 0156 buff.: 0 .:=.[0131] baud.: &0 abaud.: &0156 &0454 &01130 &02260 &04540 &011300 &022600 &045400 dbaud.: &02027 &0600 &0300 &0140 &060 &030 &014 &06 error.: &0 erflg.: &0 .:=.text main.: call c.ent af=>sp=>sp=>sp=>sp call formfee. hl=&main. hl->error. call finadd. hl=&01=>sp call intal. af<=sp a=0377-c=0-^b jp .1 call terflg. .1: /53 hl=&0=>sp call intal. af<=sp a=0377-c=0-^b jp .3 call terflg. .3: /55 hl=&0177770+de a=0401->*hl+a-^a->*(hl+1) .5: / 55 hl=&0177770+de a=*hl-04=*(hl+1)-^0 jp .7 hl=&0177770+de hl=a^hl hl->group. call bgsel. call twalk. call rwalk. call bitest. call ovtest. call albaud. call parytes. hl=&0177770+de a=*hl+0401->*hl=*(hl+1)+^0->*hl jmp .5 .7: /65 call memtest. call partest. call clktest. jmp c.ret .53: 0162,0145,0141,0144,040,0164,0145,0163 0164,040,0164,0151,0155,0145,040,075 040,0 .33: 0162,0145,0141,0144,040,0156,0157,0156 055,0164,0145,0163,0164,040,0164,0151 0155,0145,040,075,040,0 .12: 0163,0145,0164,040,0164,0151,0155,0145 040,075,040,0 .71: 040,052,052,052,052,052,052,012 012,0 .51: 012,052,052,052,052,052,052,040 0164,0145,0163,0164,0151,0156,0147,040 0164,0150,0145,040,0143,0154,0153,040 0 clktest.: call c.ent hl=0177652+sp->sp hl=&clktest. hl->error. hl=&.51 sp<=hl call puts. af<=sp call torstd. hl=&.71 sp<=hl call puts. af<=sp call intial. hl=&0177756+de a=073->*hl+a-^a->*(hl+1) hl=&0177760+de a=073->*hl+a-^a->*(hl+1) hl=&0177762+de a=027->*hl+a-^a->*(hl+1) hl=&0177764+de a=037->*hl+a-^a->*(hl+1) hl=&0177766+de a=06->*hl+a-^a->*(hl+1) hl=&0177770+de a=012->*hl+a-^a->*(hl+1) hl=&.12 sp<=hl call puts. af<=sp hl=&0177756+de sp<=hl call printim. af<=sp hl=&012=>sp call putc. af<=sp hl=&0177732+de sp<=hl hl=&0177756+de sp<=hl call toclk. af<=sp<=sp hl=&01=>sp hl=&0177732+de sp<=hl call timest. af<=sp<=sp hl=&0=>sp hl=&0177732+de sp<=hl call timest. af<=sp<=sp hl=&0177652+de a-a->*hl->*(hl+1)->*(hl+1)->*(hl+1) .32: / 100 hl=&0177652+de sp<=hl a=047+a-^a->c.r0->c.r0[01]=047->c.r0[03]=020->c.r0[02] hl=&c.r0=>sp call c.lclt jp .52 .72: / 100 hl=&0177652+de sp<=hl a=0+a-^a->c.r0->c.r0[01]=0->c.r0[03]=0401->c.r0[02] hl=&c.r0=>sp call c.ladd af<=sp jmp .32 .52: /101 hl=&01=>sp hl=&0177732+de sp<=hl call timerd. af<=sp<=sp hl=&0=>sp hl=&0177656+de sp<=hl call timerd. af<=sp<=sp hl=&0177702+de sp<=hl hl=&0177732+de sp<=hl call fmclk. af<=sp<=sp hl=&0177716+de sp<=hl hl=&0177656+de sp<=hl call fmclk. af<=sp<=sp hl=&.33 sp<=hl call puts. af<=sp hl=&0177702+de sp<=hl call printim. af<=sp hl=&012=>sp call putc. af<=sp hl=&.53 sp<=hl call puts. af<=sp hl=&0177716+de sp<=hl call printim. af<=sp hl=&012=>sp call putc. af<=sp hl=&0177702+de sp<=hl hl=&0177716+de sp<=hl hl=&0177756+de sp<=hl call timechk. af<=sp<=sp<=sp jmp c.ret printim.: call c.ent hl=&04+de hl=a^hl hl+(bc=&010) bc=^hl=>sp call printda. af<=sp hl=&04+de hl=a^hl hl+(bc=&012) bc=^hl=>sp call printmo. af<=sp hl=&04+de hl=a^hl hl+(bc=&06) bc=^hl=>sp call putdec. af<=sp hl=&040=>sp call putc. af<=sp hl=&04+de hl=a^hl hl+1+1+1+1 bc=^hl=>sp call putdec. af<=sp hl=&072=>sp call putc. af<=sp hl=&04+de hl=a^hl hl+1+1 bc=^hl=>sp call putdec. af<=sp hl=&072=>sp call putc. af<=sp hl=&04+de hl=a^hl bc=^hl=>sp call putdec. af<=sp hl=&015=>sp call putc. af<=sp jmp c.ret .:=.data .73: &.14 &.34 &.54 &.74 &.15 &.35 &.55 &.75 .:=.text .75: 0151,0154,0154,0145,0147,0141,0154,040 0144,0141,0171,040,0 .55: 0163,0141,0164,040,0 .35: 0146,0162,0151,040,0 .15: 0164,0150,0165,040,0 .74: 0167,0145,0144,040,0 .54: 0164,0165,0145,040,0 .34: 0155,0157,0156,040,0 .14: 0163,0165,0156,040,0 printda.: call c.ent hl=&04+de a=*(hl+1)|a jm .4 hl=&04+de a=06-*hl=0-^*(hl+1) jp .2 .4: bc=(hl=.73[016]) jmp .6 .2: hl=&04+de hl=a^hl hl+hl bc=&.73 hl+bc bc=^hl .6: sp<=bc call puts. af<=sp jmp c.ret .:=.data .16: &.36 &.56 &.76 &.17 &.37 &.57 &.77 &.101 &.301 &.501 &.701 &.111 &.311 .:=.text .311: 0151,0154,0154,0145,0147,0141,0154,040 0155,0157,0156,0164,0150,040,0 .111: 0144,0145,0143,040,0 .701: 0156,0157,0166,040,0 .501: 0157,0143,0164,040,0 .301: 0163,0145,0160,040,0 .101: 0141,0165,0147,040,0 .77: 0152,0165,0154,040,0 .57: 0152,0165,0156,040,0 .37: 0155,0141,0171,040,0 .17: 0141,0160,0162,040,0 .76: 0155,0141,0162,040,0 .56: 0146,0145,0142,040,0 .36: 0152,0141,0156,040,0 printmo.: call c.ent hl=&04+de a=*(hl+1)|a jm .21 hl=&04+de a=013-*hl=0-^*(hl+1) jp .01 .21: bc=(hl=.16[030]) jmp .41 .01: hl=&04+de hl=a^hl hl+hl bc=&.16 hl+bc bc=^hl .41: sp<=bc call puts. af<=sp jmp c.ret .131: 0160,0141,0163,0163,0145,0163,040,0143 0154,0157,0143,0153,040,0164,0145,0163 0164,040,041,012,0 .321: 0164,0150,0145,040,0164,0145,0163,0164 040,0143,0154,0157,0143,0153,040,0144 0151,0144,0156,047,0164,040,0153,0145 0145,0160,040,0164,0151,0155,0145,040 0162,0151,0147,0150,0164,040,041,012 0 .711: 0164,0150,0145,040,0156,0157,0156,055 0164,0145,0163,0164,040,0143,0154,0157 0143,0153,040,0144,0151,0144,0156,047 0164,040,0151,0156,0143,0162,0145,0155 0145,0156,0164,040,0164,0150,0145,040 0164,0151,0155,0145,041,012,012,0 timechk.: call c.ent hl=&010+de bc=^hl=>sp hl=&04+de bc=^hl=>sp call arcmp. af<=sp<=sp a=c|b jnz .511 hl=&.711 sp<=hl call puts. af<=sp call terflg. .511: /190 hl=&06+de bc=^hl=>sp hl=&010+de bc=^hl=>sp call arcmp. af<=sp<=sp a=c|b jz .121 hl=&.321 sp<=hl call puts. af<=sp call terflg. jmp .521 .121: /195 hl=&erflg. a=*hl|*(hl+1) jnz .521 hl=&.131 sp<=hl call puts. af<=sp .521: /199 jmp c.ret arcmp.: call c.ent hl=0177766+sp->sp hl=&0177770+de a=0->*hl+a-^a->*(hl+1) hl=&0177766+de a=0->*hl+a-^a->*(hl+1) .331: / 209 hl=&0177766+de a=*hl-06=*(hl+1)-^0 jp .531 hl=&0177770+de sp<=hl hl=&0177766+de hl=a^hl hl+hl sp<=hl hl=&04+de hl=a^hl hl<>*sp;bc<=sp hl+bc sp<=hl hl=&0177766+de hl=a^hl hl+hl sp<=hl hl=&06+de hl=a^hl hl<>*sp;bc<=sp hl+bc bc<=sp a=*bc::*hl jnz .02=*(bc+1)::*(hl+1) .02: jz .61 bc=01 jmp .22 .61: bc=0 .22: hl<=sp a=*hl|c->*hl=*(hl+1)|b->*hl hl=&0177766+de a=*hl+0401->*hl=*(hl+1)+^0->*hl jmp .331 .531: /210 hl=&0177770+de hl=a^hl bc=hl jmp c.ret fmclk.: call c.ent af=>sp=>sp=>sp=>sp hl=&0177770+de a=0->*hl+a-^a->*(hl+1) .341: / 223 hl=&0177770+de a=*hl-010=*(hl+1)-^0 jp .541 hl=&0177770+de bc=^hl=>sp hl=&02=>sp call c.idiv hl<=sp hl+hl sp<=hl hl=&06+de hl=a^hl hl<>*sp;bc<=sp hl+bc sp<=hl hl=&0177770+de hl=a^hl hl+hl sp<=hl hl=&04+de hl=a^hl hl<>*sp;bc<=sp hl+bc sp<=hl call fmbcd. af<=sp<=sp hl=&0177770+de a=*hl+02->*hl=*(hl+1)+^0->*hl jmp .341 .541: /224 hl=&06+de hl=a^hl hl+(bc=&010) sp<=hl hl=&04+de hl=a^hl hl+(bc=&020) bc<=sp a=*hl->*bc=*(hl+1)->*(bc+1) hl=&06+de hl=a^hl hl+(bc=&012) sp<=hl hl=&04+de hl=a^hl hl+(bc=&022) bc<=sp a=*hl->*bc=*(hl+1)->*(bc+1) jmp c.ret toclk.: call c.ent hl=0177766+sp->sp hl=&0177770+de a=0->*hl+a-^a->*(hl+1) .351: / 239 hl=&0177770+de a=*hl-04=*(hl+1)-^0 jp .551 hl=&0177766+de sp<=hl hl=&0177770+de hl=a^hl hl+hl sp<=hl hl=&04+de hl=a^hl hl<>*sp;bc<=sp hl+bc bc<=sp a=*hl->*bc=*(hl+1)->*(bc+1) hl=&06+de bc=^hl=>sp hl=&0177766+de bc=^hl=>sp call tobcd. af<=sp<=sp hl=&06+de a=*hl+04->*hl=*(hl+1)+^0->*hl hl=&0177770+de a=*hl+0401->*hl=*(hl+1)+^0->*hl jmp .351 .551: /244 hl=&06+de bc=^hl=>sp hl=&06+de a=*hl+02->*hl=*(hl+1)+^0->*hl hl<=sp sp<=hl hl=&04+de hl=a^hl hl+(bc=&010) bc<=sp a=*hl->*bc=*(hl+1)->*(bc+1) hl=&06+de hl=a^hl sp<=hl hl=&04+de hl=a^hl hl+(bc=&012) bc<=sp a=*hl->*bc=*(hl+1)->*(bc+1) jmp c.ret fmbcd.: call c.ent hl=&06+de hl=a^hl sp<=hl hl=&04+de hl=a^hl hl+1+1 hl=a^hl bc=>sp=hl;hl+hl+hl+bc+hl;bc<=sp sp<=hl hl=&04+de hl=a^hl hl=a^hl hl<>*sp;bc<=sp hl+bc bc<=sp a=l->*bc=h->*(bc+1) jmp c.ret tobcd.: call c.ent hl=&04+de a=*hl-0144=*(hl+1)-^0 jp .361 hl=&06+de hl=a^hl hl+1+1 sp<=hl hl=&04+de bc=^hl=>sp hl=&012=>sp call c.idiv hl<=sp bc<=sp a=l->*bc=h->*(bc+1) hl=&06+de hl=a^hl sp<=hl hl=&04+de bc=^hl=>sp hl=&012=>sp call c.imod hl<=sp bc<=sp a=l->*bc=h->*(bc+1) .361: /275 jmp c.ret clkcom.: call c.ent hl=0177766+sp->sp hl=&06+de a=*hl|*(hl+1) jz .561 hl=&0177766+de a=0142->*hl=0->*(hl+1) jmp .761 .561: /288 hl=&0177766+de a=0152->*hl=0->*(hl+1) .761: / 289 hl=&04+de bc=^hl=>sp hl=&0177766+de bc=^hl=>sp call out. af<=sp<=sp call delay. hl=&04+de hl=a^hl a=l|040->l=h|0->h sp<=hl hl=&0177766+de bc=^hl=>sp call out. af<=sp<=sp call delay. hl=&04+de bc=^hl=>sp hl=&0177766+de bc=^hl=>sp call out. af<=sp<=sp call delay. jmp c.ret inclk.: call c.ent hl=0177764+sp->sp hl=&04+de a=*hl|*(hl+1) jz .171 hl=&0177764+de a=0142->*hl=0->*(hl+1) jmp .371 .171: /309 hl=&0177764+de a=0152->*hl=0->*(hl+1) .371: / 310 hl=&0177766+de a=0->*hl+a-^a->*(hl+1) hl=&0177770+de a=0->*hl+a-^a->*(hl+1) .571: / 312 hl=&0177770+de a=*hl-04=*(hl+1)-^0 jp .771 hl=&0177766+de sp<=hl hl=&0177764+de bc=^hl=>sp call in. af<=sp a=c&0401->c=b&0->b sp<=bc hl=&0177770+de bc=^hl=>sp call c.ilsh hl<=sp bc<=sp a=*bc|l->*bc=*(bc+1)|h->*bc call delay. hl=&02=>sp hl=&0177764+de bc=^hl=>sp call out. af<=sp<=sp call delay. hl=&0=>sp hl=&0177764+de bc=^hl=>sp call out. af<=sp<=sp call delay. hl=&0177770+de a=*hl+0401->*hl=*(hl+1)+^0->*hl jmp .571 .771: /320 hl=&0177766+de hl=a^hl bc=hl jmp c.ret outclk.: call c.ent hl=0177764+sp->sp hl=&06+de a=*hl|*(hl+1) jz .502 hl=&0177764+de a=0142->*hl=0->*(hl+1) jmp .702 .502: /335 hl=&0177764+de a=0152->*hl=0->*(hl+1) .702: / 336 hl=&0177770+de a=0->*hl+a-^a->*(hl+1) .112: / 337 hl=&0177770+de a=*hl-04=*(hl+1)-^0 jp .312 hl=&0177766+de sp<=hl hl=&04+de bc=^hl=>sp hl=&0177770+de bc=^hl=>sp call c.ursh hl<=sp a=l&0401->l=h&0->h bc<=sp a=l->*bc=h->*(bc+1) hl=&0177766+de bc=^hl=>sp hl=&0177764+de bc=^hl=>sp call out. af<=sp<=sp call delay. hl=&0177766+de hl=a^hl a=l|02->l=h|0->h sp<=hl hl=&0177764+de bc=^hl=>sp call out. af<=sp<=sp call delay. hl=&0177766+de bc=^hl=>sp hl=&0177764+de bc=^hl=>sp call out. af<=sp<=sp call delay. hl=&0177770+de a=*hl+0401->*hl=*(hl+1)+^0->*hl jmp .112 .312: /346 jmp c.ret timerd.: call c.ent af=>sp=>sp=>sp=>sp hl=&06+de bc=^hl=>sp hl=&014=>sp call clkcom. af<=sp<=sp hl=&06+de bc=^hl=>sp hl=&04=>sp call clkcom. af<=sp<=sp hl=&0177770+de a=0->*hl+a-^a->*(hl+1) .122: / 365 hl=&0177770+de a=*hl-012=*(hl+1)-^0 jp .322 hl=&0177770+de hl=a^hl hl+hl sp<=hl hl=&04+de hl=a^hl hl<>*sp;bc<=sp hl+bc sp<=hl hl=&06+de bc=^hl=>sp call inclk. af<=sp hl<=sp a=c->*hl=b->*(hl+1) hl=&0177770+de a=*hl+0401->*hl=*(hl+1)+^0->*hl jmp .122 .322: /366 hl=&06+de bc=^hl=>sp hl=&0=>sp call clkcom. af<=sp<=sp jmp c.ret timest.: call c.ent af=>sp=>sp=>sp=>sp hl=&06+de bc=^hl=>sp hl=&04=>sp call clkcom. af<=sp<=sp hl=&0177770+de a=0->*hl+a-^a->*(hl+1) .132: / 384 hl=&0177770+de a=*hl-012=*(hl+1)-^0 jp .332 hl=&06+de bc=^hl=>sp hl=&0177770+de hl=a^hl hl+hl sp<=hl hl=&04+de hl=a^hl hl<>*sp;bc<=sp hl+bc bc=^hl=>sp call outclk. af<=sp<=sp hl=&0177770+de a=*hl+0401->*hl=*(hl+1)+^0->*hl jmp .132 .332: /385 hl=&06+de bc=^hl=>sp hl=&010=>sp call clkcom. af<=sp<=sp hl=&06+de bc=^hl=>sp hl=&0=>sp call clkcom. af<=sp<=sp jmp c.ret delay.: call c.ent af=>sp=>sp=>sp=>sp hl=&0177770+de a=0->*hl+a-^a->*(hl+1) .142: / 398 hl=&0177770+de a=*hl-012=*(hl+1)-^0 jp .342 .542: / 398 hl=&0177770+de a=*hl+0401->*hl=*(hl+1)+^0->*hl jmp .142 .342: /399 jmp c.ret intial.: call c.ent hl=&0=>sp hl=&0147=>sp call out. af<=sp<=sp hl=&0=>sp hl=&0157=>sp call out. af<=sp<=sp hl=&01=>sp hl=&020=>sp call clkcom. af<=sp<=sp hl=&0=>sp hl=&020=>sp call clkcom. af<=sp<=sp jmp c.ret groupse.: call c.ent hl=functs. a=l&0374->l=h&0->h sp<=hl hl=&group. bc<=sp a=c|*hl->c=b|*(hl+1)->b sp<=bc hl=base. hl+(bc=&07) sp<=hl call out. af<=sp<=sp jmp c.ret .713: 040,0167,0157,0156,047,0164,040,0151 0156,0151,0164,0151,0141,0154,0151,0172 0145,040,041,012,0 .513: 0164,0150,0145,040,0151,0156,0164,0145 0162,0162,0165,0160,0164,040,0162,0145 0147,056,040,0157,0146,040,0160,0157 0162,0164,040,043,0 .113: 040,0167,0157,0156,047,0164,040,0151 0156,0151,0164,0151,0141,0154,0151,0172 0145,040,041,012,0 .703: 0164,0150,0145,040,0155,0157,0144,0145 0155,040,0143,0157,0156,0164,0162,0157 0154,040,0162,0145,0147,056,040,0157 0146,040,0160,0157,0162,0164,040,043 0 .303: 040,0167,0157,0156,047,0164,040,0151 0156,0151,0164,0151,0141,0154,0151,0172 0145,040,041,012,0 .103: 0164,0150,0145,040,0160,0141,0162,0141 0155,0145,0164,0145,0162,0163,040,0157 0146,040,0160,0157,0162,0164,040,043 0 .572: 040,0167,0157,0156,047,0164,040,0151 0156,0151,0164,0151,0141,0154,0151,0172 0145,040,041,012,0 .372: 0164,0150,0145,040,0142,0141,0165,0144 040,0162,0141,0164,0145,040,0157,0146 040,0160,0157,0162,0164,040,043,0 .752: 040,052,052,052,052,052,052,012 0 .552: 052,052,052,052,052,052,040,0151 0156,0151,0164,0151,0141,0154,0151,0172 0151,0156,0147,040,0141,0154,0154,040 0160,0157,0162,0164,0163,040,0 public setbaud. public setparm. public setmod. public setint. public ckbaud. public ckparm. public ckmod. public ckint. public groupse. public outclk. public in. public inclk. public delay. public out. public clkcom. public tobcd. public fmbcd. public arcmp. public putdec. public printmo. public printda. public timechk. public fmclk. public timerd. public timest. public toclk. public putc. public printim. public intial. public torstd. public puts. public clktest. public partest. public memtest. public bgsel. public twalk. public rwalk. public bitest. public ovtest. public albaud. public parytes. public terflg. public intal. public finadd. public formfee. public main. public erflg. public error. public dbaud. public abaud. public baud. public buff. public modint. public rlint. public drint. public threint. public rts. public dtr. public eoparty. public parity. public stopsze. public wrdsze. public functs. public group. public base. public stdout. intal.: call c.ent hl=0177766+sp->sp hl=&0177766+de a=0->*hl+a-^a->*(hl+1) hl=&04+de a=*hl|*(hl+1) jz .152 a=0140->base.+a-^a->base.[01] jmp .352 .152: /433 a=0150->base.+a-^a->base.[01] .352: / 434 hl=&.552 sp<=hl call puts. af<=sp call torstd. hl=&.752 sp<=hl call puts. af<=sp hl=&0177770+de a=0401->*hl+a-^a->*(hl+1) .162: / 439 hl=&0177770+de a=*hl-04=*(hl+1)-^0 jp .362 hl=&0177770+de hl=a^hl hl->group. call groupse. hl=&045400 hl->baud. call setbaud. a=0156->parity. a=0154->stopsze. a=010->wrdsze.+a-^a->wrdsze.[01] call setparm. a=0156->rts. a=rts.->dtr. call setmod. a=0156->modint. a=modint.->rlint. a=rlint.->drint. a=drint.->threint. call setint. call ckbaud. a=0377-c=0-^b jp .172 hl=&.372 sp<=hl call puts. af<=sp hl=group.=>sp call putdec. af<=sp call torstd. hl=&.572 sp<=hl call puts. af<=sp hl=&0177766+de a=0->*hl=0401->*(hl+1) jmp .172 .362: /489 hl=&0177766+de hl=a^hl bc=hl jmp c.ret .562: /439 hl=&0177770+de a=*hl+0401->*hl=*(hl+1)+^0->*hl jmp .162 .172: /463 call ckparm. a=0377-c=0-^b jp .772 hl=&.103 sp<=hl call puts. af<=sp hl=group.=>sp call putdec. af<=sp call torstd. hl=&.303 sp<=hl call puts. af<=sp hl=&0177766+de a=0->*hl=0401->*(hl+1) .772: /472 call ckmod. a=0377-c=0-^b jp .503 hl=&.703 sp<=hl call puts. af<=sp hl=group.=>sp call putdec. af<=sp call torstd. hl=&.113 sp<=hl call puts. af<=sp hl=&0177766+de a=0->*hl=0401->*(hl+1) .503: /481 call ckint. a=0377-c=0-^b jp .562 hl=&.513 sp<=hl call puts. af<=sp hl=group.=>sp call putdec. af<=sp call torstd. hl=&.713 sp<=hl call puts. af<=sp hl=&0177766+de a=0->*hl=0401->*(hl+1) jmp .562