Guest User

Untitled

a guest
Jun 1st, 2011
68
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2. .nolist
  3. ; Copyright by Thomas Dickerson under the terms of the GNU GPLv3
  4. #include "dcs6.inc"
  5. _clrlcdfull = $4540
  6. _strcpy =$44E3
  7. _MultAbyE =$8042
  8. savesscreen = $86ec
  9. _FlashToRam = $5017
  10. MouseMaskLoc = $987e + 16
  11. _memclear =$4c30
  12.  
  13.  
  14.  
  15. MouseY .equ $989E
  16. MouseX .equ $989F
  17.  
  18.  
  19.  
  20. sk2nd = $36
  21. skAlpha = $30
  22. skMode = $37
  23. skClear = $0f
  24.  
  25. ;null =$00 ;COMPLETE XY [none]
  26. ;LargeWin =$01 ;COMPLETE -- [5 byte icon, header text]
  27. ;SmallWin =$02 ;COMPLETE XY [x,y, 5 byte icon, header text]
  28. ;FullScreenImg =$03 ;COMPLETE XY [768 bytes]
  29. ;Text =$04 ;COMPLETE XY [x,y,font,z.t. text]
  30. ;WinButtons =$05 ;COMPLETE -- [which {-,[],X,00000}, onclick[-] {word}, onclick[] {word}, onclick[X] {word}]
  31. ;WrappedText =$06 ;COMPLETE XY [x,y,width,font,z.t. text]
  32. ;ButtonText =$07 ;COMPLETE XY [x,y,onclick {word},zt text]
  33. ;ButtonImg =$08 ;COMPLETE XY [x,y,onclick {word},img width [BYTES],button width [PX], img data (5 rows high)]
  34. ;TextLineIn =$09 ;COMPLETE XY [x,y,width,maxchar [word],curdatapos (0 to datalength) [word],data (z.t.)]
  35. ;Radio =$0A ;COMPLETE XY [x,y,group,state {bool},zttext] 1 per group
  36. ;Checkbox =$0B ;COMPLETE XY [x,y,group,state {bool},zttext] ++ per group
  37. ;ByteInt =$0C ;COMPLETE XY [x,y,value,min,max]
  38. ;WordInt =$0D ;COMPLETE XY [x,y,value,min,max]
  39. ;Hotspot =$0E ;COMPLETE XY [x,y,width,height,ptr]
  40. ;TextMultiline =$0F ;COMPLETE XY [x,y,rows,width,curdatapos (0 to datalength) [word],data]
  41. ;;Sprite =$10 ;COMPLETE XY [x,y,b,data]
  42. ;LargeSprite =$11 ;COMPLETE XY [x,y,a,b,data]
  43. ;PassIn =$12 ;COMPLETE XY [x,y,width,maxchar [word],curdatapos (0 to datalength) [word],data (z.t.)]
  44. ;ScrollVert =$13 ;COMPLETE XY [x,y,height,ID,per,min [word],max [word],cur [word],onScrollUp,onScrollDown]
  45. ;ScrollHoriz =$14 ;COMPLETE XY [x,y,width,ID,per,min [word],max [word],cur [word],onScrollUp,onScrollDown]
  46. ;Border =$15 ;COMPLETE XY [x,y,width,height,color]
  47. ;Rect =$16 ;COMPLETE XY [x,y,width,height,fill]
  48. ;Custom =$17 ;COMPLETE -- [ptr_to_routine]
  49. ;MouseCursor =$18 ;COMPLETE -- [xy,xy,8-byte mask,8-byte sprite]
  50. ;MouseClick =$19
  51. varmem = $98F2
  52.  
  53. .list
  54. .org progstart
  55. .db $BB,$6D
  56. INIT:
  57. xor d
  58. .db $C9
  59. jr Start
  60. .dw $0000
  61. .db $06,$00
  62. .dw Icon
  63. .dw $0000
  64. .dw Apstart ;the routine to open files. DCS will start you here instead of at $9D95
  65. ;if a file is pending
  66. .db $31,$7F ;argh, this be an APMain
  67. .db $01 ;number of accepted filetypes
  68. filetype:
  69. .db $00,$01,$03 ;iPaint files
  70. Icon:
  71. .db $0F,$F2,$68,$17,$63,$07,$06,$8B,$F7,$97,$F3,$27,$60,$4E,$60,$4E
  72. .db $60,$EC,$69,$79,$7A,$C1,$35,$81,$0B,$01,$16,$01,$2C,$03,$59,$FE
  73.  
  74. IconAP: ;a 16x16 icon
  75. .db $FF,$F8,$80,$14,$98,$12,$98,$1F,$80,$27,$BC,$4F,$BC,$4F,$98,$ED
  76. .db $99,$79,$9A,$C1,$9D,$99,$8B,$35,$96,$3D,$AC,$19,$D8,$03,$BF,$FE
  77. START:
  78. call dispttl
  79. bcall(_cleargbuf) ;clear the buffer
  80. bcall(_ClrLcdf) ;now clear the screen
  81. OpenGuiStack()
  82. PushGuiStack(Null,Null,1)
  83. PushGuiStack(FullScreenImg,MainMenu,768)
  84. PushGuiStack(ButtonText,OpenButton,OpenBSize)
  85. PushGuiStack(ButtonText,NewButton,NewBSize)
  86. PushGuiStack(ButtonText,ImportButton,ImportBSize)
  87. PushGuiStack(ButtonImg,QuitButton,QuitBSize)
  88. rerender:
  89. GUIMouse(Null)
  90. CloseGuiStack()
  91. ret
  92.  
  93. APStart:
  94. push ix
  95. call dispttl
  96. bcall(_cleargbuf)
  97. bcall(_clrlcdfull)
  98. PushGuiStack(Null,Null,1)
  99. jr OpenHandler2
  100.  
  101. OpenHandler:
  102. MouseRecover()
  103. FileOpen()
  104. ld a,l
  105. cp 0
  106. jr z,failopen
  107. ld a,h
  108. cp 0
  109. jr z,failopen
  110. push hl
  111. pop ix
  112. ld a,(ix-3)
  113. cp 0
  114. jr nz,failopen
  115. ld a,(ix-2)
  116. cp 1
  117. jr nz,failopen
  118. ld a,(ix-1)
  119. cp 3
  120. jr nz,failopen
  121. push hl
  122. PopGuiStacks(5)
  123. OpenHandler2:
  124. pop hl
  125. ld de,savesscreen
  126. ld bc,768
  127. ldir
  128. OpenHandler3:
  129. bcall(_cleargbuf)
  130. bcall(_clrlcdfull)
  131. PushGuiStack(MouseCursor,PencilCursor,CursorSize)
  132. PushGuiStack(FullScreenImg,savesscreen,768)
  133. PushGuiStack(Hotspot,LoelHax,HaxSize)
  134. PushGuiStack(Hotspot,ExpHax,ExpHaxSize)
  135. drerender:
  136. GUIMouse(DrawHandler)
  137. ret
  138. failopen:
  139. ld hl,rerender
  140. push hl
  141. ret
  142.  
  143. NewHandler:
  144. MouseRecover()
  145. PopGuiStacks(5)
  146. ld hl,savesscreen
  147. ld bc,768
  148. bcall(_memclear)
  149. jr OpenHandler3
  150.  
  151. PatienceHandler:
  152. MouseRecover()
  153. PushGuiStack(SmallWin,PatienceWin,PatienceWinSize)
  154. PushGuiStack(WrappedText,PleaseWaitTxt,PleaseWaitSize)
  155. RenderGui()
  156. Pause()
  157. PopGuiStacks(2)
  158. ld hl,rerender
  159. push hl
  160. ret
  161.  
  162. ImportHandler:
  163. MouseRecover()
  164. PushGuiStack(LargeWin,ImportSelWin,ImportSelSize)
  165. RenderGui()
  166. Pause()
  167. PopGuiStack()
  168. ld hl,rerender
  169. push hl
  170. ret
  171.  
  172. ExpDialog:
  173. MouseRecover()
  174. ld hl,MouseX
  175. ld (hl),48
  176. ld hl,MouseY
  177. ld (hl),32
  178.  
  179. GUIFindFirst()
  180. GUIFindNext()
  181. ld de,3
  182. add hl,de
  183. ld (varmem),hl
  184.  
  185. call MakeExpSelPrompt
  186. GuiMouse(null)
  187.  
  188. AskSave:
  189. MouseRecover()
  190. ld hl,MouseX
  191. ld (hl),48
  192. ld hl,MouseY
  193. ld (hl),32
  194.  
  195. GUIFindFirst()
  196. GUIFindNext()
  197. ld de,3
  198. add hl,de
  199. ld (varmem),hl
  200.  
  201. call MakeSavePrompt
  202. GuiMouse(null)
  203.  
  204. Quit:
  205. MouseRecover()
  206. CloseGUIStack()
  207. ret
  208.  
  209. DrawHandler:
  210. .db $3f ;debounce flag
  211. ld h,a
  212. push hl
  213. ld a,$ff
  214. out (1),a
  215. nop
  216. ld a,$bf
  217. out (1),a
  218. nop \ nop
  219. in a,(1)
  220. cp $df ;2nd
  221. jr z,PixOn
  222. cp $bf ;mode
  223. jr z,PixFlip
  224. ld a,$ff
  225. out (1),a
  226. nop
  227. ld a,$df
  228. out (1),a
  229. nop \ nop
  230. in a,(1)
  231. cp $7f ;alpha
  232. jr z,PixOff
  233. pop hl
  234. ld a,$ff
  235. out (1),a
  236. nop
  237. ld a,$fd
  238. out (1),a
  239. nop \ nop
  240. in a,(1)
  241. cp $bf ;clear
  242. jr z,DrawQuit
  243. cp $df
  244. jr z,PicExport
  245. DrawCont:
  246. ret
  247. PixOn:
  248. pop hl
  249. ld e,l
  250. ld a,h
  251. call iGetPixel2
  252. or (hl)
  253. ld (hl), a
  254. call mouseGetMask
  255. or (hl)
  256. ld (hl),a
  257. jr DrawCont
  258. PixOff:
  259. pop hl
  260. ld e,l
  261. ld a,h
  262. call iGetPixel2
  263. cpl
  264. and (hl)
  265. ld (hl),a
  266. call mouseGetMask
  267. cpl
  268. and (hl)
  269. ld (hl),a
  270. jr DrawCont
  271. PixFlip:
  272. pop hl
  273. ld e,l
  274. ld a,h
  275. call iGetPixel2
  276. xor (hl)
  277. ld (hl),a
  278. call mouseGetMask
  279. xor (hl)
  280. ld (hl),a
  281. jr DrawCont
  282. DrawQuit:
  283. pop hl
  284. ld hl,MouseX
  285. ld (hl),98
  286. ld hl,MouseY
  287. ld (hl),1
  288. ret
  289. PicExport:
  290. pop hl
  291. ld hl,MouseX
  292. ld (hl),98
  293. ld hl,MouseY
  294. ld (hl),4
  295. ret
  296.  
  297. makesaveprompt:
  298. PushGuiStack(SmallWin,savepwin,savepwinsize)
  299. PushGuiStack(Text,spwt,spwtsize)
  300. PushGuiStack(ButtonText,spwyb,spwybsize)
  301. PushGuiStack(ButtonText,spwnb,spwnbsize)
  302. PushGuiStack(Buttontext,spwcb,spwcbsize)
  303. ret
  304.  
  305. makeexpselprompt:
  306. PushGuiStack(SmallWin,ExportSelWin,ExportSelSize)
  307. PushGuiStack(ButtonText,ExpSA,ExpSASize)
  308. PushGuiStack(ButtonText,ExpCancel,ExpCancelSize)
  309. PushGuiStack(ButtonText,ExpBG,ExpBGSize)
  310. PushGuiStack(Buttontext,ExpPic,ExpPicSize)
  311. ret
  312.  
  313. setsavey:
  314. MouseRecover()
  315. ld hl,(varmem)
  316. ld de,filetype
  317. ld bc,768
  318. call FileSaveAs
  319. CloseGuiStack()
  320. ret
  321.  
  322. setsavec:
  323. MouseRecover()
  324. PopGuiStacks(5)
  325. jp drerender
  326.  
  327. setexpy:
  328.  
  329. setexpc:
  330.  
  331.  
  332. hlFastCopy:
  333. di
  334. ld c,$10
  335. setrow:
  336. in a,(c)
  337. rla ;test 7th bit
  338. jr c,setrow
  339. ld a,$80
  340. out ($10),a
  341. ld de,12
  342. ld a,$20
  343. col:
  344. push af ;the push and pop are wasted clocks
  345. colwait: ;but this only occurs 12 times
  346. in a,(c)
  347. rla
  348. jr c,colwait
  349. pop af
  350. out ($10),a
  351. push af
  352. ld b,64
  353. row:
  354. in a,(c)
  355. rla
  356. jr c,row
  357. ld a,(hl)
  358. out ($11),a
  359. add hl,de
  360. djnz row
  361. pop af
  362. dec h
  363. dec h
  364. dec h
  365. inc hl
  366. inc a
  367. cp $2c
  368. jr nz,col
  369. ei
  370. ret
  371.  
  372.  
  373. ;;;;iGetPixel2 (iGetPixel for the gui stack)
  374. iGetPixel2:
  375. ld d,$00
  376. ld h,d
  377. ld l,e
  378. add hl,de
  379. add hl,de
  380. add hl,hl
  381. add hl,hl
  382. push af
  383. push hl
  384. GUIFindFirst()
  385. GUIFindNext()
  386. ld de,3
  387. add hl,de
  388. pop de
  389. pop af
  390. add hl,de
  391. ld b,$00
  392. ld c,a
  393. and %00000111
  394. srl c
  395. srl c
  396. srl c
  397. add hl,bc
  398. ld b,a
  399. inc b
  400. ld a,%00000001
  401. getPixelLoop2:
  402. rrca
  403. djnz getPixelLoop2
  404. ret
  405.  
  406. ;;;;mouseGetMask
  407. mouseGetMask:
  408. ld hl,MouseX
  409. ld a,(hl)
  410. and 7
  411. ld b,a
  412. inc b
  413. ld a,1
  414. mouseGetLoop:
  415. rrca
  416. djnz mouseGetLoop
  417. ld hl,MouseMaskLoc
  418. ret
  419.  
  420. ;;;;;find RIGView files for import
  421. ; input:
  422. ; hl=place to start looking
  423. ; ix->first line of data (0 terminated)
  424. ; output:
  425. ; de=place stopped + 1
  426. ; hl->program data (after the string)
  427. ; z=0 if found, z=1 if not found.
  428. ; All registers destroyed
  429. rDetect: ld de,(ptemp)
  430. bcall(_cphlde)
  431. ld a,(hl)
  432. jr nz,rDetectContinue
  433. inc a
  434. ret
  435. rDetectContinue:
  436. push hl
  437. and $01
  438. jr nz,rDetectSkip
  439.  
  440. dec hl
  441. dec hl
  442. dec hl ; hl->lsb ptr
  443. ld e,(hl)
  444. dec hl
  445. ld d,(hl)
  446. dec hl ; hl->page
  447. ld a,(hl)
  448. or a
  449. push af
  450. ld h,d
  451. ld l,e ; hl & de->program
  452. jr z,rDetectNoMove
  453. push hl
  454. bcall(_memfree)
  455. ld bc,64
  456. sbc hl,bc
  457. pop hl
  458. jr c,rDetectNotEnough
  459. ld de,($9820)
  460. push ix
  461. push hl
  462. push de
  463. bcall(_flashToRam)
  464. pop hl
  465. push hl
  466. pop ix
  467. ld a,10
  468. add a,(ix+9)
  469. ld e,a
  470. ld d,0 ; de=flash offset
  471. add hl,de
  472. ex (sp),hl
  473. add hl,de
  474. pop de
  475. ex de,hl ; hl-temp, de-perm
  476. pop ix
  477. rDetectNoMove:
  478. inc de
  479. inc de
  480. ld c,(hl)
  481. inc hl
  482. ld b,(hl)
  483. inc hl ; hl->data in ram
  484. push bc
  485. push ix
  486. pop bc
  487. rDetectCheck:
  488. ld a,(bc)
  489. or a
  490. jr z,rDetectFound
  491. cp (hl)
  492. inc bc
  493. inc de
  494. inc hl
  495. jr z,rDetectCheck
  496. rDetectBad:
  497. pop bc
  498. rDetectNotEnough:
  499. pop af
  500. rDetectSkip:
  501. pop hl
  502. ld bc,-6
  503. add hl,bc
  504. ld b,(hl)
  505. dec hl
  506. rDetectNameLoop2:
  507. dec hl
  508. djnz rDetectNameLoop2
  509. jr rDetect
  510. rDetectFound:
  511. pop hl
  512. ; hl=size, de->data
  513. pop af ; a=page, f=(or a)
  514. jr z,rDetectInRam
  515. push de ; data
  516. push af
  517. push hl
  518. bcall(_enoughRam)
  519. pop bc
  520. jr c,rDetectBad
  521. pop af
  522. pop hl
  523. ld de,($9820) ; tempMem
  524. push de
  525. bcall(_flashToRam)
  526. pop de
  527. rDetectInRam: ; de->data in RAM
  528. pop hl ; hl->vat location
  529. ld bc,-6
  530. add hl,bc
  531. ld b,(hl)
  532. inc b
  533. rDetectNameLoop1:
  534. dec hl
  535. djnz rDetectNameLoop1
  536. ex de,hl
  537. xor a
  538. ret
  539. dispttl:
  540. di
  541. ld hl,RLE_Image
  542. ld de,PlotsScreen
  543. call DispRLE
  544. ld de,AppBackupScreen
  545. call DispRLE
  546.  
  547. CopyAgain:
  548. call RIGCopyTBLR
  549.  
  550. ld bc,$07FE
  551. KeyCheck:
  552. ld a,$FF
  553. out (1),a
  554. ld a,c
  555. out (1),a
  556. in a,(1)
  557. inc a
  558. jr nz,exttl
  559. rlc c
  560. djnz KeyCheck
  561.  
  562. ld c,128
  563. DoDelay:
  564. ld b,10
  565. djnz $
  566. dec c
  567. jr nz,DoDelay
  568.  
  569. ld bc,308
  570. FixedDelay:
  571. dec bc
  572. ld a,b
  573. or c
  574. jr nz,FixedDelay
  575.  
  576. jr CopyAgain
  577.  
  578. exttl:
  579. ei
  580. bcall(_ClrLcdf)
  581. bcall(_HomeUp)
  582. bcall(_GetCSC)
  583. ret
  584.  
  585. RC_L1 = PlotsScreen
  586. RC_L2 = AppBackupScreen
  587.  
  588. RIGCopyTBLR:
  589. ;Move To Top
  590. ld a,$80 ;7
  591. out ($10),a ;11
  592.  
  593. ;Preserve SP (used as temp register)
  594. ld (RC_SP+1),sp ;20
  595. ld sp,RC_L1-RC_L2 ;10
  596.  
  597. ld hl,RC_Rotate+1 ;10
  598. dec (hl) ;11
  599. jp p,RC_SkipHL2 ;10/1
  600. ld (hl),2 ;10
  601. RC_SkipHL2:
  602.  
  603. ld de,RC_L2 ;10
  604. ld a,$20 ;7
  605. RC_HLoop:
  606. ;Set Horizontal Position
  607. out ($10),a ;11
  608.  
  609. ld (RC_LdA+1),a ;13
  610. ld b,64 ;7
  611. RC_Rotate:
  612. ld c,1 ;7
  613. RC_VLoop:
  614. dec c ;4
  615. ld h,d ;4
  616. ld l,e ;4
  617.  
  618. jp p,RC_Wait ;10/1
  619. or a ;4 (waste)
  620. ld c,2 ;7
  621. add hl,sp ;11
  622. RC_NotL1:
  623.  
  624.  
  625. ld a,(hl) ;4
  626. out ($11),a ;11
  627.  
  628. inc de ;6
  629.  
  630. djnz RC_VLoop ;13/8
  631.  
  632. ld a,c ;4
  633. ld (RC_Rotate+1),a ;13
  634.  
  635. RC_LdA:
  636. ld a,0 ;7
  637. inc a ;4
  638. cp $2C ;7
  639. jp nz,RC_HLoop ;10/1
  640.  
  641. RC_SP:
  642. ld sp,$0000 ;10
  643. ret ;10
  644.  
  645. RC_Wait:
  646. jr RC_NotL1 ;12 (waste)
  647.  
  648. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  649. OpenButton:
  650. .db 6,17
  651. .dw OpenHandler
  652. .db "OPEN",0
  653. OpenBSize = $ - OpenButton
  654.  
  655. NewButton:
  656. .db 28,17
  657. .dw NewHandler
  658. .db "NEW",0
  659. NewBSize = $ - NewButton
  660.  
  661. ImportButton:
  662. .db 46,17
  663. .dw ImportHandler
  664. .db "IMPORT",0
  665. ImportBSize = $ - ImportButton
  666.  
  667. QuitButton:
  668. .db 76,17
  669. .dw Quit
  670. .db 1,5
  671. .db %10001000
  672. .db %01010000
  673. .db %00100000
  674. .db %01010000
  675. .db %10001000
  676. QuitBSize = $ - QuitButton
  677. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  678. PatienceWin:
  679. .db 8,6
  680. .db %00100000
  681. .db %00100000
  682. .db %00100000
  683. .db %00000000
  684. .db %00100000
  685. .db "Oops...",0
  686. PatienceWinSize = $ - PatienceWin
  687.  
  688. PleaseWaitTxt:
  689. .db 1,1,74,0
  690. .db "This feature has not yet been implemented (press any key to continue)",0
  691. PleaseWaitSize = $ - PleaseWaitTxt
  692. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  693. PencilCursor:
  694. .dw 0,95*256+63
  695. ;AND mask
  696. .db %01111111
  697. .db %10011111
  698. .db %10001111
  699. .db %11000111
  700. .db %11100011
  701. .db %11110001
  702. .db %11111000
  703. .db %11111100
  704. ;XOR mask
  705. .db %10000000
  706. .db %01100000
  707. .db %01010000
  708. .db %00101000
  709. .db %00010100
  710. .db %00001010
  711. .db %00000111
  712. .db %00000011
  713. CursorSize = $ - PencilCursor
  714.  
  715. LoelHax:
  716. .db 97,0,2,2
  717. .dw AskSave
  718. HaxSize = $ - LoelHax
  719.  
  720. ExpHax:
  721. .db 97,3,2,2
  722. .dw ExpDialog
  723. ExpHaxSize = $ - ExpHax
  724. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  725. savepwin:
  726. .db 2,2
  727. .db %01110000
  728. .db %01011000
  729. .db %01001000
  730. .db %01001000
  731. .db %01111000
  732. .db "Save Picture?",0
  733. savepwinsize = $ - savepwin
  734.  
  735. spwyb:
  736. .db 2,15
  737. .dw setsavey
  738. .db "Yes",0
  739. spwybsize = $ - spwyb
  740.  
  741. spwnb:
  742. .db 21,15
  743. .dw Quit
  744. .db "No",0
  745. spwnbsize = $ - spwnb
  746.  
  747. spwcb:
  748. .db 46,15
  749. .dw setsavec
  750. .db "Cancel",0
  751. spwcbsize = $ - spwcb
  752.  
  753. spwt:
  754. .db 1,7,0
  755. .db "Save before quitting?",0
  756. spwtsize = $ - spwt
  757. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  758. ExportSelWin:
  759. .db 3,6
  760. .db %11111000
  761. .db %10000000
  762. .db %11110000
  763. .db %10000000
  764. .db %11111000
  765. .db "Select Export Format",0
  766. ExportSelSize = $ - ExportSelWin
  767.  
  768. ExpSA:
  769. .db 1,28
  770. .dw PatienceHandler
  771. .db "Standalone",0
  772. ExpSASize = $ - ExpSA
  773.  
  774. ExpCancel:
  775. .db 51,28
  776. .dw setsavec
  777. .db "Cancel",0
  778. ExpCancelSize = $ - ExpCancel
  779.  
  780. ExpBG:
  781. .db 1,4
  782. .dw PatienceHandler
  783. .db "DCS6 BG",0
  784. ExpBGSize = $ - ExpBG
  785.  
  786. ExpPic:
  787. .db 1,16
  788. .dw PatienceHandler
  789. .db "TI-OS Pic",0
  790. ExpPicSize = $ - ExpPic
  791. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  792. ImportSelWin:
  793. .db %11111000
  794. .db %00100000
  795. .db %00100000
  796. .db %00100000
  797. .db %11111000
  798. .db "Select Pic...",0
  799. ImportSelSize = $ - ImportSelWin
  800. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  801.  
  802. ; 685 bytes
  803. RLE_Image:
  804. Layer1:
  805. .db $91,$00,$13,$80,$F0,$7F,$00,$C0,$FF,$FF,$7F,$7F,$F0,$91,$FF,$14
  806. .db $FE,$91,$FF,$0E,$91,$00,$12,$01,$0F,$3C,$F0,$06,$3F,$FF,$FF,$FF
  807. .db $FC,$02,$FE,$FC,$FC,$FC,$F8,$FC,$F8,$F8,$F8,$F0,$F8,$F8,$91,$FF
  808. .db $09,$7F,$1B,$2F,$69,$79,$1D,$FF,$F3,$91,$FF,$06,$1C,$0C,$06,$0C
  809. .db $06,$06,$0C,$06,$0C,$06,$0C,$0C,$18,$18,$31,$73,$67,$CF,$8F,$1F
  810. .db $7F,$0F,$0F,$1F,$FE,$C0,$FC,$3E,$1E,$3C,$3C,$78,$3C,$7C,$78,$78
  811. .db $F0,$70,$78,$F0,$F1,$91,$FF,$08,$F8,$FA,$91,$FE,$04,$FC,$91,$FF
  812. .db $09,$7F,$3F,$7F,$3F,$1F,$3F,$7F,$FF,$7F,$1F,$7F,$FF,$DF,$91,$FF
  813. .db $09,$00,$00,$04,$1E,$1E,$3C,$3E,$7C,$50,$01,$07,$7F,$FF,$7F,$91
  814. .db $FF,$0B,$CF,$5F,$9F,$C6,$C9,$DD,$D9,$5D,$91,$FF,$20,$3F,$3F,$1F
  815. .db $3F,$1F,$3C,$7C,$78,$F0,$F1,$E0,$F1,$E1,$E1,$E0,$F0,$F9,$91,$FF
  816. .db $0A,$60,$9A,$9A,$DA,$1A,$91,$FF,$23,$80,$00,$00,$7C,$F8,$F8,$F0
  817. .db $F0,$C0,$80,$11,$10,$20,$F1,$91,$FF,$0A,$8E,$77,$06,$37,$20,$91
  818. .db $FF,$1D,$FE,$FC,$FE,$FF,$FF,$FF,$78,$38,$7C,$78,$78,$F8,$70,$78
  819. .db $F0,$F1,$F0,$E0,$F1,$F1,$91,$FF,$08,$F8,$FB,$FB,$FB,$7B,$7B,$78
  820. .db $91,$FF,$1D,$1F,$1F,$3F,$FF,$FF,$FF,$38,$78,$78,$70,$F8,$78,$F0
  821. .db $F0,$E1,$E1,$F1,$E1,$E3,$C1,$91,$FF,$08,$7F,$7F,$8C,$AD,$AD,$6C
  822. .db $E4,$91,$FF,$23,$78,$E0,$40,$18,$B8,$70,$78,$78,$F0,$F0,$E1,$E0
  823. .db $F1,$E1,$91,$FF,$08,$BF,$DF,$14,$5F,$CD,$C3,$30,$91,$FF,$20,$FE
  824. .db $FE,$FC,$F0,$70,$74,$7C,$78,$F8,$78,$F0,$F8,$F0,$F0,$F0,$F8,$FC
  825. .db $91,$FF,$0A,$0B,$AF,$6F,$EF,$2C,$91,$FF,$21,$3F,$3F,$07,$0F,$4F
  826. .db $7F,$7F,$FF,$7F,$7F,$FF,$FF,$FF,$9F,$1F,$3F,$91,$FF,$0A,$45,$D8
  827. .db $19,$BD,$11,$91,$FF,$3B,$7F,$BF,$BF,$BF,$DF,$91,$FF,$08
  828. Layer2:
  829. .db $91,$00,$15,$80,$91,$FF,$2A,$91,$00,$14,$03,$0F,$FF,$FE,$FF,$FF
  830. .db $FF,$FE,$91,$FC,$06,$91,$F8,$05,$F0,$F0,$91,$FF,$08,$7F,$7F,$4B
  831. .db $6B,$6E,$6C,$9D,$FD,$F3,$91,$FF,$06,$03,$03,$01,$03,$01,$01,$03
  832. .db $01,$03,$01,$03,$03,$07,$07,$0F,$0F,$1F,$3F,$7F,$FF,$FF,$1F,$1F
  833. .db $1E,$FE,$FE,$FE,$1C,$91,$3C,$04,$91,$78,$05,$F8,$F0,$F0,$F0,$91
  834. .db $FF,$08,$F8,$FE,$7E,$91,$FE,$04,$91,$FF,$1F,$00,$00,$18,$3E,$3E
  835. .db $3E,$3C,$38,$20,$00,$03,$7F,$7F,$91,$FF,$0C,$EF,$1F,$CF,$D2,$C8
  836. .db $D9,$D9,$D8,$91,$FF,$1F,$7F,$3F,$1F,$1F,$1F,$3F,$3E,$3C,$78,$F8
  837. .db $F0,$F1,$E1,$E1,$E1,$E0,$E0,$F0,$91,$FF,$0A,$54,$1A,$9A,$9A,$DA
  838. .db $91,$FF,$23,$C0,$00,$18,$38,$78,$F8,$F0,$E0,$E0,$C0,$90,$31,$71
  839. .db $E1,$91,$FF,$0A,$CC,$B5,$F4,$A6,$10,$91,$FF,$1D,$FE,$FE,$FC,$FF
  840. .db $FF,$FF,$3C,$7C,$91,$78,$04,$F8,$F0,$F0,$F0,$F1,$F1,$E1,$E1,$91
  841. .db $FF,$08,$F8,$FB,$7B,$FB,$FB,$7B,$F8,$91,$FF,$1D,$3F,$3F,$3F,$FF
  842. .db $FF,$FF,$91,$78,$04,$70,$91,$F0,$04,$F1,$E1,$E1,$E1,$E3,$91,$FF
  843. .db $08,$6F,$BF,$8E,$AD,$AD,$AD,$6E,$91,$FF,$23,$70,$60,$C0,$88,$18
  844. .db $38,$70,$91,$F0,$04,$F1,$E1,$E1,$91,$FF,$08,$DF,$DF,$52,$85,$C4
  845. .db $D4,$5A,$91,$FF,$21,$FC,$FC,$F0,$70,$91,$78,$04,$F8,$F8,$91,$F0
  846. .db $05,$F8,$91,$FF,$0A,$42,$AE,$EE,$EF,$2E,$91,$FF,$20,$3F,$3F,$3F
  847. .db $0F,$0F,$3F,$7F,$7F,$7F,$91,$FF,$05,$7F,$3F,$3F,$91,$FF,$0A,$24
  848. .db $C1,$59,$19,$6D,$91,$FF,$3B,$3F,$BF,$BF,$BF,$9F,$91,$FF,$08
  849.  
  850. MainMenu:
  851. .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
  852. .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$60,$00,$00,$00,$00,$00,$00
  853. .db $00,$00,$00,$00,$00,$60,$00,$00,$00,$00,$03,$00,$00,$00,$00,$00
  854. .db $00,$00,$00,$00,$00,$00,$07,$80,$00,$00,$00,$00,$00,$F1,$E0,$87
  855. .db $37,$1F,$C7,$80,$00,$00,$00,$00,$00,$F1,$91,$C7,$3F,$9F,$C7,$80
  856. .db $00,$00,$00,$00,$00,$61,$93,$62,$33,$87,$07,$80,$00,$00,$00,$00
  857. .db $00,$61,$E3,$E2,$33,$87,$07,$80,$00,$00,$00,$00,$00,$61,$83,$62
  858. .db $33,$87,$03,$00,$00,$00,$00,$00,$00,$69,$83,$67,$33,$87,$03,$00
  859. .db $01,$03,$80,$00,$00,$79,$83,$67,$33,$87,$00,$00,$03,$04,$C0,$00
  860. .db $00,$30,$00,$00,$00,$00,$03,$02,$25,$04,$40,$00,$00,$00,$00,$00
  861. .db $00,$00,$06,$83,$61,$04,$40,$00,$03,$FF,$FF,$FF,$FF,$FF,$C7,$81
  862. .db $C1,$14,$40,$00,$00,$FF,$FF,$FF,$FF,$FF,$F3,$00,$87,$B3,$80,$00
  863. .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
  864. .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
  865. .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
  866. .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
  867. .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
  868. .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
  869. .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
  870. .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
  871. .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
  872. .db $00,$38,$00,$00,$00,$00,$00,$00,$70,$00,$00,$00,$00,$3F,$FF,$FF
  873. .db $FF,$FF,$FF,$FF,$F0,$00,$00,$00,$00,$37,$FF,$FF,$FF,$FF,$FF,$FF
  874. .db $B0,$00,$00,$00,$00,$18,$00,$00,$00,$00,$00,$00,$60,$00,$00,$00
  875. .db $00,$18,$00,$00,$00,$00,$00,$00,$60,$00,$00,$00,$00,$19,$FF,$FF
  876. .db $FF,$FF,$FF,$FE,$60,$00,$00,$00,$00,$19,$FF,$FF,$FF,$FF,$FF,$FE
  877. .db $60,$00,$00,$00,$00,$19,$FF,$FE,$3F,$FF,$FF,$8E,$60,$00,$00,$00
  878. .db $00,$19,$FF,$FC,$1F,$FF,$FF,$36,$60,$00,$00,$00,$00,$19,$FF,$FC
  879. .db $5F,$FF,$FE,$16,$60,$00,$00,$00,$00,$19,$FF,$FC,$DF,$FF,$F8,$06
  880. .db $60,$00,$00,$00,$00,$19,$FF,$FE,$3F,$FF,$F0,$0E,$60,$00,$00,$00
  881. .db $00,$19,$FF,$FF,$BF,$FF,$E0,$1E,$60,$00,$00,$00,$00,$19,$FF,$FF
  882. .db $1F,$FF,$E0,$3E,$60,$00,$00,$00,$00,$19,$FF,$FF,$1F,$FF,$E0,$FE
  883. .db $60,$00,$00,$00,$00,$19,$FF,$FF,$2F,$FF,$C1,$FE,$60,$00,$00,$00
  884. .db $00,$19,$86,$FF,$17,$FF,$81,$FE,$60,$00,$00,$00,$00,$19,$AC,$FF
  885. .db $1B,$FF,$A1,$FE,$60,$00,$00,$00,$00,$19,$9A,$FF,$8D,$FF,$B3,$FE
  886. .db $60,$00,$00,$00,$00,$19,$B6,$FF,$8D,$FF,$C7,$FE,$60,$00,$00,$00
  887. .db $00,$19,$EE,$FF,$C8,$FF,$7F,$FE,$60,$00,$00,$00,$00,$19,$DC,$FF
  888. .db $E1,$7F,$FE,$1E,$60,$00,$00,$00,$00,$19,$81,$FF,$FC,$BD,$FC,$8E
  889. .db $60,$00,$00,$00,$00,$19,$FF,$FF,$FE,$5F,$FE,$0E,$60,$00,$00,$00
  890. .db $00,$19,$FF,$FF,$FF,$2F,$FF,$0E,$60,$00,$00,$00,$00,$19,$FF,$FF
  891. .db $FF,$97,$FC,$0E,$60,$00,$00,$00,$00,$19,$FF,$FF,$FF,$CB,$FE,$1E
  892. .db $60,$00,$00,$00,$00,$19,$FF,$FF,$FF,$E5,$FF,$FE,$60,$00,$00,$00
  893. .db $00,$18,$00,$00,$00,$00,$00,$00,$60,$00,$00,$00,$00,$18,$00,$00
  894. .db $00,$00,$00,$00,$60,$00,$00,$00,$00,$37,$FF,$FF,$FF,$FF,$FF,$FF
  895. .db $B0,$00,$00,$00,$00,$3F,$FF,$FF,$FF,$FF,$FF,$FF,$F0,$00,$00,$00
  896. .db $00,$38,$00,$00,$00,$00,$00,$00,$70,$00,$00,$00,$00,$00,$00,$00
  897. .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
  898. .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
  899.  
  900. Pic1name:
  901. .db PictObj,tVarPict,tPic1,0,0
  902. Pic2name:
  903. .db PictObj,tVarPict,tPic2,0,0
  904. Pic3name:
  905. .db PictObj,tVarPict,tPic3,0,0
  906. Pic4name:
  907. .db PictObj,tVarPict,tPic4,0,0
  908. Pic5name:
  909. .db PictObj,tVarPict,tPic5,0,0
  910. Pic6name:
  911. .db PictObj,tVarPict,tPic6,0,0
  912. Pic7name:
  913. .db PictObj,tVarPict,tPic7,0,0
  914. Pic8name:
  915. .db PictObj,tVarPict,tPic8,0,0
  916. Pic9name:
  917. .db PictObj,tVarPict,tPic9,0,0
  918. Pic0name:
  919. .db PictObj,tVarPict,tPic0,0,0
RAW Paste Data