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 |