@@ -76,6 +76,7 @@ _obj.__DATA__:
76
76
ld (hl) , 15
77
77
inc hl
78
78
ld (hl) , 39
79
+ call .core.COPY_ATTR
79
80
ld a , (_i)
80
81
ld l , a
81
82
ld h , 0
@@ -244,7 +245,8 @@ TMP_ARR_PTR:
244
245
DW 0 ; temporary storage for pointer to tables
245
246
ENDP
246
247
pop namespace
247
- #line 51 "zx48k/astore16.bas"
248
+ #line 52 "zx48k/astore16.bas"
249
+ #line 1 "/zxbasic/src/arch/zx48k/library-asm/copy_attr.asm"
248
250
#line 1 "/zxbasic/src/arch/zx48k/library-asm/print.asm"
249
251
; vim:ts=4:sw=4:et:
250
252
; PRINT command routine
@@ -594,60 +596,6 @@ BRIGHT_TMP:
594
596
#line 1 "/zxbasic/src/arch/zx48k/library-asm/over.asm"
595
597
; Sets OVER flag in P_FLAG permanently
596
598
; Parameter: OVER flag in bit 0 of A register
597
- #line 1 "/zxbasic/src/arch/zx48k/library-asm/copy_attr.asm"
598
- #line 4 "/zxbasic/src/arch/zx48k/library-asm/copy_attr.asm"
599
- push namespace core
600
- COPY_ATTR:
601
- ; Just copies current permanent attribs into temporal attribs
602
- ; and sets print mode
603
- PROC
604
- LOCAL INVERSE1
605
- LOCAL __REFRESH_TMP
606
- INVERSE1 EQU 02Fh
607
- ld hl , (ATTR_P)
608
- ld (ATTR_T) , hl
609
- ld hl , FLAGS2
610
- call __REFRESH_TMP
611
- ld hl , P_FLAG
612
- call __REFRESH_TMP
613
- __SET_ATTR_MODE: ; Another entry to set print modes. A contains (P_FLAG)
614
- LOCAL TABLE
615
- LOCAL CONT2
616
- rra ; Over bit to carry
617
- ld a , (FLAGS2)
618
- rla ; Over bit in bit 1, Over2 bit in bit 2
619
- and 3 ; Only bit 0 and 1 (OVER flag)
620
- ld c , a
621
- ld b , 0
622
- ld hl , TABLE
623
- add hl , bc
624
- ld a , (hl)
625
- ld (PRINT_MODE) , a
626
- ld hl , (P_FLAG)
627
- xor a ; NOP -> INVERSE0
628
- bit 2 , l
629
- jr z , CONT2
630
- ld a , INVERSE1 ; CPL -> INVERSE1
631
- CONT2:
632
- ld (INVERSE_MODE) , a
633
- ret
634
- TABLE:
635
- nop ; NORMAL MODE
636
- xor (hl) ; OVER 1 MODE
637
- and (hl) ; OVER 2 MODE
638
- or (hl) ; OVER 3 MODE
639
- #line 67 "/zxbasic/src/arch/zx48k/library-asm/copy_attr.asm"
640
- __REFRESH_TMP:
641
- ld a , (hl)
642
- and 0b10101010
643
- ld c , a
644
- rra
645
- or c
646
- ld (hl) , a
647
- ret
648
- ENDP
649
- pop namespace
650
- #line 4 "/zxbasic/src/arch/zx48k/library-asm/over.asm"
651
599
push namespace core
652
600
OVER:
653
601
PROC
@@ -889,11 +837,10 @@ INVERSE_MODE: ; 00 -> NOP -> INVERSE 0
889
837
inc hl
890
838
ld (DFCC) , hl
891
839
ld hl , (DFCCL) ; current ATTR Pos
892
- push hl
893
- call __SET_ATTR
894
- pop hl
895
840
inc hl
896
- ld (DFCCL) , hl
841
+ ld (DFCCL) , hl
842
+ dec hl
843
+ call __SET_ATTR
897
844
exx
898
845
ret
899
846
; ------------- SPECIAL CHARS (< 32) -----------------
@@ -912,7 +859,7 @@ __PRINT_0Dh: ; Called WHEN printing CHR$(13)
912
859
push hl
913
860
call __SCROLL_SCR
914
861
pop hl
915
- #line 210 "/zxbasic/src/arch/zx48k/library-asm/print.asm"
862
+ #line 209 "/zxbasic/src/arch/zx48k/library-asm/print.asm"
916
863
1 :
917
864
ld l , 1
918
865
__PRINT_EOL_END:
@@ -1029,14 +976,14 @@ __PRINT_BOLD:
1029
976
__PRINT_BOLD2:
1030
977
call BOLD_TMP
1031
978
jp __PRINT_RESTART
1032
- #line 354 "/zxbasic/src/arch/zx48k/library-asm/print.asm"
979
+ #line 353 "/zxbasic/src/arch/zx48k/library-asm/print.asm"
1033
980
__PRINT_ITA:
1034
981
ld hl , __PRINT_ITA2
1035
982
jp __PRINT_SET_STATE
1036
983
__PRINT_ITA2:
1037
984
call ITALIC_TMP
1038
985
jp __PRINT_RESTART
1039
- #line 364 "/zxbasic/src/arch/zx48k/library-asm/print.asm"
986
+ #line 363 "/zxbasic/src/arch/zx48k/library-asm/print.asm"
1040
987
LOCAL __BOLD
1041
988
__BOLD:
1042
989
push hl
@@ -1054,7 +1001,7 @@ __BOLD:
1054
1001
pop hl
1055
1002
ld de , MEM0
1056
1003
ret
1057
- #line 385 "/zxbasic/src/arch/zx48k/library-asm/print.asm"
1004
+ #line 384 "/zxbasic/src/arch/zx48k/library-asm/print.asm"
1058
1005
LOCAL __ITALIC
1059
1006
__ITALIC:
1060
1007
push hl
@@ -1079,12 +1026,12 @@ __ITALIC:
1079
1026
pop hl
1080
1027
ld de , MEM0
1081
1028
ret
1082
- #line 413 "/zxbasic/src/arch/zx48k/library-asm/print.asm"
1029
+ #line 412 "/zxbasic/src/arch/zx48k/library-asm/print.asm"
1083
1030
LOCAL __SCROLL_SCR
1084
- #line 487 "/zxbasic/src/arch/zx48k/library-asm/print.asm"
1031
+ #line 486 "/zxbasic/src/arch/zx48k/library-asm/print.asm"
1085
1032
__SCROLL_SCR EQU 0DFEh ; Use ROM SCROLL
1033
+ #line 488 "/zxbasic/src/arch/zx48k/library-asm/print.asm"
1086
1034
#line 489 "/zxbasic/src/arch/zx48k/library-asm/print.asm"
1087
- #line 490 "/zxbasic/src/arch/zx48k/library-asm/print.asm"
1088
1035
PRINT_COMMA:
1089
1036
call __LOAD_S_POSN
1090
1037
ld a , e
@@ -1127,9 +1074,9 @@ PRINT_AT: ; Changes cursor to ROW, COL
1127
1074
LOCAL __PRINT_TABLE
1128
1075
LOCAL __PRINT_TAB , __PRINT_TAB1 , __PRINT_TAB2
1129
1076
LOCAL __PRINT_ITA2
1130
- #line 546 "/zxbasic/src/arch/zx48k/library-asm/print.asm"
1077
+ #line 545 "/zxbasic/src/arch/zx48k/library-asm/print.asm"
1131
1078
LOCAL __PRINT_BOLD2
1132
- #line 552 "/zxbasic/src/arch/zx48k/library-asm/print.asm"
1079
+ #line 551 "/zxbasic/src/arch/zx48k/library-asm/print.asm"
1133
1080
__PRINT_TABLE: ; Jump table for 0 .. 22 codes
1134
1081
DW __PRINT_NOP ; 0
1135
1082
DW __PRINT_NOP ; 1
@@ -1157,7 +1104,60 @@ __PRINT_TABLE: ; Jump table for 0 .. 22 codes
1157
1104
DW __PRINT_TAB ; 23 TAB
1158
1105
ENDP
1159
1106
pop namespace
1160
- #line 52 "zx48k/astore16.bas"
1107
+ #line 3 "/zxbasic/src/arch/zx48k/library-asm/copy_attr.asm"
1108
+ #line 4 "/zxbasic/src/arch/zx48k/library-asm/copy_attr.asm"
1109
+ push namespace core
1110
+ COPY_ATTR:
1111
+ ; Just copies current permanent attribs into temporal attribs
1112
+ ; and sets print mode
1113
+ PROC
1114
+ LOCAL INVERSE1
1115
+ LOCAL __REFRESH_TMP
1116
+ INVERSE1 EQU 02Fh
1117
+ ld hl , (ATTR_P)
1118
+ ld (ATTR_T) , hl
1119
+ ld hl , FLAGS2
1120
+ call __REFRESH_TMP
1121
+ ld hl , P_FLAG
1122
+ call __REFRESH_TMP
1123
+ __SET_ATTR_MODE: ; Another entry to set print modes. A contains (P_FLAG)
1124
+ LOCAL TABLE
1125
+ LOCAL CONT2
1126
+ rra ; Over bit to carry
1127
+ ld a , (FLAGS2)
1128
+ rla ; Over bit in bit 1, Over2 bit in bit 2
1129
+ and 3 ; Only bit 0 and 1 (OVER flag)
1130
+ ld c , a
1131
+ ld b , 0
1132
+ ld hl , TABLE
1133
+ add hl , bc
1134
+ ld a , (hl)
1135
+ ld (PRINT_MODE) , a
1136
+ ld hl , (P_FLAG)
1137
+ xor a ; NOP -> INVERSE0
1138
+ bit 2 , l
1139
+ jr z , CONT2
1140
+ ld a , INVERSE1 ; CPL -> INVERSE1
1141
+ CONT2:
1142
+ ld (INVERSE_MODE) , a
1143
+ ret
1144
+ TABLE:
1145
+ nop ; NORMAL MODE
1146
+ xor (hl) ; OVER 1 MODE
1147
+ and (hl) ; OVER 2 MODE
1148
+ or (hl) ; OVER 3 MODE
1149
+ #line 67 "/zxbasic/src/arch/zx48k/library-asm/copy_attr.asm"
1150
+ __REFRESH_TMP:
1151
+ ld a , (hl)
1152
+ and 0b10101010
1153
+ ld c , a
1154
+ rra
1155
+ or c
1156
+ ld (hl) , a
1157
+ ret
1158
+ ENDP
1159
+ pop namespace
1160
+ #line 53 "zx48k/astore16.bas"
1161
1161
#line 1 "/zxbasic/src/arch/zx48k/library-asm/printu16.asm"
1162
1162
#line 1 "/zxbasic/src/arch/zx48k/library-asm/printi16.asm"
1163
1163
#line 1 "/zxbasic/src/arch/zx48k/library-asm/printnum.asm"
@@ -1305,5 +1305,5 @@ __PRINTU_LOOP:
1305
1305
ENDP
1306
1306
pop namespace
1307
1307
#line 2 "/zxbasic/src/arch/zx48k/library-asm/printu16.asm"
1308
- #line 53 "zx48k/astore16.bas"
1308
+ #line 55 "zx48k/astore16.bas"
1309
1309
END
0 commit comments