home *** CD-ROM | disk | FTP | other *** search
/ 64'er Special 28 / 64er_Magazin_Sonderheft_28_19xx_Markt__Technik_de_Side_B.d64 / convert.src < prev    next >
Text File  |  2022-10-26  |  27KB  |  1,594 lines

  1. ;
  2. ;   {CBM-A}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{CBM-S}
  3. ;   {SHIFT--}     BitmapConverter V1.44     {SHIFT--}
  4. ;   {SHIFT--}  (C) 1987 by Carsten Clasohm  {SHIFT--}
  5. ;   {CBM-Q}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{CBM-W}
  6. ;   {SHIFT--} V 1.0 written from 28.12.1987 {SHIFT--}
  7. ;   {SHIFT--}                 to  4. 1.1988 {SHIFT--}
  8. ;   {SHIFT--}   last modified on 20. 1.1988 {SHIFT--}
  9. ;   {CBM-Z}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{CBM-X}
  10. ;
  11. ; *** Geos-Librarian V1.4, (C) 1987 by Carsten Clasohm ***
  12. ;  **                                             **
  13. ;  **              Stand: 20.1.1987                **
  14. org $0402
  15. jmp ende
  16. ;
  17. ; *** Labels,allgemeine ***
  18. ;
  19. :r0=$02      ;Arbeitsregister
  20. :r1=$04      ;der Geos-Routinen
  21. :r2=$06
  22. :r3=$08
  23. :r4=$0a
  24. :r5=$0c
  25. :r6=$0e
  26. :r7=$10
  27. :r9=$14
  28. :r10=$16
  29. :zp1=$46     ;Zeropage-Zeiger fuer
  30. :zp2=$48     ;Applikatioen
  31. :zp3=$4a
  32. :zp4=$4c
  33. :zp5=$4e
  34. :zp8=$54
  35. :zp9=$56
  36. :zp10=$58
  37. :zp28=$7c
  38. :zp29=$7e
  39. :null=0
  40. :cia1=56320     ;Basisadr. der Cia1
  41. :mousex=$3a     ;X-Koord. der Maus
  42. :mousey=$3c     ;Y-Koord. der Maus
  43. :bordo=$84b8
  44. :bordu=$84b9    ;Grenzen
  45. :bordl=$84ba    ;fuer Maus
  46. :bordr=$84bc
  47. :recvboxr=$c12d ;Routinenadr.
  48. :set=$ff        ;Flag setzen
  49. :clear=0        ;Flag loeschen
  50. ;
  51. ; *** Labels,PUTCHAR ***
  52. ;
  53. :cr=13
  54. :boldon=24
  55. :italicon=25
  56. :outline=26
  57. :plaintext=27
  58. ;
  59. ; *** Labels,DIALBOX ***
  60. ;
  61. :ok=$01
  62. :cancel=$02
  63. :yes=$03
  64. :no=$04
  65. ;
  66. ; *** Makros ***
  67. ;
  68. ;
  69. ; *** BYTES + WORTE KOPIEREN + VERSCHIEBEN ***
  70. ;
  71. ; * Wert in Speicherstelle schreiben *
  72. :poke m 2          ;(Adresse;Wert)
  73. lda #@1
  74. sta @0
  75. /
  76. ; * Wort 'wert' in 'register' laden *
  77. :loadw m 2     ;(wert;register)
  78. poke @1,<@0
  79. poke @1+1,>@0
  80. /
  81. ; * Byte kopieren *
  82. :cop m 2        ;(Srcbyte;Destbyte)
  83. lda @0
  84. sta @1
  85. /
  86. ; * Wort kopieren *
  87. :transw m 2      ;(srcreg;destreg)
  88. cop @0,@1
  89. cop @0+1,@1+1
  90. /
  91. ;
  92. ; *** GRAFIK ***
  93. ;
  94. ; * Bildschirm loeschen *
  95. :cls m 0        ;()
  96. jsr clsrout
  97. /
  98. ; * Muster setzen *
  99. :pattern m 1   ;(Muster)
  100. lda #@0
  101. jsr $c139
  102. /
  103. ; * Ausgefuelltes Rechteck zeichnen *
  104. :box m 5       ;(Y-l.o.;Y-r.u.;X-l.o.;X-r.u.;Muster)
  105. pattern @4
  106. jsr $c19f
  107. b @0,@1
  108. w @2,@3
  109. /
  110. ; * Rechteck zeichnen *
  111. :frame m 0      ;()
  112. jsr $c127
  113. /
  114. ; * Rechteckigen Bereich invertieren *
  115. :invbox m 0     ;()
  116. jsr $c12a
  117. /
  118. ; * komprimierte Bitmap anzeigen *
  119. :bitmap m 5     ;(Adr.d.Bitmap;X-Koord.;Y-Koord.;Breitadr.;Hoehadr.)
  120. loadw @0,r0
  121. poke 4,@1
  122. poke 5,@2
  123. cop @3,6
  124. cop @4,7
  125. jsr $c142
  126. /
  127. ; * Dialbox erzeugen *
  128. :dialbox m 1    ;(Adresse)
  129. loadw @0,r0
  130. jsr $c256
  131. /
  132. ; * Makros fuer DIALBOX *
  133. ;
  134. ; * Werte fuer Dialbox festlegen *
  135. :initdialbox m 5  ;(Muster;Yo;Yu;Xl;Xr)
  136. b @0,@1,@2
  137. w @3,@4
  138. /
  139. ; * Standarddialbox erzeugen *
  140. :stddialbox m 1 ;(Muster)
  141. b $80+@0
  142. ;es folgen die Kommandos
  143. /
  144. ;
  145. ; * Feld in Dialbox bringen *
  146. :feld m 3     ;(Feldopcode;X;Y)
  147. b @0,@1/8,@2
  148. /
  149. ; * festen Text in Dialbox anzeigen *
  150. :textaus m 3     ;(X;Y;Textadresse)
  151. b $0b,@0,@1
  152. w @2
  153. /
  154. ; * variablen Text anzeigen *
  155. :vartextaus m 3  ;(X;Y;Register)
  156. b $0c,@0,@1,@2
  157. /
  158. ; * Files auswaehlen (Findtype-Param.nicht vergessen!) *
  159. :getfiles m 2    ;(X;Y)
  160. b $10,@0,@1
  161. /
  162. ; * auf GETFILES vorbereiten *
  163. :initgetfiles m 3   ;(Filetyp;Ablageadr.;class)
  164. poke $10,@0
  165. loadw @1,r5
  166. loadw @1,r6
  167. loadw @2,r10
  168. /
  169. ; * Icon in DB-Box generieren *
  170. :usricon m 3     ;(X;Y;Icontabellenadr.)
  171. b $12,@0/8,@1
  172. w @2
  173. /
  174. ; * Icontabelle *
  175. :icon m 6        ;(Zg.auf Bitmap;X;Y;Breite;Hoehe;Routadr.)
  176. w @0
  177. b @1,@2,@3,@4
  178. w @5
  179. /
  180. ; * Von eigener Routine zurueck zur DB *
  181. :rstdial m 1     ;(Code fuer $851d)
  182. poke $851d,@0
  183. jmp $c2bf
  184. /
  185. ; *** Ende DIALBOX-Makros ***
  186. ;
  187. ; * Flaeche aus 2. in 1.Bitmap holen *
  188. :recvbox m 4  ;(Xl.o;Yl.o.;Xr.u.;Yr.u.)
  189. jsr $c1a5
  190. b @1,@3
  191. w @0,@2
  192. /
  193. ; * Adresse einer Zeile in Bitmap berechnen *
  194. :scan m 0        ;()
  195. jsr $c13c
  196. /
  197. ;
  198. ; *** TEXT ***
  199. ;
  200. ; * Text in Geosformat konvertieren *
  201. :txtconv m 1   ;(Adresse)
  202. loadw @0,$fb
  203. jsr convert
  204. /
  205. ; * variablen Text konvertieren *
  206. :vtxtconv m 1  ;(Zeigeradr.)
  207. transw @0,$fb
  208. jsr convert
  209. /
  210. ; * Untermakros zu IPUTSTR und PUTCHAR *
  211. :gotox m 1       ;(X-Koord.)
  212. b $14
  213. w @0
  214. /
  215. ; * Ende PUTCHAR-Makros *
  216. ;
  217. ; * Strings bekannter Groesse vergleichen *
  218. :cmpfstr m 3  ;(Adr.1;Adr.2;Laenge)
  219. ldx #@0
  220. ldy #@1
  221. lda #@2
  222. jsr $c26e
  223. /
  224. ;
  225. ; *** SONSTIGES ***
  226. ;
  227. ; * Desktop laden und starten *
  228. :desktop m 0
  229. jmp $c22c
  230. /
  231. ; * cpu Inhalte sichern *
  232. :pushcpu m 0
  233. sta $fd
  234. stx $fe
  235. sty $ff
  236. php
  237. /
  238. ; * cpu Inhalte zurueckladen *
  239. :popcpu m 0
  240. lda $fd
  241. ldx $fe
  242. ldy $ff
  243. plp
  244. /
  245. ; * X Sekunden warten *
  246. :wait m 1      ;(Sekunden)
  247. loadw @0,zp1
  248. jsr waitrout
  249. /
  250. ; * MAIN aufrufen *
  251. :main m 1      ;(Returnadr.)
  252. loadw @0,$849b
  253. jmp $c1c3
  254. /
  255. ; * Ein/Ausgabe ueber alte Routinen vorbereiten *
  256. :initio m 0   ;()
  257. jsr $c25c
  258. /
  259. ; * Ein/Ausgabe ueber alte Routinen beenden *
  260. :doneio m 0   ;()
  261. jsr $c25f
  262. /
  263. ; * I/O-Fehler anzeigen *
  264. :error m 1    ;(Ruecksprungadr.)
  265. loadw @0,zp28
  266. jmp errorrout
  267. /
  268. ;
  269. ; *** MAUS ***
  270. ;
  271. ; * Mauszeiger anschalten *
  272. :mouseon m 0       ;()
  273. jsr $c18a
  274. /
  275. ; * Mauszeiger ausschalten *
  276. :mouseoff m 0      ;()
  277. jsr $c18d
  278. /
  279. ; * Maus"spielwiese" einstellen *
  280. :mouseborder m 4 ;(obere;untere;linke;rechte Grenze)
  281. poke bordo,@0
  282. poke bordu,@1
  283. loadw @2,bordl
  284. loadw @3,bordr
  285. /
  286. ;
  287. ; *** DISK ***
  288. ;
  289. ; * File laden (weitere Parameter) *
  290. :read m 2      ;(Ladeadr.;Maxlaenge)
  291. loadw @0,r7
  292. loadw @1,r2
  293. jsr $c1ff
  294. /
  295. ; * Diskette oeffnen *
  296. :opendisk m 0  ;()
  297. jsr $c2a1
  298. /
  299. ; * Fileeintrag im Dir. suchen *
  300. :findfile m 1  ;(Filenamenadr.)
  301. loadw @0,r6
  302. jsr $c20b
  303. /
  304. ; * File umbenennen *
  305. :rename m 2    ;(neuer Name;alter Name)
  306. loadw @0,r0
  307. loadw @1,r6
  308. jsr $c259
  309. /
  310. ; * Block von Disk einlesen (weitere Parameter!) *
  311. :getblk m 1    ;(Speicheradr.)
  312. loadw @0,r4
  313. jsr $c1e4
  314. /
  315. ; * Speicherbereich speichern *
  316. :save m 2      ;(Infoblockadr.;Dirseite)
  317. loadw @0,r9
  318. poke $16,@1
  319. jsr $c1ed
  320. /
  321. ;
  322. ; *** RECHNEN ***
  323. ;
  324. ; * Wort dekrementieren *
  325. :ddec m 1      ;(Zpadr.)
  326. ldx #@0
  327. jsr $c175
  328. /
  329. ; * Wort inkrementieren *
  330. :dinc m 1      ;(Adr.)
  331. loadw @0,zp29
  332. jsr dincrout
  333. /
  334. ; * Quotient zweier Worte bilden *
  335. :ddiv m 2        ;(Divid.adr;Divisoradr)
  336. ldx #@0
  337. ldy #@1
  338. jsr $c169
  339. /
  340. ; * Zwei Bytes multiplizieren *
  341. :bbmult m 2      ;(Produkteadr;Ergebnisadr)
  342. ldy #@0
  343. ldx #@1
  344. jsr $c160
  345. /
  346. ; * Byte mit Wort multiplizieren *
  347. :bmult m 2       ;(Byteadr;Wortadr)
  348. ldy #@0
  349. ldx #@1
  350. jsr $c163
  351. /
  352. ; * Zwei Worte subtrahieren *
  353. :dsubtr m 3      ;(Minuendadr;Subtrahend;Differenz)
  354. sec
  355. lda @0
  356. sbc @1
  357. sta @2
  358. lda @0+1
  359. sbc @1+1
  360. sta @2+1
  361. /
  362. ;
  363. ; *** SPEICHER VERSCHIEBEN + KOPIEREN ***
  364. ;
  365. ; * Speicherbloecke verschieben *
  366. :moveram m 3       ;(Anfadr.Quelle,Anfadr.Ziel,Laenge)
  367. jsr $c1b7
  368. w @0,@1,@2
  369. /
  370. ; * Speicherbereich mit $00 fuellen *
  371. :clearam m 2     ;(Anfangsadr.;Anzahl)
  372. loadw @0,r1
  373. loadw @1,r0
  374. jsr $c178
  375. /
  376. ; * File loeschen *
  377. :delete m 1      ;(Namenadr.)
  378. loadw @0,r0
  379. jsr $c238
  380. /
  381. ;
  382. ;*** Routinen ***
  383. ;
  384. ;  * Konvertierung von Text ins *
  385. ;         * Geos-Format *
  386. :convert
  387. ldy #0
  388. :cnvt
  389. lda ($fb),y
  390. beq endcnv
  391. cmp #$10
  392. beq endcnv
  393. cmp #$14
  394. beq zwei
  395. cmp #$15
  396. beq eins
  397. cmp #$16
  398. beq drei
  399. cmp #$17
  400. beq drei
  401. cmp #65
  402. bcc next
  403. cmp #91
  404. bcs next
  405. eor #$20
  406. :next
  407. sta ($fb),y
  408. iny
  409. jmp cnvt
  410. :endcnv
  411. rts
  412. :eins
  413. iny
  414. iny
  415. jmp cnvt
  416. :zwei
  417. iny
  418. jmp eins
  419. :drei
  420. iny
  421. jmp zwei
  422. ;
  423. ; * Warten *
  424. ;
  425. :waitrout
  426. initio
  427. cop cia1+9,zp2
  428. :warte
  429. lda cia1+9
  430. cmp zp2
  431. beq warte
  432. sta zp2
  433. doneio
  434. ddec zp1
  435. bne warteweiter
  436. rts
  437. :warteweiter
  438. initio
  439. jmp warte
  440. ;
  441. ; * I/O-Fehlermeldung ausgeben *
  442. ;
  443. :errorrout
  444. txa
  445. cmp #10        ;kleiner als 10 ?
  446. bcc kleiner10  ;<-ja
  447. poke zp29,$ff  ;<-nein
  448. :abziehen
  449. inc zp29       ;Zehnerstelle merken
  450. sec
  451. sbc #10        ;kleiner 10 machen
  452. bcs abziehen
  453. clc            ;kleiner 0!
  454. adc #10+48     ;wieder -1>Akku<10 und
  455.                ;in Zeichencode wandeln
  456. sta fehlernr+3 ;und als Einerstelle sp.
  457. lda zp29
  458. clc            ;und das gleiche mit der
  459. adc #48        ;Zehnerstelle
  460. sta fehlernr+2
  461. jmp ausgeben
  462. :kleiner10
  463. clc
  464. adc #48        ;1stellige Zahl umrechnen
  465. sta fehlernr+3     ;und
  466. poke fehlernr+2,32 ;Leerzeichen als 1.Stelle
  467. :ausgeben
  468. dialbox iofehler
  469. jmp (zp28)
  470. ;
  471. ; ** Wort inkrementieren **
  472. ;
  473. :dincrout
  474. ldy #0
  475. lda (zp29),y      ;Lowbyte
  476. tax
  477. inx               ;erhoehen
  478. txa
  479. sta (zp29),y
  480. bne keinueberlauf
  481. iny
  482. lda (zp29),y      ;Highbyte
  483. tax
  484. inx               ;erhoehen
  485. txa
  486. sta (zp29),y
  487. :keinueberlauf
  488. rts
  489. ;
  490. ; ** Bildschirm loeschen **
  491. ;
  492. :clsrout
  493. box 0,199,0,319,2
  494. rts
  495. ;
  496. ; *** Daten, Texte, ... ***
  497. ;
  498. :fehlernr
  499. b "I:00"
  500. b null
  501. :ende
  502. ;
  503. ;***>   ENDE GEOS-LIBRARIAN  <***
  504. ;
  505. ;***> ANFANG BITMAPCONVERTER <***
  506. ;
  507. ; ** Programmspezifische Labels **
  508. ;
  509. :kopf=zp1
  510. :bytes=zp2
  511. :lese=zp3
  512. :write=zp4
  513. :kacheln=zp5
  514. :titeltxt=$5a
  515. :insertdisktxt=$5c
  516. :fehlermeldung=$5e
  517. :filetyp=$60
  518. :bildoktxt=$62
  519. :schnittoktxt=$64
  520. :newdisktxt=$66
  521. :stoptxt=$68
  522. ;
  523. ; *** Sprache auswaehlen ***
  524. ;
  525. txtconv sprtxt   ;Texte fuer erste
  526. txtconv langtx   ;Box konvertieren
  527. txtconv quittx
  528. cls
  529. :langu
  530. dialbox sprache  ;Sprache waehlen
  531. jmp konvertieren ;Routinen ueberspringen
  532. ;
  533. ; *** Zeiger auf Texte setzen ***
  534. ;
  535. :englrt
  536. loadw titeltxte,titeltxt
  537. loadw insertxte,insertdisktxt
  538. loadw fehlermeldunge,fehlermeldung
  539. loadw filetype,filetyp
  540. loadw bildoktxte,bildoktxt
  541. loadw schnittoktxte,schnittoktxt
  542. loadw newdisktxte,newdisktxt
  543. loadw stoptxte,stoptxt
  544. rstdial $0e
  545. ;
  546. :germrt
  547. loadw titeltxtd,titeltxt
  548. loadw insertxtd,insertdisktxt
  549. loadw fehlermeldungd,fehlermeldung
  550. loadw filetypd,filetyp
  551. loadw bildoktxtd,bildoktxt
  552. loadw schnittoktxtd,schnittoktxt
  553. loadw newdisktxtd,newdisktxt
  554. loadw stoptxtd,stoptxt
  555. rstdial $0e
  556. ;
  557. :quitrt
  558. desktop
  559. ;
  560. ; *** Titel + File auswaehlen ***
  561. ;
  562. :konvertieren
  563. vtxtconv titeltxt
  564. vtxtconv insertdisktxt
  565. vtxtconv fehlermeldung
  566. vtxtconv filetyp
  567. txtconv fehlernr
  568. vtxtconv bildoktxt
  569. vtxtconv schnittoktxt
  570. vtxtconv newdisktxt
  571. vtxtconv stoptxt
  572. cop $851e,farben
  573. cls
  574. dialbox titel      ;Titelbox anzeigen
  575. :neuedisk
  576. dialbox insertdisk ;Disk einlegen!
  577. lda r0
  578. cmp #cancel        ;zurueck zur 1. Box ?
  579. bne weiter
  580. jmp langu
  581. :weiter
  582. opendisk
  583. txa
  584. beq ok1
  585. error neuedisk
  586. :ok1
  587. initgetfiles 0,puffer,0
  588. dialbox choosefiles  ;File auswaehlen
  589. lda r0
  590. cmp #cancel          ;andere Disk?
  591. bne nichtzurueck
  592. jmp neuedisk
  593. :nichtzurueck
  594. ;
  595. ; *** 1.Track/Block suchen ***
  596. ;
  597. findfile puffer
  598. txa
  599. beq ok1a
  600. error neuedisk
  601. :ok1a
  602. cop $8400+1,track
  603. cop $8400+2,block
  604. lda $8400       ;auf Filetyp (Prg.)
  605. cmp #130        ;pruefen
  606. beq typrichtig
  607. dialbox filetypebox
  608. jmp weiter      ;neues File waehlen
  609. :typrichtig
  610. ;
  611. ; ** Bild laden und anzeigen **
  612. ;
  613. cop track,4
  614. cop block,5
  615. read $6000-2,8194  ;Bild "zwischen"laden
  616. moveram $6000,$a000,8000 ;und anzeigen
  617. wait 4
  618. :neuerscrap
  619. dialbox bildok
  620. lda r0
  621. cmp #yes
  622. beq bildrichtig
  623. jmp weiter         ;anderes File waehlen
  624. :bildrichtig
  625. dialbox autostop
  626. lda r0
  627. cmp #yes
  628. bne nostop
  629. poke flag1,set     ;Flag setzen
  630. jmp vorbereit
  631. :nostop
  632. poke flag1,clear   ;Flag loeschen
  633. :vorbereit
  634. initio
  635. poke 53280,0       ;Rahmen schwarz
  636. doneio
  637. mouseon
  638. mouseborder 0,199,0,319
  639. loadw knopf1,$84a1 ;Vektor fuer Feuerknopf
  640. :nichtstun
  641. main nichtstun     ;auf Knopf warten
  642. :knopf1
  643. poke $2f,%10000000 ;nur in sichtbare Bitmap schreiben
  644. transw mousex,x1
  645. transw x1,x2
  646. transw x1,aktx
  647. transw x1,altx
  648. lda mousey         ;Koord. fuer Bereich
  649. sta y1             ;kopieren
  650. sta y2
  651. sta akty
  652. sta alty
  653. sta 6
  654. sta 7
  655. transw x1,r3
  656. transw x1,r4
  657. invbox
  658. loadw trick1,$849b ;Ruecksprungadr. fuer MAIN
  659. rts                ;zurueck zu MAIN
  660. :trick1
  661. loadw trick2,$84a1 ;Trick
  662. main trick1        ;(Geos wertet "Knopf los-
  663. :trick2            ; lassen" auch als akti-
  664. loadw vektor,$849b ; vierten Feuerknopf)
  665. rts
  666. ;
  667. ; ** Bereich invertieren **
  668. ;
  669. :vektor
  670. loadw knopf2,$84a1
  671. poke puffer+10,0 ;Farbe setzen
  672. poke flag2,clear
  673. poke flag5,clear
  674. lda flag1         ;Autostop ?
  675. beq warteschleife ;nein
  676. ;
  677. ; ** Grenze fuer Maus festlegen **
  678. sec
  679. lda alty
  680. sbc #143          ;obere Grenze
  681. bcs groesser1
  682. lda #0
  683. :groesser1
  684. sta bordo
  685. clc
  686. lda alty
  687. adc #143          ;untere Grenze
  688. sta bordu
  689. bcs ueberl
  690. cmp #199
  691. bcc kleiner1
  692. :ueberl
  693. poke bordu,199
  694. :kleiner1
  695. loadw 263,zp1
  696. dsubtr altx,zp1,bordl
  697. bcs groesser2
  698. loadw 0,bordl
  699. :groesser2
  700. clc
  701. lda altx
  702. adc #<263
  703. sta bordr
  704. lda altx+1
  705. adc #>263
  706. sta bordr+1
  707. loadw 319,zp1
  708. dsubtr bordr,zp1,zp1
  709. bcc warteschleife
  710. loadw 319,bordr
  711. ;
  712. ; *** auf Bewegung reagieren ***
  713. :warteschleife
  714. poke flag3,clear ;Flag fuer Ygleich loeschen
  715. cop y1,zp1       ;Koord. sichern
  716. cop y2,zp1+1     ;(fuer "JSR RECVBOXR")
  717. transw x1,zp2
  718. transw x2,zp3
  719. lda mousey
  720. cmp akty         ;Y gleichgeblieben ?
  721. bne yngleich
  722. jmp ygleich
  723. :yngleich
  724. sta akty         ;nein,
  725. :rulo
  726. lda akty         ;und oben bzw.
  727. cmp alty         ;unten festlegen
  728. bcs ygroesser
  729. cop alty,y2
  730. cop akty,y1
  731. jmp xpruefen
  732. :ygroesser
  733. cop alty,y1
  734. cop akty,y2
  735. jmp xpruefen
  736. :ygleich
  737. poke flag3,set   ;Flag fuer Ygleich
  738. :xpruefen
  739. lda mousex
  740. cmp aktx         ;X veraendert?
  741. bne nichtgleich  ;ja
  742. lda mousex+1
  743. cmp aktx+1
  744. bne nichtgleich  ;ja
  745. :xgleich
  746. lda flag3
  747. bne ninvertieren ;wenn nur X gleich,neuen B.invertieren
  748. jmp invertieren
  749. :ninvertieren
  750. main warteschleife
  751. :nichtgleich
  752. transw mousex,aktx
  753. sec
  754. lda aktx
  755. sbc altx          ;links und rechts
  756. lda aktx+1        ;festlegen
  757. sbc altx+1
  758. bcs xgroesser
  759. transw altx,x2
  760. transw aktx,x1
  761. poke flag6,clear  ;Akty-links-Flag
  762. jmp invertieren
  763. :xgroesser
  764. transw altx,x1
  765. transw aktx,x2
  766. poke flag6,set    ;Akty-rechts-Flag
  767. :invertieren
  768. poke farbe,0
  769. lda flag1       ;wenn Autostop,
  770. bne aufruf      ;dann ueberspringen
  771. sec             ;Farbe des Bild-
  772. lda y2          ;schirmrandes
  773. sbc y1          ;berechnen
  774. cmp #144
  775. bcc schwarz
  776. poke farbe,2
  777. jmp xfarbe
  778. :schwarz
  779. poke farbe,0
  780. :xfarbe
  781. sec
  782. lda x2
  783. sbc x1
  784. sta puffer+1
  785. lda x2+1
  786. sbc x1+1
  787. sta puffer+2
  788. lda puffer+2
  789. beq xschwarz
  790. lda puffer+1
  791. cmp #9
  792. bcc xschwarz
  793. poke farbe,2
  794. jmp aufruf
  795. :xschwarz
  796. lda farbe
  797. bne aufruf
  798. poke farbe,0
  799. :aufruf
  800. lda flag5
  801. beq nknopf2
  802. rts
  803. :nknopf2
  804. lda farbe
  805. cmp puffer+10
  806. beq altefarbe
  807. sta puffer+10
  808. initio
  809. cop farbe,53280   ;Farbe setzen
  810. doneio
  811. :altefarbe
  812. transw zp2,r3     ;alten Bereich
  813. transw zp3,r4     ;wiederherstellen,
  814. cop zp1,6
  815. cop zp1+1,7
  816. jsr recvboxr
  817. transw x1,r3
  818. transw x2,r4      ;neuen Bereich
  819. cop y1,6          ;invertieren
  820. cop y2,7
  821. invbox
  822. transw x1,r3
  823. transw x2,r4      ;und Rechteck zeichnen
  824. cop y1,6
  825. cop y2,7
  826. lda #%11110000    ;Zeichenmuster
  827. frame
  828. main warteschleife ;und weiter warten
  829. ;
  830. ; ** auf 2. Knopfdruck reagieren **
  831. ;
  832. :knopf2
  833. loadw erweitern,$849b ;Ruecksprungadr. fuer MAIN
  834. rts                   ;zurueck zu MAIN
  835. :erweitern
  836. loadw $e6b9,$84a1  ;alten Vektor herstellen
  837. ;
  838. ; ** X-Koord. auf "X/8" erweitern **
  839. ;
  840. transw x1,r3     ;Bild
  841. transw x2,r4     ;wiederherstellen
  842. cop y1,6
  843. cop y2,7
  844. jsr recvboxr
  845. lda x1           ;bei X1=0
  846. bne keinenull    ;ueberspringen
  847. lda x1+1
  848. beq x2erweit
  849. :keinenull
  850. transw x1,r0
  851. loadw 8,r1
  852. ddiv r0,r1       ;X1/8 steht in r0 (Lowbyte)
  853. poke r0+1,8
  854. bbmult r0,r1     ;X1*8,Ergebnis in r1
  855. transw r1,x1     ;x1 jetzt durch 8 teilbar
  856. :x2erweit
  857. lda x2           ;bei X2=0
  858. bne nonull       ;ueberspringen
  859. lda x2+1
  860. bne nonull
  861. jmp darstellen
  862. :nonull
  863. transw x2,r0
  864. dinc r0          ;X2 erhoehen (0=1,7=8,...)
  865. loadw 8,r1
  866. ddiv r0,r1       ;X2/8 steht in r0 (Lowbyte)
  867. poke r0+1,8
  868. bbmult r0,r1     ;X2*8,Ergebnis in r1
  869. ddec r1          ;X2 wieder -1 (8=7,...)
  870. transw r1,puffer ;x2 jetzt durch 8 teilbar
  871. lda puffer
  872. cmp x2
  873. beq keinrest
  874. clc              ;aufrunden
  875. lda puffer       ;(plus 8)
  876. adc #8
  877. sta puffer
  878. lda puffer+1
  879. adc #0
  880. sta puffer+1
  881. :keinrest
  882. transw puffer,x2
  883. lda flag1        ;Autostop ?
  884. beq darstellen
  885. dsubtr x2,x1,zp10
  886. loadw 264,zp9
  887. dsubtr zp10,zp9,zp8
  888. bcc darstellen
  889. lda flag6
  890. bne aktx2
  891. clc              ;Breite herunter-
  892. lda x1           ;setzen
  893. adc #8           ;(X1 + 8)
  894. sta x1
  895. lda x1+1
  896. adc #0
  897. sta x1+1
  898. jmp darstellen
  899. :aktx2
  900. loadw 8,zp10      ;X2 - 8
  901. dsubtr x2,zp10,x2 ;(Breite heruntersetzen)
  902. ;
  903. ; ** neuen Bereich darstellen **
  904. ;
  905. :darstellen
  906. transw x1,r3
  907. transw x2,r4      ;neuen Bereich
  908. cop y1,6          ;invertieren
  909. cop y2,7
  910. invbox
  911. transw x1,r3
  912. transw x2,r4      ;und Rechteck zeichnen
  913. cop y1,6
  914. cop y2,7
  915. lda #%11110000    ;Zeichenmuster
  916. frame
  917. ;
  918. ; ** Farben fuer Bereichsueberschreitung setzen **
  919. ;
  920. poke flag5,set
  921. poke flag1,clear
  922. jsr invertieren
  923. initio
  924. cop farbe,53280  ;Farbe setzen
  925. doneio
  926. wait 4
  927. dialbox ausschnittok
  928. lda r0
  929. cmp #yes
  930. beq inordnung
  931. recvbox 0,0,319,199
  932. jmp bildrichtig   ;neuen Ausschnitt waehlen
  933. :inordnung
  934. initio
  935. poke 53280,0
  936. doneio
  937. ;
  938. ; ** Bitmapformat konvertieren **
  939. ;
  940. mouseoff
  941. clearam $a000,8000 ;Bitmap 1 loeschen
  942. poke $2f,%01000000 ;Bitmap 2 auslesen
  943. loadw $a000,zp1    ;Zeiger festlegen
  944. poke puffer,0      ;  ''      ''
  945. lda x2           ;X2 erhoehen
  946. bne x2nichtnull  ;(durch 8 teil-
  947. lda x2+1         ; bar machen)
  948. beq gleichnull
  949. :x2nichtnull
  950. dinc x2
  951. ; ** Breite und Hoehe festhalten **
  952. :gleichnull
  953. sec
  954. lda y2
  955. sbc y1
  956. sta hoehe        ;weil kleinstes Y=0
  957. inc hoehe        ;muss Hoehe incrementiert werden
  958. sec
  959. lda x2
  960. sbc x1
  961. sta r0
  962. lda x2+1
  963. sbc x1+1
  964. sta r0+1
  965. loadw 8,r1
  966. ddiv r0,r1       ;Breite/8 steht in r0 (Lowbyte)
  967. cop r0,breite
  968. transw x1,altx   ;retten
  969. ; ** und jetzt geht's los **
  970. :copyloop
  971. ldx y1
  972. scan
  973. clc
  974. lda r5
  975. adc x1
  976. sta r5
  977. lda r5+1
  978. adc x1+1
  979. sta r5+1
  980. ldy #0
  981. lda (r5),y
  982. sta (zp1),y
  983. dinc zp1         ;Zielzeiger erhoehen
  984. clc              ;X-Koord. erhoehen
  985. lda x1           ;(um 8)
  986. adc #8
  987. sta x1
  988. lda x1+1
  989. adc #0
  990. sta x1+1
  991. lda x2           ;pruefen,ob X1=X2
  992. cmp x1
  993. bne copyloop
  994. lda x2+1
  995. cmp x1+1
  996. bne copyloop
  997. lda y1           ;pruefen,ob letzte Zeile
  998. cmp y2
  999. beq fertig
  1000. inc y1           ;Y erhoehen
  1001. transw altx,x1   ;Anfangswert zurueck
  1002. jmp copyloop
  1003. ;
  1004. ; ** Bitmap packen **
  1005. ;
  1006. :fertig
  1007. loadw $a000-1,lese   ;Lesezeiger
  1008. loadw puffer+3,write ;Schreibzeiger
  1009. lda hoehe
  1010. sta r1
  1011. sta puffer+1         ;Vorbereitung fuer speichern
  1012. lda breite
  1013. sta r2
  1014. sta puffer           ;    ''        ''     ''
  1015. poke puffer+2,0      ;    ''        ''     ''
  1016. poke r2+1,0
  1017. bmult r1,r2
  1018. transw r2,bytes   ;Bytezahl
  1019. ; ** neues Kopfbyte + 1.Byte schreiben **
  1020. :neuerkopf
  1021. lda #1            ;Kopfbyte
  1022. ldy #0            ;Datenbyteanzahl
  1023. ldx #0            ;Dummy
  1024. sta (write),y     ;Kopfbyte speichern
  1025. transw write,kopf ;Zeiger auf Kopfbyte
  1026. iny               ;Y=1
  1027. lda (lese),y      ;erstes Datenbyte
  1028. sta (write),y
  1029. pushcpu
  1030. ddec bytes
  1031. cmp #0            ;letztes Byte ?
  1032. beq anzeigen1
  1033. popcpu
  1034. iny               ;Y=2
  1035. lda (lese),y      ;naechstes lesen
  1036. dey               ;Y=1 (vorheriges Byte)
  1037. cmp (lese),y      ;gleich ?
  1038. bne gruppe2
  1039. ldy #3
  1040. cmp (lese),y      ;3 gleiche Bytes ?
  1041. bne gruppe2
  1042. ldy #1
  1043. ; ** Wiederholung **
  1044. :gruppe1
  1045. iny               ;Y wiederherstellen
  1046. tya
  1047. sta (kopf),x      ;Kopfbyte=Datenbytezahl
  1048. pushcpu
  1049. ddec bytes
  1050. cmp #0            ;letztes Byte ?
  1051. beq anzeigen1
  1052. popcpu
  1053. iny               ;naechstes Byte lesen
  1054. lda (lese),y
  1055. dey               ;Zeiger 1 zurueck
  1056. cmp (lese),y      ;gleich vorherigem ?
  1057. bne ungleich1
  1058. cpy #$7f          ;maximale Anzahl von
  1059. bne gruppe1       ;Wiederholungen ?
  1060. ; ** Wiederholung zuende **
  1061. :ungleich1
  1062. tya               ;Zeiger in Akku
  1063. clc
  1064. adc lese          ;Lesezg.=
  1065. sta lese          ;Lesezg.+Bytezahl
  1066. lda lese+1
  1067. adc #0
  1068. sta lese+1
  1069. dinc write        ;Writezg.=
  1070. dinc write        ;Writezg.+2 (Kopfbyte+1 Datenb.)
  1071. jmp neuerkopf
  1072. ; ** alle Bytes gepackt **
  1073. :anzeigen1
  1074. dinc write
  1075. dinc write
  1076. jmp anzg
  1077. ; ** keine Packmoeglichkeit **
  1078. :gruppe2
  1079. ldy #1
  1080. lda #$81          ;Kopfbyte (Y=1)
  1081. sta (kopf),x      ;speichern
  1082. iny
  1083. lda (lese),y      ;zweites
  1084. sta (write),y     ;Datenbyte
  1085. tya
  1086. ora #$80
  1087. sta (kopf),x      ;Kopfbye +1 (Bit 7 gesetzt)
  1088. pushcpu
  1089. ddec bytes
  1090. cmp #0
  1091. beq anzeigen2
  1092. popcpu
  1093. :weiterlesen
  1094. iny               ;naechstes Byte
  1095. lda (lese),y      ;lesen
  1096. dey               ;und mit
  1097. cmp (lese),y      ;vorherigem vergl.
  1098. bne ungleich
  1099. iny
  1100. iny
  1101. cmp (lese),y      ;3 gleiche ?
  1102. php               ;Flags retten
  1103. dey
  1104. dey
  1105. plp               ;Flags zurueck
  1106. beq gleich2
  1107. :ungleich
  1108. iny               ;falls nicht gleich,
  1109. sta (write),y     ;speichern
  1110. pushcpu
  1111. ddec bytes
  1112. cmp #0            ;alle Bytes ?
  1113. beq anzeigen2
  1114. popcpu
  1115. tya
  1116. ora #$80          ;Bit 7 setzen
  1117. sta (kopf),x      ;neues Kopfbyte speichern
  1118. cmp #$db          ;maximal moegliche Anzahl ?
  1119. bne weiterlesen
  1120. pushcpu
  1121. ddec bytes
  1122. popcpu
  1123. jmp maxzahl
  1124. ; ** neue Wiederholung gefunden **
  1125. :gleich2
  1126. dey
  1127. tya
  1128. ora #$80
  1129. sta (kopf),x      ;Kopfbyte -1
  1130. :maxzahl
  1131. tya               ;Zeiger in Akku
  1132. clc
  1133. adc lese          ;Lesezg.=
  1134. sta lese          ;Lesezg.+Bytezahl
  1135. lda lese+1
  1136. adc #0
  1137. sta lese+1
  1138. iny               ;Datenbytes +1 Kopfbyte
  1139. tya
  1140. clc
  1141. adc write         ;Write plus
  1142. sta write         ;Datenbytezahl
  1143. lda write+1
  1144. adc #0
  1145. sta write+1
  1146. dinc bytes        ;Byte wieder +1
  1147. jmp neuerkopf     ;neues Kopfbyte
  1148. ; ** alle Bytes gepackt **
  1149. :anzeigen2
  1150. popcpu
  1151. tya
  1152. clc
  1153. adc write         ;Write plus
  1154. sta write         ;Datenbytezahl
  1155. lda write+1
  1156. adc #0
  1157. sta write+1
  1158. jmp anzg
  1159. ;
  1160. ; ** Probeanzeigen **
  1161. ;
  1162. :anzg
  1163. poke $2f,%10000000
  1164. clearam $a000,8000
  1165. bitmap puffer+3,0,0,breite,hoehe
  1166. wait 3
  1167. ;
  1168. ; ** Farbcodes hinter Bitmap speichern **
  1169. ;
  1170. ;
  1171. ; * Preferences laden *
  1172. ;
  1173. :neudisk
  1174. dialbox newdisk     ;Zieldisk einlegen
  1175. lda r0
  1176. cmp #ok
  1177. beq diskoeff
  1178. recvbox 0,0,319,199 ;Bild wiederherstellen
  1179. jmp neuerscrap      ;und neuen Scrap waehlen
  1180. :diskoeff
  1181. opendisk
  1182. txa
  1183. beq ok3
  1184. error neudisk
  1185. :ok3
  1186. findfile pref
  1187. txa
  1188. bne anzahl          ;Preferences nicht da
  1189. cop $8400+1,4       ;Track
  1190. cop $8400+2,5       ;+Block
  1191. getblk $8000        ;Pref. nach $8000 einlesen
  1192. txa
  1193. beq ok3a
  1194. error neudisk
  1195. :ok3a
  1196. lda $8000+5         ;Farben zu einem Byte zusammenfassen
  1197. ora $8000+6
  1198. sta farben
  1199. ;
  1200. ; * Anzahl der Farbkacheln berechnen *
  1201. ;
  1202. :anzahl
  1203. lsr hoehe
  1204. lsr hoehe          ;Hoehe=Hoehe/8
  1205. lsr hoehe
  1206. cop hoehe,zp1
  1207. cop breite,zp2
  1208. poke zp2+1,0
  1209. bmult zp1,zp2
  1210. transw zp2,kacheln ;Anzahl der Farbbytes
  1211. dinc kacheln           ;sicherheitshalber+1
  1212. :farbkopf
  1213. lda #0             ;Kopfbyte
  1214. ldy #0
  1215. sta (write),y
  1216. ldy #1
  1217. lda farben
  1218. sta (write),y      ;Datenbyte
  1219. ldy #0
  1220. :farbloop
  1221. lda (write),y
  1222. tax
  1223. inx
  1224. txa
  1225. sta (write),y
  1226. ddec kacheln
  1227. cmp #0
  1228. beq farbfert
  1229. ldy #0
  1230. lda (write),y
  1231. cmp #$7f
  1232. bne farbloop
  1233. dinc write         ;Zeiger auf Datenbyte
  1234. dinc write         ;  ''   auf naechsten Kopf
  1235. jmp farbkopf
  1236. :farbfert
  1237. dinc write         ;Zeiger auf letztes Byte
  1238. dinc write
  1239. ;
  1240. ; ** Speichern **
  1241. ;
  1242. :speichern
  1243. delete neunam
  1244. loadw puffer,ladeadr
  1245. transw write,endadr
  1246. save infoblock,1
  1247. rename neunam,altnam
  1248. desktop
  1249. ;
  1250. ; ** Dialogboxparameter **
  1251. ;
  1252. :sprache
  1253. stddialbox 1
  1254. textaus 16,16,sprtxt
  1255. textaus 80,34,langtx
  1256. textaus 80,58,langtx
  1257. textaus 80,82,quittx
  1258. usricon 16,24,englic
  1259. usricon 16,48,germic
  1260. usricon 16,72,quitic
  1261. b null
  1262. ;
  1263. :titel
  1264. initdialbox 1,20,170,64,255
  1265. vartextaus 16,16,titeltxt
  1266. feld ok,136,127
  1267. b null
  1268. ;
  1269. :insertdisk
  1270. stddialbox 1
  1271. vartextaus 16,16,insertdisktxt
  1272. feld ok,8,72
  1273. feld cancel,136,72
  1274. b null
  1275. ;
  1276. :iofehler
  1277. stddialbox 1
  1278. vartextaus 16,16,fehlermeldung
  1279. textaus 16,52,fehlernr
  1280. feld ok,136,72
  1281. b null
  1282. ;
  1283. :choosefiles
  1284. stddialbox 1
  1285. getfiles 2,2
  1286. feld ok,136,8
  1287. feld cancel,136,72
  1288. b null
  1289. ;
  1290. :filetypebox
  1291. stddialbox 1
  1292. vartextaus 16,16,fehlermeldung
  1293. vartextaus 16,52,filetyp
  1294. feld ok,136,72
  1295. b null
  1296. ;
  1297. :bildok
  1298. stddialbox 1
  1299. vartextaus 16,16,bildoktxt
  1300. feld yes,8,72
  1301. feld no,136,72
  1302. b null
  1303. ;
  1304. :autostop
  1305. stddialbox 1
  1306. vartextaus 16,16,stoptxt
  1307. feld yes,8,72
  1308. feld no,136,72
  1309. b null
  1310. ;
  1311. :ausschnittok
  1312. stddialbox 1
  1313. vartextaus 16,16,schnittoktxt
  1314. feld yes,8,72
  1315. feld no,136,72
  1316. b null
  1317. ;
  1318. :newdisk
  1319. stddialbox 1
  1320. vartextaus 16,16,newdisktxt
  1321. feld ok,8,72
  1322. feld cancel,136,72
  1323. b null
  1324. ;
  1325. ; *** Texte, allgemeine ***
  1326. ;
  1327. :sprtxt
  1328. b boldon,"Please Select Option:"
  1329. b null
  1330. ;
  1331. :langtx
  1332. b plaintext,"language"
  1333. b null
  1334. ;
  1335. :quittx
  1336. b "to deskTop"
  1337. b null
  1338. ;
  1339. ; *** Texte, englische ***
  1340. ;
  1341. :titeltxte
  1342. b italicon,boldon,"GEOS BitmapConverter V 1.44",cr,cr
  1343. gotox 80
  1344. b plaintext,boldon,"designed by:"
  1345. gotox 160
  1346. b plaintext,outline,"Carsten",cr
  1347. gotox 160
  1348. b "Clasohm",cr,cr
  1349. gotox 80
  1350. b plaintext,"Many thanks to Florian Mueller for",cr
  1351. gotox 80
  1352. b "sending me the idea for this program",cr
  1353. gotox 80
  1354. b "and for writing the book",cr
  1355. gotox 80
  1356. b 34,"Alles ueber Geos",34,".",cr,cr
  1357. gotox 80
  1358. b boldon,"(C) in 1987 by Carsten Clasohm",cr,cr
  1359. b null
  1360. ;
  1361. :insertxte
  1362. b boldon,"Please insert the disk",cr,cr
  1363. gotox 80
  1364. b "containing the bitmap",cr,cr
  1365. gotox 80
  1366. b "to convert."
  1367. b null
  1368. ;
  1369. :fehlermeldunge
  1370. b boldon,"Operation canceled due to",cr,cr
  1371. gotox 80
  1372. b "disk error:"
  1373. b null
  1374. ;
  1375. :filetype
  1376. b "File type mismatch"
  1377. b null
  1378. ;
  1379. :bildoktxte
  1380. b boldon,"Is this the right picture ?"
  1381. b null
  1382. ;
  1383. :stoptxte
  1384. b boldon,"Do you want 'Autostop' ?"
  1385. b null
  1386. ;
  1387. :schnittoktxte
  1388. b boldon,"Is this the right scrap ?"
  1389. b null
  1390. ;
  1391. :newdisktxte
  1392. b boldon,"Please insert a disk",cr,cr
  1393. gotox 80
  1394. b "on which I can save",cr,cr
  1395. gotox 80
  1396. b "the photoscrap."
  1397. b null
  1398. ;
  1399. ; *** Texte, deutsche ***
  1400. ;
  1401. :titeltxtd
  1402. b italicon,boldon,"GEOS BitmapConverter V 1.44",cr,cr
  1403. gotox 80
  1404. b plaintext,boldon,"geschrieben von:"
  1405. gotox 175
  1406. b plaintext,outline,"Carsten",cr
  1407. gotox 175
  1408. b "Clasohm",cr,cr
  1409. gotox 80
  1410. b plaintext,"Vielen Dank an Florian Mueller",cr
  1411. gotox 80
  1412. b "fuer die Idee zu diesem Programm",cr
  1413. gotox 80
  1414. b "und fuer das Schreiben des Buches",cr
  1415. gotox 80
  1416. b 34,"Alles ueber Geos",34,".",cr,cr
  1417. gotox 80
  1418. b boldon,"(C) in 1987 by Carsten Clasohm",cr,cr
  1419. b null
  1420. ;
  1421. :insertxtd
  1422. b boldon,"Bitte die Disk mit der zu",cr,cr
  1423. gotox 80
  1424. b "konvertierenden Bitmap",cr,cr
  1425. gotox 80
  1426. b "einlegen."
  1427. b null
  1428. ;
  1429. :fehlermeldungd
  1430. b boldon,"Operation abgebrochen",cr,cr
  1431. gotox 80
  1432. b "wegen Diskfehler:"
  1433. b null
  1434. ;
  1435. :filetypd
  1436. b "Falscher Filetyp"
  1437. b null
  1438. ;
  1439. :bildoktxtd
  1440. b boldon,"Ist dies das richtige Bild ?"
  1441. b null
  1442. ;
  1443. :stoptxtd
  1444. b boldon,"Moechten Sie 'Autostop' ?"
  1445. b null
  1446. ;
  1447. :schnittoktxtd
  1448. gotox 72
  1449. b boldon,"Ist dies der richtige Ausschnitt ?"
  1450. b null
  1451. ;
  1452. :newdisktxtd
  1453. b boldon,"Bitte die Disk einlegen,",cr,cr
  1454. gotox 80
  1455. b "auf die der Ausschnitt",cr,cr
  1456. gotox 80
  1457. b "gespeichert werden soll."
  1458. b null
  1459. ;
  1460. ; *** Filenamen ***
  1461. ;
  1462. :altnam
  1463. b 133,176,18,173,139,254,56,237,3,133,141,139,254,176,9,206,null
  1464. ;
  1465. :neunam
  1466. b 80,104,111,116,111,32,83,99,114,97,112,null
  1467. ;
  1468. :pref
  1469. b 80,114,101,102,101,114,101,110,99,101,115,null
  1470. ;
  1471. ; *** Icontabellen ***
  1472. ;
  1473. :englic
  1474. icon englbm,0,0,6,16,englrt
  1475. b null
  1476. ;
  1477. :germic
  1478. icon germbm,0,0,7,16,germrt
  1479. b null
  1480. ;
  1481. :quitic
  1482. icon quitbm,0,0,6,16,quitrt
  1483. b null
  1484. ;
  1485. ; *** Bitmaps der Icons ***
  1486. ;
  1487. :englbm
  1488. b $05,$ff,$82
  1489. b $fe,$80,$04,$00,$c9,$02,$bf,$00
  1490. b $01,$cc,$03,$03,$b0,$00,$00,$c0
  1491. b $03,$03,$b0,$7c,$7c,$dc,$f3,$e3
  1492. b $b0,$76,$cc,$cd,$9b,$b3,$be,$66
  1493. b $cc,$cd,$83,$33,$b0,$66,$cc,$cc
  1494. b $f3,$33,$b0,$66,$cc,$cc,$1b,$33
  1495. b $b0,$66,$cc,$cd,$9b,$33,$bf,$66
  1496. b $7c,$cc,$f3,$33,$80,$00,$0c,$00
  1497. b $00,$03,$80,$00,$cc,$00,$00,$03
  1498. b $80,$00,$78,$00,$00,$03,$06,$ff
  1499. b $81,$3f,$05,$ff
  1500. ;
  1501. :germbm
  1502. b $06,$ff,$82
  1503. b $fe,$80,$05,$00,$83,$02,$87,$c0
  1504. b $04,$00,$83,$03,$8c,$60,$04,$00
  1505. b $b3,$03,$8c,$07,$9f,$be,$e3,$cf
  1506. b $83,$8c,$0c,$dc,$3b,$b6,$6e,$c3
  1507. b $8d,$ec,$d8,$33,$33,$ec,$c3,$8c
  1508. b $6f,$d8,$33,$36,$6c,$c3,$8c,$6c
  1509. b $18,$33,$36,$6c,$c3,$8c,$6c,$d8
  1510. b $33,$36,$6c,$c3,$87,$c7,$98,$33
  1511. b $33,$ec,$c3,$80,$05,$00,$82,$03
  1512. b $80,$05,$00,$82,$03,$80,$05,$00
  1513. b $81,$03,$07,$ff,$81,$3f,$06,$ff
  1514. ;
  1515. :quitbm
  1516. b $05,$ff,$82
  1517. b $fe,$80,$04,$00,$be,$02,$80,$0f
  1518. b $80,$19,$80,$03,$80,$18,$c0,$01
  1519. b $80,$03,$80,$18,$d9,$bb,$c0,$03
  1520. b $80,$18,$d9,$99,$80,$03,$80,$18
  1521. b $d9,$99,$80,$03,$80,$18,$d9,$99
  1522. b $80,$03,$80,$18,$d9,$99,$80,$03
  1523. b $80,$1b,$db,$99,$80,$03,$80,$0f
  1524. b $8f,$98,$e0,$03,$80,$00,$c0,$00
  1525. b $00,$03,$80,$04,$00,$82,$03,$80
  1526. b $04,$00,$81,$03,$06,$ff,$81,$3f
  1527. b $05,$ff
  1528. ;
  1529. ; ** Daten **
  1530. ;
  1531. :farben
  1532. b 0
  1533. :track
  1534. :breite
  1535. b 0
  1536. :block
  1537. :hoehe
  1538. b 0
  1539. :x1
  1540. b 0,0
  1541. :y1
  1542. b 0
  1543. :x2
  1544. b 0,0
  1545. :y2
  1546. b 0
  1547. :aktx
  1548. b 0,0
  1549. :akty
  1550. b 0
  1551. :altx
  1552. b 0,0
  1553. :alty
  1554. b 0
  1555. :farbe
  1556. b 0
  1557. :name
  1558. :flag1    ;Autostop ?
  1559. b 0
  1560. :flag2    ;Y-Bereichsueberschreitung geblieben ?
  1561. b 0
  1562. :flag3    ;Y gleich geblieben ?
  1563. b 0
  1564. :flag4    ;X-Bereichsueberschreitung geblieben ?
  1565. b 0
  1566. :flag5    ;Fremdaufruf der WARTESCHLEIFE ?
  1567. b 0
  1568. :flag6    ;Akty links (0) oder rechts ($ff) ?
  1569. s 11
  1570. :infoblock
  1571. b 0,255,3,21,191,255,255,255
  1572. b 128,64,1,128,96,1,128,96
  1573. b 1,128,96,13,128,80,53,128
  1574. b 80,217,128,83,33,128,92,193
  1575. b 128,89,1,135,206,1,159,200
  1576. b 1,184,248,1,177,252,1,191
  1577. b 110,1,156,102,1,128,102,1
  1578. b 128,108,1,128,56,1,128,0
  1579. b 1,255,255,255,131,4,0
  1580. :ladeadr
  1581. b 0,0
  1582. :endadr
  1583. b 0,0
  1584. b 0,0,80,104,111
  1585. b 116,111,32,83,99,114,97,112
  1586. b 32,86,49,46,48
  1587. s 42
  1588. b 80
  1589. b 104,111,116,111,32,83,99,114
  1590. b 97,112,0,32,119,194,96,169
  1591. b 66,133,3,169,182,133,2,32
  1592. b 0
  1593. :puffer
  1594.