Software-Hilfe

Tips und Tricks zum StarTexter (Teil 2)

Sie kennen sicher die Situation: Auf dem Bildschirm befinden sich Texte, die Sie gerne in Ihren eigenen Briefen verwenden würden, doch der Aufwand ist meist zu groß. »Screencopy« löst dieses Problem.

Das hier vorgestellte Programm »Screencopy« legt eine Hardcopy des Bildschirms auf Diskette im StarTexter-Format ab. Es wird durch diese Technik beispielsweise möglich, Inhaltsverzeichnisse von Disketten zu dokumentieren, Anleitungen eigener Programme mit Beispielausdrucken und erläuterndem Text zu versehen, Menüstrukturen aufzuzeigen, zu erklären und vieles mehr. Ihrer Fantasie sind dabei lediglich drei Grenzen gesetzt:

— Hochauflösende Grafik wird nicht verwertet.

— Veränderte Zeichensätze können nicht übernommen werden.

— Das Programm, das den Text erzeugt, darf den IRQ-Vektor nicht für eigene Aufgaben verwenden.

Der größte Teil der Anwendungen ist hiervon glücklicherweise nicht betroffen, wodurch sich ein breites Einsatzspektrum für Screencopy ergibt.

Laden Sie das Programm Screencopy (Listing 1) durch »LOAD"SCREENCOPY $CF11",8,1« absolut und geben Sie danach NEW ein, um die Basic-Pointer wieder zu korrigieren. Durch »SYS 53009« aktivieren Sie das Programm. Wenn Sie nun die Tasten <CTRL>, <SHIFT> und <CBM> gleichzeitig drücken, wird auf Diskette der Bildschirminhalt unter dem Namen »BILD A« gespeichert. Bei erneutem Drücken dieser Tastenkombination wird als Name »BILD B« etc. festgelegt. Während der Übertragung des Bildschirminhaltes zur Floppy-Station läuft die eingebaute Uhr (TI$) nicht mehr weiter. Eine Hardcopy benötigt acht Blöcke auf Diskette, da nach den 40 Zeichen je Bildschirmzeile nochmals 40 Leerzeichen gesendet werden. Sofern Sie anstelle von »A« im Bildnamen beispielsweise mit »U« beginnen möchten (etwa wenn schon aus einer früheren »Sitzung« Bilder bis »T« existieren), so können Sie durch POKE 53022,ASC("beliebiges Zeichen"), gefolgt von SYS 53009 einen anderen Startwert vorgeben (etwa »0«). Mit dem Assembler-Quellprogramm (Listing 2) ist es möglich, sowohl den Programmaufbau nachzuvollziehen, als auch das Programm an beliebige Speicherbereiche anzupassen.

