From 7d3e8a1c3ada8040ccbe9897d4153ee01d2117e1 Mon Sep 17 00:00:00 2001 From: Pedro de Oliveira Date: Wed, 13 Aug 2014 01:22:36 +0100 Subject: [PATCH] Usa 16 bits em todo o lado MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Antes só suportava ate posicao FF no ficheiro e posicao FF em memoria --- zx-brainfuck/main.asm | 52 +++++++++++++++++++----------------------- zx-brainfuck/main.tap | Bin 420 -> 406 bytes 2 files changed, 23 insertions(+), 29 deletions(-) diff --git a/zx-brainfuck/main.asm b/zx-brainfuck/main.asm index adaec2b..1976634 100644 --- a/zx-brainfuck/main.asm +++ b/zx-brainfuck/main.asm @@ -12,12 +12,12 @@ OP_IN equ "," OP_JMP_FWD equ "[" OP_JMP_BCK equ "]" -brainfuck db "++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.", 0 +;brainfuck db "++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.", 0 ;brainfuck db "+++++++++++++++++++++++++++++++++.", 0 -;brainfuck db "++++[>++++++++++<-]>++.>+++++++++++++.<<++[>.<-]>>.<<+++[>.<-]>>.<<++++[>.<-]>>.<<+++++[>.<-]>>.", 0 +brainfuck db "++++[>++++++++++<-]>++.>+++++++++++++.<<++[>.<-]>>.<<+++[>.<-]>>.<<++++[>.<-]>>.<<+++++[>.<-]>>.", 0 ;brainfuck db "++[>+<-]" ,0 memory_pos db $0,$80 -source_pos db $0 +source_pos db $0,$0 start ; Começa em $75a2 xor a ; O mesmo que LD a, 0 @@ -26,9 +26,7 @@ start ; Começa em $75a2 main ld hl, brainfuck - ld a, (source_pos) - ld d, $0 - ld e, a + ld de, (source_pos) add hl, de ld a, (hl) @@ -70,9 +68,9 @@ main jr z, F_JMP_BCK continue - ld a, (source_pos) - inc a - ld (source_pos), a + ld de, (source_pos) + inc de + ld (source_pos), de jr main end_main @@ -82,17 +80,17 @@ end_main ; ------------------------------------- F_INC_DP - ld a, (memory_pos) - inc a - ld (memory_pos), a + ld de, (memory_pos) + inc de + ld (memory_pos), de jr continue ; ------------------------------------- F_DEC_DP - ld a, (memory_pos) - dec a - ld (memory_pos), a + ld de, (memory_pos) + dec de + ld (memory_pos), de jr continue ; ------------------------------------- @@ -142,38 +140,34 @@ F_JMP_FWD cp 0 jr z, SKIP_LOOP - ld a, (source_pos) - ld d, 0 - ld e, a + ld de, (source_pos) push de jr continue SKIP_LOOP - ld a, (source_pos) - inc a - ld (source_pos), a + ld de, (source_pos) + inc de + ld (source_pos), de ld hl, brainfuck - ld a, (source_pos) - ld d, $0 - ld e, a add hl, de ld a, (hl) cp OP_JMP_BCK jr nz, SKIP_LOOP - ld a, (source_pos) - inc a - ld (source_pos), a + ld de, (source_pos) + inc de + ld (source_pos), de jp main ; ------------------------------------- F_JMP_BCK pop de - ld a, e - ld (source_pos), a + ld (source_pos), de jp main +; ------------------------------------- + end start diff --git a/zx-brainfuck/main.tap b/zx-brainfuck/main.tap index 2952e210e1c09c50f3ae509a2527b2ebf91a3186..0a8e1393fdfdc1d889c8d94505b6feb6a31fac8f 100644 GIT binary patch literal 406 zcmWe;U|`6}PfSTIQUC&X1}+A725C=*{|sEb41bL*fq;*JLBEuNmqA3F;fs;6nV|tt zz$%78$H>$a$okI!l#*j*c(0_io|i#`kKyM5V*^72L!i`Dpsqc_3=GV1w8V{X|;4?5ZFfgn) zvWYpWXi)k#dUB~`-9H8m?SFO}n*VGx4E||rnE%t&u=%H_;rLHS!}VXZM##TdjXID@ z;kUt)OC?SmJoz?yB8W4wRN@7QDGg@c1u>;;ge0zj8MZ~fSV6=70^Yo3h&?|hi8>u1lbIv4*~!+vx95^ literal 420 zcmWe;U|`6}PfSTIQUC&X1}+A725C=*{|sEb41bL*fq;*JLBEuNmqA3F;fs;6nV|tt zz$%78$H>$a$okI!l#*j*c(0_io|i#`kKyM5V*^7&kkn$Ju6|(#2Ikzv%sjo4!~z8c zZAODqhK4n|jQ_RaAleSfgwa4Qh-s&70|dIUK(?NpwjNZG9*6Pg}$ApRR`4 zKRpfWe>xiW|DrYg{>5t40M*(UEh?2baqy(o0w8lisl*!~!xqGN{5E<)sg#Y7#4Rwx zR!HI^m~ma=q#c71M~oFm4A6?7ATc3{ZD1)NpA%yJRf#1~vyojCtMCdcdU!?Y#cH6< HKzaiJ#mjpX