home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
64'er
/
64ER_CD.iso
/
sh2x
/
sh28b.d64
/
convert.src
< prev
next >
Wrap
Text File
|
1995-03-30
|
27KB
|
1,594 lines
;
; ░└└└└└└└└└└└└└└└└└└└└└└└└└└└└└└└«
; ▌ ┬ITMAP├ONVERTER ╓1.44 ▌
; ▌ (├) 1987 BY ├ARSTEN ├LASOHM ▌
; ½└└└└└└└└└└└└└└└└└└└└└└└└└└└└└└└│
; ▌ ╓ 1.0 WRITTEN FROM 28.12.1987 ▌
; ▌ TO 4. 1.1988 ▌
; ▌ LAST MODIFIED ON 20. 1.1988 ▌
; ¡└└└└└└└└└└└└└└└└└└└└└└└└└└└└└└└╜
;
; *** ╟EOS-╠IBRARIAN ╓1.4, (├) 1987 BY ├ARSTEN ├LASOHM ***
; ** **
; ** ╙TAND: 20.1.1987 **
ORG $0402
JMP ENDE
;
; *** ╠ABELS,ALLGEMEINE ***
;
:R0=$02 ;┴RBEITSREGISTER
:R1=$04 ;DER ╟EOS-╥OUTINEN
:R2=$06
:R3=$08
:R4=$0A
:R5=$0C
:R6=$0E
:R7=$10
:R9=$14
:R10=$16
:ZP1=$46 ;┌EROPAGE-┌EIGER FUER
:ZP2=$48 ;┴PPLIKATIOEN
:ZP3=$4A
:ZP4=$4C
:ZP5=$4E
:ZP8=$54
:ZP9=$56
:ZP10=$58
:ZP28=$7C
:ZP29=$7E
:NULL=0
:CIA1=56320 ;┬ASISADR. DER ├IA1
:MOUSEX=$3A ;╪-╦OORD. DER ═AUS
:MOUSEY=$3C ;┘-╦OORD. DER ═AUS
:BORDO=$84B8
:BORDU=$84B9 ;╟RENZEN
:BORDL=$84BA ;FUER ═AUS
:BORDR=$84BC
:RECVBOXR=$C12D ;╥OUTINENADR.
:SET=$FF ;╞LAG SETZEN
:CLEAR=0 ;╞LAG LOESCHEN
;
; *** ╠ABELS,╨╒╘├╚┴╥ ***
;
:CR=13
:BOLDON=24
:ITALICON=25
:OUTLINE=26
:PLAINTEXT=27
;
; *** ╠ABELS,─╔┴╠┬╧╪ ***
;
:OK=$01
:CANCEL=$02
:YES=$03
:NO=$04
;
; *** ═AKROS ***
;
;
; *** ┬┘╘┼╙ + ╫╧╥╘┼ ╦╧╨╔┼╥┼╬ + ╓┼╥╙├╚╔┼┬┼╬ ***
;
; * ╫ERT IN ╙PEICHERSTELLE SCHREIBEN *
:POKE M 2 ;(┴DRESSE;╫ERT)
LDA #@1
STA @0
/
; * ╫ORT 'WERT' IN 'REGISTER' LADEN *
:LOADW M 2 ;(WERT;REGISTER)
POKE @1,<@0
POKE @1+1,>@0
/
; * ┬YTE KOPIEREN *
:COP M 2 ;(╙RCBYTE;─ESTBYTE)
LDA @0
STA @1
/
; * ╫ORT KOPIEREN *
:TRANSW M 2 ;(SRCREG;DESTREG)
COP @0,@1
COP @0+1,@1+1
/
;
; *** ╟╥┴╞╔╦ ***
;
; * ┬ILDSCHIRM LOESCHEN *
:CLS M 0 ;()
JSR CLSROUT
/
; * ═USTER SETZEN *
:PATTERN M 1 ;(═USTER)
LDA #@0
JSR $C139
/
; * ┴USGEFUELLTES ╥ECHTECK ZEICHNEN *
:BOX M 5 ;(┘-L.O.;┘-R.U.;╪-L.O.;╪-R.U.;═USTER)
PATTERN @4
JSR $C19F
B @0,@1
W @2,@3
/
; * ╥ECHTECK ZEICHNEN *
:FRAME M 0 ;()
JSR $C127
/
; * ╥ECHTECKIGEN ┬EREICH INVERTIEREN *
:INVBOX M 0 ;()
JSR $C12A
/
; * KOMPRIMIERTE ┬ITMAP ANZEIGEN *
:BITMAP M 5 ;(┴DR.D.┬ITMAP;╪-╦OORD.;┘-╦OORD.;┬REITADR.;╚OEHADR.)
LOADW @0,R0
POKE 4,@1
POKE 5,@2
COP @3,6
COP @4,7
JSR $C142
/
; * ─IALBOX ERZEUGEN *
:DIALBOX M 1 ;(┴DRESSE)
LOADW @0,R0
JSR $C256
/
; * ═AKROS FUER ─╔┴╠┬╧╪ *
;
; * ╫ERTE FUER ─IALBOX FESTLEGEN *
:INITDIALBOX M 5 ;(═USTER;┘O;┘U;╪L;╪R)
B @0,@1,@2
W @3,@4
/
; * ╙TANDARDDIALBOX ERZEUGEN *
:STDDIALBOX M 1 ;(═USTER)
B $80+@0
;ES FOLGEN DIE ╦OMMANDOS
/
;
; * ╞ELD IN ─IALBOX BRINGEN *
:FELD M 3 ;(╞ELDOPCODE;╪;┘)
B @0,@1/8,@2
/
; * FESTEN ╘EXT IN ─IALBOX ANZEIGEN *
:TEXTAUS M 3 ;(╪;┘;╘EXTADRESSE)
B $0B,@0,@1
W @2
/
; * VARIABLEN ╘EXT ANZEIGEN *
:VARTEXTAUS M 3 ;(╪;┘;╥EGISTER)
B $0C,@0,@1,@2
/
; * ╞ILES AUSWAEHLEN (╞INDTYPE-╨ARAM.NICHT VERGESSEN!) *
:GETFILES M 2 ;(╪;┘)
B $10,@0,@1
/
; * AUF ╟┼╘╞╔╠┼╙ VORBEREITEN *
:INITGETFILES M 3 ;(╞ILETYP;┴BLAGEADR.;CLASS)
POKE $10,@0
LOADW @1,R5
LOADW @1,R6
LOADW @2,R10
/
; * ╔CON IN ─┬-┬OX GENERIEREN *
:USRICON M 3 ;(╪;┘;╔CONTABELLENADR.)
B $12,@0/8,@1
W @2
/
; * ╔CONTABELLE *
:ICON M 6 ;(┌G.AUF ┬ITMAP;╪;┘;┬REITE;╚OEHE;╥OUTADR.)
W @0
B @1,@2,@3,@4
W @5
/
; * ╓ON EIGENER ╥OUTINE ZURUECK ZUR ─┬ *
:RSTDIAL M 1 ;(├ODE FUER $851D)
POKE $851D,@0
JMP $C2BF
/
; *** ┼NDE ─╔┴╠┬╧╪-═AKROS ***
;
; * ╞LAECHE AUS 2. IN 1.┬ITMAP HOLEN *
:RECVBOX M 4 ;(╪L.O;┘L.O.;╪R.U.;┘R.U.)
JSR $C1A5
B @1,@3
W @0,@2
/
; * ┴DRESSE EINER ┌EILE IN ┬ITMAP BERECHNEN *
:SCAN M 0 ;()
JSR $C13C
/
;
; *** ╘┼╪╘ ***
;
; * ╘EXT IN ╟EOSFORMAT KONVERTIEREN *
:TXTCONV M 1 ;(┴DRESSE)
LOADW @0,$FB
JSR CONVERT
/
; * VARIABLEN ╘EXT KONVERTIEREN *
:VTXTCONV M 1 ;(┌EIGERADR.)
TRANSW @0,$FB
JSR CONVERT
/
; * ╒NTERMAKROS ZU ╔╨╒╘╙╘╥ UND ╨╒╘├╚┴╥ *
:GOTOX M 1 ;(╪-╦OORD.)
B $14
W @0
/
; * ┼NDE ╨╒╘├╚┴╥-═AKROS *
;
; * ╙TRINGS BEKANNTER ╟ROESSE VERGLEICHEN *
:CMPFSTR M 3 ;(┴DR.1;┴DR.2;╠AENGE)
LDX #@0
LDY #@1
LDA #@2
JSR $C26E
/
;
; *** ╙╧╬╙╘╔╟┼╙ ***
;
; * ─ESKTOP LADEN UND STARTEN *
:DESKTOP M 0
JMP $C22C
/
; * CPU ╔NHALTE SICHERN *
:PUSHCPU M 0
STA $FD
STX $FE
STY $FF
PHP
/
; * CPU ╔NHALTE ZURUECKLADEN *
:POPCPU M 0
LDA $FD
LDX $FE
LDY $FF
PLP
/
; * ╪ ╙EKUNDEN WARTEN *
:WAIT M 1 ;(╙EKUNDEN)
LOADW @0,ZP1
JSR WAITROUT
/
; * ═┴╔╬ AUFRUFEN *
:MAIN M 1 ;(╥ETURNADR.)
LOADW @0,$849B
JMP $C1C3
/
; * ┼IN/┴USGABE UEBER ALTE ╥OUTINEN VORBEREITEN *
:INITIO M 0 ;()
JSR $C25C
/
; * ┼IN/┴USGABE UEBER ALTE ╥OUTINEN BEENDEN *
:DONEIO M 0 ;()
JSR $C25F
/
; * ╔/╧-╞EHLER ANZEIGEN *
:ERROR M 1 ;(╥UECKSPRUNGADR.)
LOADW @0,ZP28
JMP ERRORROUT
/
;
; *** ═┴╒╙ ***
;
; * ═AUSZEIGER ANSCHALTEN *
:MOUSEON M 0 ;()
JSR $C18A
/
; * ═AUSZEIGER AUSSCHALTEN *
:MOUSEOFF M 0 ;()
JSR $C18D
/
; * ═AUS"SPIELWIESE" EINSTELLEN *
:MOUSEBORDER M 4 ;(OBERE;UNTERE;LINKE;RECHTE ╟RENZE)
POKE BORDO,@0
POKE BORDU,@1
LOADW @2,BORDL
LOADW @3,BORDR
/
;
; *** ─╔╙╦ ***
;
; * ╞ILE LADEN (WEITERE ╨ARAMETER) *
:READ M 2 ;(╠ADEADR.;═AXLAENGE)
LOADW @0,R7
LOADW @1,R2
JSR $C1FF
/
; * ─ISKETTE OEFFNEN *
:OPENDISK M 0 ;()
JSR $C2A1
/
; * ╞ILEEINTRAG IM ─IR. SUCHEN *
:FINDFILE M 1 ;(╞ILENAMENADR.)
LOADW @0,R6
JSR $C20B
/
; * ╞ILE UMBENENNEN *
:RENAME M 2 ;(NEUER ╬AME;ALTER ╬AME)
LOADW @0,R0
LOADW @1,R6
JSR $C259
/
; * ┬LOCK VON ─ISK EINLESEN (WEITERE ╨ARAMETER!) *
:GETBLK M 1 ;(╙PEICHERADR.)
LOADW @0,R4
JSR $C1E4
/
; * ╙PEICHERBEREICH SPEICHERN *
:SAVE M 2 ;(╔NFOBLOCKADR.;─IRSEITE)
LOADW @0,R9
POKE $16,@1
JSR $C1ED
/
;
; *** ╥┼├╚╬┼╬ ***
;
; * ╫ORT DEKREMENTIEREN *
:DDEC M 1 ;(┌PADR.)
LDX #@0
JSR $C175
/
; * ╫ORT INKREMENTIEREN *
:DINC M 1 ;(┴DR.)
LOADW @0,ZP29
JSR DINCROUT
/
; * ╤UOTIENT ZWEIER ╫ORTE BILDEN *
:DDIV M 2 ;(─IVID.ADR;─IVISORADR)
LDX #@0
LDY #@1
JSR $C169
/
; * ┌WEI ┬YTES MULTIPLIZIEREN *
:BBMULT M 2 ;(╨RODUKTEADR;┼RGEBNISADR)
LDY #@0
LDX #@1
JSR $C160
/
; * ┬YTE MIT ╫ORT MULTIPLIZIEREN *
:BMULT M 2 ;(┬YTEADR;╫ORTADR)
LDY #@0
LDX #@1
JSR $C163
/
; * ┌WEI ╫ORTE SUBTRAHIEREN *
:DSUBTR M 3 ;(═INUENDADR;╙UBTRAHEND;─IFFERENZ)
SEC
LDA @0
SBC @1
STA @2
LDA @0+1
SBC @1+1
STA @2+1
/
;
; *** ╙╨┼╔├╚┼╥ ╓┼╥╙├╚╔┼┬┼╬ + ╦╧╨╔┼╥┼╬ ***
;
; * ╙PEICHERBLOECKE VERSCHIEBEN *
:MOVERAM M 3 ;(┴NFADR.╤UELLE,┴NFADR.┌IEL,╠AENGE)
JSR $C1B7
W @0,@1,@2
/
; * ╙PEICHERBEREICH MIT $00 FUELLEN *
:CLEARAM M 2 ;(┴NFANGSADR.;┴NZAHL)
LOADW @0,R1
LOADW @1,R0
JSR $C178
/
; * ╞ILE LOESCHEN *
:DELETE M 1 ;(╬AMENADR.)
LOADW @0,R0
JSR $C238
/
;
;*** ╥OUTINEN ***
;
; * ╦ONVERTIERUNG VON ╘EXT INS *
; * ╟EOS-╞ORMAT *
:CONVERT
LDY #0
:CNVT
LDA ($FB),Y
BEQ ENDCNV
CMP #$10
BEQ ENDCNV
CMP #$14
BEQ ZWEI
CMP #$15
BEQ EINS
CMP #$16
BEQ DREI
CMP #$17
BEQ DREI
CMP #65
BCC NEXT
CMP #91
BCS NEXT
EOR #$20
:NEXT
STA ($FB),Y
INY
JMP CNVT
:ENDCNV
RTS
:EINS
INY
INY
JMP CNVT
:ZWEI
INY
JMP EINS
:DREI
INY
JMP ZWEI
;
; * ╫ARTEN *
;
:WAITROUT
INITIO
COP CIA1+9,ZP2
:WARTE
LDA CIA1+9
CMP ZP2
BEQ WARTE
STA ZP2
DONEIO
DDEC ZP1
BNE WARTEWEITER
RTS
:WARTEWEITER
INITIO
JMP WARTE
;
; * ╔/╧-╞EHLERMELDUNG AUSGEBEN *
;
:ERRORROUT
TXA
CMP #10 ;KLEINER ALS 10 ?
BCC KLEINER10 ;<-JA
POKE ZP29,$FF ;<-NEIN
:ABZIEHEN
INC ZP29 ;┌EHNERSTELLE MERKEN
SEC
SBC #10 ;KLEINER 10 MACHEN
BCS ABZIEHEN
CLC ;KLEINER 0!
ADC #10+48 ;WIEDER -1>┴KKU<10 UND
;IN ┌EICHENCODE WANDELN
STA FEHLERNR+3 ;UND ALS ┼INERSTELLE SP.
LDA ZP29
CLC ;UND DAS GLEICHE MIT DER
ADC #48 ;┌EHNERSTELLE
STA FEHLERNR+2
JMP AUSGEBEN
:KLEINER10
CLC
ADC #48 ;1STELLIGE ┌AHL UMRECHNEN
STA FEHLERNR+3 ;UND
POKE FEHLERNR+2,32 ;╠EERZEICHEN ALS 1.╙TELLE
:AUSGEBEN
DIALBOX IOFEHLER
JMP (ZP28)
;
; ** ╫ORT INKREMENTIEREN **
;
:DINCROUT
LDY #0
LDA (ZP29),Y ;╠OWBYTE
TAX
INX ;ERHOEHEN
TXA
STA (ZP29),Y
BNE KEINUEBERLAUF
INY
LDA (ZP29),Y ;╚IGHBYTE
TAX
INX ;ERHOEHEN
TXA
STA (ZP29),Y
:KEINUEBERLAUF
RTS
;
; ** ┬ILDSCHIRM LOESCHEN **
;
:CLSROUT
BOX 0,199,0,319,2
RTS
;
; *** ─ATEN, ╘EXTE, ... ***
;
:FEHLERNR
B "╔:00"
B NULL
:ENDE
;
;***> ┼╬─┼ ╟┼╧╙-╠╔┬╥┴╥╔┴╬ <***
;
;***> ┴╬╞┴╬╟ ┬╔╘═┴╨├╧╬╓┼╥╘┼╥ <***
;
; ** ╨ROGRAMMSPEZIFISCHE ╠ABELS **
;
:KOPF=ZP1
:BYTES=ZP2
:LESE=ZP3
:WRITE=ZP4
:KACHELN=ZP5
:TITELTXT=$5A
:INSERTDISKTXT=$5C
:FEHLERMELDUNG=$5E
:FILETYP=$60
:BILDOKTXT=$62
:SCHNITTOKTXT=$64
:NEWDISKTXT=$66
:STOPTXT=$68
;
; *** ╙PRACHE AUSWAEHLEN ***
;
TXTCONV SPRTXT ;╘EXTE FUER ERSTE
TXTCONV LANGTX ;┬OX KONVERTIEREN
TXTCONV QUITTX
CLS
:LANGU
DIALBOX SPRACHE ;╙PRACHE WAEHLEN
JMP KONVERTIEREN ;╥OUTINEN UEBERSPRINGEN
;
; *** ┌EIGER AUF ╘EXTE SETZEN ***
;
:ENGLRT
LOADW TITELTXTE,TITELTXT
LOADW INSERTXTE,INSERTDISKTXT
LOADW FEHLERMELDUNGE,FEHLERMELDUNG
LOADW FILETYPE,FILETYP
LOADW BILDOKTXTE,BILDOKTXT
LOADW SCHNITTOKTXTE,SCHNITTOKTXT
LOADW NEWDISKTXTE,NEWDISKTXT
LOADW STOPTXTE,STOPTXT
RSTDIAL $0E
;
:GERMRT
LOADW TITELTXTD,TITELTXT
LOADW INSERTXTD,INSERTDISKTXT
LOADW FEHLERMELDUNGD,FEHLERMELDUNG
LOADW FILETYPD,FILETYP
LOADW BILDOKTXTD,BILDOKTXT
LOADW SCHNITTOKTXTD,SCHNITTOKTXT
LOADW NEWDISKTXTD,NEWDISKTXT
LOADW STOPTXTD,STOPTXT
RSTDIAL $0E
;
:QUITRT
DESKTOP
;
; *** ╘ITEL + ╞ILE AUSWAEHLEN ***
;
:KONVERTIEREN
VTXTCONV TITELTXT
VTXTCONV INSERTDISKTXT
VTXTCONV FEHLERMELDUNG
VTXTCONV FILETYP
TXTCONV FEHLERNR
VTXTCONV BILDOKTXT
VTXTCONV SCHNITTOKTXT
VTXTCONV NEWDISKTXT
VTXTCONV STOPTXT
COP $851E,FARBEN
CLS
DIALBOX TITEL ;╘ITELBOX ANZEIGEN
:NEUEDISK
DIALBOX INSERTDISK ;─ISK EINLEGEN!
LDA R0
CMP #CANCEL ;ZURUECK ZUR 1. ┬OX ?
BNE WEITER
JMP LANGU
:WEITER
OPENDISK
TXA
BEQ OK1
ERROR NEUEDISK
:OK1
INITGETFILES 0,PUFFER,0
DIALBOX CHOOSEFILES ;╞ILE AUSWAEHLEN
LDA R0
CMP #CANCEL ;ANDERE ─ISK?
BNE NICHTZURUECK
JMP NEUEDISK
:NICHTZURUECK
;
; *** 1.╘RACK/┬LOCK SUCHEN ***
;
FINDFILE PUFFER
TXA
BEQ OK1A
ERROR NEUEDISK
:OK1A
COP $8400+1,TRACK
COP $8400+2,BLOCK
LDA $8400 ;AUF ╞ILETYP (╨RG.)
CMP #130 ;PRUEFEN
BEQ TYPRICHTIG
DIALBOX FILETYPEBOX
JMP WEITER ;NEUES ╞ILE WAEHLEN
:TYPRICHTIG
;
; ** ┬ILD LADEN UND ANZEIGEN **
;
COP TRACK,4
COP BLOCK,5
READ $6000-2,8194 ;┬ILD "ZWISCHEN"LADEN
MOVERAM $6000,$A000,8000 ;UND ANZEIGEN
WAIT 4
:NEUERSCRAP
DIALBOX BILDOK
LDA R0
CMP #YES
BEQ BILDRICHTIG
JMP WEITER ;ANDERES ╞ILE WAEHLEN
:BILDRICHTIG
DIALBOX AUTOSTOP
LDA R0
CMP #YES
BNE NOSTOP
POKE FLAG1,SET ;╞LAG SETZEN
JMP VORBEREIT
:NOSTOP
POKE FLAG1,CLEAR ;╞LAG LOESCHEN
:VORBEREIT
INITIO
POKE 53280,0 ;╥AHMEN SCHWARZ
DONEIO
MOUSEON
MOUSEBORDER 0,199,0,319
LOADW KNOPF1,$84A1 ;╓EKTOR FUER ╞EUERKNOPF
:NICHTSTUN
MAIN NICHTSTUN ;AUF ╦NOPF WARTEN
:KNOPF1
POKE $2F,%10000000 ;NUR IN SICHTBARE ┬ITMAP SCHREIBEN
TRANSW MOUSEX,X1
TRANSW X1,X2
TRANSW X1,AKTX
TRANSW X1,ALTX
LDA MOUSEY ;╦OORD. FUER ┬EREICH
STA Y1 ;KOPIEREN
STA Y2
STA AKTY
STA ALTY
STA 6
STA 7
TRANSW X1,R3
TRANSW X1,R4
INVBOX
LOADW TRICK1,$849B ;╥UECKSPRUNGADR. FUER ═┴╔╬
RTS ;ZURUECK ZU ═┴╔╬
:TRICK1
LOADW TRICK2,$84A1 ;╘RICK
MAIN TRICK1 ;(╟EOS WERTET "╦NOPF LOS-
:TRICK2 ; LASSEN" AUCH ALS AKTI-
LOADW VEKTOR,$849B ; VIERTEN ╞EUERKNOPF)
RTS
;
; ** ┬EREICH INVERTIEREN **
;
:VEKTOR
LOADW KNOPF2,$84A1
POKE PUFFER+10,0 ;╞ARBE SETZEN
POKE FLAG2,CLEAR
POKE FLAG5,CLEAR
LDA FLAG1 ;┴UTOSTOP ?
BEQ WARTESCHLEIFE ;NEIN
;
; ** ╟RENZE FUER ═AUS FESTLEGEN **
SEC
LDA ALTY
SBC #143 ;OBERE ╟RENZE
BCS GROESSER1
LDA #0
:GROESSER1
STA BORDO
CLC
LDA ALTY
ADC #143 ;UNTERE ╟RENZE
STA BORDU
BCS UEBERL
CMP #199
BCC KLEINER1
:UEBERL
POKE BORDU,199
:KLEINER1
LOADW 263,ZP1
DSUBTR ALTX,ZP1,BORDL
BCS GROESSER2
LOADW 0,BORDL
:GROESSER2
CLC
LDA ALTX
ADC #<263
STA BORDR
LDA ALTX+1
ADC #>263
STA BORDR+1
LOADW 319,ZP1
DSUBTR BORDR,ZP1,ZP1
BCC WARTESCHLEIFE
LOADW 319,BORDR
;
; *** AUF ┬EWEGUNG REAGIEREN ***
:WARTESCHLEIFE
POKE FLAG3,CLEAR ;╞LAG FUER ┘GLEICH LOESCHEN
COP Y1,ZP1 ;╦OORD. SICHERN
COP Y2,ZP1+1 ;(FUER "╩╙╥ ╥┼├╓┬╧╪╥")
TRANSW X1,ZP2
TRANSW X2,ZP3
LDA MOUSEY
CMP AKTY ;┘ GLEICHGEBLIEBEN ?
BNE YNGLEICH
JMP YGLEICH
:YNGLEICH
STA AKTY ;NEIN,
:RULO
LDA AKTY ;UND OBEN BZW.
CMP ALTY ;UNTEN FESTLEGEN
BCS YGROESSER
COP ALTY,Y2
COP AKTY,Y1
JMP XPRUEFEN
:YGROESSER
COP ALTY,Y1
COP AKTY,Y2
JMP XPRUEFEN
:YGLEICH
POKE FLAG3,SET ;╞LAG FUER ┘GLEICH
:XPRUEFEN
LDA MOUSEX
CMP AKTX ;╪ VERAENDERT?
BNE NICHTGLEICH ;JA
LDA MOUSEX+1
CMP AKTX+1
BNE NICHTGLEICH ;JA
:XGLEICH
LDA FLAG3
BNE NINVERTIEREN ;WENN NUR ╪ GLEICH,NEUEN ┬.INVERTIEREN
JMP INVERTIEREN
:NINVERTIEREN
MAIN WARTESCHLEIFE
:NICHTGLEICH
TRANSW MOUSEX,AKTX
SEC
LDA AKTX
SBC ALTX ;LINKS UND RECHTS
LDA AKTX+1 ;FESTLEGEN
SBC ALTX+1
BCS XGROESSER
TRANSW ALTX,X2
TRANSW AKTX,X1
POKE FLAG6,CLEAR ;┴KTY-LINKS-╞LAG
JMP INVERTIEREN
:XGROESSER
TRANSW ALTX,X1
TRANSW AKTX,X2
POKE FLAG6,SET ;┴KTY-RECHTS-╞LAG
:INVERTIEREN
POKE FARBE,0
LDA FLAG1 ;WENN ┴UTOSTOP,
BNE AUFRUF ;DANN UEBERSPRINGEN
SEC ;╞ARBE DES ┬ILD-
LDA Y2 ;SCHIRMRANDES
SBC Y1 ;BERECHNEN
CMP #144
BCC SCHWARZ
POKE FARBE,2
JMP XFARBE
:SCHWARZ
POKE FARBE,0
:XFARBE
SEC
LDA X2
SBC X1
STA PUFFER+1
LDA X2+1
SBC X1+1
STA PUFFER+2
LDA PUFFER+2
BEQ XSCHWARZ
LDA PUFFER+1
CMP #9
BCC XSCHWARZ
POKE FARBE,2
JMP AUFRUF
:XSCHWARZ
LDA FARBE
BNE AUFRUF
POKE FARBE,0
:AUFRUF
LDA FLAG5
BEQ NKNOPF2
RTS
:NKNOPF2
LDA FARBE
CMP PUFFER+10
BEQ ALTEFARBE
STA PUFFER+10
INITIO
COP FARBE,53280 ;╞ARBE SETZEN
DONEIO
:ALTEFARBE
TRANSW ZP2,R3 ;ALTEN ┬EREICH
TRANSW ZP3,R4 ;WIEDERHERSTELLEN,
COP ZP1,6
COP ZP1+1,7
JSR RECVBOXR
TRANSW X1,R3
TRANSW X2,R4 ;NEUEN ┬EREICH
COP Y1,6 ;INVERTIEREN
COP Y2,7
INVBOX
TRANSW X1,R3
TRANSW X2,R4 ;UND ╥ECHTECK ZEICHNEN
COP Y1,6
COP Y2,7
LDA #%11110000 ;┌EICHENMUSTER
FRAME
MAIN WARTESCHLEIFE ;UND WEITER WARTEN
;
; ** AUF 2. ╦NOPFDRUCK REAGIEREN **
;
:KNOPF2
LOADW ERWEITERN,$849B ;╥UECKSPRUNGADR. FUER ═┴╔╬
RTS ;ZURUECK ZU ═┴╔╬
:ERWEITERN
LOADW $E6B9,$84A1 ;ALTEN ╓EKTOR HERSTELLEN
;
; ** ╪-╦OORD. AUF "╪/8" ERWEITERN **
;
TRANSW X1,R3 ;┬ILD
TRANSW X2,R4 ;WIEDERHERSTELLEN
COP Y1,6
COP Y2,7
JSR RECVBOXR
LDA X1 ;BEI ╪1=0
BNE KEINENULL ;UEBERSPRINGEN
LDA X1+1
BEQ X2ERWEIT
:KEINENULL
TRANSW X1,R0
LOADW 8,R1
DDIV R0,R1 ;╪1/8 STEHT IN R0 (╠OWBYTE)
POKE R0+1,8
BBMULT R0,R1 ;╪1*8,┼RGEBNIS IN R1
TRANSW R1,X1 ;X1 JETZT DURCH 8 TEILBAR
:X2ERWEIT
LDA X2 ;BEI ╪2=0
BNE NONULL ;UEBERSPRINGEN
LDA X2+1
BNE NONULL
JMP DARSTELLEN
:NONULL
TRANSW X2,R0
DINC R0 ;╪2 ERHOEHEN (0=1,7=8,...)
LOADW 8,R1
DDIV R0,R1 ;╪2/8 STEHT IN R0 (╠OWBYTE)
POKE R0+1,8
BBMULT R0,R1 ;╪2*8,┼RGEBNIS IN R1
DDEC R1 ;╪2 WIEDER -1 (8=7,...)
TRANSW R1,PUFFER ;X2 JETZT DURCH 8 TEILBAR
LDA PUFFER
CMP X2
BEQ KEINREST
CLC ;AUFRUNDEN
LDA PUFFER ;(PLUS 8)
ADC #8
STA PUFFER
LDA PUFFER+1
ADC #0
STA PUFFER+1
:KEINREST
TRANSW PUFFER,X2
LDA FLAG1 ;┴UTOSTOP ?
BEQ DARSTELLEN
DSUBTR X2,X1,ZP10
LOADW 264,ZP9
DSUBTR ZP10,ZP9,ZP8
BCC DARSTELLEN
LDA FLAG6
BNE AKTX2
CLC ;┬REITE HERUNTER-
LDA X1 ;SETZEN
ADC #8 ;(╪1 + 8)
STA X1
LDA X1+1
ADC #0
STA X1+1
JMP DARSTELLEN
:AKTX2
LOADW 8,ZP10 ;╪2 - 8
DSUBTR X2,ZP10,X2 ;(┬REITE HERUNTERSETZEN)
;
; ** NEUEN ┬EREICH DARSTELLEN **
;
:DARSTELLEN
TRANSW X1,R3
TRANSW X2,R4 ;NEUEN ┬EREICH
COP Y1,6 ;INVERTIEREN
COP Y2,7
INVBOX
TRANSW X1,R3
TRANSW X2,R4 ;UND ╥ECHTECK ZEICHNEN
COP Y1,6
COP Y2,7
LDA #%11110000 ;┌EICHENMUSTER
FRAME
;
; ** ╞ARBEN FUER ┬EREICHSUEBERSCHREITUNG SETZEN **
;
POKE FLAG5,SET
POKE FLAG1,CLEAR
JSR INVERTIEREN
INITIO
COP FARBE,53280 ;╞ARBE SETZEN
DONEIO
WAIT 4
DIALBOX AUSSCHNITTOK
LDA R0
CMP #YES
BEQ INORDNUNG
RECVBOX 0,0,319,199
JMP BILDRICHTIG ;NEUEN ┴USSCHNITT WAEHLEN
:INORDNUNG
INITIO
POKE 53280,0
DONEIO
;
; ** ┬ITMAPFORMAT KONVERTIEREN **
;
MOUSEOFF
CLEARAM $A000,8000 ;┬ITMAP 1 LOESCHEN
POKE $2F,%01000000 ;┬ITMAP 2 AUSLESEN
LOADW $A000,ZP1 ;┌EIGER FESTLEGEN
POKE PUFFER,0 ; '' ''
LDA X2 ;╪2 ERHOEHEN
BNE X2NICHTNULL ;(DURCH 8 TEIL-
LDA X2+1 ; BAR MACHEN)
BEQ GLEICHNULL
:X2NICHTNULL
DINC X2
; ** ┬REITE UND ╚OEHE FESTHALTEN **
:GLEICHNULL
SEC
LDA Y2
SBC Y1
STA HOEHE ;WEIL KLEINSTES ┘=0
INC HOEHE ;MUSS ╚OEHE INCREMENTIERT WERDEN
SEC
LDA X2
SBC X1
STA R0
LDA X2+1
SBC X1+1
STA R0+1
LOADW 8,R1
DDIV R0,R1 ;┬REITE/8 STEHT IN R0 (╠OWBYTE)
COP R0,BREITE
TRANSW X1,ALTX ;RETTEN
; ** UND JETZT GEHT'S LOS **
:COPYLOOP
LDX Y1
SCAN
CLC
LDA R5
ADC X1
STA R5
LDA R5+1
ADC X1+1
STA R5+1
LDY #0
LDA (R5),Y
STA (ZP1),Y
DINC ZP1 ;┌IELZEIGER ERHOEHEN
CLC ;╪-╦OORD. ERHOEHEN
LDA X1 ;(UM 8)
ADC #8
STA X1
LDA X1+1
ADC #0
STA X1+1
LDA X2 ;PRUEFEN,OB ╪1=╪2
CMP X1
BNE COPYLOOP
LDA X2+1
CMP X1+1
BNE COPYLOOP
LDA Y1 ;PRUEFEN,OB LETZTE ┌EILE
CMP Y2
BEQ FERTIG
INC Y1 ;┘ ERHOEHEN
TRANSW ALTX,X1 ;┴NFANGSWERT ZURUECK
JMP COPYLOOP
;
; ** ┬ITMAP PACKEN **
;
:FERTIG
LOADW $A000-1,LESE ;╠ESEZEIGER
LOADW PUFFER+3,WRITE ;╙CHREIBZEIGER
LDA HOEHE
STA R1
STA PUFFER+1 ;╓ORBEREITUNG FUER SPEICHERN
LDA BREITE
STA R2
STA PUFFER ; '' '' ''
POKE PUFFER+2,0 ; '' '' ''
POKE R2+1,0
BMULT R1,R2
TRANSW R2,BYTES ;┬YTEZAHL
; ** NEUES ╦OPFBYTE + 1.┬YTE SCHREIBEN **
:NEUERKOPF
LDA #1 ;╦OPFBYTE
LDY #0 ;─ATENBYTEANZAHL
LDX #0 ;─UMMY
STA (WRITE),Y ;╦OPFBYTE SPEICHERN
TRANSW WRITE,KOPF ;┌EIGER AUF ╦OPFBYTE
INY ;┘=1
LDA (LESE),Y ;ERSTES ─ATENBYTE
STA (WRITE),Y
PUSHCPU
DDEC BYTES
CMP #0 ;LETZTES ┬YTE ?
BEQ ANZEIGEN1
POPCPU
INY ;┘=2
LDA (LESE),Y ;NAECHSTES LESEN
DEY ;┘=1 (VORHERIGES ┬YTE)
CMP (LESE),Y ;GLEICH ?
BNE GRUPPE2
LDY #3
CMP (LESE),Y ;3 GLEICHE ┬YTES ?
BNE GRUPPE2
LDY #1
; ** ╫IEDERHOLUNG **
:GRUPPE1
INY ;┘ WIEDERHERSTELLEN
TYA
STA (KOPF),X ;╦OPFBYTE=─ATENBYTEZAHL
PUSHCPU
DDEC BYTES
CMP #0 ;LETZTES ┬YTE ?
BEQ ANZEIGEN1
POPCPU
INY ;NAECHSTES ┬YTE LESEN
LDA (LESE),Y
DEY ;┌EIGER 1 ZURUECK
CMP (LESE),Y ;GLEICH VORHERIGEM ?
BNE UNGLEICH1
CPY #$7F ;MAXIMALE ┴NZAHL VON
BNE GRUPPE1 ;╫IEDERHOLUNGEN ?
; ** ╫IEDERHOLUNG ZUENDE **
:UNGLEICH1
TYA ;┌EIGER IN ┴KKU
CLC
ADC LESE ;╠ESEZG.=
STA LESE ;╠ESEZG.+┬YTEZAHL
LDA LESE+1
ADC #0
STA LESE+1
DINC WRITE ;╫RITEZG.=
DINC WRITE ;╫RITEZG.+2 (╦OPFBYTE+1 ─ATENB.)
JMP NEUERKOPF
; ** ALLE ┬YTES GEPACKT **
:ANZEIGEN1
DINC WRITE
DINC WRITE
JMP ANZG
; ** KEINE ╨ACKMOEGLICHKEIT **
:GRUPPE2
LDY #1
LDA #$81 ;╦OPFBYTE (┘=1)
STA (KOPF),X ;SPEICHERN
INY
LDA (LESE),Y ;ZWEITES
STA (WRITE),Y ;─ATENBYTE
TYA
ORA #$80
STA (KOPF),X ;╦OPFBYE +1 (┬IT 7 GESETZT)
PUSHCPU
DDEC BYTES
CMP #0
BEQ ANZEIGEN2
POPCPU
:WEITERLESEN
INY ;NAECHSTES ┬YTE
LDA (LESE),Y ;LESEN
DEY ;UND MIT
CMP (LESE),Y ;VORHERIGEM VERGL.
BNE UNGLEICH
INY
INY
CMP (LESE),Y ;3 GLEICHE ?
PHP ;╞LAGS RETTEN
DEY
DEY
PLP ;╞LAGS ZURUECK
BEQ GLEICH2
:UNGLEICH
INY ;FALLS NICHT GLEICH,
STA (WRITE),Y ;SPEICHERN
PUSHCPU
DDEC BYTES
CMP #0 ;ALLE ┬YTES ?
BEQ ANZEIGEN2
POPCPU
TYA
ORA #$80 ;┬IT 7 SETZEN
STA (KOPF),X ;NEUES ╦OPFBYTE SPEICHERN
CMP #$DB ;MAXIMAL MOEGLICHE ┴NZAHL ?
BNE WEITERLESEN
PUSHCPU
DDEC BYTES
POPCPU
JMP MAXZAHL
; ** NEUE ╫IEDERHOLUNG GEFUNDEN **
:GLEICH2
DEY
TYA
ORA #$80
STA (KOPF),X ;╦OPFBYTE -1
:MAXZAHL
TYA ;┌EIGER IN ┴KKU
CLC
ADC LESE ;╠ESEZG.=
STA LESE ;╠ESEZG.+┬YTEZAHL
LDA LESE+1
ADC #0
STA LESE+1
INY ;─ATENBYTES +1 ╦OPFBYTE
TYA
CLC
ADC WRITE ;╫RITE PLUS
STA WRITE ;─ATENBYTEZAHL
LDA WRITE+1
ADC #0
STA WRITE+1
DINC BYTES ;┬YTE WIEDER +1
JMP NEUERKOPF ;NEUES ╦OPFBYTE
; ** ALLE ┬YTES GEPACKT **
:ANZEIGEN2
POPCPU
TYA
CLC
ADC WRITE ;╫RITE PLUS
STA WRITE ;─ATENBYTEZAHL
LDA WRITE+1
ADC #0
STA WRITE+1
JMP ANZG
;
; ** ╨ROBEANZEIGEN **
;
:ANZG
POKE $2F,%10000000
CLEARAM $A000,8000
BITMAP PUFFER+3,0,0,BREITE,HOEHE
WAIT 3
;
; ** ╞ARBCODES HINTER ┬ITMAP SPEICHERN **
;
;
; * ╨REFERENCES LADEN *
;
:NEUDISK
DIALBOX NEWDISK ;┌IELDISK EINLEGEN
LDA R0
CMP #OK
BEQ DISKOEFF
RECVBOX 0,0,319,199 ;┬ILD WIEDERHERSTELLEN
JMP NEUERSCRAP ;UND NEUEN ╙CRAP WAEHLEN
:DISKOEFF
OPENDISK
TXA
BEQ OK3
ERROR NEUDISK
:OK3
FINDFILE PREF
TXA
BNE ANZAHL ;╨REFERENCES NICHT DA
COP $8400+1,4 ;╘RACK
COP $8400+2,5 ;+┬LOCK
GETBLK $8000 ;╨REF. NACH $8000 EINLESEN
TXA
BEQ OK3A
ERROR NEUDISK
:OK3A
LDA $8000+5 ;╞ARBEN ZU EINEM ┬YTE ZUSAMMENFASSEN
ORA $8000+6
STA FARBEN
;
; * ┴NZAHL DER ╞ARBKACHELN BERECHNEN *
;
:ANZAHL
LSR HOEHE
LSR HOEHE ;╚OEHE=╚OEHE/8
LSR HOEHE
COP HOEHE,ZP1
COP BREITE,ZP2
POKE ZP2+1,0
BMULT ZP1,ZP2
TRANSW ZP2,KACHELN ;┴NZAHL DER ╞ARBBYTES
DINC KACHELN ;SICHERHEITSHALBER+1
:FARBKOPF
LDA #0 ;╦OPFBYTE
LDY #0
STA (WRITE),Y
LDY #1
LDA FARBEN
STA (WRITE),Y ;─ATENBYTE
LDY #0
:FARBLOOP
LDA (WRITE),Y
TAX
INX
TXA
STA (WRITE),Y
DDEC KACHELN
CMP #0
BEQ FARBFERT
LDY #0
LDA (WRITE),Y
CMP #$7F
BNE FARBLOOP
DINC WRITE ;┌EIGER AUF ─ATENBYTE
DINC WRITE ; '' AUF NAECHSTEN ╦OPF
JMP FARBKOPF
:FARBFERT
DINC WRITE ;┌EIGER AUF LETZTES ┬YTE
DINC WRITE
;
; ** ╙PEICHERN **
;
:SPEICHERN
DELETE NEUNAM
LOADW PUFFER,LADEADR
TRANSW WRITE,ENDADR
SAVE INFOBLOCK,1
RENAME NEUNAM,ALTNAM
DESKTOP
;
; ** ─IALOGBOXPARAMETER **
;
:SPRACHE
STDDIALBOX 1
TEXTAUS 16,16,SPRTXT
TEXTAUS 80,34,LANGTX
TEXTAUS 80,58,LANGTX
TEXTAUS 80,82,QUITTX
USRICON 16,24,ENGLIC
USRICON 16,48,GERMIC
USRICON 16,72,QUITIC
B NULL
;
:TITEL
INITDIALBOX 1,20,170,64,255
VARTEXTAUS 16,16,TITELTXT
FELD OK,136,127
B NULL
;
:INSERTDISK
STDDIALBOX 1
VARTEXTAUS 16,16,INSERTDISKTXT
FELD OK,8,72
FELD CANCEL,136,72
B NULL
;
:IOFEHLER
STDDIALBOX 1
VARTEXTAUS 16,16,FEHLERMELDUNG
TEXTAUS 16,52,FEHLERNR
FELD OK,136,72
B NULL
;
:CHOOSEFILES
STDDIALBOX 1
GETFILES 2,2
FELD OK,136,8
FELD CANCEL,136,72
B NULL
;
:FILETYPEBOX
STDDIALBOX 1
VARTEXTAUS 16,16,FEHLERMELDUNG
VARTEXTAUS 16,52,FILETYP
FELD OK,136,72
B NULL
;
:BILDOK
STDDIALBOX 1
VARTEXTAUS 16,16,BILDOKTXT
FELD YES,8,72
FELD NO,136,72
B NULL
;
:AUTOSTOP
STDDIALBOX 1
VARTEXTAUS 16,16,STOPTXT
FELD YES,8,72
FELD NO,136,72
B NULL
;
:AUSSCHNITTOK
STDDIALBOX 1
VARTEXTAUS 16,16,SCHNITTOKTXT
FELD YES,8,72
FELD NO,136,72
B NULL
;
:NEWDISK
STDDIALBOX 1
VARTEXTAUS 16,16,NEWDISKTXT
FELD OK,8,72
FELD CANCEL,136,72
B NULL
;
; *** ╘EXTE, ALLGEMEINE ***
;
:SPRTXT
B BOLDON,"╨LEASE ╙ELECT ╧PTION:"
B NULL
;
:LANGTX
B PLAINTEXT,"LANGUAGE"
B NULL
;
:QUITTX
B "TO DESK╘OP"
B NULL
;
; *** ╘EXTE, ENGLISCHE ***
;
:TITELTXTE
B ITALICON,BOLDON,"╟┼╧╙ ┬ITMAP├ONVERTER ╓ 1.44",CR,CR
GOTOX 80
B PLAINTEXT,BOLDON,"DESIGNED BY:"
GOTOX 160
B PLAINTEXT,OUTLINE,"├ARSTEN",CR
GOTOX 160
B "├LASOHM",CR,CR
GOTOX 80
B PLAINTEXT,"═ANY THANKS TO ╞LORIAN ═UELLER FOR",CR
GOTOX 80
B "SENDING ME THE IDEA FOR THIS PROGRAM",CR
GOTOX 80
B "AND FOR WRITING THE BOOK",CR
GOTOX 80
B 34,"┴LLES UEBER ╟EOS",34,".",CR,CR
GOTOX 80
B BOLDON,"(├) IN 1987 BY ├ARSTEN ├LASOHM",CR,CR
B NULL
;
:INSERTXTE
B BOLDON,"╨LEASE INSERT THE DISK",CR,CR
GOTOX 80
B "CONTAINING THE BITMAP",CR,CR
GOTOX 80
B "TO CONVERT."
B NULL
;
:FEHLERMELDUNGE
B BOLDON,"╧PERATION CANCELED DUE TO",CR,CR
GOTOX 80
B "DISK ERROR:"
B NULL
;
:FILETYPE
B "╞ILE TYPE MISMATCH"
B NULL
;
:BILDOKTXTE
B BOLDON,"╔S THIS THE RIGHT PICTURE ?"
B NULL
;
:STOPTXTE
B BOLDON,"─O YOU WANT '┴UTOSTOP' ?"
B NULL
;
:SCHNITTOKTXTE
B BOLDON,"╔S THIS THE RIGHT SCRAP ?"
B NULL
;
:NEWDISKTXTE
B BOLDON,"╨LEASE INSERT A DISK",CR,CR
GOTOX 80
B "ON WHICH ╔ CAN SAVE",CR,CR
GOTOX 80
B "THE PHOTOSCRAP."
B NULL
;
; *** ╘EXTE, DEUTSCHE ***
;
:TITELTXTD
B ITALICON,BOLDON,"╟┼╧╙ ┬ITMAP├ONVERTER ╓ 1.44",CR,CR
GOTOX 80
B PLAINTEXT,BOLDON,"GESCHRIEBEN VON:"
GOTOX 175
B PLAINTEXT,OUTLINE,"├ARSTEN",CR
GOTOX 175
B "├LASOHM",CR,CR
GOTOX 80
B PLAINTEXT,"╓IELEN ─ANK AN ╞LORIAN ═UELLER",CR
GOTOX 80
B "FUER DIE ╔DEE ZU DIESEM ╨ROGRAMM",CR
GOTOX 80
B "UND FUER DAS ╙CHREIBEN DES ┬UCHES",CR
GOTOX 80
B 34,"┴LLES UEBER ╟EOS",34,".",CR,CR
GOTOX 80
B BOLDON,"(├) IN 1987 BY ├ARSTEN ├LASOHM",CR,CR
B NULL
;
:INSERTXTD
B BOLDON,"┬ITTE DIE ─ISK MIT DER ZU",CR,CR
GOTOX 80
B "KONVERTIERENDEN ┬ITMAP",CR,CR
GOTOX 80
B "EINLEGEN."
B NULL
;
:FEHLERMELDUNGD
B BOLDON,"╧PERATION ABGEBROCHEN",CR,CR
GOTOX 80
B "WEGEN ─ISKFEHLER:"
B NULL
;
:FILETYPD
B "╞ALSCHER ╞ILETYP"
B NULL
;
:BILDOKTXTD
B BOLDON,"╔ST DIES DAS RICHTIGE ┬ILD ?"
B NULL
;
:STOPTXTD
B BOLDON,"═OECHTEN ╙IE '┴UTOSTOP' ?"
B NULL
;
:SCHNITTOKTXTD
GOTOX 72
B BOLDON,"╔ST DIES DER RICHTIGE ┴USSCHNITT ?"
B NULL
;
:NEWDISKTXTD
B BOLDON,"┬ITTE DIE ─ISK EINLEGEN,",CR,CR
GOTOX 80
B "AUF DIE DER ┴USSCHNITT",CR,CR
GOTOX 80
B "GESPEICHERT WERDEN SOLL."
B NULL
;
; *** ╞ILENAMEN ***
;
:ALTNAM
B 133,176,18,173,139,254,56,237,3,133,141,139,254,176,9,206,NULL
;
:NEUNAM
B 80,104,111,116,111,32,83,99,114,97,112,NULL
;
:PREF
B 80,114,101,102,101,114,101,110,99,101,115,NULL
;
; *** ╔CONTABELLEN ***
;
:ENGLIC
ICON ENGLBM,0,0,6,16,ENGLRT
B NULL
;
:GERMIC
ICON GERMBM,0,0,7,16,GERMRT
B NULL
;
:QUITIC
ICON QUITBM,0,0,6,16,QUITRT
B NULL
;
; *** ┬ITMAPS DER ╔CONS ***
;
:ENGLBM
B $05,$FF,$82
B $FE,$80,$04,$00,$C9,$02,$BF,$00
B $01,$CC,$03,$03,$B0,$00,$00,$C0
B $03,$03,$B0,$7C,$7C,$DC,$F3,$E3
B $B0,$76,$CC,$CD,$9B,$B3,$BE,$66
B $CC,$CD,$83,$33,$B0,$66,$CC,$CC
B $F3,$33,$B0,$66,$CC,$CC,$1B,$33
B $B0,$66,$CC,$CD,$9B,$33,$BF,$66
B $7C,$CC,$F3,$33,$80,$00,$0C,$00
B $00,$03,$80,$00,$CC,$00,$00,$03
B $80,$00,$78,$00,$00,$03,$06,$FF
B $81,$3F,$05,$FF
;
:GERMBM
B $06,$FF,$82
B $FE,$80,$05,$00,$83,$02,$87,$C0
B $04,$00,$83,$03,$8C,$60,$04,$00
B $B3,$03,$8C,$07,$9F,$BE,$E3,$CF
B $83,$8C,$0C,$DC,$3B,$B6,$6E,$C3
B $8D,$EC,$D8,$33,$33,$EC,$C3,$8C
B $6F,$D8,$33,$36,$6C,$C3,$8C,$6C
B $18,$33,$36,$6C,$C3,$8C,$6C,$D8
B $33,$36,$6C,$C3,$87,$C7,$98,$33
B $33,$EC,$C3,$80,$05,$00,$82,$03
B $80,$05,$00,$82,$03,$80,$05,$00
B $81,$03,$07,$FF,$81,$3F,$06,$FF
;
:QUITBM
B $05,$FF,$82
B $FE,$80,$04,$00,$BE,$02,$80,$0F
B $80,$19,$80,$03,$80,$18,$C0,$01
B $80,$03,$80,$18,$D9,$BB,$C0,$03
B $80,$18,$D9,$99,$80,$03,$80,$18
B $D9,$99,$80,$03,$80,$18,$D9,$99
B $80,$03,$80,$18,$D9,$99,$80,$03
B $80,$1B,$DB,$99,$80,$03,$80,$0F
B $8F,$98,$E0,$03,$80,$00,$C0,$00
B $00,$03,$80,$04,$00,$82,$03,$80
B $04,$00,$81,$03,$06,$FF,$81,$3F
B $05,$FF
;
; ** ─ATEN **
;
:FARBEN
B 0
:TRACK
:BREITE
B 0
:BLOCK
:HOEHE
B 0
:X1
B 0,0
:Y1
B 0
:X2
B 0,0
:Y2
B 0
:AKTX
B 0,0
:AKTY
B 0
:ALTX
B 0,0
:ALTY
B 0
:FARBE
B 0
:NAME
:FLAG1 ;┴UTOSTOP ?
B 0
:FLAG2 ;┘-┬EREICHSUEBERSCHREITUNG GEBLIEBEN ?
B 0
:FLAG3 ;┘ GLEICH GEBLIEBEN ?
B 0
:FLAG4 ;╪-┬EREICHSUEBERSCHREITUNG GEBLIEBEN ?
B 0
:FLAG5 ;╞REMDAUFRUF DER ╫┴╥╘┼╙├╚╠┼╔╞┼ ?
B 0
:FLAG6 ;┴KTY LINKS (0) ODER RECHTS ($FF) ?
S 11
:INFOBLOCK
B 0,255,3,21,191,255,255,255
B 128,64,1,128,96,1,128,96
B 1,128,96,13,128,80,53,128
B 80,217,128,83,33,128,92,193
B 128,89,1,135,206,1,159,200
B 1,184,248,1,177,252,1,191
B 110,1,156,102,1,128,102,1
B 128,108,1,128,56,1,128,0
B 1,255,255,255,131,4,0
:LADEADR
B 0,0
:ENDADR
B 0,0
B 0,0,80,104,111
B 116,111,32,83,99,114,97,112
B 32,86,49,46,48
S 42
B 80
B 104,111,116,111,32,83,99,114
B 97,112,0,32,119,194,96,169
B 66,133,3,169,182,133,2,32
B 0
:PUFFER