You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This is somewhat annoying bug, eventually I've managed to get to the point where it kicks in.
If a serial device is not xon/xoff, a jump to _cost function is being done, but since it is not call, just a jump, linker somehow did not resolve it correctly and it jumps somewhere, but not where it supposed to. A small patch like this one helps to sort it out:
diff --git a/CPM3.0/src/BIOSKRNL.ASM b/CPM3.0/src/BIOSKRNL.ASM
index 81fab54..a61f22f 100644
--- a/CPM3.0/src/BIOSKRNL.ASM
+++ b/CPM3.0/src/BIOSKRNL.ASM
@@ -282,7 +282,7 @@ coster: ; check for output device ready, including optional
LD A,(HL)
AND 010H ; mb_xonxoff
POP HL ; recover console number in <HL>
- JR Z,_cost ; not a xon device, go get output status direct
+ JR Z,cost_direct ; not a xon device, go get output status direct
LD DE,xofflist
ADD HL,DE ; make pointer to proper xon/xoff flag
CALL cist1 ; see if this keyboard has character
@@ -300,6 +300,9 @@ not_s:
CALL cost1 ; get the actual output status,
AND (HL) ; and mask with ctl-Q/ctl-S flag
RET ; return this as the status
+cost_direct:
+ CALL _cost
+ RET
cist1: ; get input status with <BC> and <HL> saved
PUSH BC
PUSH HL
I wonder how often this idiom is used, may be a source of a few mysterious problems.
The text was updated successfully, but these errors were encountered:
This is somewhat annoying bug, eventually I've managed to get to the point where it kicks in.
If a serial device is not xon/xoff, a jump to
_cost
function is being done, but since it is notcall
, just a jump, linker somehow did not resolve it correctly and it jumps somewhere, but not where it supposed to. A small patch like this one helps to sort it out:I wonder how often this idiom is used, may be a source of a few mysterious problems.
The text was updated successfully, but these errors were encountered: