I am getting the error page boundary crossed when I run my program. Nowhere in the CBM prg studio app for Windows 10 help does it explain how I can either increase this boundary, or what I need to do in order to avoid these errors.
It is happening on the same instruction based at Line 110 and Line 127 inside the labels E1cycle and E2cycle...
**Line 110:** BEQ space2reset     ; branch/jump if the result in A is 0
**Line 127:** BEQ space2reset     ; branch/jump if the result in A is 0
The errors...
**Line 110**:Page boundary crossed.   -   F:\C64\UltimateTests\test.asm
**Line 127**:Page boundary crossed.   -   F:\C64\UltimateTests\test.asm
[Error] Line 72:Invalid branch (200 bytes) "BEQ Name2    ; if we find it we branch using BEQ to name2 for msg2 "
[Error] Line 143:Invalid branch (-275 bytes) "BEQ StartBlackOut"
Also, as you can see above I am getting invalid branch errors with these strange (200 bytes) and (-275 bytes) -- here is the section of code...
getnameb
        jsr $FF9F   ;SCNKEY, place ASCII character into keyboard queue
        jsr $FFE4   ;GETIN, this places the ASCII value into the Accumulator 
        BEQ getnameb ;loop until keys are pressed. (Branch if equal to zero)
        
        JSR $FFD2    ; CHROUT, print it to the screen as it is being typed in.
        CMP #13      ; CMP looks for the carrige return
        BEQ Name2    ; if we find it we branch using BEQ to name2 for msg2 
        
        CMP #32         ; Looking for space bar. If true error 1 is returned
        BEQ ErrorInput1
        ldx $0900    ; load into x the value at $0900 - replace what was there from JSRs
        STA $0019,x  ; also store what is being typed in consecutively? 
        INX          ; X IS INCREASED BY 1.
        stx $0900    ; Store X back to $0900, avoid being molested by the above JSRs
                     ; The value at $0900 is the length of the string!
        
        LDA $0900        ; Load into A the current length of the string 
        CMP #08          ; Looking for max 8 chars. If true error 2 is returned
        BEQ ErrorInput2
        
        JMP getnameb     ; if we don't we loop! 
;PRINT ERRORS 1 OR 2
;-----1
ErrorInput1   
        LDX #00       ; load into the x registry zero
E1cycle  
        LDA E1msg,x    ; load into A the E1msg, the x sequence.
        CMP #00        ; compare memory and accumulator to the value 0?    
        BEQ space2reset     ; branch/jump if the result in A is 0
        STA 1424,x     ; where on the screen does E1msg start?
        INX            ; inc x to move the print along 1 space?
        
        JMP E1cycle    ; jump back to the beginning of cycle and do it all again.
E1msg   text 'ERROR: NO SPACES PERMITTED - SPACE TO RESET'
        byte 0
;-----2
ErrorInput2  
        LDX #00       ; load into the x registry zero
E2cycle  
        LDA E2msg,x    ; load into A the E1msg, the x sequence.
        CMP #00        ; compare memory and accumulator to the value 0?    
        BEQ space2reset     ; branch/jump if the result in A is 0
        STA 1424,x     ; where on the screen does E1msg start?
        INX            ; inc x to move the print along 1 space?
        
        JMP E2cycle    ; jump back to the beginning of cycle and do it all again.
E2msg   text 'ERROR: MAX 8 CHARACTERS PERMITTED - SPACE TO RESET'
        byte 0
space2reset    
        jsr $FF9F   ;SCNKEY, place ASCII character into keyboard queue
        jsr $FFE4   ;GETIN, this places the ASCII value into the Accumulator 
        BEQ space2reset ;loop until keys are pressed. (Branch if equal to zero)
        
        CMP #32
        BEQ StartBlackOut ; Go to the very beginning of the programming and reset the whole thing!       
I need this explained to me in very simple terms as I am still learning, and finding the jargon a bit difficult to understand at times. Thanks!
 
                        
Each instruction takes some amount of bytes (check reference for each instruction to learn more about it). For example, LDA nnnn takes 3 bytes. So, in the case when relative branching is used (beq, bcs, bcc, etc.) instead of absolute jumps (jmp), a program counter (PC) can jump only within a page i.e. in a range from -128 to 127 bytes (from 128 bytes backward to 127 bytes forward).
To fix it, you might change this:
into that:
It is worth mentioning that some assembly compilers, e.g. 64tass supports long branching. It will automatically compile relative branching to absolute in case it's out of that range. I don't use this option though as I prefer to control it by myself.