@@ -987,19 +987,19 @@ __PRINT_TAB:
987987 jr __PRINT_SET_STATE
988988__PRINT_TAB1:
989989 ld (MEM0) , a
990- exx
991990 ld hl , __PRINT_TAB2
992991 jr __PRINT_SET_STATE
993992__PRINT_TAB2:
994993 ld a , (MEM0) ; Load tab code (ignore the current one)
995- push hl
996- push de
997- push bc
998994 ld hl , __PRINT_START
999995 ld (PRINT_JUMP_STATE) , hl
996+ exx
997+ push hl
998+ push bc
999+ push de
10001000 call PRINT_TAB
1001- pop bc
10021001 pop de
1002+ pop bc
10031003 pop hl
10041004 ret
10051005__PRINT_ AT :
@@ -1014,19 +1014,17 @@ __PRINT_SET_STATE:
10141014 ret
10151015__PRINT_AT1: ; Jumps here if waiting for 1st parameter
10161016 ld hl , (S_POSN)
1017+ ld h , a
10171018 ld a , SCR_ROWS
10181019 sub h
10191020 ld (S_POSN + 1 ) , a
10201021 ld hl , __PRINT_AT2
10211022 jr __PRINT_SET_STATE
10221023__PRINT_AT2:
1023- ld hl , __PRINT_START
1024- ld (PRINT_JUMP_STATE) , hl ; Saves next entry call
1025- ld hl , (S_POSN)
1026- ld a , SCR_COLS
1027- sub l
1028- ld l , a
1029- jr __PRINT_EOL_END
1024+ call __LOAD_S_POSN
1025+ ld e , a
1026+ call __SAVE_S_POSN
1027+ jr __PRINT_RESTART
10301028__PRINT_DEL:
10311029 call __LOAD_S_POSN ; Gets current screen position
10321030 dec e
@@ -1084,14 +1082,14 @@ __PRINT_BOLD:
10841082__PRINT_BOLD2:
10851083 call BOLD_TMP
10861084 jp __PRINT_RESTART
1087- #line 356 "/zxbasic/src/arch/zx48k/library-asm/print.asm"
1085+ #line 354 "/zxbasic/src/arch/zx48k/library-asm/print.asm"
10881086__PRINT_ITA:
10891087 ld hl , __PRINT_ITA2
10901088 jp __PRINT_SET_STATE
10911089__PRINT_ITA2:
10921090 call ITALIC_TMP
10931091 jp __PRINT_RESTART
1094- #line 366 "/zxbasic/src/arch/zx48k/library-asm/print.asm"
1092+ #line 364 "/zxbasic/src/arch/zx48k/library-asm/print.asm"
10951093 LOCAL __BOLD
10961094__BOLD:
10971095 push hl
@@ -1109,7 +1107,7 @@ __BOLD:
11091107 pop hl
11101108 ld de , MEM0
11111109 ret
1112- #line 387 "/zxbasic/src/arch/zx48k/library-asm/print.asm"
1110+ #line 385 "/zxbasic/src/arch/zx48k/library-asm/print.asm"
11131111 LOCAL __ITALIC
11141112__ITALIC:
11151113 push hl
@@ -1134,18 +1132,20 @@ __ITALIC:
11341132 pop hl
11351133 ld de , MEM0
11361134 ret
1137- #line 415 "/zxbasic/src/arch/zx48k/library-asm/print.asm"
1135+ #line 413 "/zxbasic/src/arch/zx48k/library-asm/print.asm"
11381136 LOCAL __SCROLL_SCR
1139- #line 489 "/zxbasic/src/arch/zx48k/library-asm/print.asm"
1137+ #line 487 "/zxbasic/src/arch/zx48k/library-asm/print.asm"
11401138 __SCROLL_SCR EQU 0DFEh ; Use ROM SCROLL
1141- #line 491 "/zxbasic/src/arch/zx48k/library-asm/print.asm"
1142- #line 492 "/zxbasic/src/arch/zx48k/library-asm/print.asm"
1139+ #line 489 "/zxbasic/src/arch/zx48k/library-asm/print.asm"
1140+ #line 490 "/zxbasic/src/arch/zx48k/library-asm/print.asm"
11431141PRINT_COMMA:
11441142 call __LOAD_S_POSN
11451143 ld a , e
11461144 and 16
11471145 add a , 16
11481146PRINT_TAB:
1147+ ; Tabulates the number of spaces in A register
1148+ ; If the current cursor position is already A, does nothing
11491149 PROC
11501150 LOCAL LOOP
11511151 call __LOAD_S_POSN ; e = current row
@@ -1155,11 +1155,7 @@ PRINT_TAB:
11551155 ld b , a
11561156LOOP :
11571157 ld a , ' '
1158- push bc
1159- exx
11601158 call __PRINTCHAR
1161- exx
1162- pop bc
11631159 djnz LOOP
11641160 ret
11651161 ENDP
@@ -1184,9 +1180,9 @@ PRINT_AT: ; Changes cursor to ROW, COL
11841180 LOCAL __PRINT_TABLE
11851181 LOCAL __PRINT_TAB , __PRINT_TAB1 , __PRINT_TAB2
11861182 LOCAL __PRINT_ITA2
1187- #line 550 "/zxbasic/src/arch/zx48k/library-asm/print.asm"
1183+ #line 546 "/zxbasic/src/arch/zx48k/library-asm/print.asm"
11881184 LOCAL __PRINT_BOLD2
1189- #line 556 "/zxbasic/src/arch/zx48k/library-asm/print.asm"
1185+ #line 552 "/zxbasic/src/arch/zx48k/library-asm/print.asm"
11901186__PRINT_TABLE: ; Jump table for 0 .. 22 codes
11911187 DW __PRINT_NOP ; 0
11921188 DW __PRINT_NOP ; 1
0 commit comments