* DOWNLOADED 2023-07-02 FROM * http //99-bottles-of-beer.net/language-ibm-1620-sps-916.html *333333 * BOTTLES OF BEER PROGRAM FOR THE IBM 1620 MODEL I * * HAMMERS THE WHOLE THING OUT ON THE CONSOLE TYPEWRITER. * * A MISERABLE WASTE OF TIME ON 10/2005 BY * CHUCK GUZIS CHUCK @ SYDEX.COM * * THIS CODE IS SHOWN IN ASSEMBLY-LISTING FORMAT WITH SPS MNEMONICS. * I HAVE SPREAD THE SPS FIELDS OUT A BIT FOR READABILITY. * * THERE ARE SOME SPECIAL NUMERIC CHARACTERS: * ] = FLAGGED 0 * J-R = FLAGGED 1-9 * | = RECORD MARK * [ = FLAGGED RECORD MARK (NOT USED HERE) * * IF YOU'RE GOING TO RUN THIS ON THE CADET, YOU NEED TO HAVE AT LEAST * THE ADDITION TABLES LOADED. INDIRECT ADDRESSING IS USEFUL, BUT NOT * ABSOLUTELY NECESSARY (SEE NOTE BELOW). * * EXECUTION STARTS AT 00402. * START RCTY ,,, RETURN CARRIAGE 00402 34 00000 00102 BTM DBEERS,*+12 ,,, SHOW COUNT 00414 17 00626 ]0426 WATY MSG2 ,,, OF BEER ON... 00426 39 00783 00100 RCTY ,,, RETURN CARR. 00438 34 00000 00102 BTM DBEERS,*+12 ,,, SHOW COUNT 00450 17 00626 ]0462 WATY MSG4 ,,, OF BEER. 00462 39 00827 00100 RCTY ,,, ZZZZIP... 00474 34 00000 00102 WATY MSG6 ,,, TAKE ONE DOWN 00486 39 00847 00100 RCTY ,,, ZZZIP... 00498 34 00000 00102 SM BEERS,1 ,,, A DEAD SOLDIER 00510 12 00745 ]0001 BZ EMPTY ,,, IF ALL GONE 00522 46 00578 01200 BTM DBEERS,*+12 ,,, SHOW COUNT 00534 17 00626 ]0546 WATY MSG2 ,,, ON THE WALL 00546 39 00783 00100 RCTY ,,, ZZZZZIP... 00558 34 00000 00102 B7 START ,,, DO IT AGAIN 00570 49 00402 00577 0 EMPTY WATY MSG8 ,,, NO MORE BEER 00578 39 00911 00100 RCTY ,,, ZZZZIP... 00590 34 00000 00102 H ,,, STOP 00602 48 00000 00000 B7 EMPTY ,,, IN CASE RUN PUSHED 00614 49 00578 * * SUBROUTINE TO DISPLAY BOTTLE COUNT AND EITHER *BOTTLE* OR *BOTTLES* * * THIS ASSUMES THAT THE INDIRECT ADDRESSING FEATURE IS PRESENT, BUT * IF NOT, SIMPLY USE A "BB"(42) INSTRUCTION IN PLACE OF THE INDIRECT * BRANCHES. * DBRET DC 5,0 ,,, RETURN ADD 00621 00000 DBEERS CM BEERS,10 ,,, DISPLAY BOTTLES 00626 14 00745 ]0010 BNL DBEER2 ,,, 10 OR MORE 00638 46 00710 01300 WNTY BEERS ,,, 1 DIGIT 00650 38 00745 00100 CM BEERS,1 ,,, JUST 1? 00662 14 00745 ]0001 BNE DBEERS4 ,,, NO, *BOTTLES* 00674 47 00722 01200 WATY BTL ,,, SAY *BOTTLE* 00686 39 00767 00100 B7 -DBRET ,,, EXIT 00698 49 ]062N DBEER2 WNTY BEERS-1 ,,, 2 DIGITS 00710 38 00744 00100 DBEER4 WATY BTLS ,,, SAY BOTTLES 00722 39 00749 00100 B7 -DBRET ,,, EXIT 00734 49 ]062N BEERS DC 5,99 ,,, BOTTLE COUNT 00741 ]0099 DC 1,@ 00746 | 00747 0 BTLS DAC 8, BOTTLES 00748 0042566363534562 DAC 1,@ 00764 0| BTL DAC 8, BOTTLE@ 00766 004256636353450| MSG2 DAC 8, OF BEER 00782 0056460042454559 DAC 8, ON THE 00798 0056550063484500 DAC 6,WALL.@ 00814 66415353030| MSG4 DAC 8, OF BEER 00826 0056460042454559 DAC 2,.@ 00842 030| MSG6 DAC 8,TAKE ONE 00846 6341524500565545 DAC 7, DOWN, 00862 00445666552300 DAC 8,PASS IT 00876 5741626200496300 DAC 8,AROUND - 00892 4159566455440020 DAC 1,@ 00908 0| MSG8 DAC 8,NO MORE 00910 5556005456594500 DAC 6,BEER.@ 00926 42454559030|