1 REM *************************** 2 REM * PROG1.BAC * 3 REM * VER 1.0 / 1982-09-08 * 4 REM * Gjort o. ins{nt av 2415 * 5 REM * Stig Rosenlund * 6 REM * V{stmannagatan 93 * 7 REM * 113 43 Stockholm * 8 REM * Tel. 08/331736 * 9 REM *************************** 10 ; "Detta program matar in h|gprecisionsr{k-ningspaketets assemblerrutiner och be- r{knar log2 och PI." 20 IF PEEK(65053%)<>187% ; "Mata in PROG1 igen!" : POKE 65053%,187% : CHAIN "" 30 ; "Hur m}nga byte eget maskinspr}ksprogram vill Du h|gst mata in"; : INPUT I 40 ; "Vilken precision N (decimal precision 2.4N)"; : INPUT N : I%=32768% 50 S$="0123456789ABCDEF" : A0=36635+N+I : IF N<4% OR I+8%*N>11215% 30 60 READ A$ : FOR K%=1% TO 3% STEP 2% : H$=MID$(A$,K%,2%) : D%=INSTR(1%,S$,LEFT$(H$,1%)) : IF H$="NN" 90 70 E%=INSTR(1%,S$,RIGHT$(H$,2%)) : IF D%=0% OR E%=0% 100 80 POKE I%,(D%-1%)*16%+E%-1% : I%=I%+1% 90 NEXT K% : GOTO 60 100 ONERRORGOTO 100 105 POKE 36523%,N,SWAP%(N) : POKE 36538%,A0,SWAP%(A0) : ; "Var ska BASIC-programmen b|rja"; 110 INPUT B0 : B0=FIX(B0) : F%=FIX((B0-A0-1%)/(N+3%)) 115 POKE 34443%,F%,SWAP%(F%) : IF F%<8% OR B0>62000 THEN 100 120 K%=CALL(35365%,7%)+CALL(32838%)+CALL(34845%)+CALL(35710%)+CALL(35362%)+CALL(33619%,6%)+CALL(35131%) 130 K%=CALL(35365%,7%)+CALL(35352%)+CALL(33669%)+CALL(35365%,6%)+CALL(32838%)+CALL(34845%)+CALL(36070%)+CALL(32832%) 140 ; "Vill Du definiera f1 - f3 (b1 - b8 icke-negativa heltal)?" : GET A$ : IF A$<>"J" AND A$<>"j" 190 150 ONERRORGOTO 150 155 ; "Ge b1 - b8 f|r f1:" : FOR I%=1% TO 8% : INPUT B% : POKE 34424%+2%*I%,B%,SWAP%(B%) : NEXT I% 160 ONERRORGOTO 160 165 ; "Ge b1 - b8 f|r f2:" : FOR I%=1% TO 8% : INPUT B% : POKE 34495%+2%*I%,B%,SWAP%(B%) : NEXT I% 170 ONERRORGOTO 170 175 ; "Ge b1 - b8 f|r f3:" : FOR I%=1% TO 8% : INPUT B% : POKE 35915%+2%*I%,B%,SWAP%(B%) : NEXT I% 180 ; "R{tt?" : GET A$ : IF A$="N" OR A$="n" 150 190 ; "Assemblerrutinerna inmatade. R6=log2 ochR7=PI. Du disponerar fritt register 8 t o m";F%;". K|r nu t ex V[RD." 200 POKE 65052%,B0,SWAP%(B0) : ; "Jag har best{mt BOFA enligt Ditt svar." : CHAIN "" 210 DATA 2AAD,8EED,4BAB,8E03,0303,ED5B,B18E,EDB8,C9ED,4BAB,8E2A,B18E,AFED,5BAB 220 DATA 8E09,ED52,2B2B,030B 230 DATA B920,02B8,C82B,7718,F62A,B18E,7E1F,3F17,77C9,CD00,80C3,2D80 240 DATA 00CD,0080,2AB1,8ECB,86C9,CD11,802A,B18E,AF77,2B77,2B3C,772B,CBFE,C937 250 DATA 1801,AF2A,AD8E,7E30,012F,1F4F,2AAF,8E7E,1FCB,1917,E603,2AAD,8E2B,562B 260 DATA 5E2A,AF8E,2B46,2B4E,21B5,8EFE,0238,06CB,CE28,0818,1BFE,00CB,8E28,1560 270 DATA 69A7,ED52,3016,626B,A7ED,423A,B58E,2F32,B58E,1808,6069,1930,0321,FFFF 280 DATA 22B3,8EC9,CD00,802A,B18E,CB4E,C211,802B,562B,5E7B,E607,32B9,8E7B,CB3A 290 DATA 1FCB,3A1F,CB3A,1F5F,ED53,B78E,2AAB,8E2B,AFED,52D8,444D,B920,03B8,2803 300 DATA CD15,802A,B18E,2B2B,2BED,5BB7,8EAF,ED52,3AB9,8E47,AF04,1002,1804,371F 310 DATA 18F8,A677,C937,1801,AF2A,AD8E,7E30,012F,NN2A,AF8E,1F7E,17E6,0332 320 DATA B68E,0E00,FE00,2805,FE03,2801,0C08,7932,BC8E,082B,2B2B,CB7E,2AAD,8E20 330 DATA 0ECD,0380,2AB1,8ECB,3ECB,3FCB,16C9,002B,2B2B,CB7E,2006,2AAF,8EC3,0380 340 DATA CD57,802A,B38E,AFBD,202B,BC20,28ED,4BAB,8E2A,AD8E,2B2B,ED5B,AF8E,1B1B 350 DATA 2B1B,1ABE,381A,2034,0BAF,B920,F3B8,20F0,08FE,00C2,1180,0818,2321,B58E 360 DATA CB4E,281C,3AB6,8E4F,CB19,CB19,17E6,0332,B68E,2AAD,8EED,5BAF,8EED,53AD 370 DATA 8E22,AF8E,ED5B,B38E,2AAB,8EAF,2929,292B,ED52,3009,2AAF,8ECD,0380,C3D2 380 DATA 827B,E607,4F32,B98E,0C7B,CB3A,1FCB,3A1F,CB3A,1F5F,ED53,B78E,2AAB,8EA7 390 DATA ED52,EB2A,AD8E,2B2B,2BE5,23ED,52D9,ED4B,AB8E,2AB1,8EED,422B,2B54,5D2A 400 DATA AF8E,ED42,2B2B,08D9,41D1,D5EB,AFED,52EB,3801,7E23,D1D5,EBA7,ED52,EB1E 410 DATA 0038,015E,1002,1805,CB1B,1F18,F732,BD8E,D93A,BC8E,FE00,280C,08C5,3ABD 420 DATA 8E4F,7E99,12C1,1806,083A,BD8E,8E12,0823,130B,AFB9,20B9,B820,B6E1,08EB 430 DATA 2B30,20AF,32BF,8E32,BE8E,3C32,BD8E,ED4B,AB8E,3708,08CB,1E08,0B2B,AFB9 440 DATA 20F6,B820,F318,4CAF,E5BE,2B03,28FB,0B23,C5DD,E1EB,2AAB,8EAF,ED42,444D 450 DATA EBD1,D5ED,B8DD,E5C1,CD15,80E1,CB7E,2018,03ED,5BAB,8EAF,ED52,0808,23CB 460 DATA 1608,1BAF,BB20,F6BA,20F3,18E4,DDE5,E129,2929,0922,BD8E,3E02,32BF,8E21 470 DATA BF8E,22AD,8ECD,5A80,0600,0E03,21B5,8EED,5BB1,8EED,B82A,B18E,7E1F,5F3A 480 DATA B68E,1F1F,7B17,77C9,3718,01AF,082A,B18E,E522,AF8E,2ABA,8E22,AD8E,22B1 490 DATA 8ECD,4680,E122,B18E,08DA,0581,C308,812A,B18E,E52A,BA8E,22AF,8E22,B18E 500 DATA CDB0,80E1,22B1,8ECD,0581,C32D,802A,AD8E,CB46,CAB0,80E5,2AB1,8EE5,2ABA 510 DATA 8E22,AF8E,22B1,8ECD,B080,CD05,812A,B18E,2B2B,2BCB,7EE1,22B1,8EE1,22AD 520 DATA 8ECA,0080,CDB0,80C3,E182,D5CD,1180,D12A,B18E,AF77,2B77,0610,EBCB,7C20 530 DATA 0329,10F9,EB2B,702B,722B,73C9,ED4B,AB8E,AFED,422B,2BBE,C023,0BB9,20F9 540 DATA B820,F6C9,2AAD,8ECD,7183,5059,2AAF,8ECD,7183,6069,19ED,53B6,8EED,43B8 550 DATA 8EED,4BAB,8EED,422A,B88E,3803,C518,0419,E5ED,52ED,5230,1A2A,B88E,22B6 560 DATA 8EED,53B8,8E54,5D2A,AD8E,ED4B,AF8E,ED43,AD8E,22AF,8EAF,E1BB,2004,BACA 570 DATA 1180,E52A,AD8E,7E2A,AF8E,8632,BC8E,CD5A,802A,B18E,E52A,BA8E,22B1,8ECD 580 DATA 1180,E122,B18E,ED5B,B68E,2AAD,8EAF,ED52,2B2B,0806,084E,D9AF,2ABA,8E2B 590 DATA 2B2B,C1C5,08CB,1E08,2B0B,B920,F7B8,20F4,D9CB,1938,0308,1827,D9AF,08AF 600 DATA 2AAF,8EED,4BB8,8EED,422B,2BEB,2ABA,8EED,422B,2BEB,081A,8E12,1323,0B08 610 DATA B920,F5B8,20F2,D910,B923,1BAF,BB20,B0BA,20AD,08C1,3016,2ABA,8E2B,2B2B 620 DATA 0808,CB1E,2B0B,08AF,B920,F6B8,20F3,181A,2101,0022,BD8E,3E02,32BF,8E21 630 DATA BF8E,22AD,8E21,B58E,22AF,8ECD,5A80,0103,00NN,21B5,8EED,5BBA,8EED,B82A 640 DATA BA8E,CD03,802A,B18E,4E3A,BC8E,CB19,1FCB,1171,C92A,AD8E,22AF,8EC3,8583 650 DATA 3E02,1801,AF21,B58E,22AF,8E77,2B72,2B73,2AB1,8E22,AD8E,CD5A,80ED,5BB1 660 DATA 8E1A,21B5,8ECB,1E1F,CB16,0103,00ED,B8C9,002A,AD8E,2B2B,2BCB,7E2A,AF8E 670 DATA 7E2B,2B2B,2016,CB7E,2003,C346,80CB,8F2A,B18E,773E,FF2B,772B,772B,77C9 680 DATA CB7E,2003,C311,802A,AD8E,E508,CD71,8308,ED43,B68E,E186,32BC,8E2B,2B7E 690 DATA 32BD,8EAF,7708,2ABA,8EED,5BAB,8E19,2323,2322,B88E,3600,EB1B,2AAF,8E2B 700 DATA 2B2B,ED4B,AB8E,EDB8,EB36,00E5,2AAB,8E54,5DED,4BB6,8EAF,ED42,E5DD,E1C1 710 DATA 0922,B38E,22BE,8E2A,BA8E,1306,08D9,ED5B,B88E,ED4B,B68E,032A,AD8E,2B2B 720 DATA 1ABE,382B,200A,0B1B,2BAF,B920,F3B8,20F0,ED4B,B68E,ED5B,BE8E,1303,2AAD 730 DATA 8EED,422B,0808,1A9E,1213,230B,08B9,20F5,B820,F23F,D9CB,16D9,AF2A,BE8E 740 DATA ED4B,B68E,0303,0808,CB16,230B,08B9,20F7,B820,F4D9,10A3,2B1B,E5DD,E5E1 750 DATA BD20,03BC,280E,DD2B,2AB3,8E2B,7E22,B38E,2ABE,8E77,E1AF,BB20,82BA,C267 755 DATA 853A,BD8E 760 DATA 2AAD,8E2B,2B77,CD57,802A,BA8E,AFCB,7E20,15ED,4BAB,8EED,4203,08CB,1608 770 DATA 0B23,B920,F7B8,20F4,1813,21BF,8E22,AF8E,772B,773C,2B77,21B5,8E22,AD8E 775 DATA CD5A 780 DATA 80ED,5BB1,8E21,B58E,CB1E,3ABC,8E1F,CB16,0103,00ED,B82A,BA8E,ED4B,AB8E 790 DATA EDB8,C92A,AD8E,7E2B,2B2B,CB7E,CA11,80CB,47CA,4680,CD46,80C3,2D80,3E01 800 DATA 1801,AF2A,AD8E,E52A,AF8E,E5F5,CD78,8AC1,E1D1,1F80,CB47,2001,EBC3,0380 810 DATA 0000,0000,0000,0000,0000,0000,0000,0000,0000,0021,0000,3E10,29EB,ED6A 820 DATA EB30,0409,3001,133D,20F2,C900,0000,0000,0000,0000,0000,0000,0000,0000 830 DATA 0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000 840 DATA 0000,00ED,4BAB,8E03,0303,CD8D,86ED,5BBA,8E19,C9D5,E5CD,1180,E1D1,ED4B 850 DATA B18E,AF02,0B02,0B3E,20CB,7A20,0829,EBED,6AEB,3D20,F402,0B7A,020B,7B02 860 DATA 0B7C,020B,7D02,C95E,2356,23E5,ED4B,B386,CD8D,86D1,EB4E,2346,EB09,EBC9 870 DATA 2AB9,86CD,5B83,2B77,2B77,2AB9,8622,AD8E,2AB5,8622,AF8E,22B1,8EC9,1101 880 DATA 00CD,D186,22BB,8609,22B1,8E22,B586,0922,B786,E509,22B9,86E5,CD46,80E1 890 DATA 22B1,8ECD,1180,E122,B18E,CD11,8021,0000,22B3,862A,A186,2B2B,2BCB,7EC8 900 DATA 2AB3,8623,22B3,862A,A186,CD2F,8721,A386,CD0D,87BA,2004,3CBB,2817,CD22 910 DATA 872A,A186,22AF,8E2A,BB86,22B1,8EE5,CD85,83E1,CD2F,87CD,8583,21A7,86CD 920 DATA 0D87,D5NN,23CD,0D87,C1CD,8D86,BA20,0ABB,2007,BC20,043C,BD28,0DED,4BB9 930 DATA 86CD,EC86,CD2C,87CD,E184,CD86,8CNN,NN21,AF86,CD0D,87BA,2004,3CBB,2812 940 DATA CD22,872A,BB86,22B1,8ECD,E184,2ABB,8622,AD8E,2AB7,8622,AF8E,22B1,8ECD 950 DATA 5780,2AAB,8E29,2929,ED5B,B38E,3AB3,86FE,0538,03ED,52D8,CD08,81C3,7687 960 DATA 0000,3E02,1801,AF11,0100,C3B9,84CD,3B89,NN2A,B18E,22A3,862A,AD8E,2B2B 965 DATA 2BCB,7ECA,1180 970 DATA 1101,00CD,D186,2322,A586,22B1,8ECD,0080,122A,AB8E,2322,AB8E,2AAD,8EED 980 DATA 5BA3,867E,12CB,4F2B,1B46,2B4E,791F,3003,2001,03AF,CB18,CB19,EB70,2B71 990 DATA E52A,A586,22B1,8E77,2B77,2B7E,2FE6,013C,77CD,E182,1102,00CD,B484,2ABA 1000 DATA 8ECB,CE2B,2B2B,CBEE,AF2A,A586,2B2B,2BCB,7E32,A786,283D,2323,ED5B,BA8E 1010 DATA 1B06,021A,BE38,3020,181B,2B10,F6ED,4BAB,8E1A,BE38,0C20,201B,2B0B,AFB8 1020 DATA 20F3,B920,F021,A786,342A,A586,22AF,8E22,B18E,2ABA,8E22,AD8E,CD05,812A 1030 DATA BA8E,2B56,2BE5,5E13,7323,722A,AB8E,2B29,2929,ED52,E138,2B1B,7B06,03CB 1040 DATA 3ACB,1B10,FAE6,07ED,522B,473E,0890,474F,CB3E,10FC,3AA7,86CB,F70F,41CB 1050 DATA 27CB,1610,FA2B,77C3,9888,ED4B,AB8E,0BED,43AB,8E2B,D11B,EDB8,2AA3,8622 1060 DATA B18E,C92A,B18E,22AD,8EC9,1101,00D5,CD00,80D1,C3B8,8411,0100,D5CD,0080 1070 DATA D1C3,B484,2AB1,8E22,AD8E,C3AB,84CD,3B89,2AA1,8622,AF8E,CD85,83C3,E482 1080 DATA 2100,0022,A386,22AB,8622,AF86,2322,B186,22A5,8622,A786,22AD,8623,22A9 1090 DATA 86C9,CDAB,8DE5,22A1,86ED,5BAB,8ED5,1313,ED53,AB8E,13AF,ED52,E556,772B 1100 DATA 5E77,D521,0000,22BD,8622,BE86,CD21,882A,B18E,CB4E,2018,2B56,2B5E,ED53 1110 DATA BE86,2112,00AF,7DED,5238,017B,32BD,86CD,B484,CD1D,88CD,7089,CD3C,87CD 1120 DATA E482,CD1D,88CD,6189,CD61,893A,BD86,FE00,2809,3D32,BD86,CD58,8918,F0D1 1130 DATA E172,2B73,E122,AB8E,E122,B18E,CDB9,8DC3,0380,1107,00CD,D186,22AD,8EC9 1140 DATA 1107,00CD,D186,22AF,8EC9,1102,00CD,D186,22B1,8EC9,CD3B,89E5,CD22,8A22 1150 DATA AF8E,CD46,80E1,22B1,8EC3,E184,CD3B,89C3,1E83,CD21,8811,0700,CD1B,8ACD 1160 DATA 3B89,CD05,81C3,1D88,1100,002A,B18E,E52A,BA8E,22B1,8ECD,5383,E122,B18E 1170 DATA 2ABA,8E22,AD8E,2AB1,8E22,AF8E,2AB1,8EE5,2ABA,8E22,B18E,E5CD,0581,E1AF 1180 DATA 3C4E,2B2B,2BCB,7E28,063C,CB41,2801,AFE1,22B1,8E32,3C80,C92A,B18E,E54E 1190 DATA C5CB,86CD,5B8A,C1E1,71C9,CD21,8811,0100,CD9F,8AF5,CD1D,88F1,C911,0100 1200 DATA CD9F,8AFE,02E5,203D,E1CD,468A,2AB1,8EE5,22AF,8ECD,228A,CD0E,8ACD,E184 1210 DATA CDE4,82CD,1D88,CD40,8ACD,3B89,CD18,8ACD,8583,CD21,88CD,3B89,E1E5,22AF 1220 DATA 8E22,B18E,CD05,81CD,4080,CD46,8A11,0500,CD25,8A22,A186,E1E5,CD5B,89CD 1230 DATA 2D80,CD70,8922,AB86,CD83,89CD,3C87,CDE4,8211,0600,CD22,872A,B786,22AF 1240 DATA 8E22,B18E,CDE1,84CD,6189,CD3B,89E1,22AF,8E22,B18E,C385,832A,B18E,22A1 1250 DATA 86CD,7089,22A3,8622,A786,22AF,8623,22B1,86CD,3C87,CD1D,8811,0600,CD22 1260 DATA 87CD,4680,CDE1,84CD,3B89,2AB7,8622,AF8E,CD08,81C3,6189,CDD9,8B28,14E5 1270 DATA CDE1,8BCD,478B,CD3B,89E1,22B1,8E22,AF8E,C385,837E,F5E5,CB86,CDE1,82CD 1280 DATA 2D80,CD1D,88E1,E5CB,4628,03CD,1180,CD47,8BE1,E522,B18E,CD28,88CD,2188 1290 DATA CD3B,892A,B586,22AF,8ECD,8583,CD46,8AE1,F1CB,1E1F,CB16,C9CD,7E8B,C346 1300 DATA 8ACD,AE8A,FE02,C33B,8911,0500,CD25,8AC3,AB84,CDD9,8B28,2CE5,CDE1,8BCD 1310 DATA 2D80,CD70,8922,AF86,2322,B186,2B2B,22A9,862B,22A7,862A,B18E,22A1,86CD 1320 DATA 3C87,1103,00CD,668B,C38A,8B7E,F5E5,CD58,89CD,E482,CD28,88CD,2C8A,CDD3 1330 DATA 8BC3,CB8B,1107,00CD,D186,EB2A,1CFE,2B44,4D2B,ED52,D823,AF02,0B2B,BC20 1340 DATA FABD,20F7,C900,0000,0000,0000,0000,0000,0000,0000,0021,8986,1808,21D0 1350 DATA 8618,0321,5C8C,0110,0011,B286,EDB8,2AB1,8E22,A186,E5CD,3C87,E122,B18E 1360 DATA 2AB7,86C3,0380,2AB5,8622,AD8E,C92A,B18E,E511,0500,CD25,8A22,A186,E1E5 1370 DATA CD5B,89CD,2D80,CD70,8922,A786,22AF,862B,2B22,A986,CD3C,87CD,E482,CD3B 1380 DATA 89E1,E522,AF8E,CD85,83CD,0E8A,2AB9,8622,B18E,CD4D,89CD,2888,CD3B,892A 1390 DATA B786,22AF,8EE1,22B1,8ECD,E184,CDE4,82C3,1D88,2AB1,8E11,BF86,0103,00ED 1400 DATA B8CB,C7CB,7ECA,F984,23AF,7723,7723,77E5,22A1,86CD,E182,CD2D,80CD,7089 1410 DATA 22B1,862B,22AF,8622,A986,2B22,A786,CD3C,87CD,2188,CDE4,82CD,1D88,CD61 1420 DATA 89CD,3B89,E1E5,22B1,8E22,AF8E,CD85,83ED,5BBD,86CD,2287,E511,0600,CD1B 1430 DATA 8ACD,8583,E13A,BF86,CB1E,1F1F,CB16,22AF,8EE1,22B1,8E22,AD8E,C305,812A 1440 DATA B18E,E511,0500,CD25,8ACD,0080,E122,B18E,2AAF,8ECD,0380,CDE6,8C11,0500 1450 DATA CD1B,8ACD,3B89,CD85,83C3,8E89,CDE6,8C2A,B18E,E511,0500,CD25,8A11,0A00 1460 DATA CD53,83CD,E68C,CD3B,89E1,22B1,8E22,AF8E,C3E1,842A,BA8E,2B2B,2B2B,22BA 1470 DATA 8E2A,B18E,C92A,BA8E,2323,2323,22BA,8E2A,B786,C9CD,3B89,C345,86CD,3B89 1480 DATA C304,83C3,308C,C333,8CC3,588A,C3AE,8AC3,5B8A,C39F,8AC3,728A,C378,8AC3 1490 DATA 0881,C305,81C3,8583,C3E1,84C3,5F8D,C35C,86C3,6086,C353,83C3,1180,C346 1500 DATA 80C3,E482,C3E1,82C3,C08E,C300,80CD,0080,C32D,80C3,4586,C3C7,8DC3,3D80 1510 DATA C340,80C3,B080,C3B3,80C3,1E83,C340,8AC3,0483,C3CD,8DCD,0080,C32C,8AC3 1520 DATA AB84,C358,89CD,0080,C321,88CD,0080,C31D,88C3,4589,C3B8,84C3,5089,C3B4 1530 DATA 84CD,0080,C328,88CD,0080,C38E,89CD,0080,C3BD,8ACD,0080,C3CC,8ACD,0080 1540 DATA C37E,8BCD,0080,C3D3,8BCD,0080,C3EA,8BCD,0080,C3E6,8CCD,0080,C388,8DCD 1550 DATA 0080,C38D,8CCD,0080,C35D,8CCD,0080,C362,8CCD,0080,C367,8C00,0000,0000 1555 DATA 0000,0000,0000,0000,0000,0000,0000,0000 1560 DATA ED53,1B88,2AB1,8EE5,1101,00CD,258A,22BB,86CD,0080,E1E5,22B1,8ECD,4680 1565 DATA 2A1B,88CB,3CCB,1D22,1B88,3011,2ABB,8622 1570 DATA AD8E,E1E5,22B1,8E22,AF8E,CD85,832A,1B88,AFBD,2003,BC28,0B2A,BB86,22B1 1575 DATA 8ECD,5889,18CE,E122,B18E,C9SS