(Martin Müller/bj)
PROGRAMM : SCREENCOPY $CF11 CF11 CFFF
-----------------------------------
CF11 : 78 A2 23 A0 CF 8E 14 03   7F
CF19 : 8C 15 03 58 A9 41 8D F2   BC
CF21 : CF 60 AD 8D 02 49 07 29   16
CF29 : 07 F0 03 4C 31 EA AD 0E   30
CF31 : DC 29 FE 8D 0E DC A9 01   84
CF39 : A2 08 A0 01 20 BA FF A9   53
CF41 : 06 A2 ED A0 CF 20 BD FF   1D
CF49 : 20 C0 FF A2 01 20 C9 FF   56
CF51 : A9 40 20 D2 FF A9 00 20   0A
CF59 : D2 FF AD 88 02 85 F8 A9   2B
CF61 : 00 85 F7 A9 19 8D EC CF   A8
CF69 : A9 28 8D EB CF A0 00 20   49
CF71 : F3 CF B1 F7 49 80 91 F7   86
CF79 : 20 F9 CF C9 20 D0 04 A9   AF
CF81 : DF D0 21 C9 A0 F0 1D 49   E2
CF89 : 80 29 7F C9 20 B0 05 09   65
CF91 : 40 4C A5 CF C9 40 90 0C   54
CF99 : C9 60 B0 05 09 80 4C A5   70
CFA1 : CF 18 69 40 20 D2 FF A0   B9
CFA9 : 00 20 F3 CF B1 F7 49 80   B1
CFB1 : 91 F7 20 F9 CF E6 F7 D0   3B
CFB9 : 02 E6 F8 CE EB CF D0 AD   22
CFC1 : A9 28 8D EB CF A9 20 20   6A
CFC9 : D2 FF CE EB CF D0 F6 CE   C9
CFD1 : EC CF D0 94 20 CC FF A9   27
CFD9 : 01 20 C3 FF EE F2 CF AD   FC
CFE1 : 0E DC 09 01 8D 0E DC 4C   15
CFE9 : 31 EA 00 00 42 49 4C 44   B8
CFF1 : 20 41 78 A2 34 86 01 60   60
CFF9 : A2 37 86 01 58 60         A1
Listing 1. »Screencopy« legt den Bildschirminhalt im StarTexter-Format auf Diskette ab. Bitte verwenden Sie zur Eingabe den MSE (Hinweise auf Seite 99).
10 SYS9*4096
20 .OPT OO,P
30 *= $C000
201 ;
210 FILPAR = $FFBA
220 FILNAM = $FFBD
230 OPEN   = $FFC0
240 CLOSE  = $FFC3
250 CHKOUT = $FFC9
260 CHROUT = $FFD2
350 CLRALL = $FFE7
360 CLRCHN = $FFCC
370 ;
400 ;
402 ;
410 IRQVEC  = $0314
420 SWITCH  = 56334
430 IRQALT  = $EA31
440 FLAGS   = 653
450 HIBASE  = 648
460 ZEIGER  = $F7
470 CPUPORT = $01
1001 ;
1003 ; - BILDSCHIRM AUF FLOPPY ---------
1004 ; -- KOPIEREN -- VERSION 1.2 ------
1005 ; - (C) 1986 MARKT&TECHNIK VERLAG -
1006 ; -- WRITTEN BY MARTIN MUELLER ----
1007 ;
1010 SETIRQ    SEI
1020           LDX #<IRQ
1030           LDY #>IRQ
1040           STX IRQVEC
1050           STY IRQVEC + 1
1060           CLI
1062           LDA #"A"
1064           STA NNAME
1070           RTS
1080 ;
1200 IRQ       LDA FLAGS
1210           EOR #%00000111
1215           AND #%00000111
1220           BEQ IRQWE1
1230           JMP IRQALT
1235 ;
1240 IRQWE1    LDA SWITCH
1242           AND #%11111110
1244           STA SWITCH
1246           LDA #1
1250           LDX #8
1260           LDY #1
1270           JSR FILPAR
1280           LDA #6
1290           LDX #<NAME
1300           LDY #>NAME
1310           JSR FILNAM
1320           JSR OPEN
1322           LDX #1
1324           JSR CHKOUT
1332           LDA #>16384
1334           JSR CHROUT
1336           LDA #<16384
1338           JSR CHROUT
1342           LDA HIBASE
1350           STA ZEIGER + 1
1360           LDA #0
1370           STA ZEIGER
1372           LDA #25
1374           STA ZEILEN
1390 IRQL3     LDA #40
1400           STA ZAEHLER
1410 IRQL1     LDY #0
1415           JSR ARAM
1420           LDA (ZEIGER),Y
1422           EOR #%10000000
1424           STA (ZEIGER),Y
1426           JSR AROM
1428           CMP #32
1430           BNE IRQW1
1432           LDA #"_"
1434           BNE IRQWE2
1440 IRQW1     CMP #160
1442           BEQ IRQWE2
1454           EOR #%10000000
1456           AND #%01111111
1458           CMP #32
1460           BCS ASCWE1
1470           ORA #%01000000
1480           JMP IRQWE2
1490 ASCWE1    CMP #64
1500           BCC IRQWE2
1510           CMP #96
1520           BCS ASCWE2
1530           ORA #%10000000
1540           JMP IRQWE2
1550 ASCWE2    CLC
1555           ADC #64
1570 IRQWE2    JSR CHROUT
1572           LDY #0
1574           JSR ARAM
1576           LDA (ZEIGER),Y
1578           EOR #%10000000
1580           STA (ZEIGER),Y
1582           JSR AROM
1584           INC ZEIGER
1590           BNE IRQWE3
1600           INC ZEIGER + 1
1620 IRQWE3    DEC ZAEHLER
1630           BNE IRQL1
1650           LDA #40
1660           STA ZAEHLER
1670 IRQL2     LDA #32
1680           JSR CHROUT
1690           DEC ZAEHLER
1700           BNE IRQL2
1760           DEC ZEILEN
1770           BNE IRQL3
1790           JSR CLRCHN
1800           LDA #1
1810           JSR CLOSE
1830           INC NNAME
1840           LDA SWITCH
1850           ORA #%00000001
1860           STA SWITCH
1870           JMP IRQALT
1895 ;
1900 ZAEHLER  .BYTE 0
1910 ZEILEN   .BYTE 0
1920 NAME     .ASC "BILD "
1930 NNAME    .ASC "A"
2000 ;
2010 ARAM      SEI
2020           LDX #52
2030           STX CPUPORT
2040           RTS
2050 ;
2060 AROM      LDX #55
2070           STX CPUPORT
2080           CLI
2090           RTS
READY.
Listing 2. Assembler-Quellprogramm von »Screencopy« im Profi-Ass-Format
PDF Diesen Artikel als PDF herunterladen
Mastodon Diesen Artikel auf Mastodon teilen
← Vorheriger ArtikelNächster Artikel →