affiche_texte finished!

I am happy!
This commit is contained in:
Antoine Vignau 2023-08-19 12:58:46 +02:00
parent 4b99dfd4a4
commit 1ed9db2a57
4 changed files with 4309 additions and 4272 deletions

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@ -947,7 +947,16 @@ affiche_texte
sep #$20 ; A en 8-bits sep #$20 ; A en 8-bits
* 1- recopie le texte entier * 1- clear le texte final
ldx #0 ; on remplit de space chars
lda #texteSPACE
]lp sta texte_final,x
inx
cpx #max_colonnes*max_lignes
bcc ]lp
* 2- recopie le texte entier
ldy #0 ldy #0
]lp lda [dpTEXTES],y ]lp lda [dpTEXTES],y
@ -964,7 +973,7 @@ at_2 sep #$20
ldx i ldx i
ldy #0 ldy #0
]lp lda texte,x ]lp lda texte,x
sta ligne_max,y sta ligne_max,y
inx inx
iny iny
@ -1010,15 +1019,17 @@ at_4 stx len_max
inx inx
cpx len_max cpx len_max
bcc ]lp bcc ]lp
beq ]lp
rep #$20 cpx #max_colonnes
lda #max_colonnes bcs noSPC
sec
sbc len_max lda #instrSPACE
tax ]lp jsr set_textefinal
sep #$20 inx
jsr set_space cpx #max_colonnes
bcc ]lp
noSPC
* ADD i%,LEN(ligne_max$) * ADD i%,LEN(ligne_max$)
@ -1037,20 +1048,17 @@ at_case1 ldx i ; on utilise X pour
inx inx
stx i stx i
ldx #max_colonnes ldx #0
jsr set_space lda #instrSPACE
bra at_8 ]lp jsr set_textefinal
inx
cpx #max_colonnes
bcc ]lp
bcs at_8
* DEFAULT * DEFAULT
* DEC return% - useless at_default ldx #0 ; ligne_max$=LEFT$(return$,return%)
at_default
* dec return
* ligne_max$=LEFT$(return$,return%)
ldx #0
]lp lda ligne_max,x ]lp lda ligne_max,x
jsr set_textefinal jsr set_textefinal
inx inx
@ -1059,13 +1067,16 @@ at_default
* b$=b$+ligne_max$+SPACE$(max_colonnes|-return%) * b$=b$+ligne_max$+SPACE$(max_colonnes|-return%)
rep #$20 cpx #max_colonnes
lda #max_colonnes bcs noSPC2
sec
sbc return lda #instrSPACE
tax ]lp jsr set_textefinal
sep #$20 inx
jsr set_space cpx #max_colonnes
bcc ]lp
noSPC2
* ADD i%,return%+1 * ADD i%,return%+1
@ -1079,8 +1090,7 @@ at_default
* UNTIL i%>=longueur_texte% * UNTIL i%>=longueur_texte%
at_8 at_8 rep #$20
rep #$20
lda dpTO lda dpTO
dec dec
sta dpTO sta dpTO
@ -1091,42 +1101,18 @@ at_8
bcs at_9 bcs at_9
brl at_2 ; we loop brl at_2 ; we loop
* on comble de lignes blanches at_9
mx %00
at_9 ldx #0 ; on remplit de space chars
lda #texteSPACE
]lp sta texte,x
inx
cpx #max_colonnes*max_lignes
bcc ]lp
rep #$20 ; la longueur du texte final
lda dpTO
sec
sbc #texte_final
sta return
sep #$20
ldx #0
]lp lda texte_final,x
sta texte+max_colonnes,x
inx
cpx return
bcc ]lp
* on imprime le texte (enfin) * on imprime le texte (enfin)
modeForeCopy = $0004 ; QDII Table 16-10 modeForeCopy = $0004 ; QDII Table 16-10
mx %00
rep #$20 rep #$20
jsr switch_640 ; switch to 640 jsr switch_640 ; switch to 640
bra skipME
* on s'occupe des couleurs d'index 5 et A * on s'occupe des couleurs d'index 5 et A
bra skipME
lda ptrFOND lda ptrFOND
sta dpFROM sta dpFROM
@ -1183,7 +1169,7 @@ skipME
PushWord #modeForeCopy PushWord #modeForeCopy
_SetTextMode _SetTextMode
PushLong #texte PushLong #texte_final
PushWord #1 PushWord #1
PushWord #1 PushWord #1
PushWord #0 ; c'est normalement le modeForeCopy PushWord #0 ; c'est normalement le modeForeCopy
@ -1193,18 +1179,10 @@ skipME
rts rts
*--- output X space char dans texte final *--- output dans texte final
mx %10 mx %10
set_space lda #instrSPACE
]lp jsr set_textefinal
dex
bne ]lp
rts
*--- output dans texte final
set_textefinal set_textefinal
sta (dpTO) sta (dpTO)
inc dpTO inc dpTO
@ -1462,6 +1440,23 @@ tblATARI hex 000102030405060708090A0B0C0D0E0F
hex E0E1E2E3E4E5E6E7E8E9EAEBECEDEEEF hex E0E1E2E3E4E5E6E7E8E9EAEBECEDEEEF
hex F0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF hex F0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF
tblUPPER hex 000102030405060708090A0B0C0D0E0F
hex 101112131415161718191A1B1C1D1E1F
hex 202122232425262728292A2B2C2D2E2F
hex 303132333435363738393A3B3C3D3E3F
hex 404142434445464748494A4B4C4D4E4F
hex 505152535455565758595A5B5C5D5E5F
hex 604142434445464748494A4B4C4D4E4F ; a-z => A-Z
hex 505152535455565758595A7B7C7D7E7F
hex 808182838485868788898A8B8C8D8E8F
hex 909192939495969798999A9B9C9D9E9F
hex A0A1A2A3A4A5A6A7A8A9AAABACADAEAF
hex B0B1B2B3B4B5B6B7B8B9BABBBCBDBEBF
hex C0C1C2C3C4C5C6C7C8C9CACBCCCDCECF
hex D0D1D2D3D4D5D6D7D8D9DADBDCDDDEDF
hex E0E1E2E3E4E5E6E7E8E9EAEBECEDEEEF
hex F0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF
*----------------------- *-----------------------
* CPRINT - OK * CPRINT - OK
*----------------------- *-----------------------

Binary file not shown.