Difference between revisions of "Talk:83Plus:BCALLs:4B73"

From WikiTI
Jump to: navigation, search
 
Line 3: Line 3:
  
 
Code is:
 
Code is:
ld hl,(965D)
+
ld hl,(965D) \
inc hl
+
inc hl \
ld (965D),hl
+
ld (965D),hl \
ld bc,(965D)
+
ld bc,(965D) \
ld hl,(965F)
+
ld hl,(965F) \
xor a
+
xor a \
sbc hl,bc
+
sbc hl,bc \
ret c
+
ret c \
ld a,(bc)
+
ld a,(bc) \
ret
+
ret  
  
 
...This makes it looks like A) It's the new byte, not the old once, since it's read after (965D) is incremented, and B) That the value of A is only set if we're not at the end of the buffer, which should be noted in the output description.
 
...This makes it looks like A) It's the new byte, not the old once, since it's read after (965D) is incremented, and B) That the value of A is only set if we're not at the end of the buffer, which should be noted in the output description.
 
--Dan
 
--Dan

Latest revision as of 19:30, 27 March 2005

A is the byte NextParseByte was pointing to, unless the comparison between 965D and 965F carries, in which case a is returned as zero. This should be addressed in the output information for register A, but I don't know exactly what it's doing (which is why I left it blank originally).

Actually, that does not appear to be the case. The value returned is the data at the new pointer value. I believe that 83Plus:RAM:965F holds the end of the program/equation being run, so the routine returns with carry set if you're at the end of the program. FloppusMaximus 19:24, 27 Mar 2005 (PST)

Code is: ld hl,(965D) \ inc hl \ ld (965D),hl \ ld bc,(965D) \ ld hl,(965F) \ xor a \ sbc hl,bc \ ret c \ ld a,(bc) \ ret

...This makes it looks like A) It's the new byte, not the old once, since it's read after (965D) is incremented, and B) That the value of A is only set if we're not at the end of the buffer, which should be noted in the output description. --Dan