The MASM Forum
Projects => Rarely Used Projects => GoAsm => Topic started by: koroshin on March 17, 2016, 04:25:20 PM

What I'm really stuck on is how I'm supposed to make this loop properly I tried doing every combination for each branch but it either never stops or it stops at the wrong number of loops (supposed to stop after amount of values in RPN_START). I even tried what I did in a previous lab which also failed to work so I'm completely lost as to how I'm supposed to get this program to loop. I understand that the RPN_OUT is the end pointer of the array so I tried putting RPN_START with CPY to compare the values but doing that made it stop after one loop. So I don't know at all which branch I'm supposed to use. Any help/tips/advice would be greatly appreciated. I tried that but RPN_END points to RPN_OUT so it gives the same results as RPN_END does. I tried #RPN_OUT1 and that looped correctly but gave a couple of warning and didn't store the correct answer. I tested the in between code before and it worked how it was supposed to. So I'm completely lost now ;;
Thank you so much!
ORG DATA
;RPN_IN FCB $06,$03,$2F,$04,$2A,$02,$2B ; 63/4*2+=10
;RPN_IN FCB $05,$01,$02,$2B,$04,$2A,$2B,$03,$2D ; 512+4*+3
;RPN_IN FCB $02,$03,$2A,$05,$2A,$02,$2F,$01, $2B ; ( ( (2 * 3) * 5) / 2) + 1
RPN_IN FCB $11,$10,$2F,$15,$2A ; ( (11 / 10) ) * 15
RPN_OUT RMB 1
RPN_START FDB RPN_IN ; Pointer to start of RPN array
RPN_END FDB RPN_OUT1 ; Pointer to end of RPN array
ANSWER RMB 1
TEMP FCB $00
ORG PROG
Entry: ; KEEP THIS LABEL!!
LDS #PROG
LDX #RPN_START ;should I put a # in front of the array??
LDY #RPN_END ;should I put a # in front of the array??
LDAB ANSWER
LOOP:
LDAA B,X
...
RET:
INCB
CMPB RPN_END ;should it be RPN_END1 or just RPN_END?
BNE LOOP ;unsure which branch, I tried BHI, BLO, BEQ, BLT, and BLE (none of them work)
PULA
STAA ANSWER
; Branch to end of program
BSR FINISH

I am not familiar with the HCS12, but it seems like you are setting up X as an index register, so perhaps instead of INCB CMPB you should have INX CMPX (and then use BLE if using RPN_END equal to RPN_OUT1).