; 00012 .INCLUDE "LB:[MACROS]MACROS.MAC" .INCLUDE "C.MAC" MODULE BinaryToInteger, MNAME=BTOI, VER=01, COMM=<> FROM CSV IMPORT C$SAV, C$RET EXPORT QUALIFIED BTOI PROCEDURE BTOI BEGIN C$SAV ; ; 12(R5) - ןףמןקבמיו ף‏יףלומיס ; 10(R5) - בהעוף הלס נעוןגעבתןקבממןחן ‏יףלב ; 6(R5) - הלימב ףפעןכי ; 4(R5) - בהעוף מב‏בלב ףפעןכי ; ; -10(R5) - נעוןגעבתץוםןו ‏יףלן ; -12(R5) - ן‏ועוהמבס דיזעב ; -14(R5) - זלבח ןפעידבפולרמןחן ‏יףלב (1-הב) ; -16(R5) - מב‏בלן ףפעןכי ; ; ־ב קשטןהו R0 - ‏יףלן נעוןגעבתןקבממשט ףיםקןלןק ; ADD #-10, SP MOV 4(R5), R4 MOV 6(R5), R2 MOV 10(R5), R3 CLR -10(R5) MOV R4, -16(R5) CLR -14(R5) LOOP IF R2 EQ #0 LEAVE LOOP IF (R4) HI #40 ANDB #177 HI (R4) LEAVE LOOP DEC R2 INC R4 END IF R2 NE #0 THEN IFB (R4) EQ #'- THEN MOV #1, -14(R5) INC R4 DEC R2 ELSE IFB (R4) EQ #'+ THEN INC R4 DEC R2 END END END IF 12(R5) EQ #16. AND #2 LOS R2 ANDB (R4) EQ #'0 THEN CLR R0 BISB 1(R4), R0 IFB #'A LOS R0 ANDB R0 LOS #'Z THEN ADD #40, R0 END IFB R0 EQ #'x THEN ADD #2, R4 SUB #2, R2 END END IF R2 NE #0 THEN REPEAT CLR R0 BISB (R4)+, R0 IFB #'0 LOS R0 ANDB R0 LOS #'9 THEN ADD #0-'0, R0 MOV R0, -12(R5) ELSE IFB #'A LOS R0 ANDB R0 LOS #'Z THEN ADD #40, R0 END IFB #'a LOS R0 ANDB R0 LOS #'z THEN ADD #10.-'a, R0 MOV R0, -12(R5) END END IF 12(R5) LE -12(R5) LEAVE LOOP MOV -10(R5), R1 MUL 12(R5), R1 ADD -12(R5), R1 MOV R1, -10(R5) DEC R2 UNTIL RESULT IS EQ END MOV -10(R5), R0 IF -14(R5) NE #0 THEN NEG R0 END MOV R0, (R3) IF R2 NE #0 THEN CLR R0 BISB (R4), R0 IFB #'A LOS R0 ANDB R0 LOS #'Z THEN ADD #40, R0 END IF R0 EQ #'l THEN INC R4 END END MOV R4, R0 SUB -16(R5), R0 C$RET END BTOI END BinaryToInteger .END