From 205f5e213226b7f13982036a9fb6246cfd1a4d86 Mon Sep 17 00:00:00 2001 From: Michaelangel007 Date: Wed, 5 Jul 2017 20:28:10 -0700 Subject: [PATCH] Optimized down to 96 bytes --- README.md | 29 +++++++++++++---------------- print_uint16 | Bin 124 -> 103 bytes print_uint16.s | 24 ++++++------------------ 3 files changed, 19 insertions(+), 34 deletions(-) diff --git a/README.md b/README.md index 0685cc6..42d0000 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Print unsigned 16-bit -6502 assembly code to print an unsigned 16-bit in 117 bytes ($75). +6502 assembly code to print an unsigned 16-bit in 96 bytes ($60). * No zero-page usage @@ -13,21 +13,18 @@ Copy/Paste into your favorite emulator. ```asm 0800:A9 12 A2 34 4C 07 08 8E -0808:7A 08 8D 7B 08 A9 00 8D -0810:70 08 8D 71 08 8D 72 08 -0818:A2 10 F8 0E 7A 08 2E 7B -0820:08 A0 FD B9 73 07 79 73 -0828:07 99 73 07 C8 D0 F4 CA -0830:D0 E9 D8 A0 04 A9 B0 8D -0838:74 08 B9 6F 08 20 53 08 -0840:88 D0 F7 8E 70 08 B9 74 -0848:08 20 ED FD C8 CC 70 08 -0850:90 F4 60 48 20 7B F8 20 -0858:5D 08 68 29 0F D0 04 E0 -0860:00 F0 0C C9 0A 90 02 69 -0868:06 69 B0 9D 74 08 E8 60 -0870:00 00 00 00 00 00 00 00 -0878:00 00 00 00 +0808:65 08 8D 66 08 A9 00 8D +0810:61 08 8D 62 08 8D 63 08 +0818:A2 10 F8 0E 65 08 2E 66 +0820:08 A0 FD B9 64 07 79 64 +0828:07 99 64 07 C8 D0 F4 CA +0830:D0 E9 D8 A0 03 B9 60 08 +0838:20 44 08 88 D0 F7 8A E0 +0840:00 F0 11 60 48 20 7B F8 +0848:20 4E 08 68 29 0F D0 04 +0850:E0 00 F0 0C C9 0A 90 02 +0858:69 06 69 B0 20 ED FD E8 +0860:60 00 00 00 00 00 00 ``` diff --git a/print_uint16 b/print_uint16 index 44bf318495dcd4818c28dcbd2d0373d4cb4e344b..8415f2f7af51fe6ed3cb6990ca5ebc56fa867edb 100644 GIT binary patch literal 103 zcmZ1}w8+GVoue<6qc@FXB|~o_M{g2GZ!*UsfggOS9C~RS3;ym*VXsVKpP9mb;=-3x z7hc|2z`QeoL&1fk +6 + (C=1) = $11 _Hex2Asc ADC #'0' + $80 ; inverse=remove #$80 PutChar - STA _output,X + JSR COUT INX ; X = output string length _HexAsciiDone RTS - _bcd ds 4 ; 6 chars for printing dec -_len = _bcd ; alias -_output ds 6 ; BCD -> 6 chars _temp db 0,0