Konwersja danych | Kompilacja |
ARGUMENTY WEJŚCIOWE | WYJŚCIE DANYCH | ||
ConBD | Konwersja bajtu do systemu DEC-ASCIIZ | D1.b | textbuf |
Con8D | Konwersja 8-bitów do systemu DEC-ASCIIZ | D1.b | textbuf |
ConWD | Konwersja słowa (16-bit) do systemu DEC-ASCIIZ | D1.w | textbuf |
Con16D | Konwersja 16-bitów do systemu DEC-ASCIIZ | D1.w | textbuf |
Con20D | Konwersja 20-bitów do systemu DEC-ASCIIZ | D1.l | textbuf |
Con24D | Konwersja 24-bitów do systemu DEC-ASCIIZ | D1.l | textbuf |
ConLD | Konwersja długiego słowa (32-bit) do systemu DEC-ASCIIZ | D1.l | textbuf |
Con32D | Konwersja 32-bitów do systemu DEC-ASCIIZ | D1.l | textbuf |
ConBO | Konwersja bajtu do systemu OCT-ASCIIZ | D1.b | textbuf |
Con8O | Konwersja 8-bitów do systemu OCT-ASCIIZ | D1.b | textbuf |
ConWO | Konwersja słowa (16-bit) do systemu OCT-ASCIIZ | D1.w | textbuf |
Con16O | Konwersja 16-bitów do systemu OCT-ASCIIZ | D1.w | textbuf |
ConLO | Konwersja długiego słowa (32-bit) do systemu OCT-ASCIIZ | D1.l | textbuf |
Con32O | Konwersja 32-bitów do systemu OCT-ASCIIZ | D1.l | textbuf |
ARGUMENTY WEJŚCIOWE | WYJŚCIE DANYCH | ||
ConD6 | Konwersja 6-cyfrowej liczby DEC-ASCIIZ do systemu binarnego | textbuf | D1.l |
ConD10 | Konwersja 10-cyfrowej liczby DEC-ASCIIZ do systemu binarnego | textbuf | D1.l |
ConO11 | Konwersja 11-cyfrowej liczby OCT-ASCIIZ do systemu binarnego | textbuf | D1.l |
NAZWA | ARGUMENTY WEJŚCIOWE | WYJŚCIE DANYCH | |
ConBH | Konwersja bajtu do systemu HEX-ASCIIZ | D1.b | textbuf |
ConWH | Konwersja słowa (16-bit) do systemu HEX-ASCIIZ | D1.w | textbuf |
ConLH | Konwersja długiego słowa (32-bit) do systemu HEX-ASCIIZ | D1.l | textbuf |
ARGUMENTY WEJŚCIOWE | WYJŚCIE DANYCH | ||
ConH8 | Konwersja 8-cyfrowej liczby HEX-ASCIIZ do systemu binarnego | textbuf | D1.l |
ConH8s | Konwersja 8-cyfrowej liczby HEX-ASCIIZ do systemu binarnego (duże/małe litery) | textbuf | D1.l |
NAZWA | ARGUMENTY WEJŚCIOWE | WYJŚCIE DANYCH | |
ConBB | Konwersja bajtu do systemu BIN-ASCIIZ | D1.b | textbuf |
ConWB | Konwersja słowa (16-bit) do systemu BIN-ASCIIZ | D1.w | textbuf |
ConLB | Konwersja długiego słowa (32-bit) do systemu BIN-ASCIIZ | D1.l | textbuf |
ARGUMENTY WEJŚCIOWE | WYJŚCIE DANYCH | ||
ConB32 | Konwersja 32-cyfrowej liczby BIN-ASCIIZ do systemu binarnego | textbuf | D1.l |
ARGUMENTY WEJŚCIOWE | WYJŚCIE DANYCH | ||
ConBBD | Konwersja bajtu do systemu binarnego BCD | D1.b | D2.w |
Con20BD | Konwersja 20-bitów do systemu binarnego BCD | D1.l | D2.l |
Con24BD | Konwersja 24-bitów do systemu binarnego BCD | D1.l | D2.l |
Con28BD | Konwersja 28-bitów do systemu binarnego BCD | D1.l | D2.l |
ConBBO | Konwersja bajtu do systemu binarnego BCO | D1.b | D2.w |
ConWBO | Konwersja słowa (16-bit) do systemu binarnego BCO | D1.w | D2.l |
Con24BO | Konwersja 24-bitów do systemu binarnego BCO | D1.l | D2.l |
ARGUMENTY WEJŚCIOWE | WYJŚCIE DANYCH | ||
ConBDB | Konwersja bajtu BCD do systemu binarnego | D1.b | D2.b |
ConBDW | Konwersja słowa (16-bit) BCD do systemu binarnego | D1.w | D2.w |
ConBD24 | Konwersja 24-bitów BCD do systemu binarnego | D1.l | D2.l |
ConBDL | Konwersja długiego słowa (32-bit) BCD do systemu binarnego | D1.l | D2.l |
ConBOB | Konwersja bajtu BCO do systemu binarnego | D1.b | D2.b |
ConBOW | Konwersja słowa (16-bit) BCO do systemu binarnego | D1.w | D2.w |
ConBOL | Konwersja długiego słowa (32-bit) BCO do systemu binarnego | D1.l | D2.l |
ARGUMENTY WEJŚCIOWE | WYJŚCIE DANYCH | ||
ConBDBD | Konwersja bajtu BCD do systemu DEC-ASCIIZ | D1.b | textbuf |
ConBDWD | Konwersja słowa (16-bit) BCD do systemu DEC-ASCIIZ | D1.w | textbuf |
ConBDLD | Konwersja długiego słowa (32-bit) BCD do systemu DEC-ASCIIZ | D1.l | textbuf |
ConBOBO | Konwersja bajtu BCO do systemu OCT-ASCIIZ | D1.b | textbuf |
ConBOWO | Konwersja słowa (16-bit) BCO do systemu OCT-ASCIIZ | D1.w | textbuf |
ConBOLO | Konwersja długiego słowa (32-bit) BCO do systemu OCT-ASCIIZ | D1.l | textbuf |
ARGUMENTY WEJŚCIOWE | WYJŚCIE DANYCH | ||
ConD8BD | Konwersja 8-cyfrowej liczby DEC-ASCIIZ do systemu binarnego BCD | textbuf | D1.l |
ConO8BO | Konwersja 8-cyfrowej liczby OCT-ASCIIZ do systemu binarnego BCO | textbuf | D1.l |
NAZWA | ARGUMENTY WEJŚCIOWE | WYJŚCIE DANYCH | |
ConBA | Konwersja bajtu do systemu ASCIIZ | D1.b | textbuf |
ConWA | Konwersja słowa (16-bit) do systemu ASCIIZ | D1.w | textbuf |
ConLA | Konwersja długiego słowa (32-bit) do systemu ASCIIZ | D1.l | textbuf |
NAZWA | ARGUMENTY WEJŚCIOWE | WYJŚCIE DANYCH | |
ConA4 | Konwersja 4-znakowego ciągu ASCIIZ do systemu binarnego | textbuf | D1.l |
ConBD: moveq #$00,D1 ;bajt do konwersji lea textbuf,A0 ;adres wyjścia danych moveq #$64,D2 ConBD0: move.b #$2F,(A0) ConBD1: addq.b #1,(A0) sub.b D2,D1 bcc.s ConBD1 add.b D2,D1 addq.l #1,A0 divu #$0A,D2 bne.s ConBD0 clr.b (A0) rts ;Maksymalna wartość liczby wyjściowej: "255" ($FF) ;Rozmiar: 34 B, linii kodu: 13
Con8D: moveq #$00,D1 ;bajt do konwersji lea textbuf,A0 ;adres wyjścia danych moveq #$0A,D5 moveq #$03,D2 ;maksymalna liczba cyfr add.l D2,A0 clr.b (A0) Con8D0: moveq #$08,D3 ;liczba bitów do konwersji clr.b D4 Con8D1: roxl.b #1,D4 cmp.b D5,D4 bcs.s Con8D2 sub.b D5,D4 or.b #$10,CCR ;ustawienie flagi X w rejestrze CCR Con8D2: roxl.b #1,D1 dbf D3,Con8D1 add.b #$30,D4 move.b D4,-(A0) subq.b #1,D2 bne.s Con8D0 rts ;Maksymalna wartość liczby wyjściowej: "255" ($FF) ;Rozmiar: 50 B, linii kodu: 20
ConWD: move.w #$00,D1 ;dane do konwersji lea textbuf,A0 ;adres wyjścia danych move.l #$2710,D2 ConWD0: move.b #$2F,(A0) ConWD1: addq.b #1,(A0) sub.w D2,D1 bcc.s ConWD1 add.w D2,D1 addq.l #1,A0 divu #$0A,D2 bne.s ConWD0 clr.b (A0) rts ;Maksymalna wartość liczby wyjściowej: "65535" ($FFFF) ;Rozmiar: 40 B, linii kodu: 13
Con16D: move.w #$00,D1 ;dane do konwersji lea textbuf,A0 ;adres wyjścia danych moveq #$0A,D5 moveq #$05,D2 ;maksymalna liczba cyfr add.l D2,A0 clr.b (A0) Con16D0: moveq #$10,D3 ;liczba bitów do konwersji clr.b D4 Con16D1: roxl.b #1,D4 cmp.b D5,D4 bcs.s Con16D2 sub.b D5,D4 or.b #$10,CCR ;ustawienie flagi X w rejestrze CCR Con16D2: roxl.w #1,D1 dbf D3,Con16D1 add.b #$30,D4 move.b D4,-(A0) subq.b #1,D2 bne.s Con16D0 rts ;Maksymalna wartość liczby wyjściowej: "65535" ($FFFF) ;Rozmiar: 52 B, linii kodu: 20
Con20D: move.l #$00,D1 ;dane do konwersji lea textbuf,A0 ;adres wyjścia danych move.l #$0186A0,D2 Con20D0: move.b #$2F,(A0) Con20D1: addq.b #1,(A0) sub.l D2,D1 bcc.s Con20D1 add.l D2,D1 addq.l #1,A0 divu #$0A,D2 bne.s Con20D0 clr.b (A0) rts ;Maksymalna wartość liczby wyjściowej: "999999" ($0F423F), wynika z ograniczeń ALU ;(dzielenie instrukcją DIVU). Jeśli konwertowane dane będą miały wartość większą od ;$0F423F, to liczba wyjściowa nie będzie prawidłowa. ;Rozmiar: 42 B, linii kodu: 13
Con24D: move.l #$00,D1 ;dane do konwersji lea textbuf,A0 ;adres wyjścia danych move.l #$0F4240,D2 move.l #$0927C0,D3 Con24D0: move.b #$2F,(A0) Con24D1: addq.b #1,(A0) sub.l D2,D1 bcc.s Con24D1 add.l D2,D1 addq.l #1,A0 sub.l D3,D2 divu #$0A,D3 lsr.l #2,D2 tst.b D2 bne.s Con24D0 clr.b (A0) rts ;Maksymalna wartość liczby wyjściowej: "9999999" ($98967F), wynika z ograniczeń ALU ;(dzielenie instrukcją DIVU). Jeśli konwertowane dane będą miały wartość większą od ;$98967F, to liczba wyjściowa nie będzie prawidłowa. ;Rozmiar: 54 B, linii kodu: 17
ConLD: move.l #$00,D1 ;dane do konwersji lea textbuf,A0 ;adres wyjścia danych lea ConLD2(pc),A1 ConLD0: move.b #$2F,(A0) ConLD1: addq.b #1,(A0) sub.l (A1),D1 bcc.s ConLD1 add.l (A1)+,D1 addq.l #1,A0 tst.b (A1) bpl.s ConLD0 clr.b (A0) rts ConLD2: dc.l 1000000000,100000000,10000000,1000000,100000,10000,1000,100,10,1 dc.b $80 ;Maksymalna wartość liczby wyjściowej: "4294967295" ($FFFFFFFF) ;Rozmiar: 79 B, linii kodu: 15
Con32D: move.l #$00,D1 ;dane do konwersji lea textbuf,A0 ;adres wyjścia danych moveq #$0A,D5 moveq #$0A,D2 ;maksymalna liczba cyfr add.l D2,A0 clr.b (A0) Con32D0: moveq #$20,D3 ;liczba bitów do konwersji clr.b D4 Con32D1: roxl.b #1,D4 cmp.b D5,D4 bcs.s Con32D2 sub.b D5,D4 or.b #$10,CCR ;ustawienie flagi X w rejestrze CCR Con32D2: roxl.l #1,D1 dbf D3,Con32D1 add.b #$30,D4 move.b D4,-(A0) subq.b #1,D2 bne.s Con32D0 rts ;Maksymalna wartość liczby wyjściowej: "4294967295" ($FFFFFFFF) ;Rozmiar: 54 B, linii kodu: 20
ConBO: moveq #$00,D1 ;bajt do konwersji lea textbuf,A0 ;adres wyjścia danych moveq #$40,D2 ConBO0: move.b #$2F,(A0) ConBO1: addq.b #1,(A0) sub.b D2,D1 bcc.s ConBO1 add.b D2,D1 addq.l #1,A0 lsr.b #3,D2 bne.s ConBO0 clr.b (A0) rts ;Maksymalna wartość liczby wyjściowej: "377" ($FF) ;Rozmiar: 32 B, linii kodu: 13
Con8O: moveq #$00,D1 ;bajt do konwersji lea textbuf,A0 ;adres wyjścia danych moveq #$08,D5 moveq #$03,D2 ;maksymalna liczba cyfr add.l D2,A0 clr.b (A0) Con8O0: moveq #$08,D3 ;liczba bitów do konwersji clr.b D4 Con8O1: roxl.b #1,D4 cmp.b D5,D4 bcs.s Con8O2 sub.b D5,D4 or.b #$10,CCR ;ustawienie flagi X w rejestrze CCR Con8O2: roxl.b #1,D1 dbf D3,Con8O1 add.b #$30,D4 move.b D4,-(A0) subq.b #1,D2 bne.s Con8O0 rts ;Maksymalna wartość liczby wyjściowej: "377" ($FF) ;Rozmiar: 50 B, linii kodu: 20
ConWO: move.w #$00,D1 ;dane do konwersji lea textbuf,A0 ;adres wyjścia danych move.w #$8000,D2 ConWO0: move.b #$2F,(A0) ConWO1: addq.b #1,(A0) sub.w D2,D1 bcc.s ConWO1 add.w D2,D1 addq.l #1,A0 lsr.w #3,D2 bne.s ConWO0 clr.b (A0) rts ;Maksymalna wartość liczby wyjściowej: "177777" ($FFFF) ;Rozmiar: 36 B, linii kodu: 13
Con16O: move.w #$00,D1 ;dane do konwersji lea textbuf,A0 ;adres wyjścia danych moveq #$08,D5 moveq #$06,D2 ;maksymalna liczba cyfr add.l D2,A0 clr.b (A0) Con16O0: moveq #$10,D3 ;liczba bitów do konwersji clr.b D4 Con16O1: roxl.b #1,D4 cmp.b D5,D4 bcs.s Con16O2 sub.b D5,D4 or.b #$10,CCR ;ustawienie flagi X w rejestrze CCR Con16O2: roxl.w #1,D1 dbf D3,Con16O1 add.b #$30,D4 move.b D4,-(A0) subq.b #1,D2 bne.s Con16O0 rts ;Maksymalna wartość liczby wyjściowej: "177777" ($FFFF) ;Rozmiar: 52 B, linii kodu: 20
ConLO: move.l #$00,D1 ;dane do konwersji lea textbuf,A0 ;adres wyjścia danych moveq #$40,D2 ror.l #8,D2 ConLO0: move.b #$2F,(A0) ConLO1: addq.b #1,(A0) sub.l D2,D1 bcc.s ConLO1 add.l D2,D1 addq.l #1,A0 lsr.l #3,D2 bne.s ConLO0 clr.b (A0) rts ;Maksymalna wartość liczby wyjściowej: "37777777777" ($FFFFFFFF) ;Rozmiar: 38 B, linii kodu: 14
Con32O: move.l #$00,D1 ;dane do konwersji lea textbuf,A0 ;adres wyjścia danych moveq #$08,D5 moveq #$0B,D2 ;maksymalna liczba cyfr add.l D2,A0 clr.b (A0) Con32O0: moveq #$20,D3 ;liczba bitów do konwersji clr.b D4 Con32O1: roxl.b #1,D4 cmp.b D5,D4 bcs.s Con32O2 sub.b D5,D4 or.b #$10,CCR ;ustawienie flagi X w rejestrze CCR Con32O2: roxl.l #1,D1 dbf D3,Con32O1 add.b #$30,D4 move.b D4,-(A0) subq.b #1,D2 bne.s Con32O0 rts ;Maksymalna wartość liczby wyjściowej: "37777777777" ($FFFFFFFF) ;Rozmiar: 54 B, linii kodu: 20
ConD6: moveq #$00,D1 ;wynik konwersji lea textbuf,A0 ;adres wejścia danych bra.s ConD6b ConD6a: moveq #$0A,D2 sub.b #$30,(A0) mulu D2,D1 move.b (A0)+,D2 add.l D2,D1 ConD6b: tst.b (A0) bne.s ConD6a rts ;Maksymalna wartość liczby wejściowej: "655359" ($09FFFF), wynika z ograniczeń ALU ;(mnożenie instrukcją MULU). Jeśli liczba wejściowa będzie większa od "655359", ;to wynik konwersji przepełni się (będzie liczony od zera). ;Rozmiar: 28 B, linii kodu: 11
ConD10: moveq #$00,D1 ;wynik konwersji lea textbuf,A0 ;adres wejścia danych bra.s ConD10b ConD10a: sub.b #$30,(A0) move.l D1,D2 lsl.l #3,D1 add.l D2,D1 add.l D2,D1 moveq #$00,D2 move.b (A0)+,D2 add.l D2,D1 ConD10b: tst.b (A0) bne.s ConD10a rts ;Maksymalna wartość liczby wejściowej: "4294967295" ($FFFFFFFF) ;Jeśli liczba wejściowa będzie większa od "4294967295", ;to wynik konwersji przepełni się (będzie liczony od zera). ;Rozmiar: 34 B, linii kodu: 14
ConO11: moveq #$00,D1 ;wynik konwersji lea textbuf,A0 ;adres wejścia danych bra.s ConO11b ConO11a: moveq #$08,D2 sub.b #$30,(A0) lsl.l #3,D1 move.b (A0)+,D2 add.l D2,D1 ConO11b: tst.b (A0) bne.s ConO11a rts ;Maksymalna wartość liczby wejściowej: "37777777777" ($FFFFFFFF) ;Jeśli liczba wejściowa będzie większa od "37777777777", ;to wynik konwersji przepełni się (będzie liczony od zera). ;Rozmiar: 28 B, linii kodu: 11
ConBH: moveq #$00,D1 ;bajt do konwersji moveq #$01,D2 lea textbuf,A0 ;adres wyjścia danych ConBH0: rol.b #4,D1 move.b D1,D3 lsl.b #4,D3 addq.b #3,D3 rol.b #4,D3 cmp.b #$3A,D3 bcs.s ConBH1 addq.b #7,D3 ;add.b #$27,D3 - małe litery (a-f) ConBH1: move.b D3,(A0)+ dbf D2,ConBH0 clr.b (A0) rts ;Maksymalna wartość liczby wyjściowej: "FF" ($FF) ;Procedura generuje duże lub małe litery (a-f) ;Rozmiar: 38 B, linii kodu: 15
ConWH: move.w #$00,D1 ;dane do konwersji moveq #$03,D2 lea textbuf,A0 ;adres wyjścia danych ConWH0: rol.w #4,D1 move.b D1,D3 lsl.b #4,D3 addq.b #3,D3 rol.b #4,D3 cmp.b #$3A,D3 bcs.s ConWH1 addq.b #7,D3 ;add.b #$27,D3 - małe litery (a-f) ConWH1: move.b D3,(A0)+ dbf D2,ConWH0 clr.b (A0) rts ;Maksymalna wartość liczby wyjściowej: "FFFF" ($FFFF) ;Procedura generuje duże lub małe litery (a-f) ;Rozmiar: 40 B, linii kodu: 15
ConLH: move.l #$00,D1 ;dane do konwersji moveq #$07,D2 lea textbuf,A0 ;adres wyjścia danych ConLH0: rol.l #4,D1 move.b D1,D3 lsl.b #4,D3 addq.b #3,D3 rol.b #4,D3 cmp.b #$3A,D3 bcs.s ConLH1 addq.b #7,D3 ;add.b #$27,D3 - małe litery (a-f) ConLH1: move.b D3,(A0)+ dbf D2,ConLH0 clr.b (A0) rts ;Maksymalna wartość liczby wyjściowej: "FFFFFFFF" ($FFFFFFFF) ;Procedura generuje duże lub małe litery (a-f) ;Rozmiar: 42 B, linii kodu: 15
ConH8: moveq #$00,D1 ;wynik konwersji lea textbuf,A0 ;adres wejścia danych bra.s ConH8c ConH8a: sub.b #$30,(A0) cmp.b #$0A,(A0) bcs.s ConH8b subq.b #7,(A0) ;sub.b #$27,(A0) - małe litery (a-f) ConH8b: lsl.l #4,D1 add.b (A0)+,D1 ConH8c: tst.b (A0) bne.s ConH8a rts ;Maksymalna wartość liczby wejściowej: "FFFFFFFF" ($FFFFFFFF) ;Procedura konwertuje duże lub małe litery (a-f) ;Jeśli liczba wejściowa będzie dłuższa, to wynik konwersji zostanie ustalony przez jej ostatnie 8-cyfr ;Rozmiar: 32 B, linii kodu: 12
ConH8s: moveq #$00,D1 ;wynik konwersji lea textbuf,A0 ;adres wejścia danych bra.s ConH8s2 ConH8s0: sub.b #$30,(A0) cmp.b #$0A,(A0) bcs.s ConH8s1 subq.b #7,(A0) cmp.b #$0F,(A0) bls.s ConH8s1 sub.b #$20,(A0) ConH8s1: lsl.l #4,D1 add.b (A0)+,D1 ConH8s2: tst.b (A0) bne.s ConH8s0 rts ;Maksymalna wartość liczby wejściowej: "FfFfFfFf" ($FFFFFFFF) ;Procedura konwertuje duże i małe litery (a-f) ;Jeśli liczba wejściowa będzie dłuższa, to wynik konwersji zostanie ustalony przez jej ostatnie 8-cyfr ;Rozmiar: 42 B, linii kodu: 15
ConBB: moveq #$00,D1 ;bajt do konwersji lea textbuf,A0 ;adres wyjścia danych moveq #$07,D2 ;liczba bitów do konwersji (-1 bit) ConBB0: moveq #$30,D3 btst D2,D1 beq.s ConBB1 addq.b #1,D3 ConBB1: move.b D3,(A0)+ dbf D2,ConBB0 clr.b (A0) rts ;Maksymalna wartość liczby wyjściowej: "11111111" ($FF) ;Rozmiar: 28 B, linii kodu: 11
ConWB: move.w #$00,D1 ;dane do konwersji lea textbuf,A0 ;adres wyjścia danych moveq #$0F,D2 ;liczba bitów do konwersji (-1 bit) ConWB0: moveq #$30,D3 btst D2,D1 beq.s ConWB1 addq.b #1,D3 ConWB1: move.b D3,(A0)+ dbf D2,ConWB0 clr.b (A0) rts ;Maksymalna wartość liczby wyjściowej: "1111111111111111" ($FFFF) ;Rozmiar: 30 B, linii kodu: 11
ConLB: move.l #$00,D1 ;dane do konwersji lea textbuf,A0 ;adres wyjścia danych moveq #$1F,D2 ;liczba bitów do konwersji (-1 bit) ConLB0: moveq #$30,D3 btst D2,D1 beq.s ConLB1 addq.b #1,D3 ConLB1: move.b D3,(A0)+ dbf D2,ConLB0 clr.b (A0) rts ;Maksymalna wartość liczby wyjściowej: "11111111111111111111111111111111" ($FFFFFFFF) ;Rozmiar: 32 B, linii kodu: 11
ConB32: moveq #$00,D1 ;wynik konwersji lea textbuf,A0 ;adres wejścia danych bra.s ConB32b ConB32a: sub.b #$30,(A0) lsl.l #1,D1 add.b (A0)+,D1 ConB32b: tst.b (A0) bne.s ConB32a rts ;Maksymalna wartość liczby wejściowej: "11111111111111111111111111111111" ($FFFFFFFF) ;Jeśli liczba wejściowa będzie dłuższa, to wynik konwersji ;zostanie ustalony przez jej ostatnie 32-cyfry ;Rozmiar: 24 B, linii kodu: 9
ConBBD: moveq #$00,D1 ;bajt do konwersji clr.w D2 ;wynik konwersji moveq #$64,D3 ConBBD0: lsl.w #4,D2 add.b #$FF,D2 ConBBD1: addq.b #1,D2 sub.b D3,D1 bcc.s ConBBD1 add.b D3,D1 divu #$0A,D3 bne.s ConBBD0 rts ;Maksymalna wartość danych wyjściowych: $0255 ($FF) ;Rozmiar: 28 B, linii kodu: 12
Con20BD: move.l #$00,D1 ;dane do konwersji moveq #$00,D2 ;wynik konwersji move.l #$0186A0,D3 Con20BD0: lsl.l #4,D2 add.b #$FF,D2 Con20BD1: addq.b #1,D2 sub.l D3,D1 bcc.s Con20BD1 add.l D3,D1 divu #$0A,D3 bne.s Con20BD0 rts ;Maksymalna wartość danych wyjściowych: $999999 ($0F423F), wynika z ograniczeń ALU ;(dzielenie instrukcją DIVU). Jeśli konwertowane dane będą miały wartość większą od ;$0F423F, to wynik konwersji nie będzie prawidłowy. ;Rozmiar: 36 B, linii kodu: 12
Con24BD: move.l #$00,D1 ;dane do konwersji moveq #$00,D2 ;wynik konwersji move.l #$0F4240,D3 move.l #$0927C0,D4 Con24BD0: lsl.l #4,D2 add.b #$FF,D2 Con24BD1: addq.b #1,D2 sub.l D3,D1 bcc.s Con24BD1 add.l D3,D1 sub.l D4,D3 divu #$0A,D4 lsr.l #2,D3 tst.b D3 bne.s Con24BD0 rts ;Maksymalna wartość danych wyjściowych: $09999999 ($98967F), wynika z ograniczeń ALU ;(dzielenie instrukcją DIVU). Jeśli konwertowane dane będą miały wartość większą od ;$98967F, to wynik konwersji nie będzie prawidłowy. ;Rozmiar: 48 B, linii kodu: 16
Con28BD: move.l #$00,D1 ;dane do konwersji moveq #$00,D2 ;wynik konwersji lea Con28BD2(pc),A0 Con28BD0: lsl.l #4,D2 add.b #$FF,D2 Con28BD1: addq.b #1,D2 sub.l (A0),D1 bcc.s Con28BD1 add.l (A0)+,D1 tst.b (A0) beq.s Con28BD0 rts Con28BD2: dc.l 100000000,10000000,1000000,100000,10000,1000,100,10,1 dc.b $FF ;Maksymalna wartość danych wyjściowych: $99999999 ($05F5E0FF) ;Jeśli konwertowane dane będą miały wartość większą od $05F5E0FF, ;to wynik konwersji przepełni się (będzie liczony od zera). ;Rozmiar: 69 B, linii kodu: 14
ConBBO: moveq #$00,D1 ;bajt do konwersji clr.w D2 ;wynik konwersji moveq #$40,D3 ConBBO0: lsl.w #4,D2 add.b #$FF,D2 ConBBO1: addq.b #1,D2 sub.b D3,D1 bcc.s ConBBO1 add.b D3,D1 lsr.b #3,D3 bne.s ConBBO0 rts ;Maksymalna wartość danych wyjściowych: $0377 ($FF) ;Rozmiar: 26 B, linii kodu: 12
ConWBO: move.w #$00,D1 ;dane do konwersji moveq #$00,D2 ;wynik konwersji move.w #$8000,D3 ConWBO0: lsl.l #4,D2 add.b #$FF,D2 ConWBO1: addq.b #1,D2 sub.w D3,D1 bcc.s ConWBO1 add.w D3,D1 lsr.w #3,D3 bne.s ConWBO0 rts ;Maksymalna wartość danych wyjściowych: $177777 ($FFFF) ;Rozmiar: 30 B, linii kodu: 12
Con24BO: move.l #$00,D1 ;dane do konwersji moveq #$00,D2 ;wynik konwersji moveq #$40,D3 ror.l #8,D3 Con24BO0: lsl.l #4,D2 add.b #$FF,D2 Con24BO1: addq.b #1,D2 sub.l D3,D1 bcc.s Con24BO1 add.l D3,D1 lsr.l #3,D3 bne.s Con24BO0 rts ;Maksymalna wartość danych wyjściowych: $77777777 ($xxFFFFFF) ;Wartość najstarszego bajtu konwertowanych danych, nie wpływa na wynik konwersji ;Rozmiar: 32 B, linii kodu: 13
ConBDB: moveq #$00,D1 ;bajt do konwersji clr.b D2 ;wynik konwersji moveq #$01,D3 ConBDB0: rol.b #4,D1 move.b D1,D4 lsl.b #4,D4 ror.b #4,D4 mulu #$0A,D2 add.b D4,D2 dbf D3,ConBDB0 rts ;Maksymalna wartość danych wejściowych: $99 ($63) ;Rozmiar: 26 B, linii kodu: 11
ConBDW: move.w #$00,D1 ;dane do konwersji clr.w D2 ;wynik konwersji moveq #$03,D3 clr.w D4 ConBDW0: rol.w #4,D1 move.b D1,D4 lsl.b #4,D4 ror.b #4,D4 mulu #$0A,D2 add.w D4,D2 dbf D3,ConBDW0 rts ;Maksymalna wartość danych wejściowych: $9999 ($270F) ;Rozmiar: 30 B, linii kodu: 12
ConBD24: move.l #$00,D1 ;dane do konwersji moveq #$00,D2 ;wynik konwersji moveq #$07,D3 moveq #$00,D4 ConBD24a: rol.l #4,D1 move.b D1,D4 lsl.b #4,D4 ror.b #4,D4 mulu #$0A,D2 add.l D4,D2 dbf D3,ConBD24a rts ;Maksymalna wartość danych wejściowych: $655359 ($09FFFF), wynika z ograniczeń ALU ;(mnożenie instrukcją MULU). Jeśli konwertowane dane będą miały wartość większą od ;$655359, to wynik konwersji przepełni się (będzie liczony od zera). ;Rozmiar: 32 B, linii kodu: 12
ConBDL: move.l #$00,D1 ;dane do konwersji moveq #$00,D2 ;wynik konwersji moveq #$07,D3 ConBDL0: move.l D2,D4 rol.l #3,D2 add.l D4,D2 add.l D4,D2 moveq #$00,D4 rol.l #4,D1 move.b D1,D4 lsl.b #4,D4 ror.b #4,D4 add.l D4,D2 dbf D3,ConBDL0 rts ;Maksymalna wartość danych wejściowych: $99999999 ($05F5E0FF) ;Rozmiar: 36 B, linii kodu: 15
ConBOB: moveq #$00,D1 ;bajt do konwersji clr.b D2 ;wynik konwersji moveq #$01,D3 ConBOB0: rol.b #4,D1 move.b D1,D4 lsl.b #4,D4 ror.b #4,D4 rol.b #3,D2 add.b D4,D2 dbf D3,ConBOB0 rts ;Maksymalna wartość danych wejściowych: $77 ($3F) ;Rozmiar: 24 B, linii kodu: 11
ConBOW: move.w #$00,D1 ;dane do konwersji clr.w D2 ;wynik konwersji moveq #$03,D3 clr.w D4 ConBOW0: rol.w #4,D1 move.b D1,D4 lsl.b #4,D4 ror.b #4,D4 rol.w #3,D2 add.w D4,D2 dbf D3,ConBOW0 rts ;Maksymalna wartość danych wejściowych: $7777 ($0FFF) ;Rozmiar: 28 B, linii kodu: 12
ConBOL: move.l #$00,D1 ;dane do konwersji moveq #$00,D2 ;wynik konwersji moveq #$07,D3 moveq #$00,D4 ConBOL0: rol.l #4,D1 move.b D1,D4 lsl.b #4,D4 ror.b #4,D4 rol.l #3,D2 add.l D4,D2 dbf D3,ConBOL0 rts ;Maksymalna wartość danych wejściowych: $77777777 ($FFFFFF) ;Rozmiar: 30 B, linii kodu: 12
ConBDBD: moveq #$00,D1 ;bajt do konwersji lea textbuf,A0 ;adres wyjścia danych moveq #$01,D2 ConBDBD0: rol.b #4,D1 move.b D1,D3 lsl.b #4,D3 addq.b #3,D3 rol.b #4,D3 move.b D3,(A0)+ dbf D2,ConBDBD0 clr.b (A0) rts ;Maksymalna wartość liczby wyjściowej: "99" ($99) ;Rozmiar: 30 B, linii kodu: 12
ConBDWD: move.w #$00,D1 ;dane do konwersji lea textbuf,A0 ;adres wyjścia danych moveq #$03,D2 ConBDWD0: rol.w #4,D1 move.b D1,D3 lsl.b #4,D3 addq.b #3,D3 rol.b #4,D3 move.b D3,(A0)+ dbf D2,ConBDWD0 clr.b (A0) rts ;Maksymalna wartość liczby wyjściowej: "9999" ($9999) ;Rozmiar: 32 B, linii kodu: 12
ConBDLD: move.l #$00,D1 ;dane do konwersji lea textbuf,A0 ;adres wyjścia danych moveq #$07,D2 ConBDLD0: rol.l #4,D1 move.b D1,D3 lsl.b #4,D3 addq.b #3,D3 rol.b #4,D3 move.b D3,(A0)+ dbf D2,ConBDLD0 clr.b (A0) rts ;Maksymalna wartość liczby wyjściowej: "99999999" ($99999999) ;Rozmiar: 34 B, linii kodu: 12
ConBOBO: moveq #$00,D1 ;bajt do konwersji lea textbuf,A0 ;adres wyjścia danych moveq #$01,D2 ConBOBO0: rol.b #4,D1 move.b D1,D3 lsl.b #4,D3 addq.b #3,D3 rol.b #4,D3 move.b D3,(A0)+ dbf D2,ConBOBO0 clr.b (A0) rts ;Maksymalna wartość liczby wyjściowej: "77" ($77) ;Rozmiar: 30 B, linii kodu: 12
ConBOWO: move.w #$00,D1 ;dane do konwersji lea textbuf,A0 ;adres wyjścia danych moveq #$03,D2 ConBOWO0: rol.w #4,D1 move.b D1,D3 lsl.b #4,D3 addq.b #3,D3 rol.b #4,D3 move.b D3,(A0)+ dbf D2,ConBOWO0 clr.b (A0) rts ;Maksymalna wartość liczby wyjściowej: "7777" ($7777) ;Rozmiar: 32 B, linii kodu: 12
ConBOLO: move.l #$00,D1 ;dane do konwersji lea textbuf,A0 ;adres wyjścia danych moveq #$07,D2 ConBOLO0: rol.l #4,D1 move.b D1,D3 lsl.b #4,D3 addq.b #3,D3 rol.b #4,D3 move.b D3,(A0)+ dbf D2,ConBOLO0 clr.b (A0) rts ;Maksymalna wartość liczby wyjściowej: "77777777" ($77777777) ;Rozmiar: 34 B, linii kodu: 12
ConD8BD: moveq #$00,D1 ;wynik konwersji lea textbuf,A0 ;adres wejścia danych bra.s ConD8BD1 ConD8BD0: sub.b #$30,(A0) lsl.l #4,D1 add.b (A0)+,D1 ConD8BD1: tst.b (A0) bne.s ConD8BD0 rts ;Maksymalna wartość liczby wejściowej: "99999999" ($99999999) ;Jeśli liczba wejściowa będzie dłuższa, to wynik konwersji zostanie ustalony przez jej ostatnie 8-cyfr ;Rozmiar: 24 B, linii kodu: 9
ConO8BO: moveq #$00,D1 ;wynik konwersji lea textbuf,A0 ;adres wejścia danych bra.s ConO8BO1 ConO8BO0: sub.b #$30,(A0) lsl.l #4,D1 add.b (A0)+,D1 ConO8BO1: tst.b (A0) bne.s ConO8BO0 rts ;Maksymalna wartość liczby wejściowej: "77777777" ($77777777) ;Jeśli liczba wejściowa będzie dłuższa, to wynik konwersji zostanie ustalony przez jej ostatnie 8-cyfr ;Rozmiar: 24 B, linii kodu: 9
ConBA: moveq #$00,D1 ;bajt do konwersji lea textbuf,A0 ;adres wyjścia danych cmp.b #$20,D1 bcs.s ConBA0 cmp.b #$7F,D1 bcs.s ConBA1 ConBA0: moveq #$2E,D1 ;znak xx ConBA1: move.b D1,(A0)+ clr.b (A0) rts ;Maksymalna wartość ciągu wyjściowego: "~" ($7E) ;Jeśli konwertowany bajt będzie miał wartość <$20 lub >$7E, ;to w ciągu wyjściowym zostanie on zastąpiony znakiem xx. ;Rozmiar: 28 B, linii kodu: 10
ConWA: move.w #$00,D1 ;dane do konwersji lea textbuf,A0 ;adres wyjścia danych moveq #$01,D2 ConWA0: rol.w #8,D1 cmp.b #$20,D1 bcs.s ConWA1 cmp.b #$7F,D1 bcs.s ConWA2 ConWA1: move.b #$2E,D1 ;znak xx ConWA2: move.b D1,(A0)+ dbf D2,ConWA0 clr.b (A0) rts ;Maksymalna wartość ciągu wyjściowego: "~~" ($7E7E) ;Jeśli konwertowany bajt będzie miał wartość <$20 lub >$7E, ;to w ciągu wyjściowym zostanie on zastąpiony znakiem xx. ;Rozmiar: 40 B, linii kodu: 13
ConLA: move.l #$00,D1 ;dane do konwersji lea textbuf,A0 ;adres wyjścia danych moveq #$03,D2 ConLA0: rol.l #8,D1 cmp.b #$20,D1 bcs.s ConLA1 cmp.b #$7F,D1 bcs.s ConLA2 ConLA1: move.b #$2E,D1 ;znak xx ConLA2: move.b D1,(A0)+ dbf D2,ConLA0 clr.b (A0) rts ;Maksymalna wartość ciągu wyjściowego: "~~~~" ($7E7E7E7E) ;Jeśli konwertowany bajt będzie miał wartość <$20 lub >$7E, ;to w ciągu wyjściowym zostanie on zastąpiony znakiem xx. ;Rozmiar: 42 B, linii kodu: 13
ConA4: moveq #$00,D1 ;wynik konwersji lea textbuf,A0 ;adres wejścia danych bra.s ConA4b ConA4a: rol.l #8,D1 move.b (A0)+,D1 ConA4b: tst.b (A0) bne.s ConA4a rts ;Maksymalna wartość ciągu wejściowego: "~~~~" ($7E7E7E7E) ;Jeśli ciąg wejściowy będzie dłuższy, to wynik konwersji zostanie ustalony przez jego ostatnie 4-znaki ;Rozmiar: 20 B, linii kodu: 8