000000 LST 000000 !**************************** 000000 !* SOFTKEY BINARY * 000000 !* (C) Hewlett-Packard Co. * 000000 !* 1980 * 000000 !**************************** 000000 ! REMEMBER TO TYPE TREM TO TOGGLE END OF LINE COMMENTS! 000000 ! FORMAT OF COMMAND IS: 000000 ! SOFTKEY (NUMEX(),, 000000 ! THE FIRST NUMEXP SELECTS 000000 !THE KEY, AND THE SECOND 000000 ! SELECTS WHETHER THE TEXT IS 000000 ! FOLLOWED BY AN ENDLINE (0) 000000 ! OR NOT (NOT=0). THE STRING 000000 ! IS THE TEXT ON THE KEY 000000 123 117 NAM SOFTKY 000002 106 124 000004 113 131 000006 002 000 000010 000 000 000012 000 000 000014 000 000 000016 000 000 000020 000 000 000022 000 000 000024 000 000 000026 000 000 000030 000 000 000032 326 326 DEF RUNTIM 000034 326 326 DEF ASCIIS 000036 326 326 DEF PARSE 000040 326 326 DEF ERMSG 000042 326 326 DEF INIT 000044 000 000 PARSE BYT 0,0 000046 326 326 DEF SOFTK, 000050 000 000 RUNTIM BYT 0,0 000052 326 326 DEF SOFTK. 000054 377 377 BYT 377,377 000056 143 006 SOFTK, PUBD R43,+R6 000060 344 000061 316 326 JSB =NUMVA+ 000063 326 000064 316 326 JSB =GETCMA 000066 326 000067 316 326 JSB =NUMVAL 000071 326 000072 316 326 JSB =GETCMA 000074 326 000075 316 326 JSB =STREXP 000077 326 000100 147 006 POBD R47,-R6 000102 342 000103 145 250 LDB R45,=371 000105 371 000106 012 345 PUMD R45,+R12 000110 236 RTN 000111 123 117 ASCIIS ASP "SOFTKEY" 000113 106 124 000115 113 105 000117 331 000120 377 BYT 377 000121 200 200 ERMSG BYT 200,200,200,200,200,200,200,200,200 000123 200 200 000125 200 200 000127 200 200 000131 200 000132 123 117 ASP "SOFTKEY NUMBER OUT OF RANGE" 000134 106 124 000136 113 105 000140 131 040 000142 116 125 000144 115 102 000146 105 122 000150 040 117 000152 125 124 000154 040 117 000156 106 040 000160 122 101 000162 116 107 000164 305 000165 123 117 ASP "SOFTKEY STRING TOO LONG" 000167 106 124 000171 113 105 000173 131 040 000175 123 124 000177 122 111 000201 116 107 000203 040 124 000205 117 117 000207 040 114 000211 117 116 000213 307 000214 377 BYT 377 000215 100 260 INIT LDBD R0,=ROMFL 000217 326 326 000221 310 001 CMB R0,=1 000223 367 336 JZR INITAL 000225 310 005 CMB R0,=5 000227 367 336 JZR RTNRTN 000231 310 002 CMB R0,=2 000233 367 336 JZR RTNRTN 000235 310 003 CMB R0,=3 000237 367 336 JZR INITAL 000241 236 RTN 000242 134 251 INITAL LDM R34,=KEYHAT 000244 326 326 000246 323 326 ADMD R34,=BINTAB 000250 326 000251 174 250 LDB R74,=316 000253 316 000254 134 075 STM R34,R75 000256 243 000257 177 250 LDB R77,=236 000261 236 000262 174 263 STMD R74,=CHIDLE 000264 326 326 000266 236 RTN 000267 134 250 RTNRTN LDB R34,=236 000271 236 000272 262 326 STBD R34,=CHIDLE 000274 326 000275 236 RTN 000276 ! GET BINARY KEY# OFF STACK 000276 ! CHECK FOR CORRECT RANGE, RETURN ABSOLUTE ADDRESS OF KEY STORAGE IN R46,R47 000276 316 326 KEY# JSB =ONEB 000300 326 000301 146 311 CMM R46,=1,0 000303 001 000 000305 372 336 JNC ERROR1 000307 311 011 CMM R46,=11,0 000311 000 000312 373 336 JCY ERROR1 000314 205 LLM R46 000315 323 326 ADMD R46,=BINTAB 000317 326 000320 046 265 LDMD R46,X46,KEYTBL 000322 326 326 000324 323 326 ADMD R46,=BINTAB 000326 326 000327 236 RTN 000330 316 326 ERROR1 JSB =ERROR+ 000332 326 000333 366 BYT 366 000334 316 326 ERROR2 JSB =ERROR+ 000336 326 000337 365 BYT 365 000340 241 BYT 241 000341 230 SOFTK. BIN 000342 132 012 POMD R32,-R12 000344 343 000345 130 343 POMD R30,-R12 000347 311 001 CMM R30,=1,0 000351 000 000352 373 336 JCY CHNGKY 000354 140 343 POMD R40,-R12 000356 136 251 LDM R36,=KEY# 000360 326 326 000362 323 326 ADMD R36,=BINTAB 000364 326 000365 036 306 JSB X36,ZERO 000367 326 326 000371 145 222 CLB R45 000373 046 246 STBD R45,R46 000375 236 RTN 000376 130 311 CHNGKY CMM R30,=140,0 000400 140 000 000402 373 330 JCY ERROR2 000404 316 326 JSB =ONEB 000406 326 000407 126 046 LDM R26,R46 000411 241 000412 136 251 LDM R36,=KEY# 000414 326 326 000416 323 326 ADMD R36,=BINTAB 000420 326 000421 036 306 JSB X36,ZERO 000423 326 326 000425 126 311 CMM R26,=0,0 000427 000 000 000431 366 336 JNZ AROUND 000433 131 250 LDB R31,=200 000435 200 000436 130 031 ORB R30,R31 000440 224 000441 130 046 AROUND PUBD R30,+R46 000443 344 000444 317 177 ANM R30,=177,0 000446 000 000447 126 032 LOOP POBD R26,+R32 000451 340 000452 046 344 PUBD R26,+R46 000454 130 212 DCB R30 000456 366 367 JNZ LOOP 000460 236 KEYRTN RTN 000461 230 KEYHAT BIN 000462 126 223 CLM R26 000464 260 326 LDBD R26,=KEYHIT 000466 326 000467 310 200 CMB R26,=200 000471 372 365 JNC KEYRTN 000473 310 210 CMB R26,=210 000475 373 361 JCY KEYRTN 000477 315 177 SBM R26,=177,0 000501 000 000502 205 LLM R26 000503 323 326 ADMD R26,=BINTAB 000505 326 000506 026 265 LDMD R26,X26,KEYTBL 000510 326 326 000512 323 326 ADMD R26,=BINTAB 000514 326 000515 136 340 POBD R36,+R26 000517 310 000 CMB R36,=0 000521 366 336 JNZ NEXT 000523 236 RTN 000524 136 077 NEXT STB R36,R77 000526 242 000527 317 177 ANM R36,=177,0 000531 000 000532 316 326 JSB =HLFLIN 000534 326 000535 316 326 JSB =CURS 000537 326 000540 177 220 TSB R77 000542 364 336 JNG OUTCR 000544 235 CLE 000545 316 326 JSB =EOJ2 000547 326 000550 174 006 POMD R74,-R6 000552 343 000553 236 RTN 000554 126 250 OUTCR LDB R26,=232 000556 232 000557 262 326 STBD R26,=KEYHIT 000561 326 000562 236 RTN 000563 000 000 KEYTBL BYT 0,0 000565 326 326 DEF K1 000567 326 326 DEF K2 000571 326 326 DEF K3 000573 326 326 DEF K4 000575 326 326 DEF K5 000577 326 326 DEF K6 000601 326 326 DEF K7 000603 326 326 DEF K8 000605 002 K1 BYT 2 000606 113 061 ASC "K1" 000610 000 000 BSZ 140 000612 000 000 000614 000 000 000616 000 000 000620 000 000 000622 000 000 000624 000 000 000626 000 000 000630 000 000 000632 000 000 000634 000 000 000636 000 000 000640 000 000 000642 000 000 000644 000 000 000646 000 000 000650 000 000 000652 000 000 000654 000 000 000656 000 000 000660 000 000 000662 000 000 000664 000 000 000666 000 000 000670 000 000 000672 000 000 000674 000 000 000676 000 000 000700 000 000 000702 000 000 000704 000 000 000706 000 000 000710 000 000 000712 000 000 000714 000 000 000716 000 000 000720 000 000 000722 000 000 000724 000 000 000726 000 000 000730 000 000 000732 000 000 000734 000 000 000736 000 000 000740 000 000 000742 000 000 000744 000 000 000746 000 000 000750 002 K2 BYT 2 000751 113 062 ASC "K2" 000753 000 000 BSZ 140 000755 000 000 000757 000 000 000761 000 000 000763 000 000 000765 000 000 000767 000 000 000771 000 000 000773 000 000 000775 000 000 000777 000 000 001001 000 000 001003 000 000 001005 000 000 001007 000 000 001011 000 000 001013 000 000 001015 000 000 001017 000 000 001021 000 000 001023 000 000 001025 000 000 001027 000 000 001031 000 000 001033 000 000 001035 000 000 001037 000 000 001041 000 000 001043 000 000 001045 000 000 001047 000 000 001051 000 000 001053 000 000 001055 000 000 001057 000 000 001061 000 000 001063 000 000 001065 000 000 001067 000 000 001071 000 000 001073 000 000 001075 000 000 001077 000 000 001101 000 000 001103 000 000 001105 000 000 001107 000 000 001111 000 000 001113 002 K3 BYT 2 001114 113 063 ASC "K3" 001116 000 000 BSZ 140 001120 000 000 001122 000 000 001124 000 000 001126 000 000 001130 000 000 001132 000 000 001134 000 000 001136 000 000 001140 000 000 001142 000 000 001144 000 000 001146 000 000 001150 000 000 001152 000 000 001154 000 000 001156 000 000 001160 000 000 001162 000 000 001164 000 000 001166 000 000 001170 000 000 001172 000 000 001174 000 000 001176 000 000 001200 000 000 001202 000 000 001204 000 000 001206 000 000 001210 000 000 001212 000 000 001214 000 000 001216 000 000 001220 000 000 001222 000 000 001224 000 000 001226 000 000 001230 000 000 001232 000 000 001234 000 000 001236 000 000 001240 000 000 001242 000 000 001244 000 000 001246 000 000 001250 000 000 001252 000 000 001254 000 000 001256 002 K4 BYT 2 001257 113 064 ASC "K4" 001261 000 000 BSZ 140 001263 000 000 001265 000 000 001267 000 000 001271 000 000 001273 000 000 001275 000 000 001277 000 000 001301 000 000 001303 000 000 001305 000 000 001307 000 000 001311 000 000 001313 000 000 001315 000 000 001317 000 000 001321 000 000 001323 000 000 001325 000 000 001327 000 000 001331 000 000 001333 000 000 001335 000 000 001337 000 000 001341 000 000 001343 000 000 001345 000 000 001347 000 000 001351 000 000 001353 000 000 001355 000 000 001357 000 000 001361 000 000 001363 000 000 001365 000 000 001367 000 000 001371 000 000 001373 000 000 001375 000 000 001377 000 000 001401 000 000 001403 000 000 001405 000 000 001407 000 000 001411 000 000 001413 000 000 001415 000 000 001417 000 000 001421 002 K5 BYT 2 001422 113 065 ASC "K5" 001424 000 000 BSZ 140 001426 000 000 001430 000 000 001432 000 000 001434 000 000 001436 000 000 001440 000 000 001442 000 000 001444 000 000 001446 000 000 001450 000 000 001452 000 000 001454 000 000 001456 000 000 001460 000 000 001462 000 000 001464 000 000 001466 000 000 001470 000 000 001472 000 000 001474 000 000 001476 000 000 001500 000 000 001502 000 000 001504 000 000 001506 000 000 001510 000 000 001512 000 000 001514 000 000 001516 000 000 001520 000 000 001522 000 000 001524 000 000 001526 000 000 001530 000 000 001532 000 000 001534 000 000 001536 000 000 001540 000 000 001542 000 000 001544 000 000 001546 000 000 001550 000 000 001552 000 000 001554 000 000 001556 000 000 001560 000 000 001562 000 000 001564 002 K6 BYT 2 001565 113 066 ASC "K6" 001567 000 000 BSZ 140 001571 000 000 001573 000 000 001575 000 000 001577 000 000 001601 000 000 001603 000 000 001605 000 000 001607 000 000 001611 000 000 001613 000 000 001615 000 000 001617 000 000 001621 000 000 001623 000 000 001625 000 000 001627 000 000 001631 000 000 001633 000 000 001635 000 000 001637 000 000 001641 000 000 001643 000 000 001645 000 000 001647 000 000 001651 000 000 001653 000 000 001655 000 000 001657 000 000 001661 000 000 001663 000 000 001665 000 000 001667 000 000 001671 000 000 001673 000 000 001675 000 000 001677 000 000 001701 000 000 001703 000 000 001705 000 000 001707 000 000 001711 000 000 001713 000 000 001715 000 000 001717 000 000 001721 000 000 001723 000 000 001725 000 000 001727 002 K7 BYT 2 001730 113 067 ASC "K7" 001732 000 000 BSZ 140 001734 000 000 001736 000 000 001740 000 000 001742 000 000 001744 000 000 001746 000 000 001750 000 000 001752 000 000 001754 000 000 001756 000 000 001760 000 000 001762 000 000 001764 000 000 001766 000 000 001770 000 000 001772 000 000 001774 000 000 001776 000 000 002000 000 000 002002 000 000 002004 000 000 002006 000 000 002010 000 000 002012 000 000 002014 000 000 002016 000 000 002020 000 000 002022 000 000 002024 000 000 002026 000 000 002030 000 000 002032 000 000 002034 000 000 002036 000 000 002040 000 000 002042 000 000 002044 000 000 002046 000 000 002050 000 000 002052 000 000 002054 000 000 002056 000 000 002060 000 000 002062 000 000 002064 000 000 002066 000 000 002070 000 000 002072 002 K8 BYT 2 002073 113 070 ASC "K8" 002075 000 000 BSZ 140 002077 000 000 002101 000 000 002103 000 000 002105 000 000 002107 000 000 002111 000 000 002113 000 000 002115 000 000 002117 000 000 002121 000 000 002123 000 000 002125 000 000 002127 000 000 002131 000 000 002133 000 000 002135 000 000 002137 000 000 002141 000 000 002143 000 000 002145 000 000 002147 000 000 002151 000 000 002153 000 000 002155 000 000 002157 000 000 002161 000 000 002163 000 000 002165 000 000 002167 000 000 002171 000 000 002173 000 000 002175 000 000 002177 000 000 002201 000 000 002203 000 000 002205 000 000 002207 000 000 002211 000 000 002213 000 000 002215 000 000 002217 000 000 002221 000 000 002223 000 000 002225 000 000 002227 000 000 002231 000 000 002233 000 000 002235 CURS DAD 35055 002235 CHIDLE DAD 102416 002235 KEYHIT DAD 100671 002235 BINTAB DAD 101233 002235 HLFLIN DAD 35121 002235 EOJ2 DAD 34772 002235 ROMFL DAD 101231 002235 OUTCHR DAD 35114 002235 NUMVA+ DAD 12407 002235 GETCMA DAD 13414 002235 NUMVAL DAD 12412 002235 STREXP DAD 13626 002235 ONEB DAD 56113 002235 ERROR+ DAD 6611 002235 ZERO EQU 0