Given this program
Code: Select all
10 PRINT AT 21,0 "SOMETHING"
20 SCROLL
30 GOTO 10
Why?
What is going on there?
Thanks in advice.
Code: Select all
10 PRINT AT 21,0 "SOMETHING"
20 SCROLL
30 GOTO 10
sl07h1 wrote: ↑Wed Jul 21, 2021 11:23 pmIf "SOMETHING" is a string of 32 chars long and I let the program run until fillling the screen, then BREAK the program and then press enter, the screen goes blank and then I see the code in the screen. Nothing strange with that. But if "SOMETHING" is a short string of, let's say 2 chars long and I BREAK the program and then press enter, the screen starts to "clean" slowly to the last line (I would say "hardly" because you can see chars appearing and dissapearing, like a lot of activity), and it takes a while.Code: Select all
10 PRINT AT 21,0;"SOMETHING" 20 SCROLL 30 GOTO 10
Why?
What is going on there?
Thanks in advice.
You, sir, are right!
Code: Select all
;------- Rom and Ram Symbols -------
SLOW equ $0F2B
RAM_MEMBOT01 equ $405E
RAM_MEMBOT03 equ $4060
RAM_PRBUFF00 equ $403C
RAM_SPARE1 equ $4021
RAM_MEMBOT05 equ $4062
RAM_MEMBOT07 equ $4064
RAM_D_FILE equ $400C
BREAK_1 equ $0F46
RAM_LAST_K equ $4025
DECODE equ $07BD
COPY equ $0869
DEBOUNCE equ $0F4B
CLS equ $0A2A
RAM_DF_CC equ $400E
RAM_PRBUFF02 equ $403E
RAM_MEMBOT0D equ $406A
RAM_MEMBOT17 equ $4074
RAM_MEMBOT00 equ $405D
RAM_MEMBOT13 equ $4070
RAM_MEMBOT11 equ $406E
RAM_MEMBOT0F equ $406C
RAM_S_POSN equ $4039
LINE_ADDR equ $09D8
RECLAIM_2 equ $0A60
RAM_RAMTOP equ $4004
RAM_E_LINE equ $4014
DIFFER equ $0A17
NEW equ $03C3
RAM_CHECK equ $03CB
ADD_CHAR equ $0526
FAST equ $0F23
RAM_VARS equ $4010
LOC_ADDR equ $0918
STACK_BC equ $1520
PRINT_FP equ $15DB
REPORT_D equ $03A6
RAM_SPARE2 equ $407B
RAM_FRAMES equ $4034
RAM_DBOUNCE equ $4027
Code: Select all
Lb3BA5: ; <15269> [UP]
LD HL,(RAM_D_FILE) ; GET D-FILE
PUSH HL
PUSH HL
LD DE,$02B6
ADD HL,DE
LD (RAM_DF_CC),HL ; SET DF-CC
LD A,$21
LD (IY+57),A
LD A,$03
LD (IY+58),A
POP HL
LD DE,$0021
ADD HL,DE
POP DE
LD BC,$02D6
LDIR
RET ; ==========================
Lb3C33: ; <15411> [RIGHT]
LD HL,(RAM_D_FILE) ; GET D-FILE
LD DE,$0020
ADD HL,DE
LD DE,$0040
LD C,$16
Lb3C3F:
LD B,$1F
LD A,(HL)
PUSH AF
Lb3C43:
DEC HL
LD A,(HL)
INC HL
LD (HL),A
DEC HL
DJNZ Lb3C43 ; [$3C43:15427]
POP AF
LD (HL),A
ADD HL,DE
DEC C
JR NZ, Lb3C3F ; [$3C3F:15423]
RET ; ==========================
Lb3C51: ; <15441> [LEFT]
LD HL,(RAM_D_FILE) ; GET D-FILE
LD C,$16
Lb3C56:
INC HL
LD A,(HL)
LD B,$1F
PUSH AF
Lb3C5B:
INC HL
LD A,(HL)
DEC HL
LD (HL),A
INC HL
DJNZ Lb3C5B ; [$3C5B:15451]
POP AF
LD (HL),A
INC HL
DEC C
JR NZ, Lb3C56 ; [$3C56:15446]
RET ; ==========================
Lb3C69: ; <15465> [DOWN]
LD HL,(RAM_D_FILE) ; GET D-FILE
PUSH HL
PUSH HL
PUSH HL
LD DE,$02D6
ADD HL,DE
EX DE,HL
LD BC,$02B5
POP HL
ADD HL,BC
LDDR
POP HL
LD B,$20
Lb3C7E:
INC HL
LD (HL),$00
DJNZ Lb3C7E ; [$3C7E:15486]
POP HL
INC HL
LD (RAM_DF_CC),HL ; SET DF-CC
LD A,$21
LD (RAM_S_POSN),A ; SET S-POSN
LD A,$01
LD (RAM_S_POSN+1),A ; SET S-POSN
RET ; ==========================
Interesting. Does anyone have a patched BASIC ROM?sl07h1 wrote: ↑Thu Jul 22, 2021 2:13 amYou, sir, are right!
I took off the memory expansion (memopak 32k) and the behavior doesn't show up. It has to do with the different DFILES formats in 1k and 16/32k, as you showed.
I don't want to use the scroll for anything, only I was curious, so SCROLL is bugged and it leaves the DFILE in 1k format and CLS has to "transform" one DFILE format to another, I think...
Yes, this is known about as well.sl07h1 wrote: ↑Thu Jul 22, 2021 3:10 am This made me remember another thing: I noted that without the Memopak, when I press Break when I just type LOAD "" (without starting to load), I get the "D/0" error, which is OK, but when I do the same with the memopak plugged I don't get the error, but a space and the K, like I just wrote a space.
The Big Bang double speed BASIC ROM found below clears the screen perfectly fast and without the usual stuttering after the use of SCROLL,CLS, and is the only BASIC ROM worth using in my opinion.BarryN wrote: ↑Thu Jul 22, 2021 2:44 amInteresting. Does anyone have a patched BASIC ROM?sl07h1 wrote: ↑Thu Jul 22, 2021 2:13 amYou, sir, are right!
I took off the memory expansion (memopak 32k) and the behavior doesn't show up. It has to do with the different DFILES formats in 1k and 16/32k, as you showed.
I don't want to use the scroll for anything, only I was curious, so SCROLL is bugged and it leaves the DFILE in 1k format and CLS has to "transform" one DFILE format to another, I think...