From 7239ee7f3a4e641f77c44e2372cdb1bfea43afe2 Mon Sep 17 00:00:00 2001 From: Pedro de Oliveira Date: Wed, 13 Aug 2014 01:38:44 +0100 Subject: [PATCH] Trocar jr por jp onde necessario MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fix para quando se usa $A para enter, no Spectrum é $D --- zx-brainfuck/main.asm | 39 ++++++++++++++++++++++----------------- zx-brainfuck/main.tap | Bin 406 -> 446 bytes 2 files changed, 22 insertions(+), 17 deletions(-) diff --git a/zx-brainfuck/main.asm b/zx-brainfuck/main.asm index 1976634..4ce6e3d 100644 --- a/zx-brainfuck/main.asm +++ b/zx-brainfuck/main.asm @@ -13,9 +13,7 @@ OP_JMP_FWD equ "[" OP_JMP_BCK equ "]" ;brainfuck db "++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.", 0 -;brainfuck db "+++++++++++++++++++++++++++++++++.", 0 brainfuck db "++++[>++++++++++<-]>++.>+++++++++++++.<<++[>.<-]>>.<<+++[>.<-]>>.<<++++[>.<-]>>.<<+++++[>.<-]>>.", 0 -;brainfuck db "++[>+<-]" ,0 memory_pos db $0,$80 source_pos db $0,$0 @@ -37,35 +35,35 @@ main ; > cp OP_INC_DP - jr z, F_INC_DP + jp z, F_INC_DP ; < cp OP_DEC_DP - jr z, F_DEC_DP + jp z, F_DEC_DP ; + cp OP_INC_VAL - jr z, F_INC_VAL + jp z, F_INC_VAL ; - cp OP_DEC_VAL - jr z, F_DEC_VAL + jp z, F_DEC_VAL ; . cp OP_OUT - jr z, F_OUT + jp z, F_OUT ; , cp OP_IN - jr z, F_IN + jp z, F_IN ; [ cp OP_JMP_FWD - jr z, F_JMP_FWD + jp z, F_JMP_FWD ; ] cp OP_JMP_BCK - jr z, F_JMP_BCK + jp z, F_JMP_BCK continue ld de, (source_pos) @@ -83,7 +81,7 @@ F_INC_DP ld de, (memory_pos) inc de ld (memory_pos), de - jr continue + jp continue ; ------------------------------------- @@ -91,7 +89,7 @@ F_DEC_DP ld de, (memory_pos) dec de ld (memory_pos), de - jr continue + jp continue ; ------------------------------------- @@ -100,7 +98,7 @@ F_INC_VAL ld a, (de) inc a ld (de), a - jr continue + jp continue ; ------------------------------------- @@ -109,16 +107,23 @@ F_DEC_VAL ld a, (de) dec a ld (de), a - jr continue + jp continue ; ------------------------------------- F_OUT ld de, (memory_pos) ld a, (de) + cp $a + jr z, F_OUT_NEWLINE rst $10 - jr continue + jp continue +; $a is a new line on the PC but not on the Spectrum, use $d instead +F_OUT_NEWLINE + ld a, $d + rst $10 + jp continue ; ------------------------------------- F_IN @@ -130,7 +135,7 @@ F_IN_LOOP jr z, F_IN_LOOP ; tecla, por isso... repete ld de, (memory_pos) ld (de), a - jr continue + jp continue ; ------------------------------------- @@ -142,7 +147,7 @@ F_JMP_FWD ld de, (source_pos) push de - jr continue + jp continue SKIP_LOOP ld de, (source_pos) diff --git a/zx-brainfuck/main.tap b/zx-brainfuck/main.tap index 0a8e1393fdfdc1d889c8d94505b6feb6a31fac8f..e3d594faa168babebdcf4b5f48001e5dbe7a3f9c 100644 GIT binary patch literal 446 zcmYjLu}T9$6r7+!2wVyyL=%uR)#2sV%Y_6C=XMgTE$>nUv=EFDaj%s0{zM2iR{4c! zuy8vIvGWHc+6a=ujc?CObc%iR=DpcBIRK~K_R;Z$NoXR2CW;4`A!Fd%+a+Xy9RUMt zd3<`+dc`H75u)tXYQ$!s(dG(1N~NIzD~su<>Q*Xs8r_iVItMIu+9zl1vVCrv`zcqT zci&9S>;(dz(0Qd+Q*QeNr$wA`n$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^