SUPER TEXT - 6 STRONAProgram umożliwia uzyskanie 80 znaków w wierszu lub 40 w trybie graficznym 8. Zaletą programu jest to, że nie potrzebuje dodatkowego zestawu znaków. Zajmuje 6 stronę pamięci. Tworzy urządzenie o nazwie "G:". Aby uzyskać tryb graficzny ósmy należy otworzyć kanał komendą OPEN #x,n,0,"G:" gdzie x jest numerem kanału (1-7), n jest to ilość znaków w wierszu (0-80). Tekst na tak utworzonym ekranie wypisujemy komendą PRINT #x,"tekst lub PUT #1,kod ASCII drukowanego znaku. 10 DIM A$(26):DT=1000:C=17:BS=1536:GOS UB 700 20 A=USR(BS):END 700 REM --- hex to data conv --- 710 FS=0:RESTORE DT:TRAP 750 720 FOR X=0 TO C:READ A$:POKE 53279,7 730 FOR I=1 TO 26 STEP 2 740 H=ASC(A$(I))-48:H=(H-39*(H>9))*16: L=ASC(A$(I+1))-48:L=L-39*(L>9):POKE BS +FS,H+L:FS=FS+1:NEXT I:NEXT X 750 RETURN 1000 REM --- --- 1010 DATA 68a247a0c6a9064cbceea55418 1020 DATA 69088554a00084558456c860a2 1030 DATA 008600a8c09bf0e82a2a2a2a29 1040 DATA 03aa98299f1d49fb0a0a26000a 1050 DATA 26008d4c06a500186df4028d4d 1060 DATA 0620acf5a2008601a000bd0064 1070 DATA a6cef03285cba90085cda203a5 1080 DATA cb3dc20686cce000f0040acad0 1090 DATA fc05cd85cda6ccca10e848a555 1100 DATA 2904f008684a4a4a4a4c820668 1110 DATA 1164916418a56469288564a565 1120 DATA 69008565a601e88601e008d0af 1130 DATA a904a6ced0010a186555855590 1140 DATA 02e656a556f009a555c9409003 1150 DATA 4c0a0660bd4a0385cea0016040 1160 DATA 100401b906be06be061806be06 1170 DATA be064cbf06
*********************
* *
* SUPER TEXT *
* *
*********************
opt %10101
adres equ $64
f equ 0
p1 equ 1
f1 equ $cb
f2 equ $cc
f3 equ $cd
mode equ $ce
x equ $55
y equ $54
newdevc equ $eebc
aincc equ $fb49
org $600
pla
*- inicjalizacja nowego
*- urzadzenia
ldx #71
ldy tab
jmp $eebc
eol lda y
clc
adc #8
sta y
ldy #0
sty x
sty x+1
iny
rts
*- procedura handlera
*- PUT
put ldx #0
stx f
tay
cpy #155
beq eol
rol @
rol @
rol @
rol @
and #3
tax
tya
and #$9f
ora aincc,x
asl @
asl @
rol f
asl @
rol f
sta loop+1
lda f
clc
adc 756
sta loop+2
jsr $f5ac
ldx #0
stx p1
ldy #0
loop lda 25600,x
ldx mode
beq et1
sta f1
lda #0
sta f3
ldx #3
lo1 lda f1
and mask,x
stx f2
cpx #0
beq dal
lo2 asl @
dex
bne lo2
dal ora f3
sta f3
ldx f2
dex
bpl lo1
pha
lda x
and #4
beq nie
pla
lsr @
lsr @
lsr @
lsr @
jmp tak
nie pla
tak ora (adres),y
et1 sta (adres),y
clc
lda adres
adc #40
sta adres
lda adres+1
adc #0
sta adres+1
ldx p1
inx
stx p1
cpx #8
bne loop
lda #4
ldx mode
bne nlp
asl @
nlp clc
adc x
sta x
bcc et
inc x+1
et lda x+1
beq ret
lda x
cmp #$64
bcc ret
jmp eol
ret rts
*- procedura handlera
*- OPEN
ope lda 842,x
sta mode
*- pusta procedura
*- handlera
suk ldy 1
rts
*- dane
mask dta b(64),b(16)
dta b(04),b(01)
*-tablica procedur
*-handlera
tab dta a(ope-1),a(suk-1)
dta a(suk-1),a(put-1)
dta a(suk-1),a(suk-1)
jmp suk
end of SUPERTEXT
|