US Home
Automation

(Last updated: Saturday October 22, 2016)
Google
 

Omnimon XL source code

As I understand it, Wes Newell, founder of Newell Industries (known for Omnimon and many other upgrades) sent ANTIC (the Atari Podcast) hundreds of pages of documentation and source code to scan, and put online. And Wes put it in the public domain! Antic announced this in Massive trove of Newll Engineering ... (June 2016, Atariage)

I'm sharing this because I've needed to figure out a way to get omnimon to work in the Atari800 emulator under Curses. The curses version doesn't allow for simultaneous keys. I may have to add support to Omnimon but I'm not sure how to yet. Also I've added a few lines. Mostly to help me with lining things up properly (or at least close). I also know about the names and number being mixed with 0, O, 1, I, | and !. Those will be worked on later when I actually attempt to assemble the code with atasm (and maybe even MAC/65).

Note: This is a work in progress. I have Phase I complete of the Omnimon OS. This means that I have a lot of the lines cleaned up but probably not perfect. There are 4 parts to Omnimon, the OS (8K), the Fastchip (2K), and the Omnimon monitor A (4K) and B (2K). I'm reformatting at a rate of about a page a day. So there is a lot of junk left and it will need to be proofread before I can attempt to assemble it. I'll be using Atasm to assemble the code then I'll compare it to an existing Omnimon XL ROM I have. Also you'll see a lot of my notes, some of which may be incorrect. I tend to take notes and correct as I go.

Omnimon XL MAC65 Source

Omnimon XL/XE ROM - 27128 - 16K
ROM AddressComputer AddressFunction
0000-0FFFC000-CFFFOmnimon A 4K (XL/XE, 49152 - 53247)
1000-17FF5000-57FF0mnimon B 2K (See note, 20480 - 22527)
1800-1FFFD800-DFFFFastchip FP Routines (FC) 2K (55296 - 57343)
2000-3FFFE000-FFFF Omnimon OS 8K (57344 - 65535)

Note: This portion of the rom is only visible to the computer when bit 7 of address $D301 is 0. When this occurs, the portion of the OS is mapped over the RAM at location $5000. If you've had Omnimon for the Atari 400/800 you'll recognize the A and B reference (the ROMs were banked).

Grab the actual text files:

These are huge, I may need to split these into their own pages. For now, here's what I have.

Omnimon - A

; da65 V2.15 ; Created: 2016-10-24 14:59:00 ; Input file: ROM/OMNIMNXX.ROM ; Page: 1 .setcpu "6502" ; ---------------------------------------------------------------------------- L000A := $000A L0092 := $0092 L0094 := $0094 L0127 := $0127 L02E0 := $02E0 L02E2 := $02E2 L206C := $206C L245B := $245B L24CA := $24CA L5000 := $5000 L5035 := $5035 L505F := $505F L5074 := $5074 L50A5 := $50A5 L50CF := $50CF L5108 := $5108 L5152 := $5152 L5184 := $5184 L51C2 := $51C2 L51D1 := $51D1 L5208 := $5208 L523C := $523C L5252 := $5252 L5262 := $5262 L530D := $530D L536F := $536F L539A := $539A L5437 := $5437 L5467 := $5467 L5477 := $5477 L5483 := $5483 LD9D2 := $D9D2 LE456 := $E456 ; JMP to CIO LE459 := $E459 ; JMP to SIO LF361 := $F361 ; XBOOT ; ---------------------------------------------------------------------------- OmniA: pla ; C000 68 h ; Entry point for the BASIC func X=USR(49153) USREntry: php ; C001 08 . pha ; C002 48 H txa ; C003 8A . pha ; C004 48 H tya ; C005 98 . pha ; C006 48 H tsx ; C007 BA . txa ; C008 8A . clc ; C009 18 . adc #$05 ; C00A 69 05 i. tax ; C00C AA . inc $0100,x ; C00D FE 00 01 ... bne LC015 ; C010 D0 03 .. inc $0101,x ; C012 FE 01 01 ... LC015: ldy #$00 ; C015 A0 00 .. LC017: lda L0092,y ; C017 B9 92 00 ... pha ; C01A 48 H iny ; C01B C8 . cpy #$0E ; C01C C0 0E .. bne LC017 ; C01E D0 F7 .. jsr LC715 ; C020 20 15 C7 .. jmp LC045 ; C023 4C 45 C0 LE. ; ---------------------------------------------------------------------------- php ; C026 08 . pha ; C027 48 H txa ; C028 8A . pha ; C029 48 H tya ; C02A 98 . pha ; C02B 48 H jmp LC03A ; C02C 4C 3A C0 L:. ; ---------------------------------------------------------------------------- txa ; C02F 8A . pha ; C030 48 H tya ; C031 98 . pha ; C032 48 H jmp LC015 ; C033 4C 15 C0 L.. ; ---------------------------------------------------------------------------- txa ; C036 8A . pha ; C037 48 H tya ; C038 98 . pha ; C039 48 H LC03A: ldy #$00 ; C03A A0 00 .. LC03C: lda L0092,y ; C03C B9 92 00 ... pha ; C03F 48 H iny ; C040 C8 . cpy #$0E ; C041 C0 0E .. bne LC03C ; C043 D0 F7 .. LC045: cli ; C045 58 X LC046: lda $0120 ; C046 AD 20 01 . . beq LC088 ; C049 F0 3D .= sec ; C04B 38 8 sbc #$01 ; C04C E9 01 .. and #$1F ; C04E 29 1F ). tay ; C050 A8 . lda $0120 ; C051 AD 20 01 . . sty $0120 ; C054 8C 20 01 . . and #$E0 ; C057 29 E0 ). ora $0120 ; C059 0D 20 01 . . sta $0120 ; C05C 8D 20 01 . . jsr LC6EE ; C05F 20 EE C6 .. lda $0121 ; C062 AD 21 01 .!. sta (L0094),y ; C065 91 94 .. iny ; C067 C8 . lda $0122 ; C068 AD 22 01 .". sta (L0094),y ; C06B 91 94 .. jsr LCB40 ; C06D 20 40 CB @. jsr LC7ED ; C070 20 ED C7 .. jsr LCD54 ; C073 20 54 CD T. jsr LC7ED ; C076 20 ED C7 .. lda $0120 ; C079 AD 20 01 . . beq LC08F ; C07C F0 11 .. lda $D01F ; C07E AD 1F D0 ... and #$01 ; C081 29 01 ). beq LC08F ; C083 F0 0A .. jmp LC993 ; C085 4C 93 C9 L.. ; ---------------------------------------------------------------------------- LC088: lda #$00 ; C088 A9 00 .. sta $98 ; C08A 85 98 .. jsr LCB40 ; C08C 20 40 CB @. LC08F: lda #$00 ; C08F A9 00 .. sta $02B6 ; C091 8D B6 02 ... sta $0120 ; C094 8D 20 01 . . sta $0129 ; C097 8D 29 01 .). lda #$40 ; C09A A9 40 .@ sta $02BE ; C09C 8D BE 02 ... jsr LC6F2 ; C09F 20 F2 C6 .. ; ; What is this? ; sta a:$3E,x ; C0A2 9D 3E 00 .>. ; STA $XXYY,X ; So it should be: ; STA $003E,X ; Interesting, this could have been STA $3A,X ( C0A3 95 3A) ; sta $003E,x ; C0A2 9D 3E 00 .>. jsr LC161 ; C0A5 20 61 C1 a. lda $D01F ; C0A8 AD 1F D0 ... and #$01 ; C0AB 29 01 ). bne CLI ; C0AD D0 03 .. jmp LC139 ; C0AF 4C 39 C1 L9. ; ; When Entered into Omnimon you are greated with: ; ; David Young OMNIMONXL (C)1984 ; ; PC NV-BDIZC AC X Y SP ; CA701 32 00 00 C0 1FF ; ^gt; ; ; OMNIMON XL would be in inverse (CF CD CE C9 CD CF CE D8 CC) ; ---------------------------------------------------------------------------- CLI: ldy #$00 ; C0B2 A0 00 .. LC0B4: lda (L0092),y ; C0B4 B1 92 .. jsr LC7BC ; C0B6 20 BC C7 .. cmp #$3E ; C0B9 C9 3E .> beq LC0B4 ; C0BB F0 F7 .. cmp #$9B ; C0BD C9 9B .. bne LC0C9 ; C0BF D0 08 .. sta $012B ; C0C1 8D 2B 01 .+. lda $99 ; C0C4 A5 99 .. sta $012A ; C0C6 8D 2A 01 .*. LC0C9: cmp CMDS,y ; C0C9 D9 EB C0 ... beq LC0D5 ; C0CC F0 07 .. iny ; C0CE C8 . cpy #$19 ; C0CF C0 19 .. bne LC0C9 ; C0D1 D0 F6 .. beq LC08F ; C0D3 F0 BA .. LC0D5: cpy #$04 ; C0D5 C0 04 .. bpl LC0DB ; C0D7 10 02 .. sta $99 ; C0D9 85 99 .. LC0DB: tya ; C0DB 98 . asl a ; C0DC 0A . tay ; C0DD A8 . lda CMDSAttrLO,y ; C0DE B9 04 C1 ... sta L0094 ; C0E1 85 94 .. lda CMDSAttrHI,y ; C0E3 B9 05 C1 ... sta $95 ; C0E6 85 95 .. jmp (L0094) ; C0E8 6C 94 00 l.. ; ---------------------------------------------------------------------------- CMDS: .byte "EXRDWJ+-CNYSPTAFLUMGOHVZB" ; C0EB 45 58 52 44 57 4A 2B 2D EXRDWJ+- ; C0F3 43 4E 59 53 50 54 41 46 CNYSPTAF ; C0FB 4C 55 4D 47 4F 48 56 5A LUMGOHVZ ; C103 42 B ; ---------------------------------------------------------------------------- CMDSAttrLO: CMDSAttrHI := * + 1 .addr eExec ; C104 80 C9 .. .addr xDisassemble ; C106 3D CD =. .addr rRead ; C108 C8 C1 .. .addr dDisplay ; C10A 7A C2 z. .addr wWrite ; C10C 49 C2 I. .addr jJump ; C10E CB CF .. .addr pPush ; C110 D1 CF .. .addr pPop ; C112 D7 CF .. .addr cChange ; C114 17 CB .. .addr nRelocate ; C116 CC C8 .. .addr yAssemble ; C118 91 CB .. .addr sSearch ; C11A 7F C4 .. .addr pPrint ; C11C E3 CF .. .addr tToggle ; C11E 48 C1 H. .addr aAlter ; C120 B0 C2 .. .addr fFill ; C122 0E C4 .. .addr lLink ; C124 E9 CF .. .addr OmniRestA ; C126 36 C1 6. .addr mMove ; C128 4B C3 K. .addr hGet ; C12A DE C4 .. .addr oOperate ; C12C F4 C3 .. .addr hHex ; C12E DD CF .. .addr vVerify ; C130 F2 C2 .. .addr UnkCmdZ ; C132 C7 C1 .. .addr bBoot ; C134 1E C4 .. ; ---------------------------------------------------------------------------- OmniRestA: jmp (L0127) ; C136 6C 27 01 l'. ; ---------------------------------------------------------------------------- LC139: ldy #$0D ; C139 A0 0D .. LC13B: pla ; C13B 68 h sta L0092,y ; C13C 99 92 00 ... dey ; C13F 88 . bpl LC13B ; C140 10 F9 .. pla ; C142 68 h tay ; C143 A8 . pla ; C144 68 h tax ; C145 AA . pla ; C146 68 h rti ; C147 40 @ ; ---------------------------------------------------------------------------- ; tToggle = $C148 tToggle:lda #$80 ; C148 A9 80 .. eor $98 ; C14A 45 98 E. sta $98 ; C14C 85 98 .. jmp dDisplay ; C14E 4C 7A C2 Lz. ; ---------------------------------------------------------------------------- LC151: lda #$2A ; C151 A9 2A .* sta L0092 ; C153 85 92 .. lda #$01 ; C155 A9 01 .. sta $93 ; C157 85 93 .. rts ; C159 60 ` ; ---------------------------------------------------------------------------- LC15A: inc $9E ; C15A E6 9E .. bne LC160 ; C15C D0 02 .. inc $9F ; C15E E6 9F .. LC160: rts ; C160 60 ` ; ---------------------------------------------------------------------------- LC161: stx $9A ; C161 86 9A .. ldx #$00 ; C163 A2 00 .. sty $9B ; C165 84 9B .. lda #$2A ; C167 A9 2A .* sta $0344,x ; C169 9D 44 03 .D. jsr LC151 ; C16C 20 51 C1 Q. sta $0345,x ; C16F 9D 45 03 .E. lda #$05 ; C172 A9 05 .. sta $0342,x ; C174 9D 42 03 .B. lda #$80 ; C177 A9 80 .. sta $0348,x ; C179 9D 48 03 .H. lda #$00 ; C17C A9 00 .. sta $0349,x ; C17E 9D 49 03 .I. jsr LE456 ; C181 20 56 E4 V. ldx #$50 ; C184 A2 50 .P lda #$2A ; C186 A9 2A .* sta $0344,x ; C188 9D 44 03 .D. lda #$01 ; C18B A9 01 .. sta $0345,x ; C18D 9D 45 03 .E. lda #$09 ; C190 A9 09 .. sta $0342,x ; C192 9D 42 03 .B. lda #$80 ; C195 A9 80 .. sta $0348,x ; C197 9D 48 03 .H. lda #$00 ; C19A A9 00 .. sta $0349,x ; C19C 9D 49 03 .I. jsr LE456 ; C19F 20 56 E4 V. ldy #$00 ; C1A2 A0 00 .. cpy $9F ; C1A4 C4 9F .. beq LC1C3 ; C1A6 F0 1B .. lda $0322 ; C1A8 AD 22 03 .". cmp #$E4 ; C1AB C9 E4 .. bne LC1C3 ; C1AD D0 14 .. LC1AF: lda (L0092),y ; C1AF B1 92 .. sta ($9E),y ; C1B1 91 9E .. jsr LC7BC ; C1B3 20 BC C7 .. jsr LC15A ; C1B6 20 5A C1 Z. cmp #$9B ; C1B9 C9 9B .. bne LC1AF ; C1BB D0 F2 .. tya ; C1BD 98 . sta ($9E),y ; C1BE 91 9E .. jsr LC151 ; C1C0 20 51 C1 Q. LC1C3: ldy $9B ; C1C3 A4 9B .. ldx $9A ; C1C5 A6 9A .. ; UnkCmdZ = $C1C7;Z - Jumps to RTS UnkCmdZ:rts ; C1C7 60 ` ; ---------------------------------------------------------------------------- ; rRead = $C1C8 rRead: jsr LCF81 ; C1C8 20 81 CF .. jsr LCF93 ; C1CB 20 93 CF .. bmi LC1DA ; C1CE 30 0A 0. LC1D0: lda $D01F ; C1D0 AD 1F D0 ... and #$04 ; C1D3 29 04 ). bne LC1DA ; C1D5 D0 03 .. jsr LCF93 ; C1D7 20 93 CF .. LC1DA: jsr LC25C ; C1DA 20 5C C2 \. bmi LC230 ; C1DD 30 51 0Q jsr LCF8D ; C1DF 20 8D CF .. lda $0124 ; C1E2 AD 24 01 .$. bne LC229 ; C1E5 D0 42 .B sec ; C1E7 38 8 lda $0304 ; C1E8 AD 04 03 ... sbc #$03 ; C1EB E9 03 .. sta $0304 ; C1ED 8D 04 03 ... sta L0092 ; C1F0 85 92 .. lda $0305 ; C1F2 AD 05 03 ... sbc #$00 ; C1F5 E9 00 .. sta $0305 ; C1F7 8D 05 03 ... sta $93 ; C1FA 85 93 .. ldy #$00 ; C1FC A0 00 .. lda (L0092),y ; C1FE B1 92 .. and #$03 ; C200 29 03 ). sta $9A ; C202 85 9A .. iny ; C204 C8 . ora (L0092),y ; C205 11 92 .. bne LC21F ; C207 D0 16 .. lda $030A ; C209 AD 0A 03 ... bne LC211 ; C20C D0 03 .. dec $030B ; C20E CE 0B 03 ... LC211: dec $030A ; C211 CE 0A 03 ... jsr LC6F2 ; C214 20 F2 C6 .. eor $4F ; C217 45 4F EO lsr $9B ; C219 46 9B F. brk ; C21B 00 . jmp OmniRestB ; C21C 4C 3C C2 L<. ; ---------------------------------------------------------------------------- LC21F: lda (L0092),y ; C21F B1 92 .. sta $030A ; C221 8D 0A 03 ... lda $9A ; C224 A5 9A .. sta $030B ; C226 8D 0B 03 ... LC229: jsr LCF87 ; C229 20 87 CF .. bne LC1D0 ; C22C D0 A2 .. beq OmniRestB ; C22E F0 0C .. LC230: jsr LC6F2 ; C230 20 F2 C6 .. IOERR: .byte "I/O ERR" ; C233 49 2F 4F 20 45 52 52 I/O ERR .byte $9B,$00 ; C23A 9B 00 .. ; ---------------------------------------------------------------------------- OmniRestB: lda $96 ; C23C A5 96 .. sta $0304 ; C23E 8D 04 03 ... lda $97 ; C241 A5 97 .. sta $0305 ; C243 8D 05 03 ... jmp LC08F ; C246 4C 8F C0 L.. ; ---------------------------------------------------------------------------- ; wWrite = $C249 wWrite: jsr LCF81 ; C249 20 81 CF .. LC24C: jsr LC262 ; C24C 20 62 C2 b. bmi LC230 ; C24F 30 DF 0. jsr LCF87 ; C251 20 87 CF .. beq OmniRestB ; C254 F0 E6 .. jsr LCF8D ; C256 20 8D CF .. jmp LC24C ; C259 4C 4C C2 LL. ; ---------------------------------------------------------------------------- LC25C: lda #$52 ; C25C A9 52 .R ldy #$40 ; C25E A0 40 .@ bne LC266 ; C260 D0 04 .. LC262: lda #$57 ; C262 A9 57 .W ldy #$80 ; C264 A0 80 .. LC266: sta $0302 ; C266 8D 02 03 ... sty $0303 ; C269 8C 03 03 ... lda #$31 ; C26C A9 31 .1 sta $0300 ; C26E 8D 00 03 ... lda #$0F ; C271 A9 0F .. sta $0306 ; C273 8D 06 03 ... jsr LE459 ; C276 20 59 E4 Y. rts ; C279 60 ` ; ---------------------------------------------------------------------------- ; dDisplay = $C27A dDisplay: jsr LCF99 ; C27A 20 99 CF .. LC27D: jsr LC29F ; C27D 20 9F C2 .. lda $98 ; C280 A5 98 .. bpl LC28A ; C282 10 06 .. jsr LC824 ; C284 20 24 C8 $. jsr LC824 ; C287 20 24 C8 $. LC28A: jsr LCF9F ; C28A 20 9F CF .. jsr LC7ED ; C28D 20 ED C7 .. lda #$07 ; C290 A9 07 .. eor $D01F ; C292 4D 1F D0 M.. bne LC29C ; C295 D0 05 .. jsr LC7CA ; C297 20 CA C7 .. bpl LC27D ; C29A 10 E1 .. LC29C: jmp LC08F ; C29C 4C 8F C0 L.. ; ---------------------------------------------------------------------------- LC29F: jsr LC6F2 ; C29F 20 F2 C6 .. sta $2041,x ; C2A2 9D 41 20 .A brk ; C2A5 00 . jsr LC80E ; C2A6 20 0E C8 .. jsr LC7F3 ; C2A9 20 F3 C7 .. jsr LC827 ; C2AC 20 27 C8 '. rts ; C2AF 60 ` ; ---------------------------------------------------------------------------- ; aAlter = $C2B0 aAlter: jsr LCF75 ; C2B0 20 75 CF u. bmi LC2F1 ; C2B3 30 3C 0< jsr LC84A ; C2B5 20 4A C8 J. jsr LC2BE ; C2B8 20 BE C2 .. jmp LC08F ; C2BB 4C 8F C0 L.. ; ---------------------------------------------------------------------------- LC2BE: lda $98 ; C2BE A5 98 .. bpl LC2C5 ; C2C0 10 03 .. jsr LC7BC ; C2C2 20 BC C7 .. LC2C5: ldy #$00 ; C2C5 A0 00 .. lda $98 ; C2C7 A5 98 .. bpl LC2DD ; C2C9 10 12 .. lda (L0092),y ; C2CB B1 92 .. pha ; C2CD 48 H jsr LC7BC ; C2CE 20 BC C7 .. lda L0092 ; C2D1 A5 92 .. sec ; C2D3 38 8 sbc #$2A ; C2D4 E9 2A .* cmp $0348,x ; C2D6 DD 48 03 .H. beq LC2F0 ; C2D9 F0 15 .. bne LC2E5 ; C2DB D0 08 .. LC2DD: jsr LCF75 ; C2DD 20 75 CF u. bmi LC2F1 ; C2E0 30 0F 0. lda L0094 ; C2E2 A5 94 .. pha ; C2E4 48 H LC2E5: pla ; C2E5 68 h ldy #$00 ; C2E6 A0 00 .. sta ($96),y ; C2E8 91 96 .. jsr LC7C3 ; C2EA 20 C3 C7 .. jmp LC2C5 ; C2ED 4C C5 C2 L.. ; ---------------------------------------------------------------------------- LC2F0: pla ; C2F0 68 h LC2F1: rts ; C2F1 60 ` ; ---------------------------------------------------------------------------- ; vVerify = $C2F2 vVerify:jsr LC89F ; C2F2 20 9F C8 .. bpl LC2FA ; C2F5 10 03 .. jmp LC8BA ; C2F7 4C BA C8 L.. ; ---------------------------------------------------------------------------- LC2FA: jsr LC3EB ; C2FA 20 EB C3 .. ldy #$00 ; C2FD A0 00 .. LC2FF: lda ($96),y ; C2FF B1 96 .. cmp (L0094),y ; C301 D1 94 .. beq LC325 ; C303 F0 20 . jsr LC80E ; C305 20 0E C8 .. jsr LC7F3 ; C308 20 F3 C7 .. lda ($96),y ; C30B B1 96 .. jsr LC805 ; C30D 20 05 C8 .. lda $95 ; C310 A5 95 .. jsr LCF69 ; C312 20 69 CF i. lda L0094 ; C315 A5 94 .. jsr LCF69 ; C317 20 69 CF i. jsr LC7F3 ; C31A 20 F3 C7 .. lda (L0094),y ; C31D B1 94 .. jsr LCF69 ; C31F 20 69 CF i. jsr LC7ED ; C322 20 ED C7 .. LC325: lda $D01F ; C325 AD 1F D0 ... eor #$07 ; C328 49 07 I. bne LC348 ; C32A D0 1C .. jsr LC7C3 ; C32C 20 C3 C7 .. inc L0094 ; C32F E6 94 .. bne LC335 ; C331 D0 02 .. inc $95 ; C333 E6 95 .. LC335: lda $012A ; C335 AD 2A 01 .*. bne LC33D ; C338 D0 03 .. dec $012B ; C33A CE 2B 01 .+. LC33D: dec $012A ; C33D CE 2A 01 .*. lda $012A ; C340 AD 2A 01 .*. ora $012B ; C343 0D 2B 01 .+. bne LC2FF ; C346 D0 B7 .. LC348: jmp LC08F ; C348 4C 8F C0 L.. ; ---------------------------------------------------------------------------- ; mMove = $C34B mMove: jsr LC89F ; C34B 20 9F C8 .. bmi LC3BA ; C34E 30 6A 0j jsr LC3EB ; C350 20 EB C3 .. lda $012A ; C353 AD 2A 01 .*. pha ; C356 48 H lda $012B ; C357 AD 2B 01 .+. pha ; C35A 48 H lda $95 ; C35B A5 95 .. cmp $97 ; C35D C5 97 .. bcc LC39A ; C35F 90 39 .9 bne LC369 ; C361 D0 06 .. lda L0094 ; C363 A5 94 .. cmp $96 ; C365 C5 96 .. bcc LC39A ; C367 90 31 .1 LC369: clc ; C369 18 . lda $012B ; C36A AD 2B 01 .+. adc $97 ; C36D 65 97 e. sta $97 ; C36F 85 97 .. clc ; C371 18 . lda $012B ; C372 AD 2B 01 .+. adc $95 ; C375 65 95 e. sta $95 ; C377 85 95 .. ldy $012A ; C379 AC 2A 01 .*. beq LC384 ; C37C F0 06 .. ldx $012A ; C37E AE 2A 01 .*. jsr LC3D9 ; C381 20 D9 C3 .. LC384: ldy #$00 ; C384 A0 00 .. cpy $012B ; C386 CC 2B 01 .+. beq LC3C2 ; C389 F0 37 .7 dec $97 ; C38B C6 97 .. dec $95 ; C38D C6 95 .. ldx #$00 ; C38F A2 00 .. jsr LC3D9 ; C391 20 D9 C3 .. dec $012B ; C394 CE 2B 01 .+. jmp LC384 ; C397 4C 84 C3 L.. ; ---------------------------------------------------------------------------- LC39A: ldy #$00 ; C39A A0 00 .. cpy $012B ; C39C CC 2B 01 .+. beq LC3B0 ; C39F F0 0F .. ldx #$00 ; C3A1 A2 00 .. jsr LC3E2 ; C3A3 20 E2 C3 .. inc $97 ; C3A6 E6 97 .. inc $95 ; C3A8 E6 95 .. dec $012B ; C3AA CE 2B 01 .+. jmp LC39A ; C3AD 4C 9A C3 L.. ; ---------------------------------------------------------------------------- LC3B0: ldx $012A ; C3B0 AE 2A 01 .*. beq LC3C2 ; C3B3 F0 0D .. jsr LC3E2 ; C3B5 20 E2 C3 .. beq LC3C2 ; C3B8 F0 08 .. LC3BA: lda #$00 ; C3BA A9 00 .. sta $96 ; C3BC 85 96 .. sta $97 ; C3BE 85 97 .. beq LC3C8 ; C3C0 F0 06 .. LC3C2: pla ; C3C2 68 h sta $97 ; C3C3 85 97 .. pla ; C3C5 68 h sta $96 ; C3C6 85 96 .. LC3C8: jsr LC80E ; C3C8 20 0E C8 .. jsr LC6F2 ; C3CB 20 F2 C6 .. BYTES: .byte " BYTES" ; C3CE 20 42 59 54 45 53 BYTES .byte $9B,$00 ; C3D4 9B 00 .. ; ---------------------------------------------------------------------------- OmniRestC: jmp LC08F ; C3D6 4C 8F C0 L.. ; ---------------------------------------------------------------------------- LC3D9: dey ; C3D9 88 . lda ($96),y ; C3DA B1 96 .. sta (L0094),y ; C3DC 91 94 .. dex ; C3DE CA . bne LC3D9 ; C3DF D0 F8 .. rts ; C3E1 60 ` ; ---------------------------------------------------------------------------- LC3E2: lda ($96),y ; C3E2 B1 96 .. sta (L0094),y ; C3E4 91 94 .. iny ; C3E6 C8 . dex ; C3E7 CA . bne LC3E2 ; C3E8 D0 F8 .. rts ; C3EA 60 ` ; ---------------------------------------------------------------------------- LC3EB: inc $012A ; C3EB EE 2A 01 .*. bne LC3F3 ; C3EE D0 03 .. inc $012B ; C3F0 EE 2B 01 .+. LC3F3: rts ; C3F3 60 ` ; ---------------------------------------------------------------------------- ; AKA UnkCmdU, I think this is the catch all oOperate: jsr LCF75 ; C3F4 20 75 CF u. bmi LC401 ; C3F7 30 08 0. lda L0094 ; C3F9 A5 94 .. sta $9E ; C3FB 85 9E .. lda $95 ; C3FD A5 95 .. sta $9F ; C3FF 85 9F .. LC401: lda #$24 ; C401 A9 24 .$ sta $0321 ; C403 8D 21 03 .!. lda #$CF ; C406 A9 CF .. sta $0322 ; C408 8D 22 03 .". jmp LC08F ; C40B 4C 8F C0 L.. ; ---------------------------------------------------------------------------- ; fFill = $C40E fFill: jsr LCF75 ; C40E 20 75 CF u. bmi LC41B ; C411 30 08 0. lda L0094 ; C413 A5 94 .. sta $9E ; C415 85 9E .. lda $95 ; C417 A5 95 .. sta $9F ; C419 85 9F .. LC41B: jmp LC08F ; C41B 4C 8F C0 L.. ; ---------------------------------------------------------------------------- ; bBoot = $C41E bBoot: jsr LCF7B ; C41E 20 7B CF {. lda #$00 ; C421 A9 00 .. sta $030B ; C423 8D 0B 03 ... sta $0304 ; C426 8D 04 03 ... lda #$01 ; C429 A9 01 .. sta $030A ; C42B 8D 0A 03 ... lda #$04 ; C42E A9 04 .. sta $0305 ; C430 8D 05 03 ... jsr LC25C ; C433 20 5C C2 \. ldx #$03 ; C436 A2 03 .. LC438: lda $0400,x ; C438 BD 00 04 ... sta $0240,x ; C43B 9D 40 02 .@. dex ; C43E CA . bpl LC438 ; C43F 10 F7 .. lda $0242 ; C441 AD 42 02 .B. sta $04 ; C444 85 04 .. lda $0243 ; C446 AD 43 02 .C. sta $05 ; C449 85 05 .. lda $0404 ; C44B AD 04 04 ... sta $0C ; C44E 85 0C .. lda $0405 ; C450 AD 05 04 ... sta $0D ; C453 85 0D .. LC455: ldy #$7F ; C455 A0 7F .. LC457: lda $0400,y ; C457 B9 00 04 ... sta ($04),y ; C45A 91 04 .. dey ; C45C 88 . bpl LC457 ; C45D 10 F8 .. clc ; C45F 18 . lda $04 ; C460 A5 04 .. adc #$80 ; C462 69 80 i. sta $04 ; C464 85 04 .. lda $05 ; C466 A5 05 .. adc #$00 ; C468 69 00 i. sta $05 ; C46A 85 05 .. dec $0241 ; C46C CE 41 02 .A. beq LC479 ; C46F F0 08 .. inc $030A ; C471 EE 0A 03 ... jsr LC25C ; C474 20 5C C2 \. bpl LC455 ; C477 10 DC .. LC479: jsr LF361 ; C479 20 61 F3 a. jmp (L000A) ; C47C 6C 0A 00 l.. ; ---------------------------------------------------------------------------- ; sSearch = $C47F sSearch:jsr LCF75 ; C47F 20 75 CF u. bmi LC4A7 ; C482 30 23 0# lda $95 ; C484 A5 95 .. pha ; C486 48 H lda L0094 ; C487 A5 94 .. pha ; C489 48 H lda #$2C ; C48A A9 2C ., sta $96 ; C48C 85 96 .. lda #$01 ; C48E A9 01 .. sta $97 ; C490 85 97 .. jsr LC2BE ; C492 20 BE C2 .. lda $96 ; C495 A5 96 .. sec ; C497 38 8 sbc #$2C ; C498 E9 2C ., sta L0094 ; C49A 85 94 .. pla ; C49C 68 h sec ; C49D 38 8 sbc #$01 ; C49E E9 01 .. sta $96 ; C4A0 85 96 .. pla ; C4A2 68 h sbc #$00 ; C4A3 E9 00 .. sta $97 ; C4A5 85 97 .. LC4A7: jsr LC7C3 ; C4A7 20 C3 C7 .. LC4AA: lda #$07 ; C4AA A9 07 .. eor $D01F ; C4AC 4D 1F D0 M.. bne LC4DB ; C4AF D0 2A .* ldx #$FF ; C4B1 A2 FF .. ldy #$FF ; C4B3 A0 FF .. LC4B5: inx ; C4B5 E8 . iny ; C4B6 C8 . cpx L0094 ; C4B7 E4 94 .. beq LC4D2 ; C4B9 F0 17 .. lda $012C,x ; C4BB BD 2C 01 .,. cmp ($96),y ; C4BE D1 96 .. beq LC4B5 ; C4C0 F0 F3 .. LC4C2: jsr LC7C3 ; C4C2 20 C3 C7 .. lda #$00 ; C4C5 A9 00 .. cmp $96 ; C4C7 C5 96 .. bne LC4AA ; C4C9 D0 DF .. cmp $97 ; C4CB C5 97 .. bne LC4AA ; C4CD D0 DB .. jmp LC4DB ; C4CF 4C DB C4 L.. ; ---------------------------------------------------------------------------- LC4D2: jsr LC29F ; C4D2 20 9F C2 .. jsr LC7ED ; C4D5 20 ED C7 .. jmp LC4C2 ; C4D8 4C C2 C4 L.. ; ---------------------------------------------------------------------------- LC4DB: jmp LC08F ; C4DB 4C 8F C0 L.. ; ---------------------------------------------------------------------------- ; hGet = $C4DE hGet: jsr LCFA5 ; C4DE 20 A5 CF .. lda #$68 ; C4E1 A9 68 .h sta $030A ; C4E3 8D 0A 03 ... lda #$01 ; C4E6 A9 01 .. sta $030B ; C4E8 8D 0B 03 ... jsr LCF7B ; C4EB 20 7B CF {. lda $9C ; C4EE A5 9C .. sta $0304 ; C4F0 8D 04 03 ... lda $9D ; C4F3 A5 9D .. sta $0305 ; C4F5 8D 05 03 ... lda #$08 ; C4F8 A9 08 .. sta L0094 ; C4FA 85 94 .. LC4FC: dec L0094 ; C4FC C6 94 .. bpl LC503 ; C4FE 10 03 .. LC500: jmp LC08F ; C500 4C 8F C0 L.. ; ---------------------------------------------------------------------------- LC503: inc $030A ; C503 EE 0A 03 ... jsr LC25C ; C506 20 5C C2 \. bpl LC50E ; C509 10 03 .. jmp LC6B5 ; C50B 4C B5 C6 L.. ; ---------------------------------------------------------------------------- LC50E: lda #$08 ; C50E A9 08 .. sta $95 ; C510 85 95 .. lda $0304 ; C512 AD 04 03 ... sta $96 ; C515 85 96 .. lda $0305 ; C517 AD 05 03 ... sta $97 ; C51A 85 97 .. LC51C: dec $95 ; C51C C6 95 .. bmi LC4FC ; C51E 30 DC 0. ldy #$00 ; C520 A0 00 .. lda ($96),y ; C522 B1 96 .. beq LC500 ; C524 F0 DA .. and #$81 ; C526 29 81 ). beq LC531 ; C528 F0 07 .. ldy #$10 ; C52A A0 10 .. LC52C: jsr LC6CC ; C52C 20 CC C6 .. beq LC51C ; C52F F0 EB .. LC531: lda ($96),y ; C531 B1 96 .. and #$06 ; C533 29 06 ). cmp #$06 ; C535 C9 06 .. beq LC53D ; C537 F0 04 .. lda #$03 ; C539 A9 03 .. bne LC53F ; C53B D0 02 .. LC53D: lda #$FF ; C53D A9 FF .. LC53F: sta $3E ; C53F 85 3E .> LC541: iny ; C541 C8 . lda ($96),y ; C542 B1 96 .. pha ; C544 48 H cpy #$04 ; C545 C0 04 .. bne LC541 ; C547 D0 F8 .. iny ; C549 C8 . jsr LC6CC ; C54A 20 CC C6 .. ldx #$00 ; C54D A2 00 .. LC54F: lda ($96),y ; C54F B1 96 .. cmp (L0092),y ; C551 D1 92 .. beq LC557 ; C553 F0 02 .. ldx #$FF ; C555 A2 FF .. LC557: jsr LCF63 ; C557 20 63 CF c. iny ; C55A C8 . cpy #$0B ; C55B C0 0B .. bne LC54F ; C55D D0 F0 .. jsr LC7F3 ; C55F 20 F3 C7 .. pla ; C562 68 h sta $9D ; C563 85 9D .. pla ; C565 68 h sta $012A ; C566 8D 2A 01 .*. pla ; C569 68 h jsr LCF69 ; C56A 20 69 CF i. pla ; C56D 68 h jsr LC805 ; C56E 20 05 C8 .. lda $9D ; C571 A5 9D .. jsr LCF69 ; C573 20 69 CF i. lda $012A ; C576 AD 2A 01 .*. jsr LCF69 ; C579 20 69 CF i. jsr LC7ED ; C57C 20 ED C7 .. txa ; C57F 8A . bmi LC52C ; C580 30 AA 0. lda $0304 ; C582 AD 04 03 ... sta $43 ; C585 85 43 .C lda $0305 ; C587 AD 05 03 ... sta $44 ; C58A 85 44 .D lda #$02 ; C58C A9 02 .. sta $49 ; C58E 85 49 .I ldy $0308 ; C590 AC 08 03 ... dey ; C593 88 . dey ; C594 88 . dey ; C595 88 . LC596: lda $96 ; C596 A5 96 .. bne LC59C ; C598 D0 02 .. dec $97 ; C59A C6 97 .. LC59C: dec $96 ; C59C C6 96 .. lda ($96,x) ; C59E A1 96 .. sta ($43),y ; C5A0 91 43 .C iny ; C5A2 C8 . dec $49 ; C5A3 C6 49 .I bne LC596 ; C5A5 D0 EF .. ldy #$FF ; C5A7 A0 FF .. lda #$00 ; C5A9 A9 00 .. sta L02E0 ; C5AB 8D E0 02 ... sta $02E1 ; C5AE 8D E1 02 ... LC5B1: sta L02E2 ; C5B1 8D E2 02 ... sta $02E3 ; C5B4 8D E3 02 ... LC5B7: jsr LC673 ; C5B7 20 73 C6 s. sta $47 ; C5BA 85 47 .G jsr LC673 ; C5BC 20 73 C6 s. sta $48 ; C5BF 85 48 .H and $47 ; C5C1 25 47 %G cmp #$FF ; C5C3 C9 FF .. bne LC5D1 ; C5C5 D0 0A .. jsr LC673 ; C5C7 20 73 C6 s. sta $47 ; C5CA 85 47 .G jsr LC673 ; C5CC 20 73 C6 s. sta $48 ; C5CF 85 48 .H LC5D1: jsr LC673 ; C5D1 20 73 C6 s. sta $45 ; C5D4 85 45 .E jsr LC673 ; C5D6 20 73 C6 s. sta $46 ; C5D9 85 46 .F lda $D01F ; C5DB AD 1F D0 ... and #$04 ; C5DE 29 04 ). bne LC61B ; C5E0 D0 39 .9 jsr LC7F3 ; C5E2 20 F3 C7 .. lda $48 ; C5E5 A5 48 .H jsr LCF69 ; C5E7 20 69 CF i. lda $47 ; C5EA A5 47 .G jsr LC805 ; C5EC 20 05 C8 .. lda $46 ; C5EF A5 46 .F jsr LCF69 ; C5F1 20 69 CF i. lda $45 ; C5F4 A5 45 .E jsr LCF69 ; C5F6 20 69 CF i. jsr LC7ED ; C5F9 20 ED C7 .. LC5FC: lda $D01F ; C5FC AD 1F D0 ... and #$02 ; C5FF 29 02 ). beq LC5FC ; C601 F0 F9 .. LC603: lda $D01F ; C603 AD 1F D0 ... and #$04 ; C606 29 04 ). bne LC61B ; C608 D0 11 .. lda $D01F ; C60A AD 1F D0 ... and #$01 ; C60D 29 01 ). bne LC614 ; C60F D0 03 .. jmp LC08F ; C611 4C 8F C0 L.. ; ---------------------------------------------------------------------------- LC614: lda $D01F ; C614 AD 1F D0 ... and #$02 ; C617 29 02 ). bne LC603 ; C619 D0 E8 .. LC61B: sec ; C61B 38 8 lda $45 ; C61C A5 45 .E sbc $47 ; C61E E5 47 .G sta $45 ; C620 85 45 .E lda $46 ; C622 A5 46 .F sbc $48 ; C624 E5 48 .H sta $46 ; C626 85 46 .F LC628: jsr LC673 ; C628 20 73 C6 s. ldx #$00 ; C62B A2 00 .. sta ($47,x) ; C62D 81 47 .G inc $47 ; C62F E6 47 .G bne LC635 ; C631 D0 02 .. inc $48 ; C633 E6 48 .H LC635: lda $45 ; C635 A5 45 .E bne LC63F ; C637 D0 06 .. lda $46 ; C639 A5 46 .F beq LC644 ; C63B F0 07 .. dec $46 ; C63D C6 46 .F LC63F: dec $45 ; C63F C6 45 .E jmp LC628 ; C641 4C 28 C6 L(. ; ---------------------------------------------------------------------------- LC644: lda L02E2 ; C644 AD E2 02 ... ora $02E3 ; C647 0D E3 02 ... bne LC64F ; C64A D0 03 .. jmp LC5B7 ; C64C 4C B7 C5 L.. ; ---------------------------------------------------------------------------- LC64F: lda $0300,x ; C64F BD 00 03 ... pha ; C652 48 H inx ; C653 E8 . cpx #$10 ; C654 E0 10 .. bne LC64F ; C656 D0 F7 .. tya ; C658 98 . pha ; C659 48 H jsr LC66D ; C65A 20 6D C6 m. pla ; C65D 68 h tay ; C65E A8 . ldx #$0F ; C65F A2 0F .. LC661: pla ; C661 68 h sta $0300,x ; C662 9D 00 03 ... dex ; C665 CA . bpl LC661 ; C666 10 F9 .. lda #$00 ; C668 A9 00 .. jmp LC5B1 ; C66A 4C B1 C5 L.. ; ---------------------------------------------------------------------------- LC66D: jmp (L02E2) ; C66D 6C E2 02 l.. ; ---------------------------------------------------------------------------- LC670: jmp (L02E0) ; C670 6C E0 02 l.. ; ---------------------------------------------------------------------------- LC673: iny ; C673 C8 . cpy $49 ; C674 C4 49 .I bne LC6A0 ; C676 D0 28 .( ldy $0308 ; C678 AC 08 03 ... dey ; C67B 88 . dey ; C67C 88 . lda ($43),y ; C67D B1 43 .C sta $030A ; C67F 8D 0A 03 ... dey ; C682 88 . lda ($43),y ; C683 B1 43 .C and $3E ; C685 25 3E %> sta $030B ; C687 8D 0B 03 ... ora $030A ; C68A 0D 0A 03 ... beq LC6A3 ; C68D F0 14 .. jsr LC25C ; C68F 20 5C C2 \. bmi LC6B3 ; C692 30 1F 0. ldy $0308 ; C694 AC 08 03 ... dey ; C697 88 . lda ($43),y ; C698 B1 43 .C sta $49 ; C69A 85 49 .I ldy #$FF ; C69C A0 FF .. bmi LC673 ; C69E 30 D3 0. LC6A0: lda ($43),y ; C6A0 B1 43 .C rts ; C6A2 60 ` ; ---------------------------------------------------------------------------- LC6A3: lda L02E0 ; C6A3 AD E0 02 ... ora $02E1 ; C6A6 0D E1 02 ... beq LC6B0 ; C6A9 F0 05 .. pla ; C6AB 68 h pla ; C6AC 68 h jsr LC670 ; C6AD 20 70 C6 p. LC6B0: jmp LC211 ; C6B0 4C 11 C2 L.. ; ---------------------------------------------------------------------------- LC6B3: pla ; C6B3 68 h pla ; C6B4 68 h LC6B5: jmp LC230 ; C6B5 4C 30 C2 L0. ; ---------------------------------------------------------------------------- sta $97 ; C6B8 85 97 .. lda #$20 ; C6BA A9 20 . LC6BC: cpy $97 ; C6BC C4 97 .. bcs LC6C5 ; C6BE B0 05 .. sta (L0092),y ; C6C0 91 92 .. iny ; C6C2 C8 . bne LC6BC ; C6C3 D0 F7 .. LC6C5: rts ; C6C5 60 ` ; ---------------------------------------------------------------------------- LC6C6: inc L0092 ; C6C6 E6 92 .. dey ; C6C8 88 . bne LC6C6 ; C6C9 D0 FB .. rts ; C6CB 60 ` ; ---------------------------------------------------------------------------- LC6CC: jsr LC7C3 ; C6CC 20 C3 C7 .. dey ; C6CF 88 . bne LC6CC ; C6D0 D0 FA .. rts ; C6D2 60 ` ; ---------------------------------------------------------------------------- LC6D3: stx $9A ; C6D3 86 9A .. tsx ; C6D5 BA . txa ; C6D6 8A . ldx $9A ; C6D7 A6 9A .. clc ; C6D9 18 . adc #$12 ; C6DA 69 12 i. sta L0094 ; C6DC 85 94 .. lda #$01 ; C6DE A9 01 .. sta $95 ; C6E0 85 95 .. ldy #$06 ; C6E2 A0 06 .. lda (L0094),y ; C6E4 B1 94 .. sta $97 ; C6E6 85 97 .. dey ; C6E8 88 . lda (L0094),y ; C6E9 B1 94 .. sta $96 ; C6EB 85 96 .. rts ; C6ED 60 ` ; ---------------------------------------------------------------------------- LC6EE: jsr LC6D3 ; C6EE 20 D3 C6 .. rts ; C6F1 60 ` ; ---------------------------------------------------------------------------- LC6F2: pla ; C6F2 68 h sta L0092 ; C6F3 85 92 .. pla ; C6F5 68 h sta $93 ; C6F6 85 93 .. tya ; C6F8 98 . pha ; C6F9 48 H ldy #$00 ; C6FA A0 00 .. LC6FC: jsr LC7BC ; C6FC 20 BC C7 .. lda (L0092),y ; C6FF B1 92 .. beq LC709 ; C701 F0 06 .. jsr LCF63 ; C703 20 63 CF c. jmp LC6FC ; C706 4C FC C6 L.. ; ---------------------------------------------------------------------------- LC709: pla ; C709 68 h tay ; C70A A8 . lda $93 ; C70B A5 93 .. pha ; C70D 48 H lda L0092 ; C70E A5 92 .. pha ; C710 48 H rts ; C711 60 ` ; ---------------------------------------------------------------------------- eor $3A ; C712 45 3A E: .byte $9B ; C714 9B . LC715: ldx #$00 ; C715 A2 00 .. stx $0F ; C717 86 0F .. stx $0120 ; C719 8E 20 01 . . stx $9F ; C71C 86 9F .. lda $0344,x ; C71E BD 44 03 .D. sta $9C ; C721 85 9C .. lda $0345,x ; C723 BD 45 03 .E. sta $9D ; C726 85 9D .. lda #$9B ; C728 A9 9B .. sta ($9C,x) ; C72A 81 9C .. lda #$03 ; C72C A9 03 .. sta $0342,x ; C72E 9D 42 03 .B. lda #$12 ; C731 A9 12 .. sta $0344,x ; C733 9D 44 03 .D. lda #$C7 ; C736 A9 C7 .. sta $0345,x ; C738 9D 45 03 .E. lda #$0C ; C73B A9 0C .. sta $034A,x ; C73D 9D 4A 03 .J. jsr LE456 ; C740 20 56 E4 V. lda #$48 ; C743 A9 48 .H sta $0125 ; C745 8D 25 01 .%. lda #$CF ; C748 A9 CF .. sta $0126 ; C74A 8D 26 01 .&. lda #$01 ; C74D A9 01 .. sta $0123 ; C74F 8D 23 01 .#. sta $0124 ; C752 8D 24 01 .$. lda #$2F ; C755 A9 2F ./ sta $0206 ; C757 8D 06 02 ... lda #$C0 ; C75A A9 C0 .. sta $0207 ; C75C 8D 07 02 ... ldy #$03 ; C75F A0 03 .. LC761: lda $E48A,y ; C761 B9 8A E4 ... sta $020A,y ; C764 99 0A 02 ... dey ; C767 88 . bpl LC761 ; C768 10 F7 .. jsr LC6F2 ; C76A 20 F2 C6 .. COPYRIGHT: .byte $9B ; C76D 9B . .byte "David Young " ; C76E 44 61 76 69 64 20 59 6F David Yo ; C776 75 6E 67 20 ung OMNIMONXL: .byte $CF,$CD,$CE,$C9,$CD,$CF,$CE,$D8 ; C77A CF CD CE C9 CD CF CE D8 ........ .byte $CC ; C782 CC . .byte " (C)1984" ; C783 20 28 43 29 31 39 38 34 (C)1984 .byte $9B,$9B,$00 ; C78B 9B 9B 00 ... ; ---------------------------------------------------------------------------- OmniRestD: rts ; C78E 60 ` ; ---------------------------------------------------------------------------- sty $9B ; C78F 84 9B .. lda #$0C ; C791 A9 0C .. sta $0342,x ; C793 9D 42 03 .B. jsr LE456 ; C796 20 56 E4 V. ldy $9B ; C799 A4 9B .. rts ; C79B 60 ` ; ---------------------------------------------------------------------------- sty $9B ; C79C 84 9B .. pha ; C79E 48 H lda $0340,x ; C79F BD 40 03 .@. cmp #$FF ; C7A2 C9 FF .. beq LC7B8 ; C7A4 F0 12 .. lda #$00 ; C7A6 A9 00 .. sta $0348,x ; C7A8 9D 48 03 .H. sta $0349,x ; C7AB 9D 49 03 .I. lda #$0B ; C7AE A9 0B .. sta $0342,x ; C7B0 9D 42 03 .B. pla ; C7B3 68 h pha ; C7B4 48 H jsr LE456 ; C7B5 20 56 E4 V. LC7B8: pla ; C7B8 68 h ldy $9B ; C7B9 A4 9B .. rts ; C7BB 60 ` ; ---------------------------------------------------------------------------- LC7BC: inc L0092 ; C7BC E6 92 .. bne LC7C2 ; C7BE D0 02 .. inc $93 ; C7C0 E6 93 .. LC7C2: rts ; C7C2 60 ` ; ---------------------------------------------------------------------------- LC7C3: inc $96 ; C7C3 E6 96 .. LC7C5: bne LC7C9 ; C7C5 D0 02 .. inc $97 ; C7C7 E6 97 .. LC7C9: rts ; C7C9 60 ` ; ---------------------------------------------------------------------------- LC7CA: sec ; C7CA 38 8 lda L0094 ; C7CB A5 94 .. sbc $96 ; C7CD E5 96 .. lda $95 ; C7CF A5 95 .. sbc $97 ; C7D1 E5 97 .. rts ; C7D3 60 ` ; ---------------------------------------------------------------------------- LC7D4: sec ; C7D4 38 8 sbc #$30 ; C7D5 E9 30 .0 bmi LC7E8 ; C7D7 30 0F 0. cmp #$0A ; C7D9 C9 0A .. bmi LC7EA ; C7DB 30 0D 0. sec ; C7DD 38 8 sbc #$07 ; C7DE E9 07 .. cmp #$0A ; C7E0 C9 0A .. bmi LC7E8 ; C7E2 30 04 0. cmp #$10 ; C7E4 C9 10 .. bmi LC7EA ; C7E6 30 02 0. LC7E8: lda #$FF ; C7E8 A9 FF .. LC7EA: cmp #$00 ; C7EA C9 00 .. rts ; C7EC 60 ` ; ---------------------------------------------------------------------------- LC7ED: lda #$9B ; C7ED A9 9B .. jsr LCF63 ; C7EF 20 63 CF c. rts ; C7F2 60 ` ; ---------------------------------------------------------------------------- LC7F3: lda #$01 ; C7F3 A9 01 .. LC7F5: stx $9C ; C7F5 86 9C .. tax ; C7F7 AA . beq LC802 ; C7F8 F0 08 .. LC7FA: lda #$20 ; C7FA A9 20 . jsr LCF63 ; C7FC 20 63 CF c. dex ; C7FF CA . bne LC7FA ; C800 D0 F8 .. LC802: ldx $9C ; C802 A6 9C .. rts ; C804 60 ` ; ---------------------------------------------------------------------------- LC805: jsr LCF69 ; C805 20 69 CF i. lda #$01 ; C808 A9 01 .. jsr LC7F5 ; C80A 20 F5 C7 .. rts ; C80D 60 ` ; ---------------------------------------------------------------------------- LC80E: lda $97 ; C80E A5 97 .. jsr LCF69 ; C810 20 69 CF i. lda $96 ; C813 A5 96 .. jsr LCF69 ; C815 20 69 CF i. rts ; C818 60 ` ; ---------------------------------------------------------------------------- and #$0F ; C819 29 0F ). cmp #$0A ; C81B C9 0A .. bmi LC821 ; C81D 30 02 0. adc #$06 ; C81F 69 06 i. LC821: adc #$30 ; C821 69 30 i0 rts ; C823 60 ` ; ---------------------------------------------------------------------------- LC824: jsr LCF9F ; C824 20 9F CF .. LC827: ldy #$00 ; C827 A0 00 .. LC829: lda ($96),y ; C829 B1 96 .. pha ; C82B 48 H lda $98 ; C82C A5 98 .. bmi LC837 ; C82E 30 07 0. pla ; C830 68 h jsr LC805 ; C831 20 05 C8 .. jmp LC83B ; C834 4C 3B C8 L;. ; ---------------------------------------------------------------------------- LC837: pla ; C837 68 h jsr LCF6F ; C838 20 6F CF o. LC83B: iny ; C83B C8 . cpy #$08 ; C83C C0 08 .. bne LC829 ; C83E D0 E9 .. rts ; C840 60 ` ; ---------------------------------------------------------------------------- lda $96 ; C841 A5 96 .. sta L0094 ; C843 85 94 .. lda $97 ; C845 A5 97 .. sta $95 ; C847 85 95 .. rts ; C849 60 ` ; ---------------------------------------------------------------------------- LC84A: lda L0094 ; C84A A5 94 .. sta $96 ; C84C 85 96 .. lda $95 ; C84E A5 95 .. sta $97 ; C850 85 97 .. rts ; C852 60 ` ; ---------------------------------------------------------------------------- ldx #$FF ; C853 A2 FF .. LC855: inx ; C855 E8 . cpx #$03 ; C856 E0 03 .. beq LC89E ; C858 F0 44 .D sta $D5,x ; C85A 95 D5 .. asl $D5,x ; C85C 16 D5 .. asl $D5,x ; C85E 16 D5 .. asl $D5,x ; C860 16 D5 .. asl $D5,x ; C862 16 D5 .. jsr LC7BC ; C864 20 BC C7 .. lda (L0092),y ; C867 B1 92 .. jsr LC7D4 ; C869 20 D4 C7 .. bpl LC87B ; C86C 10 0D .. ldy #$04 ; C86E A0 04 .. LC870: lsr $D5 ; C870 46 D5 F. ror $D6 ; C872 66 D6 f. ror $D7 ; C874 66 D7 f. dey ; C876 88 . bne LC870 ; C877 D0 F7 .. beq LC889 ; C879 F0 0E .. LC87B: ora $D5,x ; C87B 15 D5 .. sta $D5,x ; C87D 95 D5 .. jsr LC7BC ; C87F 20 BC C7 .. lda (L0092),y ; C882 B1 92 .. jsr LC7D4 ; C884 20 D4 C7 .. bpl LC855 ; C887 10 CC .. LC889: txa ; C889 8A . clc ; C88A 18 . adc #$40 ; C88B 69 40 i@ sta $D4 ; C88D 85 D4 .. jsr LD9D2 ; C88F 20 D2 D9 .. bcs LC89E ; C892 B0 0A .. lda $D4 ; C894 A5 D4 .. sta L0094 ; C896 85 94 .. lda $D5 ; C898 A5 D5 .. sta $95 ; C89A 85 95 .. ldy #$00 ; C89C A0 00 .. LC89E: rts ; C89E 60 ` ; ---------------------------------------------------------------------------- LC89F: jsr LCF99 ; C89F 20 99 CF .. sec ; C8A2 38 8 lda L0094 ; C8A3 A5 94 .. sbc $96 ; C8A5 E5 96 .. sta $012A ; C8A7 8D 2A 01 .*. lda $95 ; C8AA A5 95 .. sbc $97 ; C8AC E5 97 .. bcc LC8B7 ; C8AE 90 07 .. sta $012B ; C8B0 8D 2B 01 .+. jsr LCF75 ; C8B3 20 75 CF u. rts ; C8B6 60 ` ; ---------------------------------------------------------------------------- LC8B7: lda #$FF ; C8B7 A9 FF .. rts ; C8B9 60 ` ; ---------------------------------------------------------------------------- LC8BA: jsr LC6F2 ; C8BA 20 F2 C6 .. INPUTERR := * + 1 sta $4E49,x ; C8BD 9D 49 4E .IN .byte "PUT ERR" ; C8C0 50 55 54 20 45 52 52 PUT ERR .byte $9B,$00 ; C8C7 9B 00 .. ; ---------------------------------------------------------------------------- OmniRestE: jmp LC08F ; C8C9 4C 8F C0 L.. ; ---------------------------------------------------------------------------- ; nRelocate = $C8CC nRelocate: jsr LC89F ; C8CC 20 9F C8 .. bpl LC8D4 ; C8CF 10 03 .. jmp LC977 ; C8D1 4C 77 C9 Lw. ; ---------------------------------------------------------------------------- LC8D4: lda $96 ; C8D4 A5 96 .. sta $012C ; C8D6 8D 2C 01 .,. lda $97 ; C8D9 A5 97 .. sta $012D ; C8DB 8D 2D 01 .-. lda L0094 ; C8DE A5 94 .. sta $012E ; C8E0 8D 2E 01 ... lda $95 ; C8E3 A5 95 .. sta $012F ; C8E5 8D 2F 01 ./. jsr LCF75 ; C8E8 20 75 CF u. bmi LC8F7 ; C8EB 30 0A 0. jsr LC84A ; C8ED 20 4A C8 J. jsr LCF75 ; C8F0 20 75 CF u. bmi LC901 ; C8F3 30 0C 0. bpl LC912 ; C8F5 10 1B .. LC8F7: lda $012E ; C8F7 AD 2E 01 ... sta $96 ; C8FA 85 96 .. lda $012F ; C8FC AD 2F 01 ./. sta $97 ; C8FF 85 97 .. LC901: clc ; C901 18 . lda $012E ; C902 AD 2E 01 ... adc $012A ; C905 6D 2A 01 m*. sta L0094 ; C908 85 94 .. lda $012F ; C90A AD 2F 01 ./. adc $012B ; C90D 6D 2B 01 m+. sta $95 ; C910 85 95 .. LC912: jsr LC7CA ; C912 20 CA C7 .. bcc LC977 ; C915 90 60 .` LC917: jsr LCDE2 ; C917 20 E2 CD .. cmp #$00 ; C91A C9 00 .. beq LC97A ; C91C F0 5C .\ tay ; C91E A8 . ldx LCE28,y ; C91F BE 28 CE .(. cpx #$03 ; C922 E0 03 .. bne LC969 ; C924 D0 43 .C ldy #$00 ; C926 A0 00 .. jsr LC7C3 ; C928 20 C3 C7 .. lda $96 ; C92B A5 96 .. sta L0092 ; C92D 85 92 .. lda $97 ; C92F A5 97 .. sta $93 ; C931 85 93 .. lda ($96),y ; C933 B1 96 .. tax ; C935 AA . jsr LC7C3 ; C936 20 C3 C7 .. lda ($96),y ; C939 B1 96 .. pha ; C93B 48 H sec ; C93C 38 8 txa ; C93D 8A . sbc $012C ; C93E ED 2C 01 .,. tax ; C941 AA . pla ; C942 68 h sbc $012D ; C943 ED 2D 01 .-. sta $9C ; C946 85 9C .. bcc LC967 ; C948 90 1D .. cmp $012B ; C94A CD 2B 01 .+. bcc LC959 ; C94D 90 0A .. bne LC967 ; C94F D0 16 .. txa ; C951 8A . cmp $012A ; C952 CD 2A 01 .*. bcc LC959 ; C955 90 02 .. bne LC967 ; C957 D0 0E .. LC959: clc ; C959 18 . txa ; C95A 8A . adc $012E ; C95B 6D 2E 01 m.. sta (L0092),y ; C95E 91 92 .. lda $9C ; C960 A5 9C .. adc $012F ; C962 6D 2F 01 m/. sta ($96),y ; C965 91 96 .. LC967: ldx #$01 ; C967 A2 01 .. LC969: jsr LC7C3 ; C969 20 C3 C7 .. dex ; C96C CA . bne LC969 ; C96D D0 FA .. jsr LC7CA ; C96F 20 CA C7 .. bcs LC917 ; C972 B0 A3 .. jmp LC08F ; C974 4C 8F C0 L.. ; ---------------------------------------------------------------------------- LC977: jmp LC8BA ; C977 4C BA C8 L.. ; ---------------------------------------------------------------------------- LC97A: jsr LCD54 ; C97A 20 54 CD T. jmp LC08F ; C97D 4C 8F C0 L.. ; ---------------------------------------------------------------------------- ; E steps - Execute mem in steps (plus options) eExec: lda #$36 ; C980 A9 36 .6 sta $0206 ; C982 8D 06 02 ... jsr LCF75 ; C985 20 75 CF u. bpl LC98E ; C988 10 04 .. lda #$01 ; C98A A9 01 .. sta L0094 ; C98C 85 94 .. LC98E: lda L0094 ; C98E A5 94 .. sta $0120 ; C990 8D 20 01 . . LC993: jsr LC6EE ; C993 20 EE C6 .. ldy #$00 ; C996 A0 00 .. lda ($96),y ; C998 B1 96 .. ldx #$00 ; C99A A2 00 .. LC99C: cmp LC9F3,x ; C99C DD F3 C9 ... beq LC9A8 ; C99F F0 07 .. inx ; C9A1 E8 . cpx #$0F ; C9A2 E0 0F .. LC9A5 := * + 1 bne LC99C ; C9A4 D0 F6 .. beq LC9C0 ; C9A6 F0 18 .. LC9A8: txa ; C9A8 8A . asl a ; C9A9 0A . tax ; C9AA AA . lda LCA02,x ; C9AB BD 02 CA ... sta L0092 ; C9AE 85 92 .. lda LCA03,x ; C9B0 BD 03 CA ... sta $93 ; C9B3 85 93 .. ldy #$04 ; C9B5 A0 04 .. lda (L0094),y ; C9B7 B1 94 .. ldy #$00 ; C9B9 A0 00 .. pha ; C9BB 48 H plp ; C9BC 28 ( jmp (L0092) ; C9BD 6C 92 00 l.. ; ---------------------------------------------------------------------------- LC9C0: jsr LCDE2 ; C9C0 20 E2 CD .. tay ; C9C3 A8 . lda LCE28,y ; C9C4 B9 28 CE .(. LC9C7: tay ; C9C7 A8 . clc ; C9C8 18 . adc $96 ; C9C9 65 96 e. sta $0121 ; C9CB 8D 21 01 .!. lda $97 ; C9CE A5 97 .. adc #$00 ; C9D0 69 00 i. sta $0122 ; C9D2 8D 22 01 .". lda #$00 ; C9D5 A9 00 .. sta $012A,y ; C9D7 99 2A 01 .*. LC9DA: dey ; C9DA 88 . bmi LC9E5 ; C9DB 30 08 0. lda ($96),y ; C9DD B1 96 .. sta $012A,y ; C9DF 99 2A 01 .*. jmp LC9DA ; C9E2 4C DA C9 L.. ; ---------------------------------------------------------------------------- LC9E5: ldy #$05 ; C9E5 A0 05 .. lda #$2A ; C9E7 A9 2A .* sta (L0094),y ; C9E9 91 94 .. iny ; C9EB C8 . lda #$01 ; C9EC A9 01 .. sta (L0094),y ; C9EE 91 94 .. jmp LC139 ; C9F0 4C 39 C1 L9. ; ---------------------------------------------------------------------------- LC9F3: bcc LC9A5 ; C9F3 90 B0 .. beq LC9C7 ; C9F5 F0 D0 .. bpl LCA29 ; C9F7 10 30 .0 bvs LCA4B ; C9F9 70 50 pP jmp L206C ; C9FB 4C 6C 20 Ll ; ---------------------------------------------------------------------------- rti ; C9FE 40 @ ; ---------------------------------------------------------------------------- rts ; C9FF 60 ` ; ---------------------------------------------------------------------------- brk ; CA00 00 . sei ; CA01 78 x LCA02: LCA03 := * + 1 jsr L24CA ; CA02 20 CA 24 .$ dex ; CA05 CA . plp ; CA06 28 ( dex ; CA07 CA . bit $30CA ; CA08 2C CA 30 ,.0 dex ; CA0B CA . .byte $34 ; CA0C 34 4 dex ; CA0D CA . sec ; CA0E 38 8 dex ; CA0F CA . .byte $3C ; CA10 3C < dex ; CA11 CA . adc $76CA ; CA12 6D CA 76 m.v dex ; CA15 CA . .byte $53 ; CA16 53 S dex ; CA17 CA . lda $93CA ; CA18 AD CA 93 ... dex ; CA1B CA . .byte $C3 ; CA1C C3 . dex ; CA1D CA . .byte $C3 ; CA1E C3 . dex ; CA1F CA . bcc LCA40 ; CA20 90 1E .. bcs LC9C0 ; CA22 B0 9C .. bcs LCA40 ; CA24 B0 1A .. bcc LC9C0 ; CA26 90 98 .. LCA29 := * + 1 beq LCA40 ; CA28 F0 16 .. bne LC9C0 ; CA2A D0 94 .. bne LCA40 ; CA2C D0 12 .. beq LC9C0 ; CA2E F0 90 .. bpl LCA40 ; CA30 10 0E .. bmi LC9C0 ; CA32 30 8C 0. bmi LCA40 ; CA34 30 0A 0. bpl LC9C0 ; CA36 10 88 .. bvs LCA40 ; CA38 70 06 p. bvc LC9C0 ; CA3A 50 84 P. bvc LCA40 ; CA3C 50 02 P. bvs LC9C0 ; CA3E 70 80 p. LCA40: jsr LC7C3 ; CA40 20 C3 C7 .. jsr LCEDE ; CA43 20 DE CE .. lda $96 ; CA46 A5 96 .. sta $0121 ; CA48 8D 21 01 .!. LCA4B: lda $97 ; CA4B A5 97 .. sta $0122 ; CA4D 8D 22 01 .". jmp LC046 ; CA50 4C 46 C0 LF. ; ---------------------------------------------------------------------------- jsr LCACA ; CA53 20 CA CA .. jsr LC7C3 ; CA56 20 C3 C7 .. lda $96 ; CA59 A5 96 .. sta $9B ; CA5B 85 9B .. lda $97 ; CA5D A5 97 .. jsr LCCF5 ; CA5F 20 F5 CC .. lda $9B ; CA62 A5 9B .. jsr LCCF5 ; CA64 20 F5 CC .. jsr LCAD9 ; CA67 20 D9 CA .. jmp LC046 ; CA6A 4C 46 C0 LF. ; ---------------------------------------------------------------------------- jsr LCACA ; CA6D 20 CA CA .. jsr LCAD9 ; CA70 20 D9 CA .. jmp LC046 ; CA73 4C 46 C0 LF. ; ---------------------------------------------------------------------------- jsr LC7C3 ; CA76 20 C3 C7 .. lda ($96),y ; CA79 B1 96 .. sta L0092 ; CA7B 85 92 .. iny ; CA7D C8 . lda ($96),y ; CA7E B1 96 .. sta $93 ; CA80 85 93 .. lda (L0092),y ; CA82 B1 92 .. sta $0122 ; CA84 8D 22 01 .". dey ; CA87 88 . lda (L0092),y ; CA88 B1 92 .. sta $0121 ; CA8A 8D 21 01 .!. jsr LCAD9 ; CA8D 20 D9 CA .. jmp LC046 ; CA90 4C 46 C0 LF. ; ---------------------------------------------------------------------------- jsr LCD1A ; CA93 20 1A CD .. sta $0121 ; CA96 8D 21 01 .!. jsr LCD1A ; CA99 20 1A CD .. sta $0122 ; CA9C 8D 22 01 .". inc $0121 ; CA9F EE 21 01 .!. bne LCAA7 ; CAA2 D0 03 .. inc $0122 ; CAA4 EE 22 01 .". LCAA7: jsr LCAD9 ; CAA7 20 D9 CA .. jmp LC046 ; CAAA 4C 46 C0 LF. ; ---------------------------------------------------------------------------- jsr LCD1A ; CAAD 20 1A CD .. ldy #$05 ; CAB0 A0 05 .. sta (L0094),y ; CAB2 91 94 .. jsr LCD1A ; CAB4 20 1A CD .. sta $0121 ; CAB7 8D 21 01 .!. jsr LCD1A ; CABA 20 1A CD .. sta $0122 ; CABD 8D 22 01 .". jmp LC046 ; CAC0 4C 46 C0 LF. ; ---------------------------------------------------------------------------- lda #$00 ; CAC3 A9 00 .. sta $0120 ; CAC5 8D 20 01 . . beq LCB13 ; CAC8 F0 49 .I LCACA: jsr LC7C3 ; CACA 20 C3 C7 .. lda ($96),y ; CACD B1 96 .. sta $0121 ; CACF 8D 21 01 .!. iny ; CAD2 C8 . lda ($96),y ; CAD3 B1 96 .. sta $0122 ; CAD5 8D 22 01 .". rts ; CAD8 60 ` ; ---------------------------------------------------------------------------- LCAD9: lda $0122 ; CAD9 AD 22 01 .". cmp #$C0 ; CADC C9 C0 .. bcc LCB16 ; CADE 90 36 .6 pla ; CAE0 68 h pla ; CAE1 68 h jsr LC6EE ; CAE2 20 EE C6 .. lda $0121 ; CAE5 AD 21 01 .!. sta (L0094),y ; CAE8 91 94 .. iny ; CAEA C8 . lda $0122 ; CAEB AD 22 01 .". sta (L0094),y ; CAEE 91 94 .. jsr LCD1A ; CAF0 20 1A CD .. sta $0121 ; CAF3 8D 21 01 .!. jsr LCD1A ; CAF6 20 1A CD .. sta $0122 ; CAF9 8D 22 01 .". inc $0121 ; CAFC EE 21 01 .!. bne LCB04 ; CAFF D0 03 .. inc $0122 ; CB01 EE 22 01 .". LCB04: lda #$00 ; CB04 A9 00 .. sta $012A ; CB06 8D 2A 01 .*. lda #$01 ; CB09 A9 01 .. jsr LCCF5 ; CB0B 20 F5 CC .. lda #$29 ; CB0E A9 29 .) jsr LCCF5 ; CB10 20 F5 CC .. LCB13: jmp LC139 ; CB13 4C 39 C1 L9. ; ---------------------------------------------------------------------------- LCB16: rts ; CB16 60 ` ; ---------------------------------------------------------------------------- ; cChange = $CB17 cChange:jsr LC6EE ; CB17 20 EE C6 .. jsr LC84A ; CB1A 20 4A C8 J. jsr LCF75 ; CB1D 20 75 CF u. bmi LCB3A ; CB20 30 18 0. ldy #$06 ; CB22 A0 06 .. lda $95 ; CB24 A5 95 .. sta ($96),y ; CB26 91 96 .. dey ; CB28 88 . lda L0094 ; CB29 A5 94 .. sta ($96),y ; CB2B 91 96 .. dey ; CB2D 88 . LCB2E: jsr LCF75 ; CB2E 20 75 CF u. bmi LCB3A ; CB31 30 07 0. lda L0094 ; CB33 A5 94 .. sta ($96),y ; CB35 91 96 .. dey ; CB37 88 . bne LCB2E ; CB38 D0 F4 .. LCB3A: jsr LCB40 ; CB3A 20 40 CB @. jmp LC08F ; CB3D 4C 8F C0 L.. ; ---------------------------------------------------------------------------- LCB40: jsr LC6F2 ; CB40 20 F2 C6 .. REGISTERS := * + 1 sta $2020,x ; CB43 9D 20 20 . .byte "PC NV-BDIZC AC X Y SP" ; CB46 50 43 20 4E 56 2D 42 44 PC NV-BD ; CB4E 49 5A 43 20 41 43 20 58 IZC AC X ; CB56 20 20 59 20 20 53 50 Y SP .byte $9B,$9D ; CB5D 9B 9D .. .byte "C" ; CB5F 43 C .byte $00 ; CB60 00 . ; ---------------------------------------------------------------------------- OmniRestE: jsr LC6D3 ; CB61 20 D3 C6 .. jsr LC80E ; CB64 20 0E C8 .. lda #$03 ; CB67 A9 03 .. jsr LC7F5 ; CB69 20 F5 C7 .. dey ; CB6C 88 . LCB6D: lda (L0094),y ; CB6D B1 94 .. jsr LCF69 ; CB6F 20 69 CF i. lda #$01 ; CB72 A9 01 .. cpy #$04 ; CB74 C0 04 .. bne LCB7A ; CB76 D0 02 .. lda #$04 ; CB78 A9 04 .. LCB7A: jsr LC7F5 ; CB7A 20 F5 C7 .. dey ; CB7D 88 . bne LCB6D ; CB7E D0 ED .. lda #$31 ; CB80 A9 31 .1 jsr LCF63 ; CB82 20 63 CF c. clc ; CB85 18 . lda #$06 ; CB86 A9 06 .. adc L0094 ; CB88 65 94 e. jsr LCF69 ; CB8A 20 69 CF i. jsr LC7ED ; CB8D 20 ED C7 .. rts ; CB90 60 ` ; ---------------------------------------------------------------------------- ; yAssemble = $CB91 yAssemble: ldy #$00 ; CB91 A0 00 .. beq LCBB9 ; CB93 F0 24 .$ LCB95: jsr LC6F2 ; CB95 20 F2 C6 .. sta $2059,x ; CB98 9D 59 20 .Y brk ; CB9B 00 . jsr LC80E ; CB9C 20 0E C8 .. jsr LC7F3 ; CB9F 20 F3 C7 .. jsr LC161 ; CBA2 20 61 C1 a. ldy #$00 ; CBA5 A0 00 .. ldx #$00 ; CBA7 A2 00 .. LCBA9: lda (L0092),y ; CBA9 B1 92 .. cmp #$3E ; CBAB C9 3E .> bne LCBB5 ; CBAD D0 06 .. jsr LC7BC ; CBAF 20 BC C7 .. jmp LCBA9 ; CBB2 4C A9 CB L.. ; ---------------------------------------------------------------------------- LCBB5: cmp #$59 ; CBB5 C9 59 .Y bne LCBC1 ; CBB7 D0 08 .. LCBB9: jsr LCF75 ; CBB9 20 75 CF u. bmi LCBC7 ; CBBC 30 09 0. jsr LC84A ; CBBE 20 4A C8 J. LCBC1: lda (L0092),y ; CBC1 B1 92 .. cmp #$9B ; CBC3 C9 9B .. bne LCBCA ; CBC5 D0 03 .. LCBC7: jmp LC08F ; CBC7 4C 8F C0 L.. ; ---------------------------------------------------------------------------- LCBCA: lda (L0092),y ; CBCA B1 92 .. cmp #$20 ; CBCC C9 20 . beq LCBE0 ; CBCE F0 10 .. cmp #$2C ; CBD0 C9 2C ., beq LCBE0 ; CBD2 F0 0C .. cmp #$29 ; CBD4 C9 29 .) beq LCBE0 ; CBD6 F0 08 .. sta $012A,x ; CBD8 9D 2A 01 .*. cmp #$9B ; CBDB C9 9B .. beq LCBE3 ; CBDD F0 04 .. inx ; CBDF E8 . LCBE0: iny ; CBE0 C8 . bne LCBCA ; CBE1 D0 E7 .. LCBE3: ldy #$FF ; CBE3 A0 FF .. ldx #$01 ; CBE5 A2 01 .. stx $9C ; CBE7 86 9C .. inx ; CBE9 E8 . lda #$2A ; CBEA A9 2A .* sta L0092 ; CBEC 85 92 .. lda #$01 ; CBEE A9 01 .. sta $93 ; CBF0 85 93 .. LCBF2: jsr LCC0F ; CBF2 20 0F CC .. bne LCC03 ; CBF5 D0 0C .. jsr LCC0F ; CBF7 20 0F CC .. bne LCC04 ; CBFA D0 08 .. jsr LCC0F ; CBFC 20 0F CC .. beq LCC42 ; CBFF F0 41 .A bne LCC05 ; CC01 D0 02 .. LCC03: inx ; CC03 E8 . LCC04: inx ; CC04 E8 . LCC05: inc $9C ; CC05 E6 9C .. cpx #$AA ; CC07 E0 AA .. beq LCC1D ; CC09 F0 12 .. ldy #$FF ; CC0B A0 FF .. bne LCBF2 ; CC0D D0 E3 .. LCC0F: inx ; CC0F E8 . iny ; CC10 C8 . lda (L0092),y ; CC11 B1 92 .. jsr PUTx ; CC13 20 AB CF .. cmp $5548,x ; CC16 DD 48 55 .HU jsr GETx ; CC19 20 B9 CF .. rts ; CC1C 60 ` ; ---------------------------------------------------------------------------- LCC1D: jsr LCC37 ; CC1D 20 37 CC 7. jsr LC6F2 ; CC20 20 F2 C6 .. cmp #$CC ; CC23 C9 CC .. cpy LC7C5 ; CC25 CC C5 C7 ... cmp ($CC,x) ; CC28 C1 CC .. sbc a:$9B,x ; CC2A FD 9B 00 ... jsr LC6F2 ; CC2D 20 F2 C6 .. .byte $9C ; CC30 9C . sta a:$9B,x ; CC31 9D 9B 00 ... jmp LCB95 ; CC34 4C 95 CB L.. ; ---------------------------------------------------------------------------- LCC37: jsr LC6F2 ; CC37 20 F2 C6 .. sta $A900,x ; CC3A 9D 00 A9 ... asl a ; CC3D 0A . jsr LC7F5 ; CC3E 20 F5 C7 .. rts ; CC41 60 ` ; ---------------------------------------------------------------------------- LCC42: jsr LC7BC ; CC42 20 BC C7 .. dey ; CC45 88 . bpl LCC42 ; CC46 10 FA .. iny ; CC48 C8 . lda (L0092),y ; CC49 B1 92 .. ldx #$00 ; CC4B A2 00 .. jsr LCF5D ; CC4D 20 5D CF ]. cpx #$04 ; CC50 E0 04 .. bcc LCC62 ; CC52 90 0E .. beq LCC69 ; CC54 F0 13 .. cpx #$10 ; CC56 E0 10 .. bcc LCC70 ; CC58 90 16 .. beq LCC78 ; CC5A F0 1C .. cpx #$16 ; CC5C E0 16 .. beq LCC83 ; CC5E F0 23 .# bne LCC1D ; CC60 D0 BB .. LCC62: jsr OmniRestG ; CC62 20 4B CF K. beq LCC1D ; CC65 F0 B6 .. bne LCC85 ; CC67 D0 1C .. LCC69: jsr LCF51 ; CC69 20 51 CF Q. beq LCC1D ; CC6C F0 AF .. bne LCC85 ; CC6E D0 15 .. LCC70: jsr LCF57 ; CC70 20 57 CF W. txa ; CC73 8A . beq LCC1D ; CC74 F0 A7 .. bne LCC85 ; CC76 D0 0D .. LCC78: iny ; CC78 C8 . lda (L0092),y ; CC79 B1 92 .. cmp #$9B ; CC7B C9 9B .. bne LCC1D ; CC7D D0 9E .. ldx #$04 ; CC7F A2 04 .. bne LCC85 ; CC81 D0 02 .. LCC83: ldx #$05 ; CC83 A2 05 .. LCC85: lda #$55 ; CC85 A9 55 .U sta $93 ; CC87 85 93 .. lda #$F3 ; CC89 A9 F3 .. sta L0092 ; CC8B 85 92 .. LCC8D: ldy #$00 ; CC8D A0 00 .. lda $9C ; CC8F A5 9C .. jsr PUTx ; CC91 20 AB CF .. cmp (L0092),y ; CC94 D1 92 .. jsr GETx ; CC96 20 B9 CF .. bne LCCA7 ; CC99 D0 0C .. txa ; CC9B 8A . iny ; CC9C C8 . jsr PUTx ; CC9D 20 AB CF .. cmp (L0092),y ; CCA0 D1 92 .. jsr GETx ; CCA2 20 B9 CF .. beq LCCBB ; CCA5 F0 14 .. LCCA7: jsr LC7BC ; CCA7 20 BC C7 .. jsr LC7BC ; CCAA 20 BC C7 .. sec ; CCAD 38 8 lda #$F2 ; CCAE A9 F2 .. sbc L0092 ; CCB0 E5 92 .. lda #$57 ; CCB2 A9 57 .W sbc $93 ; CCB4 E5 93 .. bcs LCC8D ; CCB6 B0 D5 .. jmp LCC1D ; CCB8 4C 1D CC L.. ; ---------------------------------------------------------------------------- LCCBB: ldy #$00 ; CCBB A0 00 .. sec ; CCBD 38 8 lda L0092 ; CCBE A5 92 .. sbc #$F3 ; CCC0 E9 F3 .. sta L0092 ; CCC2 85 92 .. lda $93 ; CCC4 A5 93 .. sbc #$55 ; CCC6 E9 55 .U lsr a ; CCC8 4A J ror L0092 ; CCC9 66 92 f. lda L0092 ; CCCB A5 92 .. sta ($96),y ; CCCD 91 96 .. ldy LCE28,x ; CCCF BC 28 CE .(. cpy #$03 ; CCD2 C0 03 .. bne LCCDB ; CCD4 D0 05 .. dey ; CCD6 88 . lda $95 ; CCD7 A5 95 .. sta ($96),y ; CCD9 91 96 .. LCCDB: cpy #$02 ; CCDB C0 02 .. bne LCCE4 ; CCDD D0 05 .. dey ; CCDF 88 . lda L0094 ; CCE0 A5 94 .. sta ($96),y ; CCE2 91 96 .. LCCE4: lda $98 ; CCE4 A5 98 .. and #$7F ; CCE6 29 7F ). sta $98 ; CCE8 85 98 .. jsr LC6F2 ; CCEA 20 F2 C6 .. sta $2000,x ; CCED 9D 00 20 .. .byte $64 ; CCF0 64 d cmp $2D4C ; CCF1 CD 4C 2D .L- LCCF5 := * + 1 cpy $9C85 ; CCF4 CC 85 9C ... jsr LC6D3 ; CCF7 20 D3 C6 .. clc ; CCFA 18 . lda #$07 ; CCFB A9 07 .. adc L0094 ; CCFD 65 94 e. sta $9A ; CCFF 85 9A .. tsx ; CD01 BA . dex ; CD02 CA . txs ; CD03 9A . inx ; CD04 E8 . inx ; CD05 E8 . LCD06: lda $0100,x ; CD06 BD 00 01 ... dex ; CD09 CA . sta $0100,x ; CD0A 9D 00 01 ... inx ; CD0D E8 . inx ; CD0E E8 . cpx $9A ; CD0F E4 9A .. bne LCD06 ; CD11 D0 F3 .. lda $9C ; CD13 A5 9C .. dex ; CD15 CA . sta $0100,x ; CD16 9D 00 01 ... rts ; CD19 60 ` ; ---------------------------------------------------------------------------- LCD1A: jsr LC6D3 ; CD1A 20 D3 C6 .. tsx ; CD1D BA . inx ; CD1E E8 . stx $9A ; CD1F 86 9A .. clc ; CD21 18 . lda #$07 ; CD22 A9 07 .. adc L0094 ; CD24 65 94 e. tax ; CD26 AA . lda $0100,x ; CD27 BD 00 01 ... sta $9C ; CD2A 85 9C .. LCD2C: dex ; CD2C CA . lda $0100,x ; CD2D BD 00 01 ... sta $0101,x ; CD30 9D 01 01 ... cpx $9A ; CD33 E4 9A .. bne LCD2C ; CD35 D0 F5 .. ldx $9A ; CD37 A6 9A .. txs ; CD39 9A . lda $9C ; CD3A A5 9C .. rts ; CD3C 60 ` ; ---------------------------------------------------------------------------- ; xDisassemble = $CD3D xDisassemble: jsr LCF99 ; CD3D 20 99 CF .. LCD40: jsr LCD54 ; CD40 20 54 CD T. lda #$07 ; CD43 A9 07 .. eor $D01F ; CD45 4D 1F D0 M.. bne LCD51 ; CD48 D0 07 .. jsr LC7CA ; CD4A 20 CA C7 .. bmi LCD51 ; CD4D 30 02 0. bpl LCD40 ; CD4F 10 EF .. LCD51: jmp LC08F ; CD51 4C 8F C0 L.. ; ---------------------------------------------------------------------------- LCD54: lda $98 ; CD54 A5 98 .. and #$7F ; CD56 29 7F ). sta $98 ; CD58 85 98 .. jsr LC6F2 ; CD5A 20 F2 C6 .. sta $2041,x ; CD5D 9D 41 20 .A brk ; CD60 00 . jsr LC80E ; CD61 20 0E C8 .. jsr LC7F3 ; CD64 20 F3 C7 .. jsr LCDE2 ; CD67 20 E2 CD .. pha ; CD6A 48 H tay ; CD6B A8 . lda LCE28,y ; CD6C B9 28 CE .(. tax ; CD6F AA . pha ; CD70 48 H stx $9B ; CD71 86 9B .. lda #$03 ; CD73 A9 03 .. sec ; CD75 38 8 sbc $9B ; CD76 E5 9B .. sta $9B ; CD78 85 9B .. asl a ; CD7A 0A . adc $9B ; CD7B 65 9B e. jsr LC7F5 ; CD7D 20 F5 C7 .. ldy #$00 ; CD80 A0 00 .. LCD82: lda ($96),y ; CD82 B1 96 .. jsr LC805 ; CD84 20 05 C8 .. jsr LC7C3 ; CD87 20 C3 C7 .. dex ; CD8A CA . bne LCD82 ; CD8B D0 F5 .. lda #$5E ; CD8D A9 5E .^ jsr LCF63 ; CD8F 20 63 CF c. jsr LC7F3 ; CD92 20 F3 C7 .. pla ; CD95 68 h sta $9B ; CD96 85 9B .. dec $9B ; CD98 C6 9B .. sec ; CD9A 38 8 lda $96 ; CD9B A5 96 .. sbc $9B ; CD9D E5 9B .. sta $96 ; CD9F 85 96 .. lda $97 ; CDA1 A5 97 .. sbc #$00 ; CDA3 E9 00 .. sta $97 ; CDA5 85 97 .. jsr PUTx ; CDA7 20 AB CF .. ldy #$00 ; CDAA A0 00 .. lda (L0092),y ; CDAC B1 92 .. sta $9B ; CDAE 85 9B .. asl a ; CDB0 0A . adc $9B ; CDB1 65 9B e. tay ; CDB3 A8 . lda $5548,y ; CDB4 B9 48 55 .HU jsr LCF63 ; CDB7 20 63 CF c. lda $5549,y ; CDBA B9 49 55 .IU jsr LCF63 ; CDBD 20 63 CF c. lda $554A,y ; CDC0 B9 4A 55 .JU jsr LCF63 ; CDC3 20 63 CF c. jsr GETx ; CDC6 20 B9 CF .. jsr LC7F3 ; CDC9 20 F3 C7 .. pla ; CDCC 68 h asl a ; CDCD 0A . tay ; CDCE A8 . lda LCE0D,y ; CDCF B9 0D CE ... sta $93 ; CDD2 85 93 .. lda LCE0C,y ; CDD4 B9 0C CE ... sta L0092 ; CDD7 85 92 .. ldy #$00 ; CDD9 A0 00 .. jsr LCE09 ; CDDB 20 09 CE .. jsr LC7ED ; CDDE 20 ED C7 .. rts ; CDE1 60 ` ; ---------------------------------------------------------------------------- LCDE2: ldy #$00 ; CDE2 A0 00 .. lda ($96),y ; CDE4 B1 96 .. sta L0092 ; CDE6 85 92 .. lda #$00 ; CDE8 A9 00 .. sta $93 ; CDEA 85 93 .. clc ; CDEC 18 . rol L0092 ; CDED 26 92 &. rol $93 ; CDEF 26 93 &. lda #$F3 ; CDF1 A9 F3 .. adc L0092 ; CDF3 65 92 e. sta L0092 ; CDF5 85 92 .. lda #$55 ; CDF7 A9 55 .U adc $93 ; CDF9 65 93 e. sta $93 ; CDFB 85 93 .. iny ; CDFD C8 . jsr PUTx ; CDFE 20 AB CF .. lda (L0092),y ; CE01 B1 92 .. pha ; CE03 48 H jsr GETx ; CE04 20 B9 CF .. pla ; CE07 68 h rts ; CE08 60 ` ; ---------------------------------------------------------------------------- LCE09: jmp (L0092) ; CE09 6C 92 00 l.. ; ---------------------------------------------------------------------------- LCE0C: pha ; CE0C 48 H LCE0D: dec LCE36 ; CE0D CE 36 CE .6. .byte $3F ; CE10 3F ? dec LCE3B ; CE11 CE 3B CE .;. .byte $43 ; CE14 43 C dec LCE48 ; CE15 CE 48 CE .H. eor #$CE ; CE18 49 CE I. .byte $5F ; CE1A 5F _ dec LCE7B ; CE1B CE 7B CE .{. adc $CE,x ; CE1E 75 CE u. sta $CE ; CE20 85 CE .. sta $CE,x ; CE22 95 CE .. .byte $B7 ; CE24 B7 . dec LCE8B ; CE25 CE 8B CE ... LCE28: ora ($02,x) ; CE28 01 02 .. .byte $03 ; CE2A 03 . .byte $02 ; CE2B 02 . ora ($01,x) ; CE2C 01 01 .. .byte $02 ; CE2E 02 . .byte $02 ; CE2F 02 . .byte $02 ; CE30 02 . .byte $03 ; CE31 03 . .byte $03 ; CE32 03 . .byte $02 ; CE33 02 . .byte $03 ; CE34 03 . .byte $02 ; CE35 02 . LCE36: lda #$23 ; CE36 A9 23 .# jsr LCF63 ; CE38 20 63 CF c. LCE3B: jsr LCEF4 ; CE3B 20 F4 CE .. rts ; CE3E 60 ` ; ---------------------------------------------------------------------------- jsr LCF08 ; CE3F 20 08 CF .. rts ; CE42 60 ` ; ---------------------------------------------------------------------------- lda #$41 ; CE43 A9 41 .A jsr LCF63 ; CE45 20 63 CF c. LCE48: rts ; CE48 60 ` ; ---------------------------------------------------------------------------- lda #$28 ; CE49 A9 28 .( jsr LCF63 ; CE4B 20 63 CF c. jsr LCEF4 ; CE4E 20 F4 CE .. jsr LC6F2 ; CE51 20 F2 C6 .. bit $2958 ; CE54 2C 58 29 ,X) jsr L245B ; CE57 20 5B 24 [$ brk ; CE5A 00 . jsr LCECB ; CE5B 20 CB CE .. rts ; CE5E 60 ` ; ---------------------------------------------------------------------------- lda #$28 ; CE5F A9 28 .( jsr LCF63 ; CE61 20 63 CF c. jsr LCEF4 ; CE64 20 F4 CE .. jsr LC6F2 ; CE67 20 F2 C6 .. and #$2C ; CE6A 29 2C ), eor $5B20,y ; CE6C 59 20 5B Y [ bit $00 ; CE6F 24 00 $. jsr LCECB ; CE71 20 CB CE .. rts ; CE74 60 ` ; ---------------------------------------------------------------------------- jsr LCF08 ; CE75 20 08 CF .. jmp LCE7E ; CE78 4C 7E CE L~. ; ---------------------------------------------------------------------------- LCE7B: jsr LCEF4 ; CE7B 20 F4 CE .. LCE7E: jsr LC6F2 ; CE7E 20 F2 C6 .. bit a:$58 ; CE81 2C 58 00 ,X. rts ; CE84 60 ` ; ---------------------------------------------------------------------------- jsr LCF08 ; CE85 20 08 CF .. jmp LCE8E ; CE88 4C 8E CE L.. ; ---------------------------------------------------------------------------- LCE8B: jsr LCEF4 ; CE8B 20 F4 CE .. LCE8E: jsr LC6F2 ; CE8E 20 F2 C6 .. bit a:$59 ; CE91 2C 59 00 ,Y. rts ; CE94 60 ` ; ---------------------------------------------------------------------------- lda #$24 ; CE95 A9 24 .$ jsr LCF63 ; CE97 20 63 CF c. lda $96 ; CE9A A5 96 .. pha ; CE9C 48 H lda $97 ; CE9D A5 97 .. pha ; CE9F 48 H jsr LCEDE ; CEA0 20 DE CE .. jsr LC80E ; CEA3 20 0E C8 .. pla ; CEA6 68 h sta $97 ; CEA7 85 97 .. pla ; CEA9 68 h sta $96 ; CEAA 85 96 .. jsr LC7C3 ; CEAC 20 C3 C7 .. jsr LC6F2 ; CEAF 20 F2 C6 .. .byte $9B ; CEB2 9B . .byte $9C ; CEB3 9C . sta $6000,x ; CEB4 9D 00 60 ..` lda #$28 ; CEB7 A9 28 .( jsr LCF63 ; CEB9 20 63 CF c. jsr LCF08 ; CEBC 20 08 CF .. jsr LC6F2 ; CEBF 20 F2 C6 .. and #$20 ; CEC2 29 20 ) .byte $5B ; CEC4 5B [ bit $00 ; CEC5 24 00 $. jsr LCECB ; CEC7 20 CB CE .. rts ; CECA 60 ` ; ---------------------------------------------------------------------------- LCECB: ldy #$01 ; CECB A0 01 .. lda ($9C),y ; CECD B1 9C .. jsr LCF69 ; CECF 20 69 CF i. dey ; CED2 88 . lda ($9C),y ; CED3 B1 9C .. jsr LCF69 ; CED5 20 69 CF i. lda #$5D ; CED8 A9 5D .] jsr LCF63 ; CEDA 20 63 CF c. rts ; CEDD 60 ` ; ---------------------------------------------------------------------------- LCEDE: lda ($96),y ; CEDE B1 96 .. pha ; CEE0 48 H bpl LCEE5 ; CEE1 10 02 .. ldy #$FF ; CEE3 A0 FF .. LCEE5: jsr LC7C3 ; CEE5 20 C3 C7 .. clc ; CEE8 18 . pla ; CEE9 68 h adc $96 ; CEEA 65 96 e. sta $96 ; CEEC 85 96 .. tya ; CEEE 98 . adc $97 ; CEEF 65 97 e. sta $97 ; CEF1 85 97 .. rts ; CEF3 60 ` ; ---------------------------------------------------------------------------- LCEF4: lda #$24 ; CEF4 A9 24 .$ jsr LCF63 ; CEF6 20 63 CF c. lda ($96),y ; CEF9 B1 96 .. sta $9C ; CEFB 85 9C .. jsr LCF69 ; CEFD 20 69 CF i. jsr LC7C3 ; CF00 20 C3 C7 .. lda #$00 ; CF03 A9 00 .. sta $9D ; CF05 85 9D .. rts ; CF07 60 ` ; ---------------------------------------------------------------------------- LCF08: lda #$24 ; CF08 A9 24 .$ jsr LCF63 ; CF0A 20 63 CF c. lda ($96),y ; CF0D B1 96 .. sta $9C ; CF0F 85 9C .. pha ; CF11 48 H jsr LC7C3 ; CF12 20 C3 C7 .. lda ($96),y ; CF15 B1 96 .. sta $9D ; CF17 85 9D .. jsr LCF69 ; CF19 20 69 CF i. pla ; CF1C 68 h jsr LCF69 ; CF1D 20 69 CF i. jsr LC7C3 ; CF20 20 C3 C7 .. rts ; CF23 60 ` ; ---------------------------------------------------------------------------- .byte $FB ; CF24 FB . .byte $F3 ; CF25 F3 . .byte $33 ; CF26 33 3 inc $2D,x ; CF27 F6 2D .- .byte $CF ; CF29 CF . .byte $A3 ; CF2A A3 . inc $33,x ; CF2B F6 33 .3 inc $A0,x ; CF2D F6 A0 .. brk ; CF2F 00 . lda ($9E),y ; CF30 B1 9E .. pha ; CF32 48 H jsr LC15A ; CF33 20 5A C1 Z. tya ; CF36 98 . cmp ($9E),y ; CF37 D1 9E .. bne LCF45 ; CF39 D0 0A .. sta $9F ; CF3B 85 9F .. sta $0321 ; CF3D 8D 21 03 .!. lda #$E4 ; CF40 A9 E4 .. sta $0322 ; CF42 8D 22 03 .". LCF45: pla ; CF45 68 h iny ; CF46 C8 . rts ; CF47 60 ` ; ---------------------------------------------------------------------------- PRT: .byte "P:" ; CF48 50 3A P: .byte $9B ; CF4A 9B . ; ---------------------------------------------------------------------------- OmniRestG: jsr PUTx ; CF4B 20 AB CF .. jmp L530D ; CF4E 4C 0D 53 L.S ; ---------------------------------------------------------------------------- LCF51: jsr PUTx ; CF51 20 AB CF .. jmp L536F ; CF54 4C 6F 53 LoS ; ---------------------------------------------------------------------------- LCF57: jsr PUTx ; CF57 20 AB CF .. jmp L539A ; CF5A 4C 9A 53 L.S ; ---------------------------------------------------------------------------- LCF5D: jsr PUTx ; CF5D 20 AB CF .. jmp L5437 ; CF60 4C 37 54 L7T ; ---------------------------------------------------------------------------- LCF63: jsr PUTx ; CF63 20 AB CF .. jmp L5035 ; CF66 4C 35 50 L5P ; ---------------------------------------------------------------------------- LCF69: jsr PUTx ; CF69 20 AB CF .. jmp L505F ; CF6C 4C 5F 50 L_P ; ---------------------------------------------------------------------------- LCF6F: jsr PUTx ; CF6F 20 AB CF .. jmp L50CF ; CF72 4C CF 50 L.P ; ---------------------------------------------------------------------------- LCF75: jsr PUTx ; CF75 20 AB CF .. jmp L5108 ; CF78 4C 08 51 L.Q ; ---------------------------------------------------------------------------- LCF7B: jsr PUTx ; CF7B 20 AB CF .. jmp L5152 ; CF7E 4C 52 51 LRQ ; ---------------------------------------------------------------------------- LCF81: jsr PUTx ; CF81 20 AB CF .. jmp L5184 ; CF84 4C 84 51 L.Q ; ---------------------------------------------------------------------------- LCF87: jsr PUTx ; CF87 20 AB CF .. jmp L51C2 ; CF8A 4C C2 51 L.Q ; ---------------------------------------------------------------------------- LCF8D: jsr PUTx ; CF8D 20 AB CF .. jmp L51D1 ; CF90 4C D1 51 L.Q ; ---------------------------------------------------------------------------- LCF93: jsr PUTx ; CF93 20 AB CF .. jmp L5208 ; CF96 4C 08 52 L.R ; ---------------------------------------------------------------------------- LCF99: jsr PUTx ; CF99 20 AB CF .. jmp L523C ; CF9C 4C 3C 52 L<R ; ---------------------------------------------------------------------------- LCF9F: jsr PUTx ; CF9F 20 AB CF .. jmp L5252 ; CFA2 4C 52 52 LRR ; ---------------------------------------------------------------------------- LCFA5: jsr PUTx ; CFA5 20 AB CF .. jmp L5262 ; CFA8 4C 62 52 LbR ; ---------------------------------------------------------------------------- PUTx: pha ; CFAB 48 H inc $0129 ; CFAC EE 29 01 .). lda $D301 ; CFAF AD 01 D3 ... and #$7F ; CFB2 29 7F ). sta $D301 ; CFB4 8D 01 D3 ... pla ; CFB7 68 h rts ; CFB8 60 ` ; ---------------------------------------------------------------------------- GETx: php ; CFB9 08 . pha ; CFBA 48 H dec $0129 ; CFBB CE 29 01 .). bne LCFC8 ; CFBE D0 08 .. lda $D301 ; CFC0 AD 01 D3 ... ora #$80 ; CFC3 09 80 .. sta $D301 ; CFC5 8D 01 D3 ... LCFC8: pla ; CFC8 68 h plp ; CFC9 28 ( rts ; CFCA 60 ` ; ---------------------------------------------------------------------------- ; jJump = $CFCB jJump: jsr PUTx ; CFCB 20 AB CF .. jmp L5000 ; CFCE 4C 00 50 L.P ; ---------------------------------------------------------------------------- ; pPush = $CFD1 pPush: jsr PUTx ; CFD1 20 AB CF .. jmp L5467 ; CFD4 4C 67 54 LgT ; ---------------------------------------------------------------------------- ; pPop = $CFD7 pPop: jsr PUTx ; CFD7 20 AB CF .. jmp L5477 ; CFDA 4C 77 54 LwT ; ---------------------------------------------------------------------------- ; hHex = $CFDD hHex: jsr PUTx ; CFDD 20 AB CF .. jmp L5483 ; CFE0 4C 83 54 L.T ; ---------------------------------------------------------------------------- ; pPrint = $CFE3 pPrint: jsr PUTx ; CFE3 20 AB CF .. jmp L5074 ; CFE6 4C 74 50 LtP ; ---------------------------------------------------------------------------- ; lLink = $CFE9 lLink: jsr PUTx ; CFE9 20 AB CF .. jmp L50A5 ; CFEC 4C A5 50 L.P ; ---------------------------------------------------------------------------- jsr GETx ; CFEF 20 B9 CF .. jmp LC08F ; CFF2 4C 8F C0 L.. ; ---------------------------------------------------------------------------- .byte $FF ; CFF5 FF . brk ; CFF6 00 . .byte $FF ; CFF7 FF . brk ; CFF8 00 . .byte $FF ; CFF9 FF . brk ; CFFA 00 . .byte $FF ; CFFB FF . brk ; CFFC 00 . .byte $FF ; CFFD FF . brk ; CFFE 00 .

Omnimon - B

; da65 V2.15 ; Created: 2016-10-23 14:46:38 ; Input file: ROM/OMNIMNXX.ROM ; Page: 1 .setcpu "6502" ; ---------------------------------------------------------------------------- L009B := $009B L27DC := $27DC L5FDB := $5FDB L65DB := $65DB LC08F := $C08F CLI := $C0B2 LC151 := $C151 LC230 := $C230 LC6B8 := $C6B8 LC6C6 := $C6C6 LC6EE := $C6EE LC6F2 := $C6F2 LC78F := $C78F LC79C := $C79C LC7BC := $C7BC LC7D4 := $C7D4 LC7ED := $C7ED LC805 := $C805 LC80E := $C80E LC819 := $C819 LC841 := $C841 LC84A := $C84A LC853 := $C853 LCB40 := $CB40 LCCF5 := $CCF5 LCD1A := $CD1A LCF5D := $CF5D LCF63 := $CF63 LCF69 := $CF69 LCF75 := $CF75 LCF7B := $CF7B PUTx := $CFAB GETx := $CFB9 LCFD1 := $CFD1 LCFEF := $CFEF LD9AA := $D9AA LD9D2 := $D9D2 LDA44 := $DA44 LDADB := $DADB LDDB6 := $DDB6 LE453 := $E453 LE456 := $E456 ; ---------------------------------------------------------------------------- OmniBEntry: jsr LCF75 ; 5000 20 75 CF u. bmi L5032 ; 5003 30 2D 0- lda $94 ; 5005 A5 94 .. sta $92 ; 5007 85 92 .. lda $95 ; 5009 A5 95 .. sta $93 ; 500B 85 93 .. jsr LC6EE ; 500D 20 EE C6 .. lda $97 ; 5010 A5 97 .. jsr LCCF5 ; 5012 20 F5 CC .. lda $96 ; 5015 A5 96 .. jsr LCCF5 ; 5017 20 F5 CC .. lda #$C0 ; 501A A9 C0 .. jsr LCCF5 ; 501C 20 F5 CC .. lda #$25 ; 501F A9 25 .% jsr LCCF5 ; 5021 20 F5 CC .. ldy #$04 ; 5024 A0 04 .. lda $92 ; 5026 A5 92 .. sta ($94),y ; 5028 91 94 .. iny ; 502A C8 . lda $93 ; 502B A5 93 .. sta ($94),y ; 502D 91 94 .. jsr LCB40 ; 502F 20 40 CB @. L5032: jmp LCFEF ; 5032 4C EF CF L.. ; ---------------------------------------------------------------------------- stx $9A ; 5035 86 9A .. bit $0120 ; 5037 2C 20 01 , . bvs L5041 ; 503A 70 05 p. ldx #$00 ; 503C A2 00 .. jsr LC79C ; 503E 20 9C C7 .. L5041: pha ; 5041 48 H lda $0120 ; 5042 AD 20 01 . . and #$20 ; 5045 29 20 ) beq L5054 ; 5047 F0 0B .. lda $0120 ; 5049 AD 20 01 . . and #$1F ; 504C 29 1F ). beq L5054 ; 504E F0 04 .. pla ; 5050 68 h jmp L505A ; 5051 4C 5A 50 LZP ; ---------------------------------------------------------------------------- L5054: pla ; 5054 68 h ldx #$50 ; 5055 A2 50 .P jsr LC79C ; 5057 20 9C C7 .. L505A: ldx $9A ; 505A A6 9A .. jmp GETx ; 505C 4C B9 CF L.. ; ---------------------------------------------------------------------------- pha ; 505F 48 H lsr a ; 5060 4A J lsr a ; 5061 4A J lsr a ; 5062 4A J lsr a ; 5063 4A J jsr LC819 ; 5064 20 19 C8 .. jsr LCF63 ; 5067 20 63 CF c. pla ; 506A 68 h jsr LC819 ; 506B 20 19 C8 .. jsr LCF63 ; 506E 20 63 CF c. jmp GETx ; 5071 4C B9 CF L.. ; ---------------------------------------------------------------------------- ldx #$50 ; 5074 A2 50 .P lda $0340,x ; 5076 BD 40 03 .@. bpl L509F ; 5079 10 24 .$ jsr LC78F ; 507B 20 8F C7 .. lda #$03 ; 507E A9 03 .. sta $0342,x ; 5080 9D 42 03 .B. lda $0125 ; 5083 AD 25 01 .%. sta $0344,x ; 5086 9D 44 03 .D. lda $0126 ; 5089 AD 26 01 .&. sta $0345,x ; 508C 9D 45 03 .E. lda #$08 ; 508F A9 08 .. sta $034A,x ; 5091 9D 4A 03 .J. jsr LE456 ; 5094 20 56 E4 V. bpl L50A2 ; 5097 10 09 .. jsr LC78F ; 5099 20 8F C7 .. jmp LC230 ; 509C 4C 30 C2 L0. ; ---------------------------------------------------------------------------- L509F: jsr LC78F ; 509F 20 8F C7 .. L50A2: jmp LCFEF ; 50A2 4C EF CF L.. ; ---------------------------------------------------------------------------- jsr LCF75 ; 50A5 20 75 CF u. bmi L50B2 ; 50A8 30 08 0. lda $94 ; 50AA A5 94 .. sta $0123 ; 50AC 8D 23 01 .#. jmp LC08F ; 50AF 4C 8F C0 L.. ; ---------------------------------------------------------------------------- L50B2: lda $0124 ; 50B2 AD 24 01 .$. beq L50C1 ; 50B5 F0 0A .. jsr LC6F2 ; 50B7 20 F2 C6 .. jmp L009B ; 50BA 4C 9B 00 L.. ; ---------------------------------------------------------------------------- lda #$00 ; 50BD A9 00 .. beq L50C9 ; 50BF F0 08 .. L50C1: jsr LC6F2 ; 50C1 20 F2 C6 .. .byte $53 ; 50C4 53 S .byte $9B ; 50C5 9B . brk ; 50C6 00 . lda #$01 ; 50C7 A9 01 .. L50C9: sta $0124 ; 50C9 8D 24 01 .$. jmp LCFEF ; 50CC 4C EF CF L.. ; ---------------------------------------------------------------------------- stx $9A ; 50CF 86 9A .. pha ; 50D1 48 H and #$7F ; 50D2 29 7F ). cmp #$7F ; 50D4 C9 7F .. beq L50DC ; 50D6 F0 04 .. cmp #$20 ; 50D8 C9 20 . bcs L50DE ; 50DA B0 02 .. L50DC: lda #$2D ; 50DC A9 2D .- L50DE: ldx #$50 ; 50DE A2 50 .P jsr LC79C ; 50E0 20 9C C7 .. pla ; 50E3 68 h pha ; 50E4 48 H and #$7F ; 50E5 29 7F ). cmp #$60 ; 50E7 C9 60 .` bcs L50F9 ; 50E9 B0 0E .. cmp #$20 ; 50EB C9 20 . bcs L50F4 ; 50ED B0 05 .. pla ; 50EF 68 h adc #$40 ; 50F0 69 40 i@ bcc L50FA ; 50F2 90 06 .. L50F4: pla ; 50F4 68 h sbc #$20 ; 50F5 E9 20 . bcs L50FA ; 50F7 B0 01 .. L50F9: pla ; 50F9 68 h L50FA: sta $5D ; 50FA 85 5D .] lda #$1F ; 50FC A9 1F .. ldx #$00 ; 50FE A2 00 .. jsr LC79C ; 5100 20 9C C7 .. ldx $9A ; 5103 A6 9A .. jmp GETx ; 5105 4C B9 CF L.. ; ---------------------------------------------------------------------------- sty L009B ; 5108 84 9B .. L510A: ldy #$00 ; 510A A0 00 .. ldx #$00 ; 510C A2 00 .. lda $92 ; 510E A5 92 .. sec ; 5110 38 8 sbc #$2A ; 5111 E9 2A .* cmp $0348,x ; 5113 DD 48 03 .H. beq L5149 ; 5116 F0 31 .1 lda ($92),y ; 5118 B1 92 .. cmp #$5E ; 511A C9 5E .^ beq L5149 ; 511C F0 2B .+ jsr LC7BC ; 511E 20 BC C7 .. jsr LC7D4 ; 5121 20 D4 C7 .. bmi L510A ; 5124 30 E4 0. pha ; 5126 48 H lda #$00 ; 5127 A9 00 .. sta $94 ; 5129 85 94 .. sta $95 ; 512B 85 95 .. pla ; 512D 68 h L512E: asl a ; 512E 0A . ; A * 16 asl a ; 512F 0A . asl a ; 5130 0A . asl a ; 5131 0A . ldy #$04 ; 5132 A0 04 .. L5134: asl a ; 5134 0A . rol $94 ; 5135 26 94 &. rol $95 ; 5137 26 95 &. dey ; 5139 88 . bne L5134 ; 513A D0 F8 .. lda ($92),y ; 513C B1 92 .. jsr LC7D4 ; 513E 20 D4 C7 .. bmi L514B ; 5141 30 08 0. jsr LC7BC ; 5143 20 BC C7 .. jmp L512E ; 5146 4C 2E 51 L.Q ; ---------------------------------------------------------------------------- L5149: lda #$00 ; 5149 A9 00 .. L514B: ldy L009B ; 514B A4 9B .. eor #$FF ; 514D 49 FF I. jmp GETx ; 514F 4C B9 CF L.. ; ---------------------------------------------------------------------------- lda $0123 ; 5152 AD 23 01 .#. sta $0301 ; 5155 8D 01 03 ... lda #$53 ; 5158 A9 53 .S sta $0302 ; 515A 8D 02 03 ... jsr LE453 ; 515D 20 53 E4 S. ldx #$00 ; 5160 A2 00 .. ldy #$80 ; 5162 A0 80 .. lda $030B ; 5164 AD 0B 03 ... bne L5170 ; 5167 D0 07 .. lda $030A ; 5169 AD 0A 03 ... cmp #$04 ; 516C C9 04 .. bcc L517B ; 516E 90 0B .. L5170: lda $02EA ; 5170 AD EA 02 ... and #$20 ; 5173 29 20 ) beq L517B ; 5175 F0 04 .. ldx #$01 ; 5177 A2 01 .. ldy #$00 ; 5179 A0 00 .. L517B: stx $0309 ; 517B 8E 09 03 ... sty $0308 ; 517E 8C 08 03 ... jmp GETx ; 5181 4C B9 CF L.. ; ---------------------------------------------------------------------------- jsr LCF75 ; 5184 20 75 CF u. bmi L5193 ; 5187 30 0A 0. lda $94 ; 5189 A5 94 .. sta $030A ; 518B 8D 0A 03 ... lda $95 ; 518E A5 95 .. sta $030B ; 5190 8D 0B 03 ... L5193: lda $0304 ; 5193 AD 04 03 ... sta $96 ; 5196 85 96 .. lda $0305 ; 5198 AD 05 03 ... sta $97 ; 519B 85 97 .. jsr LCF75 ; 519D 20 75 CF u. bmi L51AA ; 51A0 30 08 0. jsr LC84A ; 51A2 20 4A C8 J. jsr LCF75 ; 51A5 20 75 CF u. bpl L51B2 ; 51A8 10 08 .. L51AA: lda #$01 ; 51AA A9 01 .. sta $94 ; 51AC 85 94 .. lda #$00 ; 51AE A9 00 .. sta $95 ; 51B0 85 95 .. L51B2: jsr LCF7B ; 51B2 20 7B CF {. lda $96 ; 51B5 A5 96 .. sta $0304 ; 51B7 8D 04 03 ... lda $97 ; 51BA A5 97 .. sta $0305 ; 51BC 8D 05 03 ... jmp GETx ; 51BF 4C B9 CF L.. ; ---------------------------------------------------------------------------- lda $94 ; 51C2 A5 94 .. bne L51C8 ; 51C4 D0 02 .. dec $95 ; 51C6 C6 95 .. L51C8: dec $94 ; 51C8 C6 94 .. lda $94 ; 51CA A5 94 .. ora $95 ; 51CC 05 95 .. jmp GETx ; 51CE 4C B9 CF L.. ; ---------------------------------------------------------------------------- lda $030B ; 51D1 AD 0B 03 ... cmp #$08 ; 51D4 C9 08 .. bmi L51EA ; 51D6 30 12 0. pha ; 51D8 48 H lda $030A ; 51D9 AD 0A 03 ... clc ; 51DC 18 . adc #$80 ; 51DD 69 80 i. sta $030A ; 51DF 8D 0A 03 ... pla ; 51E2 68 h adc #$00 ; 51E3 69 00 i. sta $030B ; 51E5 8D 0B 03 ... bne L51F2 ; 51E8 D0 08 .. L51EA: inc $030A ; 51EA EE 0A 03 ... bne L51F2 ; 51ED D0 03 .. inc $030B ; 51EF EE 0B 03 ... L51F2: clc ; 51F2 18 . lda $0304 ; 51F3 AD 04 03 ... adc $0308 ; 51F6 6D 08 03 m.. sta $0304 ; 51F9 8D 04 03 ... lda $0305 ; 51FC AD 05 03 ... adc $0309 ; 51FF 6D 09 03 m.. sta $0305 ; 5202 8D 05 03 ... jmp GETx ; 5205 4C B9 CF L.. ; ---------------------------------------------------------------------------- ldy #$0B ; 5208 A0 0B .. L520A: lda $0300,y ; 520A B9 00 03 ... sta $012A,y ; 520D 99 2A 01 .*. dey ; 5210 88 . bpl L520A ; 5211 10 F7 .. lda $0135 ; 5213 AD 35 01 .5. jsr LCF69 ; 5216 20 69 CF i. lda $0134 ; 5219 AD 34 01 .4. jsr LC805 ; 521C 20 05 C8 .. lda $012F ; 521F AD 2F 01 ./. jsr LCF69 ; 5222 20 69 CF i. lda $012E ; 5225 AD 2E 01 ... jsr LCF69 ; 5228 20 69 CF i. jsr LC7ED ; 522B 20 ED C7 .. ldy #$0B ; 522E A0 0B .. L5230: lda $012A,y ; 5230 B9 2A 01 .*. sta $0300,y ; 5233 99 00 03 ... dey ; 5236 88 . bpl L5230 ; 5237 10 F7 .. jmp GETx ; 5239 4C B9 CF L.. ; ---------------------------------------------------------------------------- jsr LCF75 ; 523C 20 75 CF u. bpl L5244 ; 523F 10 03 .. jsr LC841 ; 5241 20 41 C8 A. L5244: jsr LC84A ; 5244 20 4A C8 J. jsr LCF75 ; 5247 20 75 CF u. bpl L524F ; 524A 10 03 .. jsr LC841 ; 524C 20 41 C8 A. L524F: jmp GETx ; 524F 4C B9 CF L.. ; ---------------------------------------------------------------------------- lda #$08 ; 5252 A9 08 .. clc ; 5254 18 . adc $96 ; 5255 65 96 e. sta $96 ; 5257 85 96 .. lda #$00 ; 5259 A9 00 .. adc $97 ; 525B 65 97 e. sta $97 ; 525D 85 97 .. jmp GETx ; 525F 4C B9 CF L.. ; ---------------------------------------------------------------------------- ldx #$00 ; 5262 A2 00 .. ldy #$00 ; 5264 A0 00 .. L5266: lda ($92),y ; 5266 B1 92 .. cmp #$20 ; 5268 C9 20 . beq L5270 ; 526A F0 04 .. cmp #$2C ; 526C C9 2C ., bne L5274 ; 526E D0 04 .. L5270: inc $92 ; 5270 E6 92 .. bne L5266 ; 5272 D0 F2 .. L5274: lda #$01 ; 5274 A9 01 .. sta $0123 ; 5276 8D 23 01 .#. lda #$04 ; 5279 A9 04 .. sta $9D ; 527B 85 9D .. sty $9C ; 527D 84 9C .. dey ; 527F 88 . sty $97 ; 5280 84 97 .. L5282: iny ; 5282 C8 . lda ($92),y ; 5283 B1 92 .. cmp #$3A ; 5285 C9 3A .: bne L52A5 ; 5287 D0 1C .. lda #$5E ; 5289 A9 5E .^ sta ($92),y ; 528B 91 92 .. lda ($92,x) ; 528D A1 92 .. cmp #$44 ; 528F C9 44 .D bne L5295 ; 5291 D0 02 .. inc $92 ; 5293 E6 92 .. L5295: jsr LCF75 ; 5295 20 75 CF u. bmi L529F ; 5298 30 05 0. lda $94 ; 529A A5 94 .. sta $0123 ; 529C 8D 23 01 .#. L529F: inc $92 ; 529F E6 92 .. ldy #$FF ; 52A1 A0 FF .. bmi L5282 ; 52A3 30 DD 0. L52A5: cmp #$2E ; 52A5 C9 2E .. bne L52AB ; 52A7 D0 02 .. sty $97 ; 52A9 84 97 .. L52AB: cmp #$20 ; 52AB C9 20 . beq L52B9 ; 52AD F0 0A .. cmp #$2C ; 52AF C9 2C ., beq L52B9 ; 52B1 F0 06 .. cmp #$9B ; 52B3 C9 9B .. beq L52D7 ; 52B5 F0 20 . bne L5282 ; 52B7 D0 C9 .. L52B9: lda $92 ; 52B9 A5 92 .. pha ; 52BB 48 H lda $93 ; 52BC A5 93 .. pha ; 52BE 48 H tya ; 52BF 98 . jsr LC6C6 ; 52C0 20 C6 C6 .. tay ; 52C3 A8 . jsr LCF75 ; 52C4 20 75 CF u. bmi L52D1 ; 52C7 30 08 0. lda $94 ; 52C9 A5 94 .. sta $9C ; 52CB 85 9C .. lda $95 ; 52CD A5 95 .. sta $9D ; 52CF 85 9D .. L52D1: pla ; 52D1 68 h sta $93 ; 52D2 85 93 .. pla ; 52D4 68 h sta $92 ; 52D5 85 92 .. L52D7: bit $97 ; 52D7 24 97 $. bpl L52DE ; 52D9 10 03 .. sty $97 ; 52DB 84 97 .. iny ; 52DD C8 . L52DE: lda #$9B ; 52DE A9 9B .. sta ($92),y ; 52E0 91 92 .. ldy $97 ; 52E2 A4 97 .. L52E4: iny ; 52E4 C8 . lda ($92),y ; 52E5 B1 92 .. sta $94,x ; 52E7 95 94 .. inx ; 52E9 E8 . cpx #$03 ; 52EA E0 03 .. bne L52E4 ; 52EC D0 F6 .. lda #$08 ; 52EE A9 08 .. ldy $97 ; 52F0 A4 97 .. jsr LC6B8 ; 52F2 20 B8 C6 .. ldx #$00 ; 52F5 A2 00 .. L52F7: lda $94,x ; 52F7 B5 94 .. cmp #$9B ; 52F9 C9 9B .. beq L5305 ; 52FB F0 08 .. sta ($92),y ; 52FD 91 92 .. iny ; 52FF C8 . inx ; 5300 E8 . cpx #$03 ; 5301 E0 03 .. bne L52F7 ; 5303 D0 F2 .. L5305: lda #$0B ; 5305 A9 0B .. jsr LC6B8 ; 5307 20 B8 C6 .. jmp GETx ; 530A 4C B9 CF L.. ; ---------------------------------------------------------------------------- cmp #$23 ; 530D C9 23 .# bne L5321 ; 530F D0 10 .. jsr LC7BC ; 5311 20 BC C7 .. jsr L541B ; 5314 20 1B 54 .T bcs L536A ; 5317 B0 51 .Q cpy $95 ; 5319 C4 95 .. bne L536A ; 531B D0 4D .M ldx #$01 ; 531D A2 01 .. bne L536C ; 531F D0 4B .K L5321: cmp #$2A ; 5321 C9 2A .* bne L532A ; 5323 D0 05 .. jsr LC7BC ; 5325 20 BC C7 .. lda ($92),y ; 5328 B1 92 .. L532A: pha ; 532A 48 H jsr LC7BC ; 532B 20 BC C7 .. jsr L541B ; 532E 20 1B 54 .T bcs L536A ; 5331 B0 37 .7 pla ; 5333 68 h cmp #$2D ; 5334 C9 2D .- beq L5351 ; 5336 F0 19 .. cmp #$2B ; 5338 C9 2B .+ bne L536A ; 533A D0 2E .. L533C: cpy $95 ; 533C C4 95 .. bne L536A ; 533E D0 2A .* sec ; 5340 38 8 lda $94 ; 5341 A5 94 .. beq L5351 ; 5343 F0 0C .. sbc #$02 ; 5345 E9 02 .. sta $94 ; 5347 85 94 .. bcc L5351 ; 5349 90 06 .. cmp #$80 ; 534B C9 80 .. bcs L536A ; 534D B0 1B .. bcc L5366 ; 534F 90 15 .. L5351: cpy $95 ; 5351 C4 95 .. bne L536A ; 5353 D0 15 .. clc ; 5355 18 . lda $94 ; 5356 A5 94 .. adc #$02 ; 5358 69 02 i. sta $94 ; 535A 85 94 .. cmp #$81 ; 535C C9 81 .. bcs L536A ; 535E B0 0A .. sec ; 5360 38 8 tya ; 5361 98 . sbc $94 ; 5362 E5 94 .. sta $94 ; 5364 85 94 .. L5366: ldx #$0B ; 5366 A2 0B .. bne L536C ; 5368 D0 02 .. L536A: ldx #$00 ; 536A A2 00 .. L536C: jmp GETx ; 536C 4C B9 CF L.. ; ---------------------------------------------------------------------------- jsr LC7BC ; 536F 20 BC C7 .. jsr L53D3 ; 5372 20 D3 53 .S cpx #$08 ; 5375 E0 08 .. bne L537D ; 5377 D0 04 .. ldx #$06 ; 5379 A2 06 .. bne L536C ; 537B D0 EF .. L537D: cpx #$0A ; 537D E0 0A .. bne L538C ; 537F D0 0B .. jsr L5414 ; 5381 20 14 54 .T cpx #$0D ; 5384 E0 0D .. bne L538C ; 5386 D0 04 .. ldx #$07 ; 5388 A2 07 .. bne L536C ; 538A D0 E0 .. L538C: cpx #$02 ; 538C E0 02 .. bne L536A ; 538E D0 DA .. lda $94 ; 5390 A5 94 .. cmp #$FF ; 5392 C9 FF .. beq L536A ; 5394 F0 D4 .. ldx #$0C ; 5396 A2 0C .. bne L536C ; 5398 D0 D2 .. jsr L53D3 ; 539A 20 D3 53 .S cmp #$9B ; 539D C9 9B .. bne L536C ; 539F D0 CB .. lda $9C ; 53A1 A5 9C .. cmp #$04 ; 53A3 C9 04 .. bcc L536C ; 53A5 90 C5 .. cmp #$0E ; 53A7 C9 0E .. bcs L536C ; 53A9 B0 C1 .. cmp #$07 ; 53AB C9 07 .. beq L536C ; 53AD F0 BD .. cmp #$0B ; 53AF C9 0B .. beq L536C ; 53B1 F0 B9 .. sec ; 53B3 38 8 lda $94 ; 53B4 A5 94 .. sbc $96 ; 53B6 E5 96 .. sta $94 ; 53B8 85 94 .. lda $95 ; 53BA A5 95 .. sbc $97 ; 53BC E5 97 .. sta $95 ; 53BE 85 95 .. bcs L53D0 ; 53C0 B0 0E .. sec ; 53C2 38 8 tya ; 53C3 98 . sbc $94 ; 53C4 E5 94 .. sta $94 ; 53C6 85 94 .. tya ; 53C8 98 . sbc $95 ; 53C9 E5 95 .. sta $95 ; 53CB 85 95 .. jmp L5351 ; 53CD 4C 51 53 LQS ; ---------------------------------------------------------------------------- L53D0: jmp L533C ; 53D0 4C 3C 53 L<S ; ---------------------------------------------------------------------------- L53D3: jsr L541B ; 53D3 20 1B 54 .T bcs L53E6 ; 53D6 B0 0E .. lda ($92),y ; 53D8 B1 92 .. cmp #$9B ; 53DA C9 9B .. beq L53E9 ; 53DC F0 0B .. cmp #$58 ; 53DE C9 58 .X beq L53FD ; 53E0 F0 1B .. cmp #$59 ; 53E2 C9 59 .Y beq L5407 ; 53E4 F0 21 .! L53E6: ldx #$00 ; 53E6 A2 00 .. rts ; 53E8 60 ` ; ---------------------------------------------------------------------------- L53E9: ldx $9C ; 53E9 A6 9C .. cpx #$1C ; 53EB E0 1C .. beq L53FA ; 53ED F0 0B .. cpx #$1D ; 53EF E0 1D .. beq L53FA ; 53F1 F0 07 .. cpy $95 ; 53F3 C4 95 .. bne L53FA ; 53F5 D0 03 .. ldx #$03 ; 53F7 A2 03 .. rts ; 53F9 60 ` ; ---------------------------------------------------------------------------- L53FA: ldx #$02 ; 53FA A2 02 .. rts ; 53FC 60 ` ; ---------------------------------------------------------------------------- L53FD: cpy $95 ; 53FD C4 95 .. bne L5404 ; 53FF D0 03 .. ldx #$08 ; 5401 A2 08 .. rts ; 5403 60 ` ; ---------------------------------------------------------------------------- L5404: ldx #$09 ; 5404 A2 09 .. rts ; 5406 60 ` ; ---------------------------------------------------------------------------- L5407: ldx $9C ; 5407 A6 9C .. cpx #$1F ; 5409 E0 1F .. beq L5414 ; 540B F0 07 .. cpx #$31 ; 540D E0 31 .1 beq L5414 ; 540F F0 03 .. L5411: ldx #$0A ; 5411 A2 0A .. rts ; 5413 60 ` ; ---------------------------------------------------------------------------- L5414: cpy $95 ; 5414 C4 95 .. bne L5411 ; 5416 D0 F9 .. ldx #$0D ; 5418 A2 0D .. rts ; 541A 60 ` ; ---------------------------------------------------------------------------- L541B: lda ($92),y ; 541B B1 92 .. ldx #$05 ; 541D A2 05 .. jsr LCF5D ; 541F 20 5D CF ]. cpx #$05 ; 5422 E0 05 .. beq L542E ; 5424 F0 08 .. cpx #$10 ; 5426 E0 10 .. bcs L5435 ; 5428 B0 0B .. jsr OmniBRestA ; 542A 20 5B 54 [T rts ; 542D 60 ` ; ---------------------------------------------------------------------------- L542E: jsr LCF75 ; 542E 20 75 CF u. bmi L5435 ; 5431 30 02 0. clc ; 5433 18 . rts ; 5434 60 ` ; ---------------------------------------------------------------------------- L5435: sec ; 5435 38 8 rts ; 5436 60 ` ; ---------------------------------------------------------------------------- L5437: cmp String,x ; 5437 DD 44 54 .DT beq L5441 ; 543A F0 05 .. inx ; 543C E8 . cpx #$17 ; 543D E0 17 .. bne L5437 ; 543F D0 F6 .. L5441: jmp GETx ; 5441 4C B9 CF L.. ; ---------------------------------------------------------------------------- String: .byte "#+-*($0123456789ABCDEF" ; 5444 23 2B 2D 2A 28 24 30 31 #+-*($01 ; 544C 32 33 34 35 36 37 38 39 23456789 ; 5454 41 42 43 44 45 46 ABCDEF .byte $9B ; 545A 9B . ; ---------------------------------------------------------------------------- OmniBRestA: jsr LDA44 ; 545B 20 44 DA D. lda ($92),y ; 545E B1 92 .. jsr LC7D4 ; 5460 20 D4 C7 .. jsr LC853 ; 5463 20 53 C8 S. rts ; 5466 60 ` ; ---------------------------------------------------------------------------- jsr LCF75 ; 5467 20 75 CF u. bmi L5474 ; 546A 30 08 0. lda $94 ; 546C A5 94 .. jsr LCCF5 ; 546E 20 F5 CC .. jmp LCFD1 ; 5471 4C D1 CF L.. ; ---------------------------------------------------------------------------- L5474: jmp LCFEF ; 5474 4C EF CF L.. ; ---------------------------------------------------------------------------- jsr LCD1A ; 5477 20 1A CD .. jsr LCF69 ; 547A 20 69 CF i. jsr LC7ED ; 547D 20 ED C7 .. jmp LCFEF ; 5480 4C EF CF L.. ; ---------------------------------------------------------------------------- jsr LCF75 ; 5483 20 75 CF u. bpl L548B ; 5486 10 03 .. jmp OmniBEntryB ; 5488 4C 39 55 L9U ; ---------------------------------------------------------------------------- L548B: ldy #$00 ; 548B A0 00 .. lda ($92),y ; 548D B1 92 .. cmp #$9B ; 548F C9 9B .. beq L54AF ; 5491 F0 1C .. cmp #$20 ; 5493 C9 20 . beq L54AF ; 5495 F0 18 .. jsr LDA44 ; 5497 20 44 DA D. jsr LC151 ; 549A 20 51 C1 Q. L549D: jsr LC7BC ; 549D 20 BC C7 .. lda ($92),y ; 54A0 B1 92 .. jsr LC7D4 ; 54A2 20 D4 C7 .. bmi L549D ; 54A5 30 F6 0. jsr LC853 ; 54A7 20 53 C8 S. bcc L54AF ; 54AA 90 03 .. jmp OmniBEntryB ; 54AC 4C 39 55 L9U ; ---------------------------------------------------------------------------- L54AF: jsr LC84A ; 54AF 20 4A C8 J. lda #$9D ; 54B2 A9 9D .. jsr LCF63 ; 54B4 20 63 CF c. lda #$24 ; 54B7 A9 24 .$ jsr LCF63 ; 54B9 20 63 CF c. jsr LC80E ; 54BC 20 0E C8 .. lda #$3D ; 54BF A9 3D .= jsr LCF63 ; 54C1 20 63 CF c. jsr L553C ; 54C4 20 3C 55 <U lda $D4 ; 54C7 A5 D4 .. and #$03 ; 54C9 29 03 ). tay ; 54CB A8 . ldx #$00 ; 54CC A2 00 .. L54CE: lda $D5,x ; 54CE B5 D5 .. jsr LCF69 ; 54D0 20 69 CF i. inx ; 54D3 E8 . dey ; 54D4 88 . bpl L54CE ; 54D5 10 F7 .. jsr LC7ED ; 54D7 20 ED C7 .. jsr LCF75 ; 54DA 20 75 CF u. bmi OmniBEntryB ; 54DD 30 5A 0Z jsr LDDB6 ; 54DF 20 B6 DD .. jsr LC84A ; 54E2 20 4A C8 J. jsr L553C ; 54E5 20 3C 55 <U ldx #$05 ; 54E8 A2 05 .. L54EA: lda $D4,x ; 54EA B5 D4 .. pha ; 54EC 48 H lda $E0,x ; 54ED B5 E0 .. sta $D4,x ; 54EF 95 D4 .. pla ; 54F1 68 h sta $E0,x ; 54F2 95 E0 .. dex ; 54F4 CA . bpl L54EA ; 54F5 10 F3 .. ldy #$00 ; 54F7 A0 00 .. L54F9: lda ($92),y ; 54F9 B1 92 .. iny ; 54FB C8 . cmp #$20 ; 54FC C9 20 . beq L54F9 ; 54FE F0 F9 .. ldy #$03 ; 5500 A0 03 .. L5502: cmp Operator,y ; 5502 D9 2D 55 .-U ; Math done here beq L550C ; 5505 F0 05 .. dey ; 5507 88 . bpl L5502 ; 5508 10 F8 .. bmi OmniBEntryB ; 550A 30 2D 0- L550C: tya ; 550C 98 . asl a ; 550D 0A . tay ; 550E A8 . jsr L5524 ; 550F 20 24 55 $U bcs OmniBEntryB ; 5512 B0 25 .% jsr LD9D2 ; 5514 20 D2 D9 .. bcs OmniBEntryB ; 5517 B0 20 . lda $D4 ; 5519 A5 D4 .. sta $94 ; 551B 85 94 .. lda $D5 ; 551D A5 D5 .. sta $95 ; 551F 85 95 .. jmp L54AF ; 5521 4C AF 54 L.T ; ---------------------------------------------------------------------------- L5524: lda JumpTable,y ; 5524 B9 31 55 .1U pha ; 5527 48 H lda JumpTable+1,y ; 5528 B9 32 55 .2U pha ; 552B 48 H rts ; 552C 60 ` ; ---------------------------------------------------------------------------- Operator: .byte $2B,$2D,$2A,$2F ; 552D 2B 2D 2A 2F +-*/ ; ---------------------------------------------------------------------------- JumpTable: .word L65DB-1 ; 5531 DA 65 .e .word L5FDB-1 ; 5533 DA 5F ._ .word LDADB-1 ; 5535 DA DA .. .word L27DC-1 ; 5537 DB 27 .' ; ---------------------------------------------------------------------------- OmniBEntryB: jmp LCFEF ; 5539 4C EF CF L.. ; ---------------------------------------------------------------------------- L553C: lda $96 ; 553C A5 96 .. sta $D4 ; 553E 85 D4 .. lda $97 ; 5540 A5 97 .. sta $D5 ; 5542 85 D5 .. jsr LD9AA ; 5544 20 AA D9 .. rts ; 5547 60 ` ; ---------------------------------------------------------------------------- Mnemonics: .byte "???ADCANDASLBCCBCSBEQBITBMIBNEB"; 5548 3F 3F 3F 41 44 43 41 4E ???ADCAN ; 5550 44 41 53 4C 42 43 43 42 DASLBCCB ; 5558 43 53 42 45 51 42 49 54 CSBEQBIT ; 5560 42 4D 49 42 4E 45 42 BMIBNEB .byte "PLBRKBVCBVSCLCCLDCLICLVCMPCPXCP"; 5567 50 4C 42 52 4B 42 56 43 PLBRKBVC ; 556F 42 56 53 43 4C 43 43 4C BVSCLCCL ; 5577 44 43 4C 49 43 4C 56 43 DCLICLVC ; 557F 4D 50 43 50 58 43 50 MPCPXCP .byte "YDECDEXDEYEORINCINXINYJMPJSRLDA"; 5586 59 44 45 43 44 45 58 44 YDECDEXD ; 558E 45 59 45 4F 52 49 4E 43 EYEORINC ; 5596 49 4E 58 49 4E 59 4A 4D INXINYJM ; 559E 50 4A 53 52 4C 44 41 PJSRLDA .byte "LDXLDYLSRNOPORAPHAPHPPLAPLPROLR"; 55A5 4C 44 58 4C 44 59 4C 53 LDXLDYLS ; 55AD 52 4E 4F 50 4F 52 41 50 RNOPORAP ; 55B5 48 41 50 48 50 50 4C 41 HAPHPPLA ; 55BD 50 4C 50 52 4F 4C 52 PLPROLR .byte "ORRTIRTSSBCSECSEDSEISTASTXSTYTA"; 55C4 4F 52 52 54 49 52 54 53 ORRTIRTS ; 55CC 53 42 43 53 45 43 53 45 SBCSECSE ; 55D4 44 53 45 49 53 54 41 53 DSEISTAS ; 55DC 54 58 53 54 59 54 41 TXSTYTA .byte "XTAYTSXTXATXSTYA" ; 55E3 58 54 41 59 54 53 58 54 XTAYTSXT ; 55EB 58 41 54 58 53 54 59 41 XATXSTYA ; ---------------------------------------------------------------------------- OmniBEntryX: .byte $0B,$05,$23,$06,$00,$00,$00,$00 ; 55F3 0B 05 23 06 00 00 00 00 ..#..... .byte $00,$00,$23,$03,$03,$03,$00,$00 ; 55FB 00 00 23 03 03 03 00 00 ..#..... .byte $25,$05,$23,$01,$03,$04,$00,$00 ; 5603 25 05 23 01 03 04 00 00 %.#..... .byte $00,$00,$23,$02,$03,$02,$00,$00 ; 560B 00 00 23 02 03 02 00 00 ..#..... .byte $0A,$0B,$23,$07,$00,$00,$00,$00 ; 5613 0A 0B 23 07 00 00 00 00 ..#..... .byte $00,$00,$23,$08,$03,$08,$00,$00 ; 561B 00 00 23 08 03 08 00 00 ..#..... .byte $0E,$05,$23,$0A,$00,$00,$00,$00 ; 5623 0E 05 23 0A 00 00 00 00 ..#..... .byte $00,$00,$23,$09,$03,$09,$00,$00 ; 562B 00 00 23 09 03 09 00 00 ..#..... .byte $1D,$02,$02,$06,$00,$00,$00,$00 ; 5633 1D 02 02 06 00 00 00 00 ........ .byte $07,$03,$02,$03,$28,$03,$00,$00 ; 563B 07 03 02 03 28 03 00 00 ....(... .byte $27,$05,$02,$01,$28,$04,$00,$00 ; 5643 27 05 02 01 28 04 00 00 '...(... .byte $07,$02,$02,$02,$28,$02,$00,$00 ; 564B 07 02 02 02 28 02 00 00 ....(... .byte $08,$0B,$02,$07,$00,$00,$00,$00 ; 5653 08 0B 02 07 00 00 00 00 ........ .byte $00,$00,$02,$08,$28,$08,$00,$00 ; 565B 00 00 02 08 28 08 00 00 ....(... .byte $2D,$05,$02,$0A,$00,$00,$00,$00 ; 5663 2D 05 02 0A 00 00 00 00 -....... .byte $00,$00,$02,$09,$28,$09,$00,$00 ; 566B 00 00 02 09 28 09 00 00 ....(... .byte $2A,$05,$18,$06,$00,$00,$00,$00 ; 5673 2A 05 18 06 00 00 00 00 *....... .byte $00,$00,$18,$03,$21,$03,$00,$00 ; 567B 00 00 18 03 21 03 00 00 ....!... .byte $24,$05,$18,$01,$21,$04,$00,$00 ; 5683 24 05 18 01 21 04 00 00 $...!... .byte $1C,$02,$18,$02,$21,$02,$00,$00 ; 568B 1C 02 18 02 21 02 00 00 ....!... .byte $0C,$0B,$18,$07,$00,$00,$00,$00 ; 5693 0C 0B 18 07 00 00 00 00 ........ .byte $00,$00,$18,$08,$21,$08,$00,$00 ; 569B 00 00 18 08 21 08 00 00 ....!... .byte $10,$05,$18,$0A,$00,$00,$00,$00 ; 56A3 10 05 18 0A 00 00 00 00 ........ .byte $00,$00,$18,$09,$21,$09,$00,$00 ; 56AB 00 00 18 09 21 09 00 00 ....!... .byte $2B,$05,$01,$06,$00,$00,$00,$00 ; 56B3 2B 05 01 06 00 00 00 00 +....... .byte $00,$00,$01,$03,$29,$03,$00,$00 ; 56BB 00 00 01 03 29 03 00 00 ....)... .byte $26,$05,$01,$01,$29,$04,$00,$00 ; 56C3 26 05 01 01 29 04 00 00 &...)... .byte $1C,$0C,$01,$02,$29,$02,$00,$00 ; 56CB 1C 0C 01 02 29 02 00 00 ....)... .byte $0D,$0B,$01,$07,$00,$00,$00,$00 ; 56D3 0D 0B 01 07 00 00 00 00 ........ .byte $00,$00,$01,$08,$29,$08,$00,$00 ; 56DB 00 00 01 08 29 08 00 00 ....)... .byte $2F,$05,$01,$0A,$00,$00,$00,$00 ; 56E3 2F 05 01 0A 00 00 00 00 /....... .byte $00,$00,$01,$09,$29,$09,$00,$00 ; 56EB 00 00 01 09 29 09 00 00 ....)... .byte $00,$00,$30,$06,$00,$00,$00,$00 ; 56F3 00 00 30 06 00 00 00 00 ..0..... .byte $32,$03,$30,$03,$31,$03,$00,$00 ; 56FB 32 03 30 03 31 03 00 00 2.0.1... .byte $17,$05,$00,$00,$36,$05,$00,$00 ; 5703 17 05 00 00 36 05 00 00 ....6... .byte $32,$02,$30,$02,$31,$02,$00,$00 ; 570B 32 02 30 02 31 02 00 00 2.0.1... .byte $04,$0B,$30,$07,$00,$00,$00,$00 ; 5713 04 0B 30 07 00 00 00 00 ..0..... .byte $32,$08,$30,$08,$31,$0D,$00,$00 ; 571B 32 08 30 08 31 0D 00 00 2.0.1... .byte $38,$05,$30,$0A,$37,$05,$00,$00 ; 5723 38 05 30 0A 37 05 00 00 8.0.7... .byte $00,$00,$30,$09,$00,$00,$00,$00 ; 572B 00 00 30 09 00 00 00 00 ..0..... .byte $20,$01,$1E,$06,$1F,$01,$00,$00 ; 5733 20 01 1E 06 1F 01 00 00 ....... .byte $20,$03,$1E,$03,$1F,$03,$00,$00 ; 573B 20 03 1E 03 1F 03 00 00 ....... .byte $34,$05,$1E,$01,$33,$05,$00,$00 ; 5743 34 05 1E 01 33 05 00 00 4...3... .byte $20,$02,$1E,$02,$1F,$02,$00,$00 ; 574B 20 02 1E 02 1F 02 00 00 ....... .byte $05,$0B,$1E,$07,$00,$00,$00,$00 ; 5753 05 0B 1E 07 00 00 00 00 ........ .byte $20,$08,$1E,$08,$1F,$0D,$00,$00 ; 575B 20 08 1E 08 1F 0D 00 00 ....... .byte $11,$05,$1E,$0A,$35,$05,$00,$00 ; 5763 11 05 1E 0A 35 05 00 00 ....5... .byte $20,$09,$1E,$09,$1F,$0A,$00,$00 ; 576B 20 09 1E 09 1F 0A 00 00 ....... .byte $14,$01,$12,$06,$00,$00,$00,$00 ; 5773 14 01 12 06 00 00 00 00 ........ .byte $14,$03,$12,$03,$15,$03,$00,$00 ; 577B 14 03 12 03 15 03 00 00 ........ .byte $1B,$05,$12,$01,$16,$05,$00,$00 ; 5783 1B 05 12 01 16 05 00 00 ........ .byte $14,$02,$12,$02,$15,$02,$00,$00 ; 578B 14 02 12 02 15 02 00 00 ........ .byte $09,$0B,$12,$07,$00,$00,$00,$00 ; 5793 09 0B 12 07 00 00 00 00 ........ .byte $00,$00,$12,$08,$15,$08,$00,$00 ; 579B 00 00 12 08 15 08 00 00 ........ .byte $0F,$05,$12,$0A,$00,$00,$00,$00 ; 57A3 0F 05 12 0A 00 00 00 00 ........ .byte $00,$00,$12,$09,$15,$09,$00,$00 ; 57AB 00 00 12 09 15 09 00 00 ........ .byte $13,$01,$2C,$06,$00,$00,$00,$00 ; 57B3 13 01 2C 06 00 00 00 00 ..,..... .byte $13,$03,$2C,$03,$19,$03,$00,$00 ; 57BB 13 03 2C 03 19 03 00 00 ..,..... .byte $1A,$05,$2C,$01,$22,$05,$00,$00 ; 57C3 1A 05 2C 01 22 05 00 00 ..,."... .byte $13,$02,$2C,$02,$19,$02,$00,$00 ; 57CB 13 02 2C 02 19 02 00 00 ..,..... .byte $06,$0B,$2C,$07,$00,$00,$00,$00 ; 57D3 06 0B 2C 07 00 00 00 00 ..,..... .byte $00,$00,$2C,$08,$19,$08,$00,$00 ; 57DB 00 00 2C 08 19 08 00 00 ..,..... .byte $2E,$05,$2C,$0A,$00,$00,$00,$00 ; 57E3 2E 05 2C 0A 00 00 00 00 ..,..... .byte $00,$00,$2C,$09,$19,$09,$00,$00 ; 57EB 00 00 2C 09 19 09 00 00 ..,..... .byte $00,$00,$00,$00,$00,$00,$00,$00 ; 57F3 00 00 00 00 00 00 00 00 ........ .byte $00,$00,$00,$00 ; 57FB 00 00 00 00 ....

Omnimon - FastChip

1000 .TITLE "ATARI Floating Point ROM, Rewritten by C. W. Marslett" 1005 ; <<<< copyright 1981, by Charles W. Marslett >>>> 1010 ; <<<< Revision C, 30 November 1981 >>>> 1015 ; 1020 ; Most functions execute in 0.35 * standard ROM times. 1025 ; 1030 ROMADR=$D800 1035 FPREC = 6 1040 *= $D4 1045 FR0 *=*+FPREC 1050 FRE *=*+FPREC 1055 FR1 *=*+FPREC 1060 FR2 *=*+FPREC 1065 FRX *=*+FPREC 1070 EEXP =FRX+1 1075 NSIGN =FRX+2 1080 ESIGN =FRX+3 1085 FCHRFLG=FRX+4 1090 DIGRT =FRX+5 1095 CIX *=*+1 1100 INBUFF*=*+2 1105 Z1 *=*+2 1110 Z2 *=*+2 1115 Z3 *=*+2 1120 DEGRAD*=*+1 1125 FLPTR *=*+2 1130 FPTR2 *=*+2 1135 ; 1140 *=$057E 1145 LBPR1 *=*+1 1150 LBPR2 *=*+1 1155 LBUFF *=*+128 1160 PLYARG =LBUFF+$60 1165 FSCR =PLYARG+FPREC 1170 FSCR2 =FSCR+FPREC 1175 LBFEND =*-1 1180 *=ROMADR 1185 ; 1190 ; AFP = ASCII TO FLOATING PT. 1195 ; 1200 AFP JSR SKBLK 1205 JSR NXTCH 1210 BCS EXIT 1215 LDX #FRX 1220 JSR ZF1 1225 JSR ZFR0 1230 DEY 1235 STY DIGRT 1240 ; 1245 CHRLP STA FCHRFLG 1250 JSR GETCH 1255 BCS INVLD 1260 LDX FR0 1265 BNE NOTZER 1270 JSR SH0L4 1275 ORA FR0+FPREC-1 1280 STA FR0+FPREC-1 1285 LDX DIGRT 1290 BMI CHRLP0 1295 ; 1300 DECFND INC DIGRT 1305 ; 1310 NOTZER LDX DIGRT 1315 BPL CHRLP0 1320 INC EEXP 1325 CHRLP0 LDA #$FF 1330 BNE CHRLP 1335 INVLD CMP #'. 1340 BNE NODEC0 1345 LDX DIGRT 1350 BMI DECFND 1355 NODEC0 CMP #'E 1360 BNE NOEXP 1365 LDX CIX 1370 JSR GETCH 1375 BCC NOESG 1380 CMP #'+ 1385 BEQ SKESG 1390 CMP #'- 1395 BNE RSTEXP 1400 STA ESIGN 1405 SKESG JSR GETCH 1410 BCS RSTEXP 1415 EXPLP TAY 1420 LDA FRX 1425 ASL A 1430 ASL A 1435 ADC FRX 1440 ASL A 1445 STA FRX 1450 TYA 1455 ADC FRX 1460 NOESG STA FRX 1465 JSR GETCH 1470 BCC EXPLP 1475 BCS NUMEND 1480 ; 1485 ; BUFFER BUILDING ROUTINE 1490 ; 1495 CVASC ORA #'0 1500 STUFF STA LBUFF,Y 1505 INY 1510 EXIT RTS 1515 ; 1520 CDPNT DEC Z2 1525 BNE EXIT 1530 LDA #'. 1535 BNE STUFF 1540 ; 1545 ASCZER LDA #$B0 1550 LDY #0 1555 BEQ STUFF 1560 ; 1565 NOEXP LDX FCHRFLG 1570 BNE NUMEND 1575 CMP #'+ 1580 BEQ CHRLP0 1585 CMP #'- 1590 BNE NUMEND 1595 STA NSIGN 1600 BEQ CHRLP0 1605 ; 1610 RSTEXP STX CIX 1615 LDA #0 1620 STA FRX 1625 NUMEND LDA EEXP 1630 CLC 1635 ADC #$88 1640 LDX DIGRT 1645 BMI NODP 1650 SEC 1655 SBC DIGRT 1660 NODP LDX ESIGN 1665 BNE SUBEXP 1670 CLC 1675 ADC FRX 1680 JMP EXPOK 1685 SUBEXP SEC 1690 SBC FRX 1695 EXPOK LSR A 1700 BCC EVEXP 1705 JSR SH0L4 1710 EVEXP LDY FR0 1715 BEQ NORGT 1720 ADC #1 1725 LDX #FPREC-2 1730 SH0R LDY FR0,X 1735 STY FR0+1,X 1740 DEX 1745 BPL SH0R 1750 NORGT LDX NSIGN 1755 BEQ NOXOR 1760 EOR #$80 1765 NOXOR DEC CIX ;BACK UP OVER THE INVALID CHAR. 1770 JMP IFPE 1775 ; 1780 EXP3DG TXA 1785 SBC #100 1790 TAX 1795 LDA #'1 1800 BNE NNEXP 1805 ; 1810 NOEXPF JSR PRTDGT 1815 ORA #$80 1820 STA LBUFF,Y 1825 BNE GENMIN 1830 ; 1835 ; FASC = FP TO ASCII 1840 ; 1845 *=AFP+$00E6 1850 FASC JSR INITBF 1855 LDA FR0 1860 BEQ ASCZER 1865 ASL A 1870 ; 1875 SEC 1880 SBC #$7E 1885 CMP #FPREC+FPREC 1890 BCC NOEXPF 1895 SBC #2 1900 STA EEXP 1905 ; 1910 LDA #3 1915 JSR PRTDGT 1920 INY 1925 LDA #'E' 1930 JSR STUFF 1935 LDA #'+' 1940 LDX EEXP 1945 BPL NNEXP 1950 LDA #0 1955 SEC 1960 SBC EEXP 1965 TAX 1970 LDA #'-' 1975 NNEXP JSR STUFF 1980 CPX #100 1985 BCS EXP3DG 1990 TXA 1995 INY 2000 LDX #$FF 2005 SEC 2010 CVDLP SBC #10 2015 INX 2020 BCS CVDLP 2025 ADC #$8A 2030 JSR CVASC 2035 TXA 2040 ORA #'0' 2045 STA LBUFF-2,Y 2050 GENMIN LDA FR0 2055 BPL MINXIT 2060 DEC INBUFF 2065 LDY #0 2070 LDA #'-' 2075 STA (INBUFF),Y 2080 MINXIT RTS 2085 ; 2090 IFPSU STY FR0+2 2095 SED 2100 LDY #16 2105 IFPS ASL FR0+1 2110 ROL A 2115 DEY 2120 BCS IFPEN 2125 BPL IFPS 2130 CLD 2135 RTS 2140 ; 2145 IFPEN STA Z3 2150 IFPL LDA FR0+3 2155 ADC FR0+3 2160 STA FR0+3 2165 LDA FR0+2 2170 ADC FR0+2 2175 STA FR0+2 2180 ROL FR0+1 2185 ROL Z3 2190 DEY 2195 BPL IFPL 2200 ; 2205 LDA #$42 2210 BNE JIFPE 2215 ; 2220 FPICTU STY FR0 2225 BEQ FFRAC 2230 ASL A 2235 ASL A 2240 ASL A 2245 ASL A 2250 TAX 2255 ; 2260 CVTLP ASL FR0+4 2265 ROL FR0+3 2270 ROL FR0+2 2275 ROL FR0+1 2280 BCC CVTST 2285 LDA FR0 2290 ADC BITTAB,X 2295 STA FR0 2300 TYA 2305 ADC BITTAB+1,X 2310 TAY 2315 CVTST DEX 2320 DEX 2325 BNE CVTLP 2330 ; 2335 FFRAC LDA FR0+1 2340 CMP #$50 2345 LDA FR0 2350 ADC #0 2355 STA FR0 2360 TYA 2365 ADC #0 2370 STA FR0+1 2375 RTS 2380 ; 2385 CVTHEX PHA 2390 LSR A 2395 LSR A 2400 LSR A 2405 LSR A 2410 CLC 2415 JSR CVHDIG 2420 PLA 2425 AND #$0F 2430 JMP CVHDIG 2435 ; 2440 *= AFP+$01AA 2445 IFP LDA FR0+1 2450 LDX FR0 2455 STX FR0+1 2460 LDY #0 2465 STY FR0+3 2470 STY FR0+4 2475 STY FR0+5 2480 BEQ IFPSU 2485 ; 2490 FDIF5 LDA FR0,X 2495 SBC FR1+1,Y 2500 STA FR0,X 2505 DEX 2510 DEY 2515 BPL FDIF5 2520 FDIF6 DEX 2525 BMI FNME 2530 LDA FR0+1,X 2535 SBC #0 2540 STA FR0+1,X 2545 BCC FDIF6 2550 BCS FNORM 2555 ; 2560 ; 2565 ; FPI = FP TO INTEGER 2570 ; 2575 *= AFP+$01D2 2580 FPI LDY #0 2585 LDA FR0 2590 CMP #$43 2595 BCS ZFR0 2600 SBC #$3E ;REALLY 3F 2605 BCS FPICTU 2610 BCC ZFR0 2615 JIFPE BNE IFPE 2620 ; 2625 *=AFP+$01E7 2630 FNME BCS FNORM 2635 SEC 2640 LDX #FPREC-1 2645 FNM0 LDA #0 2650 SBC FR0,X 2655 STA FR0,X 2660 DEX 2665 BNE FNM0 2670 ; 2675 LDA FR0 2680 EOR #$80 2685 IFPE STA FR0 2690 FNORM CLD 2695 LDY #FPREC-1 2700 FNML LDA FR0+1 2705 BEQ FNM2 2710 CLC 2715 RTS 2720 ; 2725 FNM3 LDX #1-FPREC 2730 FNM4 LDA FR0+FPREC+1,X 2735 STA FR0+FPREC,X 2740 INX 2745 BNE FNM4 2750 DEY 2755 BNE FNML 2760 ; 2765 BEQ RZERO 2770 FR0BIG EOR #$FF 2775 ADC #FPREC-2 2780 BCC FNML 2785 TAY 2790 SED 2795 LDA FR0 2800 EOR FR1 2805 BMI FDIF5 2810 CLC 2815 FADD5 LDA FR0,X 2820 ADC FR1+1,Y 2825 STA FR0,X 2830 DEX 2835 DEY 2840 BPL FADD5 2845 ; 2850 FADD6 DEX 2855 BMI FHTST 2860 LDA FR0+1,X 2865 ADC #0 2870 STA FR0+1,X 2875 BCS FADD6 2880 BCC FHTST 2885 ; 2890 FNM2 STA FR0+FPREC 2895 FNMUL LDA FR0 2900 DEC FR0 2905 EOR FR0 2910 BPL FNM3 2915 ; 2920 ; RETURN A ZERO (CARRY CLEAR) AS RESULT 2925 ; 2930 RZERO CLC 2935 ; 2940 ; ZFR0 = ZERO FR0 2945 ; 2950 ZFR0 LDX #FR0 2955 ; 2960 ; ZF1 = ZERO ANY PAGE 1 FP REG 2965 ; 2970 ZF1 LDY #FPREC 2975 ; 2980 ; ZERO ANY OR ALL OF PAGE ZERO 2985 ; 2990 ZPG0 LDA #0 2995 ZF1LP STA 0,X 3000 INX 3005 DEY 3010 BNE ZF1LP 3015 RTS 3020 ; 3025 INITBF LDA #LBUFF/256 3030 STA INBUFF+1 3035 LDA #LBUFF&$FF 3040 STA INBUFF 3045 RTS 3050 ; 3055 DBLZ2 ASL Z2+1 3060 ROL Z2 3065 RTS 3070 ; 3075 *= AFP+$0260 3080 ; 3085 ; FSUB = FLOATING SUBTRACT 3090 ; 3095 FSUB LDA FR1 3100 EOR #$80 3105 STA FR1 3110 ; 3115 ; FADD = FLOATING POINT ADD 3120 ; 3125 FADD LDX #FPREC-1 3130 LDA FR1 3135 AND #$7F 3140 STA Z2 3145 LDA FR0 3150 AND #$7F 3155 SEC 3160 SBC Z2 3165 BPL FR0BIG 3170 ADC #FPREC-1 3175 TAY 3180 SED 3185 LDA FR0 3190 EOR FR1 3195 BMI FDIF0 3200 CLC 3205 DEY 3210 BMI FADD1 3215 FADD0 LDA FR0+1,Y 3220 ADC FR1,X 3225 STA FR0,X 3230 DEX 3235 DEY 3240 BPL FADD0 3245 FADD1 LDA FR1,X 3250 ADC #0 3255 STA FR0,X 3260 DEX 3265 BNE FADD1 3270 ; 3275 LDA FR1 3280 STA FR0 3285 FHTST BCC FADDX 3290 LDX #FPREC-2 3295 FADD2 LDA FR0,X 3300 STA FR0+1,X 3305 DEX 3310 BNE FADD2 3315 LDA #1 3320 STA FR0+1 3325 LDA FR0 3330 INC FR0 3335 EOR FR0 3340 ROL A 3345 FADDX CLD 3350 RTS 3355 ; 3360 FDIF0 SEC 3365 DEY 3370 BMI FDIF2 3375 FDIF1 LDA FR1,X 3380 SBC FR0+1,Y 3385 STA FR0,X 3390 DEX 3395 DEY 3400 BPL FDIF1 3405 FDIF2 LDA FR1,X 3410 SBC #0 3415 STA FR0,X 3420 DEX 3425 BNE FDIF2 3430 LDA FR1 3435 STA FR0 3440 JMP FNME 3445 ; 3450 *= AFP+$2D5 3455 NOOVFL LDX #FPREC-1 3460 STX Z3 3465 SED 3470 RTS 3475 ; 3480 ; FMUL = FLOATING MULTIPLY 3485 ; 3490 *= AFP+$02DB 3495 FMUL LDA FR1 3500 BEQ JZERO 3505 LDA FR0 3510 BEQ FDXIT 3515 ; 3520 TAX 3525 SEC 3530 SBC #$3F 3535 CLC 3540 ADC FR1 3545 JSR MDEXP 3550 MOVEL LDA FR0,X 3555 STA FRE,X 3560 STA FR2,X 3565 LDA #0 3570 STA FR0,X 3575 DEX 3580 BNE MOVEL 3585 STA FRE 3590 STA FR2 3595 STA Z3+1 3600 LDX #FRE 3605 JSR SHL4 3610 BEQ LOOPE 3615 ; 3620 MDEXP STA FR0 3625 TXA 3630 EOR FR1 3635 EOR FR0 3640 BPL NOOVFL 3645 ;JSR SHL4 3650 PLA 3655 PLA 3660 LDA FR0 3665 ROL A 3670 BMI JZERO 3675 ;BEQ LOOPE 3680 OVFLDV SEC 3685 RTS 3690 ; 3695 FDXIT CLC 3700 RTS 3705 ; 3710 JZERO JMP RZERO 3715 ; 3720 ; FDIV = FLOATING DIVIDE 3725 ; 3730 *= AFP+$0325 3735 LDDIV JSR FLD1P ;LOAD DIVISOR 3740 ; 3745 FDIV LDA FR1 3750 BEQ OVFLDV 3755 LDA FR0 3760 BEQ FDXIT 3765 TAX 3770 SEC 3775 SBC FR1 3780 CLC 3785 ADC #$40 3790 JSR MDEXP 3795 DSETUP LDA FR1,X 3800 STA FR2,X 3805 LDA FR0,X 3810 STA FR0+1,X 3815 DEX 3820 BNE DSETUP 3825 STX FR2 3830 STX FR0+1 3835 LDX #FR2 3840 JSR SHL4 3845 SEC 3850 LDX #0-FPREC 3855 JMP SUB10E 3860 ; 3865 LOOP0 LDA FR0+5 3870 STA Z3+1 3875 LDA FR0+4 3880 STA FR0+5 3885 LDA FR0+3 3890 STA FR0+4 3895 LDA FR0+2 3900 STA FR0+1,X 3905 STA FR0+3 3910 LDA FR0+1 3915 STA FR0+2 3920 STY FR0+1 3925 ; 3930 LOOPE LDX Z3 3935 LDA FR1,X 3940 BEQ NOONE 3945 LSR A 3950 LSR A 3955 LSR A 3960 LSR A 3965 BEQ NOTEN 3970 LDX #FRE 3975 JSR DOMULT 3980 LDX Z3 3985 NOTEN LDA FR1,X 3990 AND #$0F 3995 BEQ NOONE 4000 LDX #FR2 4005 JSR DOMULT 4010 NOONE DEC Z3 4015 BNE LOOP0 4020 LDA Z3+1 4025 STA FR0+6 4030 FNDIV CLD 4035 LDA FR0+1 4040 BNE FDXIT 4045 LDY #FPREC 4050 JMP FNMUL 4055 ; 4060 ; SKBLK = SKIP A STRING OF BLANKS (POSSIBLY NULL) 4065 ; 4070 ; 4075 *=AFP+$03A1 4080 SKBLK LDY CIX 4085 LDA #' ' 4090 BNE FSTTST 4095 LPBLK INY 4100 FSTTST CMP (INBUFF),Y 4105 BEQ LPBLK 4110 STY CIX 4115 RTS 4120 ; 4125 ; GCHAR = FETCH A CHARACTER AND CONVERT TO NUMERIC 4130 ; 4135 GCHAR LDY CIX 4140 LDA (INBUFF),Y 4145 SEC 4150 SBC #'0 4155 CMP #10 4160 RTS 4165 ; 4170 ; CHECK FOR A VALID NUMERIC FIELD 4175 ; 4180 NXTCH JSR GETCH 4185 BCC GDCHR 4190 CMP #'. 4195 BEQ DOTVLD 4200 CMP #'+ 4205 BEQ SGNCHK 4210 CMP #'- 4215 BNE BADCH 4220 ; 4225 SGNCHK LDA (INBUFF),Y 4230 CMP #'. 4235 ; 4240 BEQ GDCHR 4245 DOTVLD LDA (INBUFF),Y 4250 CMP #'0 4255 BCS MAYBE 4260 ; 4265 BADCH SEC 4270 RTS 4275 ; 4280 ; GETCH = GET A BYTE FROM A TEXT BUFFER 4285 ; 4290 GETCH JSR GETCH 4295 BCC UPCIX 4300 LDA (INBUFF),Y 4305 UPCIX INY 4310 STY CIX 4315 RTS 4320 ; 4325 ; SH0L4 = SHIFT FR0 LEFT 4 BITS 4330 ; 4335 *= AFP+$03E4 4340 SH0L4 LDX #FR0 4345 SHL4 LDY #4 4350 SHLM ASL 5,X 4355 ROL 4,X 4360 ROL 3,X 4365 ROL 2,X 4370 ROL 1,X 4375 ROL 0,X 4380 DEY 4385 BNE SHLM 4390 RTS 4395 ; 4400 MAYBE CMP #'9+1 4405 BCS BADCH 4410 GDCHR CLC 4415 DEC CIX 4420 RTS 4425 ; 4430 *=AFP+$0400 4435 NORMAL JMP FNORM ;ATARI NORMALIZATION ENTRY POINT 4440 ; 4445 ; 4450 ; DIVISION LOOP 4455 ; 4460 ; 4465 FDIVLP STY FRE+FPREC,X 4470 BMI SUB10E 4475 ; 4480 SUB10N INY 4485 SUB10E LDA FRE+6,X 4490 SBC FR2+5 4495 STA FRE+6,X 4500 LDA FRE+5,X 4505 SBC FR2+4 4510 STA FRE+5,X 4515 LDA FRE+4,X 4520 SBC FR2+3 4525 STA FRE+4,X 4530 LDA FRE+3,X 4535 SBC FR2+2 4540 STA FRE+3,X 4545 LDA FRE+2,X 4550 SBC FR2+1 4555 STA FRE+2,X 4560 LDA FRE+1,X 4565 SBC FR2 4570 STA FRE+1,X 4575 BCS SUB10N 4580 TYA 4585 ASL A 4590 ASL A 4595 ASL A 4600 ASL A 4605 ORA #10 4610 TAY 4615 ADD01N LDA FRE+6,X 4620 ADC FR1+5 4625 STA FRE+6,X 4630 LDA FRE+5,X 4635 ADC FR1+4 4640 STA FRE+5,X 4645 LDA FRE+4,X 4650 ADC FR1+3 4655 STA FRE+4,X 4660 LDA FRE+3,X 4665 ADC FR1+2 4670 STA FRE+3,X 4675 LDA FRE+2,X 4680 ADC FR1+1 4685 STA FRE+2,X 4690 LDA FRE+1,X 4695 ADC #0 4700 STA FRE+1,X 4705 DEY 4710 BCC ADD01N 4715 STY FRE+1,X 4720 TAY 4725 INX 4730 BMI FDIVLP 4735 JMP FNDIV 4740 ; 4745 DOMULT TAY 4750 CLC 4755 MULLP LDA Z3+1 4760 ADC 5,X 4765 STA Z3+1 4770 LDA FR0+5 4775 ADC 4,X 4780 STA FR0+5 4785 LDA FR0+4 4790 ADC 3,X 4795 STA FR0+4 4800 LDA FR0+3 4805 ADC 2,X 4810 STA FR0+3 4815 LDA FR0+2 4820 ADC 1,X 4825 STA FR0+2 4830 LDA FR0+1 4835 ADC 0,X 4840 STA FR0+1 4845 DEY 4850 BNE MULLP 4855 RTS 4860 ; 4865 BITTAB=*-2 4870 .WORD 0 4875 .WORD 1 4880 .WORD 3 4885 .WORD 7 4890 .WORD 9 4895 .WORD 19 4900 .WORD 39 4905 .WORD 79 4910 .WORD 99 4915 .WORD 199 4920 .WORD 399 4925 .WORD 799 4930 .WORD 999 4935 .WORD 1999 4940 .WORD 3999 4945 .WORD 7999 4950 .WORD 9999 4955 .WORD 19999 4960 .WORD 39999 4965 .BYTE $FF,$FF,$FF,$FF,$FF,$FF 4970 .BYTE $FF,$FF,$FF,$FF 4975 PRTDGT LSR A 4980 ROR CIX 4985 STA Z2 4990 LDX #1-FPREC 4995 LDY #0 5000 INC Z2 5005 DGTLP JSR CDPNT 5010 LDA FR0+FPREC,X 5015 LSR A 5020 LSR A 5025 LSR A 5030 LSR A 5035 JSR CVASC 5040 LDA FR0+FPREC,X 5045 AND #$0F 5050 JSR CVASC 5055 INX 5060 BMI DGTLP 5065 JSR CDPNT 5070 ; 5075 LDA #'0 5080 CMP LBUFF 5085 BEQ STRIPZ 5090 BCC DECSFT 5095 DEC INBUFF 5100 STA LBUFF-1 5105 BCS ZSCAN 5110 STRIPZ INC INBUFF 5115 BCS ZSCAN 5120 DECSFT LDA CIX 5125 BPL ZSCAN 5130 LDA LBUFF+1 5135 STA LBUFF+2 5140 LDA #'. 5145 STA LBUFF+1 5150 INC EEXP 5155 ZSCAN LDY #11 5160 ZSCNLP DEY 5165 BEQ LSTCHR 5170 LDA LBUFF,Y 5175 CMP #'0' 5180 BEQ ZSCNLP 5185 CMP #'.' 5190 BNE TRXIT 5195 DEY 5200 LSTCHR LDA LBUFF,Y 5205 TRXIT RTS 5210 ; 5215 RSTARG LDX #FPREC-1 5220 RSTALP LDA PLYARG,X 5225 STA FR1,X 5230 DEX 5235 BPL RSTALP 5240 RTS 5245 ; 5250 LDARG LDX #FPREC-1 5255 LDALP LDA PLYARG,X 5260 STA FR0,X 5265 DEX 5270 BPL LDALP 5275 RTS 5280 ; 5285 ; POLYNOMIAL X^N+A1*X^N-1... 5290 ; 5295 PLYONE JSR SAVARG 5300 CTUONE STA CIX 5305 BNE PLYADD 5310 RTS 5315 ; 5320 ; POLYNOMIAL A1*X^N... 5325 ; 5330 *= AFP+$0540 5335 PLYEVL JSR SAVARG 5340 CTUEVL STA CIX 5345 JSR LDPLY 5350 DEC CIX 5355 BNE PLYENT 5360 RTS 5365 PLYLP DEC CIX 5370 BEQ PLYXIT 5375 JSR RSTARG 5380 PLYENT JSR FMUL 5385 BCS PLYXIT 5390 PLYADD JSR LDPLY 5395 JSR FADD 5400 BCC PLYLP 5405 PLYXIT RTS 5410 ; 5415 LDPLY LDY #FPREC-1 5420 LDPLYL LDA (FPTR2),Y 5425 STA FR1,Y 5430 DEY 5435 BPL LDPLYL 5440 CLC 5445 LDA FPTR2 5450 ADC #FPREC 5455 STA FPTR2 5460 BCC LDPLX 5465 INC FPTR2+1 5470 LDPLX RTS 5475 ; 5480 SAVARG STY FPTR2+1 5485 STX FPTR2 5490 PUTARG TAY 5495 LDX #FPREC-1 5500 SAVALP LDA FR0,X 5505 STA PLYARG,X 5510 DEX 5515 BPL SAVALP 5520 TYA 5525 RTS 5530 ; 5535 ; LOAD FLOATING REGISTERS 5540 ; 5545 *= AFP+$0589 5550 FLD0R STX FLPTR 5555 STY FLPTR+1 5560 FLD0P LDY #FPREC-1 5565 FLD0L LDA (FLPTR),Y 5570 STA FR0,Y 5575 DEY 5580 BPL FLD0L 5585 RTS 5590 ; 5595 FLD1R STX FLPTR 5600 STY FLPTR+1 5605 FLD1P LDY #FPREC-1 5610 FLD1L LDA (FLPTR),Y 5615 STA FR1,Y 5620 DEY 5625 BPL FLD1L 5630 RTS 5635 ; 5640 FST0R STX FLPTR 5645 STY FLPTR+1 5650 FST0P LDY #FPREC-1 5655 FST0L LDA FR0,Y 5660 STA (FLPTR),Y 5665 DEY 5670 BPL FST0L 5675 RTS 5680 ; 5685 FMOVE LDX #FPREC-1 5690 FMOVL LDA FR0,X 5695 STA FR1,X 5700 DEX 5705 BPL FMOVL 5710 OVFEXP RTS 5715 ; 5720 ; EXPONENTIAL FUNCTIONS 5725 ; 5730 *= AFP+$05C0 5735 EXP LDY #INVL10/256 5740 LDX #INVL10&$FF 5745 JSR FLD1R 5750 JSR FMUL 5755 BCS OVFEXP 5760 ; 5765 EXP10 JSR FMOVE 5770 ASL FR0 5775 LSR FR0 5780 JSR FPI 5785 LDA FR1 5790 BPL PLSEXP 5795 SEC 5800 LDA #128 5805 SBC FR0 5810 STA Z1+1 5815 LDA #0 5820 SBC FR0+1 5825 BEQ EXPRV 5830 JMP RZERO 5835 ; 5840 PLSEXP CLC 5845 LDA FR0 5850 ADC #128 5855 STA Z1+1 5860 LDA #0 5865 ADC FR0+1 5870 BNE OVFEXP 5875 EXPRV STA Z1 5880 JSR IFP 5885 ASL FR0 5890 LDA #$7F 5895 CMP FR1 5900 ROR FR0 5905 JSR FADD 5910 ; 5915 LDA FR0 5920 AND #$7F 5925 CMP #$3F 5930 BNE EVALG 5935 LDA FR0+1 5940 CMP #$25 5945 BCC EVALG 5950 STA Z1 5955 LDY #HALF/256 5960 LDX #HALF&$FF 5965 JSR FLD1R 5970 LDA FR0 5975 ASL FR1 5980 ASL A 5985 ROR FR1 5990 BPL NODEC 5995 DEC Z1+1 6000 NODEC JSR FSUB 6005 EVALG LDY #FSCR/256 6010 LDX #FSCR&$FF 6015 JSR FST0R 6020 JSR FMOVE 6025 JSR FMUL 6030 LDY #EXPPLY/256 6035 LDX #EXPPLY&$FF 6040 LDA #2 6045 JSR PLYEVL 6050 JSR FLD1P 6055 JSR FMUL 6060 JSR FST0P 6065 JSR LDARG 6070 LDA #2 6075 JSR CTUONE 6080 JSR FLD1P 6085 JSR FSUB 6090 JSR FMOVE 6095 JSR FLD0P 6100 JSR FDIV 6105 JSR LDPLY 6110 JSR FADD 6115 JSR FMOVE 6120 JSR FADD 6125 LDA Z1 6130 BEQ NOSQR 6135 JSR LDPLY 6140 JSR FMUL 6145 NOSQR LSR Z1+1 6150 BCC NOSFT 6155 LDY #C10/256 6160 LDX #C10&$FF 6165 JSR FLD1R 6170 JSR FMUL 6175 NOSFT CLC 6180 LDA FR0 6185 ADC Z1+1 6190 SBC #$3F 6195 STA FR0 6200 CLC 6205 OVFLOG RTS 6210 *=AFP+$0695 6215 REDARG JSR FLD1R 6220 JSR PUTARG 6225 JSR FADD 6230 LDY #FSCR/256 6235 LDX #FSCR&$FF 6240 JSR FST0R 6245 JSR LDARG 6250 JSR FSUB 6255 JMP LDDIV 6260 ; 6265 ; EXPONENTIAL CONSTANTS 6270 ; 6275 *=AFP+$06AF 6280 EXPPLY .BYTE $40,$08,$70,$38,$83,$66 6285 .BYTE $40,$69,$01,$09,$31,$26 6290 .BYTE $40,$34,$04,$40,$20,$67 6295 .BYTE $40,$59,$94,$21,$33,$27 6300 SQR10 .BYTE $40,$03,$16,$22,$77,$66 6305 ; 6310 ; LOGRITHMS 6315 ; 6320 *=AFP+$06CD 6325 LOG LDA #$80 6330 BNE LOGS 6335 LOG10 LDA #0 6340 LOGS STA Z1+1 6345 LDA FR0 6350 ASL A 6355 BCS OVFLOG 6360 SBC #$7D 6365 STA Z1 6370 LDA FR0+1 6375 CMP #$10 6380 BCS NOLSFT 6385 DEC Z1 6390 JSR SH0L4 6395 NOLSFT LDX #$3F 6400 LDA FR0+1 6405 CMP #$31 6410 BCS NORSFT 6415 DEC Z1 6420 INX 6425 LDY #4 6430 RSLOOP LSR FR0+1 6435 ROR FR0+2 6440 ROR FR0+3 6445 ROR FR0+4 6450 ROR FR0+5 6455 DEY 6460 BNE RSLOOP 6465 NORSFT STX FR0 6470 LDY #NONE/256 6475 LDX #NONE&$FF 6480 JSR REDARG 6485 JSR FST0P 6490 JSR FMOVE 6495 JSR FMUL 6500 LDY #LOGPLY/256 6505 INX 6510 STX FR0+1 6515 LDX #LOGPLY&$FF 6520 LDA #3 6525 JSR PLYONE 6530 LDX #FSCR2&$FF 6535 JSR FST0R+2 6540 JSR LDARG 6545 LDA #3 6550 JSR CTUEVL 6555 JSR FLD1P 6560 JSR FDIV 6565 JSR RSTARG 6570 JSR FMUL 6575 JSR LDPLY 6580 JSR FADD 6585 LDX #FSCR&$FF 6590 JSR FLD1R+2 6595 JSR FMUL 6600 JSR FMOVE 6605 LDA Z1 6610 BPL INTPRT 6615 SEC 6620 TXA 6625 SBC Z1 6630 INTPRT STA FR0 6635 JSR IFP 6640 ASL FR0 6645 ASL Z1 6650 ROR FR0 6655 JSR FADD 6660 LDA Z1+1 6665 BEQ LOG10E 6670 JSR LDPLY 6675 JSR FMUL 6680 LOG10E RTS 6685 ; 6690 ; CONSTANTS USED IN LOGS 6695 ; 6700 *=AFP+$076C 6705 HALF .BYTE $3F,$50,0,0,0,0 6710 LOGPLY .BYTE $C0,$08,$19,$08,$00,$45 6715 .BYTE $40,$16,$96,$69,$81,$40 6720 .BYTE $C0,$10,$07,$04,$06,$96 6725 .BYTE $BF,$67,$35,$81,$60,$15 6730 .BYTE $40,$03,$16,$30,$34,$92 6735 .BYTE $C0,$02,$91,$56,$81,$44 6740 .BYTE $3F,$86,$85,$88,$96,$38 6745 LN10 .BYTE $40,$02,$30,$25,$85,$09 6750 ; 6755 ; EXPONENTIAL CONSTANTS 6760 ; 6765 INVL10 .BYTE $3F,$43,$42,$94,$48,$19 6770 C10 .BYTE $40,$10,0,0,0,0 6775 ; 6780 ; CONSTANTS FOR SIN/COS POLYNOMIAL 6785 ; (11 COEFFICIENTS) 6790 ; 6795 *=AFP+$07AE 6800 PLYSIN .BYTE $3E,$16,$05,$44,$49,$00 6805 .BYTE $BE,$95,$68,$38,$45,$00 6810 .BYTE $3F,$02,$68,$79,$94,$16 6815 .BYTE $BF,$04,$92,$78,$90,$80 6820 .BYTE $3F,$07,$03,$15,$20,$00 6825 .BYTE $BF,$08,$92,$29,$12,$44 6830 .BYTE $3F,$11,$08,$40,$09,$11 6835 .BYTE $BF,$14,$28,$31,$56,$04 6840 .BYTE $3F,$19,$99,$98,$77,$44 6845 .BYTE $BF,$33,$33,$33,$31,$13 6850 NONE .BYTE $3F,$99,$99,$99,$99,$99 6855 ; 6860 ; SIN(45 degrees) 6865 ; 6870 SIN45 .BYTE $3F,$78,$53,$98,$16,$34 6875 ; 6880 ; BINARY TO HEXADECIMAL CONVERSION ROUTINE 6885 ; 6890 CVHDIG SED 6895 ADC #$90 6900 ADC #$40 6905 STA (INBUFF),Y 6910 INY 6915 CLD 6920 RTS

Omnimon OS

2016-11-16 11:06 omnimon-xl.src Page 1 ;* Neil Cherry ;* October 22, 2016 ;* Incomplete Atari Omnimon XL listing (A Work in Progress) ;* ;* It took me a little while to realize that this file is just the OS part of the ;* Omnimon XL chip. ;* ;* On the Atari 800, Omnimon exists in 2 4K banks that can be swapped in and out ;* while Omnimon runs (share code at the same address for the command line). This ;* appears to be what the $C000 and $5000 sections are below. ;* Omnimon XL entry points: ;* $C001 = USR(49153) ;* $E6F3 = Unknown (?) UNKVEntry (Wierd, matches IRQ Entry point) ;* $E791 = NMI NMIVEntry ;* $F125 = Reset RSTVEntry ;* $E6F3 = IRQ/BRK IRQVEntry ; The OSNXL Operating System (27128 - 16K) ; ROM Address Computer Address Function ; 0000-0FFF C000-CFFF Omnimon (XL/XE, 49152 - 53247) ; 1000-17FF 5000-57FF Omnimon (See Note 1, 20480 - 22527) ; 1800-1FFF D800-DFFF Fastchip FP Routines (55296 - 57343) ; 2000-3FFF E000-FFFF OS (This file, 57344 - 65535) ; ; Note 1: This portion of the rom is only visible to the computer when ; bit 7 of address $D301 is 0. When this occurs, the portion of the OS ; is mapped over the RAM at location $5000. ; .include omnimon-a.m65 (4K) ; .include omnimon-b.m65 (2K) ; .include fastchip.m65 (2K) ; .include omnimon-os.m65 (8K) - this file ;--- -------- ------ -------- ----------------- ------------------ =0000 000010 * = $E400 ; =7000 000015 .set 6,-$9000 =0000 000010 * = $E400 =D01F 000016 CONSOL = $D01F ; njc =E459 000020 SIOV = $E459 =E45C 000025 SETVBV = $E450 =E468 000030 SENDEV = $E46S ; 5400 FBF3 000035 EDITOR .WORD $F3FC-1 ;* 5402 33F6 000040 .WORD $F634-1 ;* 5404 3DF6 000045 .WORD $F63E-1 ;* 5406 A3F6 000050 .WORD $F6A4-1 ;* 5408 33FC 000055 .WORD $F634~1 ;* 540A 3CF6 000060 .WORD $F63D-1 ;* 540C 4CD0F3 000065 JMP $F3D0 ;* PWRONA 540F 00 000070 .BYTE 0 ;* ; 5410 F5FE 000075 DISPLA .WORD $F3F6-1 ;* 5412 33F6 000080 .WORD $F634~1 ;* 5414 92F5 000085 .WORD $F593~1 ;* 5416 B6F5 000090 .WORD $F5B7-1 ;* 2016-11-16 11:06 omnimon-xl.src Page 2 5418 33F6 000095 .WORD $F634-1 ;* 541A DCFC 000100 .WORD $FCDD~1 ;* 541C 4CD0F3 000105 JMP $F3D0 ;* 541F 00 000110 .BYTE 0 ;* ; 5420 33F6 000115 KBDHND .WORD $F634-1 ;* 5422 33F6 000120 .WORD $F634-1 ;* 5424 E1F6 000125 .WORD $F6E2-1 ;* 5426 3CF6 000130 .WORD $F63D~1 ;* 5428 33F6 000135 .WORD $F634~i ;* 542A 3CF6 000140 .WORD $F63D-1 ;* 542C 4CD0F3 000145 JMP $F3D0 ;* 542F 00 000150 .BYTE 0 ;* ; 5430 9EEE 000155 PTRHND .WORD PHOPEN-1 ;* 5432 DBEE 000160 .WORD PHCLOS-1 ;* 5434 9DEE 000165 .WORD BADST-1 ;* 5436 A6EE 000170 .WORD PHWRIT-1 ;* 5438 80EE 000175 .WORD PHSTAT~1 ;* 543A 9DEE 000180 .WORD BADST-1 ;* 543C 4C78EE 000185 JMP PHINIT ;* 543F 00 000190 .byte 0 ;* ; 5440 4BEF 000195 CASHND .WORD OPENC-1 ;* 5442 2AF0 000200 .WORD $F02B-1 ;* 5444 D5EF 000205 .WORD GBYTE-1 ;* 5446 0FF0 000210 .WORD $F010-1 ;* 5448 27F0 000215 .WORD $F028-1 ;* 544A 4AEF 000220 .WORD SPECIA-1 ;* 544C 4C41EF 000225 JMP INIT ;* 544F 00 000230 .BYTE 0 ;* ; 5450 4CEAED 000235 JMP DINIT ;* 5453 4CF0ED 000240 JMP DSKIF ;* ; LE456 (I think) 5456 4CC4E4 000245 JMP CIO ;* ; LE459 (I think) 5459 4C59E9 000250 JMP SIO ;* 545C 4CEDE8 000255 JMP SETVBL ;* 545F 4CAEE7 000260 JMP SYSVBL ;* 5462 4C05E9 000265 JMP XITVBL ;* 5465 4C44E9 000270 JMP SIOINT ;* 5468 4CF2EB 000275 JMP SENDEN ;* 546B 4CD5E6 000280 JMP IHINIT ;* 546E 4CA6E4 000285 JMP CIOINT ;* 5471 4CC9F2 000290 JMP BLACKB ;* 5474 4C1BF1 000295 JMP RESET ;* 5477 4C25F1 000300 JMP PWRUP ;* 547A 4CE9EF 000305 JMP RBLOK ;* 547D 4C50EF 000310 JMP OPIMP ;* 5480 90E7 000315 .WORD SYRTI ;* 5482 8FE7 000320 .WORD SYIRQB ;* 5484 8FE7 000325 .WORD SYIRQB ;* 5486 8FE7 000330 .WORD SYIRQB ;* 5488 BEFF 000335 .WORD $FFBE ;* 548A 0FEB 000340 .WORD ISRSIR ;* 2016-11-16 11:06 omnimon-xl.src Page 3 548C 90EA 000345 .WORD ISRODN ;* 548E CFEA 000350 .WORD ISRTD ;* 5490 8F37 000355 .WORD SYIRQB ;* 5492 8FE7 000360 .WORD SYIRQB ;* 5494 8FE7 000365 .WORD SYIRQB ;* 5496 06E7 000370 .WORD SYIRQ ;* 5498 00000000 000375 .BYTE 0,0,0,0,0,0,0,0,0,0 ;* 549C 00000000 54A0 0000 ; 54A2 AEE7 000380 .WORD SYSVBL ;* 54A4 05E9 000385 .WORD XITVBL ;* ; 54A6 A200 000390 CIOINT LDX #0 ;* 54A8 A9FF 000395 CI0I1 LDA #$FF ;* 54AA 904003 000400 STA $0340,X ;* 54AD A9C0 000405 LDA #$C0 ;* 54AF 904603 000410 STA $0346,X ;* 54B2 A9E4 000415 LDA #$E4 ;* 54B4 9D4703 000420 STA $0347,X ;* 54B7 8A 000425 TXA ;* 54B8 18 000430 CLC ;* 54B9 6910 000435 ADC #$10 ;* 54BB AA 000440 TAX ;* 54BC C980 000445 CMP #$80 ;* 54BE 90E8 000450 BCC CI0I1 ;* 54C0 60 000455 RTS ;* ; =E4C0 000460 ERRTN = $E4C0 =00E4 000465 ERRTNH = $E4 =00C0 000470 ERRTNL = $C0 ; 54C1 A085 000475 LDY #$85 ;* 54C3 60 000480 RTS ;* 54C4 852F 000485 CIO STA $2F ;* 54C6 862E 000490 STX $2E ;* 54C8 8A 000495 TXA ;* 54C9 290F 000500 AND #$0F ;* 54CB D004 000505 BNE CIERR1 ;* 54CD E080 000510 CPX #$80 ;* 54CF 9005 000515 BCC IOC1 ;* 54D1 A086 000520 CIERR1 LDY #$86 ;* 54D3 4C1BE6 000525 JMP CIRTN1 ;* 54D6 A000 000530 IOC1 LDY #0 ;* 54D8 B04003 000535 IOC1A LDA $0340,X ;* 54DB 992000 000540 STA $20,Y ;* 54DE E8 000545 INX ;* 54DF C8 000550 INY ;* 54E0 C00C 000555 CPY #12 ;* 54E2 90F4 000560 BCC IOC1A ;* 54E4 A084 000565 LDY #$84 ;* 54E6 A522 000570 LDA $22 ;* 54E8 C903 000575 CMP #3 ;* 54EA 9025 000580 BCC CIERR4 ;* 54EC A8 000585 TAY ;* 54ED C00E 000590 CPY #$0E ;* 2016-11-16 11:06 omnimon-xl.src Page 4 54EF 9002 000595 BCC IOC2 ;* 54F1 A00E 000600 LDY #$0E ;* 54F3 8417 000605 IOC2 STY $17 ;* 54F5 B9C6E6 000610 LDA COMTAB-3,Y ;* 54F8 F00F 000615 BEG CIOPEN ;* 54FA C902 000620 CMP #2 ;* 54FC F035 000625 BEG CICLOS ;* 54FE C908 000630 CMP #8 ;* 5500 B04C 000635 BCS CISTSP ;* 5502 C904 000640 CMP #4 ;* 5504 F063 000645 BEG CIREAD ;* 5506 4CC9E5 000650 JMP CIWRIT ;* ; 5509 A520 000655 CIOPEN1 LDA $20 ;* 550B C9FF 000660 CMP #$FF ;* 550D F005 000665 BEG IOC6 ;* 550F A081 000670 CIERR3 LDY #$81 ;* 5511 4C1BE6 000675 CIERR4 JMP CIRTN1 ;* 5514 209EE6 000680 IOC6 JSR DEVSRC ;* 5517 B0F8 000685 BCS CIERR4 ;* 5519 203DE6 000690 IOC7 JSR COMENT ;* 551C B0F3 000695 BCS CIERR4 ;* 551E 2089E6 000700 JSR GOHAND ;* 5521 A90B 000705 LDA #$0B ;* 5523 8517 000710 STA $17 ;* 5525 203DE6 000715 JSR COMENT ;* 5528 A52C 000720 LDA $2C ;* 552A 8526 000725 STA $26 ;* 552C A52D 000730 LDA $2D ;* 552E 8527 000735 STA $27 ;* 5530 4C1DE6 000740 JMP CIRTN2 ;* 5533 A001 000745 CICLOS LDY #1 ;* 5535 8423 000750 STY $23 ;* 5537 203DE6 000755 JSR COMENT ;* 553A B003 000760 BCS CICL02 ;* 553C 2089E6 000765 JSR GOHAND ;* 553F A9FF 000770 CICLO2 LDA #$FF ;* 5541 8520 000775 STA $20 ;* 5543 A9E4 000780 LDA #ERRTNH ;* 5545 8527 000785 STA $27 ;* 5547 A9C0 000790 LDA #ERRTNL ;* 5549 8526 000795 STA $26 ;* 554B 4C1DE6 000800 JMP CIRTN2 ;* 554E A520 000805 CISTSP LDA $20 ;* 5550 C9FF 000810 CMP #$FF ;* 5552 D005 000815 BNE CIST1 ;* 5554 209EE6 000820 JSR DEVSRC ;* 5557 B0B8 000825 BCS CIERR4 ;* 5559 203DE6 000830 CIST1 JSR COMENT ;* 555C 2089E6 000835 JSR GOHAND ;* 555F A62E 000840 LDX $2E ;* 5561 BD4003 000845 LDA $0340,X ;* 5564 8520 000850 STA $20 ;* 5566 4C1DE6 000855 JMP CIRTN2 ;* 5569 A522 000860 CIREAD LDA $22 ;* 556B 256A 000865 AND $2A ;* 2016-11-16 11:06 omnimon-xl.src Page 5 556D 0005 000870 BNE RCI1A ;* 556F A083 000875 LDY #$83 ;* 5571 4C1BE6 000880 RCI1B JMP CIRTN1 ;* 5574 203DE6 000885 RCI1A JSR COMENT ;* 5577 B0F8 000890 BCS RCI1B ;* 5579 A528 000895 LDA $28 ;* 557B 0529 000900 ORA $29 ;* 557D 0008 000905 BNE RC13 ;* 557F 2089E6 000910 JSR GOHAND ;* 5582 852F 000915 STA $2F ;* 5584 4C1DE6 000920 JMP CIRTN2 ;* 5587 2089E6 000925 RCI3 JSR GOHAND ;* 558A 852F 000930 STA $2F ;* 558C 3035 000935 BMI RCI4 ;* 558E A000 000940 LDY #0 ;* 5590 9124 000945 STA ($24),Y ;* 5592 2070E6 000950 JSR INCBFP ;* 5595 A522 000955 LDA $22 ;* 5597 2902 000960 AND #2 ;* 5599 D00C 000965 BNE RCI1 ;* 559B A52F 000970 LDA $2F ;* 559D C99B 000975 CMP #$9B ;* 559F D006 000980 BNE RCI1 ;* 55A1 2063E6 000985 JSR DECBFL ;* 55A4 4CC3E6 000990 JMP RCI4 ;* 55A7 2063E6 000995 RCI1 JSR DECBFL ;* 55AA D0DB 001000 BNE RCI3 ;* 55AC A522 001005 RCI2 LDA $22 ;* 55AE 2902 001010 AND #2 ;* 55B0 D011 001015 BNE RCI4 ;* 55B2 2089E6 001020 RCI6 JSR GOHAND ;* 55B5 852F 001025 STA $2F ;* 55B7 300A 001030 BMI RCI4 ;* 55B9 A52F 001035 LDA $2F ;* 55BB C99B 001040 CMP #$9B ;* 55BD D0F3 001045 BNE RCI6 ;* 55BF A989 001050 RCI11 LDA #$89 ;* 55C1 8523 001055 STA $23 ;* 55C3 2077E6 001060 RCI4 JSR SUBBFL ;* 55C6 4C10E6 001065 JMP CIRTN2 ;* 55C9 A522 001070 CIWRIT LDA $22 ;* 55CB 252A 001075 AND $2A ;* 55CD D005 001080 BNE WCI1A ;* 55CF A087 001085 LDY #$87 ;* 55D1 4C1BE6 001090 WCI1B JMP CIRTN1 ;* 55D4 203DE6 001095 WCI1A JSR COMENT ;* 55D7 B0F8 001100 BCS WCI1B ;* 55D9 A528 001105 LDA $28 ;* 55DB 0529 001110 ORA $29 ;* 55DD D006 001115 BNE WC13 ;* 55DF A52F 001120 LDA $2F ;* 55E1 E628 001125 INC $28 ;* 55E3 0006 001130 BNE WCI4 ;* 55E5 A000 001135 WCI3 LDY #0 ;* 55E7 B124 001140 LDA ($24),Y ;* 55E9 852F 001145 STA $2F ;* 2016-11-16 11:06 omnimon-xl.src Page 6 55EB 2089E6 001150 WCI4 JSR GOHAND ;* 55EE 3025 001155 BMI WCI5 ;* 55F0 2070E6 001160 JSR INCBFP ;* 55F3 A522 001165 LDA $22 ;* 55F5 2902 001170 AND #2 ;* 55F7 D00C 001175 BNE WCI1 ;* 55F9 A52F 001180 LDA $2F ;* 55FB C99B 001185 CMP #$9B ;* 55FD D006 001190 BNE WCI1 ;* 55FF 2063E6 001195 JSR DECBFL ;* 5602 4C15E6 001200 JMP WCI5 ;* 5605 2063E6 001205 WCI1 JSR DECBFL ;* 5608 D0DB 001210 BNE WCI3 ;* 560A A522 001215 WCI2 LDA $22 ;* 560C 2902 001220 AND #2 ;* 560E D005 001225 BNE WCI5 ;* 5610 A99B 001230 LDA #$9B ;* 5612 2089E6 001245 JSR GQHAND ;* 5615 2077E6 001240 WCI5 JSR SUBBFL ;* 5618 4C1DE6 001245 JMP CIRTN2 ;* 561B 8423 001250 CIRTN1 STY $23 ;* 561D A42E 001255 CIRTN2 LDY $2E ;* 561F B94403 001260 LDA $0344,Y ;* 5622 8524 001265 STA $24 ;* 5624 B94503 001270 LDA $0345,Y ;* 5627 8525 001275 STA $25 ;* 5629 A200 001280 LDX #0 ;* 562B B520 001285 CIRT3 LDA $20,X ;* 562D 994003 001290 STA $0340,Y ;* 5630 E8 001295 INX ;* 5631 C8 001300 INY ;* 5632 E00C 001305 CPX #12 ;* 5634 90F5 001310 BCC CIRT3 ;* 5636 A52F 001315 LDA $2F ;* 5638 A62E 001320 LDX $2E ;* 563A A423 001325 LDY $23 ;* 563C 60 001330 RTS ;* ;;; 563D A420 001335 COMENT LDY $20 ;* 563F C022 001340 CPY #$21+1 ;* 5641 9004 001345 BCC COM1 ;* 5643 A085 001350 LDY #$85 ;* 5645 B01B 001355 BCS COM2 ;* 5647 B91B03 001060 COM1 LDA $031B,Y ;* 564A 852C 001365 STA $2C ;* 564C B91C03 001370 LDA $031C,Y ;* 564F 852D 001375 STA $2D ;* 5651 A417 001380 LDY $17 ;* 5653 B9C6E6 001385 LDA COMTAB-3,Y ;* 5656 A8 001390 TAY ;* 5657 B12C 001395 LDA ($2C),Y ;* 5659 AA 001400 TAX ;* 565A C8 001405 INY ;* 565B B12C 001410 LDA ($2C),Y ;* 565D 8520 001415 STA $2D ;* 565F 862C 001420 STX $2C ;* 2016-11-16 11:06 omnimon-xl.src Page 7 5661 18 001425 CLC ;* 5662 60 001430 COM2 RTS ;* 5663 C628 001435 DECBFL DEC $28 ;* 5665 A528 001440 LDA $28 ;* 5667 C9FF 001445 CMP #$FF ;* 5669 D002 001450 BNE DECBF1 ;* 566B C629 001555 DEC $29 ;* 566D 0529 001460 DECBF1 ORA $29 ;* 566F 60 001465 RTS ;* 5670 E624 001470 INCBFP INC $24 ;* 5672 D002 001475 BNE INCBF1 ;* 5674 E625 001480 INC $25 ;* 5676 60 001485 INCBF1 RTS ;* 5677 A62E 001490 SUBBFL LDX $2E ;* 5679 38 001495 SEC ;* 567A B04803 001500 LDA $0348,X ;* 567D E528 001505 SBC $28 ;* 567F 8528 001510 STA $28 ;* 5681 BD4903 001515 LDA $0349,X ;* 5684 E529 001520 SBC $29 ;* 5686 8529 001525 STA $29 ;* 5688 60 001530 RTS ;* 5689 A092 001535 GOHAND LDY #$92 ;* Go Handler 568B 2093E6 001540 JSR CIJUMP ;* 568E 8423 001545 STY $23 ;* 5690 C000 001550 CPY #0 ;* 5692 60 001555 RTS ;* 5693 AA 001560 CIJUMP TAX ;* 5694 A52D 001565 LDA $20 ;* 5696 48 001570 PHA ;* 5697 A52C 001575 LDA $2E ;* 5699 48 001580 PHA ;* 569A 8A 001585 TXA ;* 569B A62E 001590 LDX $2E ;* 569D 60 001595 RTS ;* 569E A000 001600 DEVSRC LDY #0 ;* 56A0 B124 001605 LDA ($24),Y ;* 56A2 F00C 001610 BEQ CIERR2 ;* 56A4 A021 001615 LDY #$21 ;* 56A6 091A03 001620 DEVS1 CMP $031A,Y ;* 56A9 F00A 001625 BEQ DEVS2 ;* 56AB 88 001630 DEY ;* 56AC 88 001635 DEY ;* 56AD 88 001640 DEY ;* 56AE 10F6 001645 BPL DEVS1 ;* 56B0 A082 001650 CIERR2 LDY #$82 ;* 56B2 38 001655 SEC ;* 56B3 B013 001660 BCS DEVS4 ;* 56B5 98 001665 DEVS2 TYA ;* 56B6 8520 001670 STA $20 ;* 56B8 38 001675 SEC ;* 56B9 A001 001680 LDY #1 ;* 56BB B124 001685 LDA ($24),Y ;* 56BD E930 001690 SBC #$30 ;* 56BF C90A 001695 CMP #$0A ;* 56C1 9002 001700 BCC DEVS3 ;* 2016-11-16 11:06 omnimon-xl.src Page 8 56C3 A901 001705 LDA #1 ;* 56C5 8521 001710 DEVS3 STA $21 ;* 56C7 18 001715 CLC ;* 56C8 60 001720 DEVS4 RTS ;* 56C9 00040404 001725 COMTAB .BYTE 0,4,4,4,4,6 ;* 56CD 0406 56CF 06060602 001730 .BYTE 6,6,6,2,8,10 ;* 56D3 080A 56D5 A940 001735 IHINIT LDA #$40 ;* 56D7 8D0ED4 001740 STA $D40E ;* 56DA AD13D0 001745 LDA $D013 ;* 56DD 8DFA03 001750 STA $03FA ;* 56E0 60 001755 RTS ;* ; ; ; =56F3 001760 * = $E6F3 =56F3 001761 IRQVEntry = . ;* njc will this be 56F3 or E6F3? 56F3 6C1602 001765 PIRQ JMP ($0216) ;* 56F6 80400402 001770 CMPTAB .BYTE $80,$40,4,2,1,8,$10,$20 ;* 56FA 01081020 56FE 36081412 001775 ADRTAB .BYTE $36,8,$14,$12,$10,$E,$C,$A ;* 5702 100E0C0A ; ; ; 5706 48 001780 SYIRQ PHA ;* 5707 AD0ED2 001785 LDA $D20E ;* 570A 2920 001790 AND #$20 ;* 570C D00D 001795 BNE SYIRQ2 ;* 570E A9DF 001800 LDA #$DF ;* 5710 8D0ED2 001805 STA $D20E ;* 5713 A510 001810 LDA $10 ;* 5715 8D0ED2 001815 STA $D20E ;* 5718 6C0A02 001890 JMP ($020A) ;* 571B 8A 001825 SYIRQ2 TXA ;* 571C 48 001830 PHA ;* 571D A206 001835 LDX #6 ;* 571F BDF6E6 001840 LOOPM LDA CMPTAB ;* 5722 E005 001845 CPX #5 ;* 5724 D004 001850 L00PM2 BIT $D20E ;* 5726 2510 001855 AND $10 ;* 5728 F005 001860 BEQ LL ;* 572A 2C0ED2 001865 L0QPM2 BIT $D20E ;* 572D F006 001870 BEQ JMPP ;* 572F CA 001875 LL DEX ;* 5730 10ED 001880 BPL LOOPM ;* 5732 4C62E7 001885 JMP SYIRQ8 ;* 5735 49FF 001890 JMPP EOR #$FF ;* 5737 8D0ED2 001895 STA $02OE ;* 573A A510 001900 LDA $10 ;* 573C 8D0ED2 001905 STA $D20E ;* 573F BDFEE6 001910 LDA ADRTAB,X ;* 5742 AA 001915 TAX ;* 5743 BD0002 001920 LDA $0200,X ;* 5746 8D8C02 001925 STA $028C ;* 2016-11-16 11:06 omnimon-xl.src Page 9 5749 BD0102 001930 LDA $0200+1,X ;* 574C 8D8D02 001935 STA $028D ;* 574F 68 001940 PLA ;* 5750 AA 001945 TAX ;* 5751 6C8C02 001950 JMP ($0280) ;* ; 5754 A900 001955 BRKKY2 LDA #0 ;* 5756 8511 001960 STA $11 ;* 5758 8DFF02 001965 STA $02FF ;* 575B 8DF002 001970 STA $02F0 ;* 575E 854D 001975 STA $4D ;* 5760 68 001980 PLA ;* 5761 40 001985 RTI ;* ; 5762 68 001990 SYIRQ8 PLA ;* 5763 AA 001995 TAX ;* 5764 2C02D3 002000 BIT $D302 ;* 5767 1006 002005 BPL SVIRQ9 ;* 5769 AD00D3 002010 LDA $D300 ;* 576C 6C0202 002015 JMP ($O202) ;* 576F 2C03D3 002020 SYIRQ9 BIT $D301 ;* 5772 1006 002025 BPL SYIRQA ;* 5774 AD01D3 002030 LDA $D301 ;* 5777 6C0402 002035 JMP ($0204) ;* 577A 68 002040 SYIRQA PLA ;* 577B 8D8C02 002045 STA $028C ;* 577E 68 002050 PLA ;* 577F 48 002055 PHA ;* 5780 2910 002060 AND #$10 ;* 5782 F007 002065 BEQ SYRTI2 ;* 5784 AD8C02 002070 LDA $028C ;* 5787 48 002075 PHA ;* 5788 6C0602 002080 JMP ($0206) ;* 578B AD8C02 002085 SYRTI2 LDA $028 ;* 578E 48 002090 PHA ;* 578F 68 002095 SYIRQB PLA ;* 5790 40 002100 SYRTI RTI ;* ; =5791 002104 NMIVEntry = . ; njc 5791 2C0FD4 002105 PNMI BIT *D40F ;* 5794 1003 002110 BPL PNMI1 ;* 5796 6C0002 002115 JMP ($0200) ;* 5799 48 002120 PNMI1 PHA ;* 579A AD0F04 002125 LDA $D40F ;* 579D 2920 002130 AND #$20 ;* 579F F003 002135 BEQ *+5 ;* 57A1 4C74E4 002140 JMP $E474 ;* 57A4 8A 002145 TXA ;* 57A5 48 002150 PHA ;* 57A6 98 002155 TYA ;* 57A7 48 002160 PHA ;* 57A8 8D0F04 002165 STA $D40F ;* 57AB 6C2202 002170 JMP ($0222) ;* 57AE E614 002175 SYSVBL INC $14 ;* 57B0 D008 002180 BNE SYSVB1 ;* 57B2 E64D 002185 INC $4D ;* 2016-11-16 11:06 omnimon-xl.src Page 10 57B4 E613 002190 INC $13 ;* 57B6 D002 002195 BNE SYSVB1 ;* 57B8 E612 002200 INC $12 ;* 57BA A9FE 002205 SYSVB1 LDA #$FE ;* 57BC A200 002210 LDX #0 ;* 57BE A44D 002215 LDY $4D ;* 57C0 1006 002220 BPL VBATRA ;* 57c2 854D 002225 STA $4D ;* 57C4 A613 002230 LDX $13 ;* 57C6 A9F6 002235 LDA #$F6 ;* 57C8 854E 002240 VBATRA STA $4E ;* 57CA 864F 002245 STX $4F ;* 57CC A200 002250 LDX #0 ;* 57CE 20D0E8 002255 JSR DCTIMR ;* 57D1 0003 002260 BNE SYSVB2 ;* 57D3 20CAE8 002265 JSR JTIMR1 ;* 57D6 A542 002270 SYSVB2 LDA $42 ;* 57D8 D008 002275 BNE XXIT ;* 57DA BA 002280 TSX ;* 57DB BD0401 002285 LDA $0104,X ;* 57DE 2904 002290 AND #4 ;* 57E0 F003 002295 BEQ SYSVB3 ;* 57E2 4C05E9 002300 XXIT JMP XITVBL ;* 57E5 AD0DD4 002305 SYSVB3 LDA $D40 ;* 57E8 8D3502 002310 STA $0235 ;* 57EB AD0CD4 002315 LDA $D40C ;* 57EE 8D3402 002320 STA $0234 ;* 57F1 AD3102 002325 LDA $0231 ;* 57F4 8D03D4 002330 STA $D403 ;* 57F7 AD3002 002335 LDA $0230 ;* 57FA 8D02D4 002340 STA $0402 ;* 57FD AD2F02 002345 LDA $022F ;* 5800 8D00D4 002350 STA $D400 ;* 5803 AD6F02 002355 LDA $026F ;* 5806 8D1BD0 002360 STA $D01B ;* 5809 A208 002365 LDX #8 ;* 580B 8E1FD0 002370 STX $D01F ;* 580E 58 002375 SCOLLP CLI ;* 580F BDC002 002380 LDA $0280,X ;* 5812 454F 002385 EQR $4F ;* 5814 254E 002390 AND $4E ;* 5816 9D12D0 002395 STA $D012,X ;* 5819 CA 002400 DEX ;* 581A 10F2 002405 BPL SCOLLP ;* 581C ADF402 002410 LDA $02F4 ;* 581F 8D09D4 002415 STA $D409 ;* 5822 ADF302 002420 LDA $02F3 ;* 5825 8D01D4 002425 STA $0401 ;* 5828 A202 002430 LDX #2 ;* 582A 20D0E8 002435 JSR DCTIMR ;* 582D D003 002440 BNE SYSVB4 ;* 582F 20CDE8 002445 JSR JTIMR2 ;* 5832 A202 002450 SYSVB4 LDX #2 ;* 5834 E8 002455 SYSVBB INX ;* 5835 E8 002460 INX ;* 5836 BD1802 002465 LDA $0218,X ;* 2016-11-16 11:06 omnimon-xl.src Page 11 5839 1D1902 002470 ORA $0219,X ;* 583C F006 002475 BEQ SYSVBA ;* 583E 20D0E8 002480 JSR DCTIMR ;* 5841 9D2602 002485 STA $0226,X ;* 5844 E008 002490 SYSVBA CPX #8 ;* 5846 D0EC 002495 BNE SYSVBB ;* 5848 AD0FD2 002500 LDA $D20F ;* 584B 2904 002505 AND #4 ;* 584D F008 002510 BEQ SYVB6A ;* 584F ADF102 002515 LDA $02F1 ;* 5852 F003 002520 BEQ SYVB6A ;* 5854 CEF102 002525 DEC $02F1 ;* 5857 AD2B02 002530 SYVB6A LDA $022 ;* 585A F017 002535 BEQ SYSVB7 ;* 585C AD0FD2 002540 LDA $D20F ;* 585F 2904 002545 AND #4 ;* 5861 D060 002550 BNE SYSVB6 ;* 5863 CE2B02 002555 DEC $022B ;* 5866 D00B 002560 BNE SYSVB7 ;* 5868 A903 002565 LDA #3 ;* 586A 8D2B02 002570 STA $022B ;* 586D AD09D2 002575 LDA $D209 ;* 5870 8DFC02 002580 STA $02FC ;* 5873 A000 002585 SYSVB7 LDY #0 ;* 5875 A201 002590 LDX #1 ;* 5877 B900D3 002595 STLOOP LDA $0300,Y ;* 587A 4A 002600 LSR A ;* 587B 4A 002605 LSR A ;* 587C 4A 002610 LSR A ;* 587D 4A 002615 LSR A ;* 587E 9D7802 002620 STA $0278,X ;* 5881 CA 002625 DEX ;* 5882 B900D3 002630 LDA $D300,Y ;* 5885 290F 002635 AND #$0F ;* 5887 9D7802 002640 STA $0278,X ;* 588A CA 002645 DEX ;* 588B 88 002650 DEY ;* 588C 10E9 002655 BPL STLOOP ;* 588E A203 002660 LDX #3 ;* 5890 BD10D0 002665 STRL LDA $D010,X ;* 5893 9D8402 002670 STA $0284,X ;* 5896 BD00D2 002675 LDA $0200,X ;* 5899 9D7002 002680 STA $0270,X ;* 589C BD04D2 002685 LDA $0204,X ;* 589F 9D7402 002690 STA $0274,X ;* 58A2 CA 002695 DEX ;* 58A3 10EB 002700 BPL STRL ;* 58A5 8D0BD2 002705 STA $D20B ;* 58A8 A206 002710 LDX #6 ;* 58AA A003 002715 LDY #3 ;* 58AC B97802 002720 PTRLP LDA $0278,Y ;* 58AF 4A 002725 LSR A ;* 58B0 4A 002730 LSR A ;* 58B1 4A 002735 LSR A ;* 58B2 9D7D02 002740 STA $027D,X ;* 58B5 A900 002745 LDA #0 ;* 2016-11-16 11:06 omnimon-xl.src Page 12 58B7 2A 002750 R0L A ;* 58B8 9D7C02 002755 STA $027C,X ;* 58BB CA 002760 DEX ;* 58BC CA 002765 DEX ;* 58BD 88 002770 DEY ;* 58BE 10EC 002775 BPL PTRLP ;* 58C0 6C2402 002780 JMP ($0224) ;* =00E8 002785 SV7H = SYSVB7/256 =0073 002790 SV7L = SYSVB7&255 58C3 A900 002795 SYSVB6 LDA #0 ;* 58C5 3D2B02 002800 STA $022B ;* 58C8 F0A9 002805 BEQ SYSVB7 ;* 58CA 6C2602 002810 JTIMR1 JMP ($0226) ;* 58CD 6C2802 002815 JTIMR2 JMP ($0228) ;* 58D0 BC1802 002820 DCTIM1 LDY $0218,X ;* 58D3 D008 002825 BNE DCTIM1 ;* 58D5 BC1902 002830 LDY $0219,X ;* 58D8 F010 002835 BEQ DCTXF ;* 58DA DE1902 002840 DEC $0219,X ;* 58DD DE1802 002845 DEC $0218,X ;* 58E0 D008 002850 BNE DCTXF ;* 58E2 BC1902 002855 LDY $0219,X ;* 58E5 D003 002860 BNE DCTXF ;* 58E7 A900 002865 LDA #0 ;* 58E9 60 002870 RTS ;* 58EA A9FF 002875 DCTXF LDA #$FF ;* 58EC 60 002880 RTS ;* ; 58ED 0A 002885 SETVBL ASL A ;* 58EE 8D2D02 002890 STA $022D ;* 58F1 8A 002895 TXA ;* 58F2 A205 002900 LDX, #5 ;* 58F4 8D0AD4 002905 STA $D40A ;* 58F7 CA 002910 SETLOP DEX ;* 58F8 D0FD 002915 BNE SETLOP ;* 58FA AE2D02 002920 LDX $022D ;* 58FD 9D1702 002925 STA $0217,X ;* 5900 98 002930 TYA ;* 5901 9D1602 002935 STA $0216,X ;* 5904 60 002940 RTS ;* 5905 68 002945 XITVBL PLA ;* 5906 A8 002950 TAY ;* 5907 68 002955 PLA ;* 5908 AA 002960 TAX ;* 5909 68 002965 PLA ;* 590A 40 002970 RTI ;* 590B 66667E66 002975 .BYTE $66,$66,$7E,$66,0,0,$7C ;* 590F 00007C 5912 4CEDE8 002980 JMP $E8ED ;* 5915 A22D 002985 TSTCTL LDX #45 ;* 5917 BDCEFE 002990 TSTCT1 LDA $FECE,X ;* 591A CDFB02 002995 CMP $02FB ;* 591D F005 003000 BEQ TSTCT2 ;* 591F CA 003005 DEX ;* 5920 CA 003010 DEX ;* 5921 CA 003015 DEX ;* 2016-11-16 11:06 omnimon-xl.src Page 13 5922 10F3 003020 BPL TSTCT1 ;* 5924 60 003025 TSTCT2 RTS ;* ; 5925 A03F 003035 HOWMCH LDY #$3F ;* TEST MY WAY 5927 8405 003040 STY $05 ;* 5929 8406 003045 STY $06 ;* 592B B105 003050 HWMCH LDA ($05),Y ;* 592D 49FF 003055 EOR #$FF ;* 592F 9105 003060 STA ($05),Y ;* 5931 D105 003065 CMP ($05),Y ;* 5933 D008 003070 BNE ENDRAM ;* 5935 49FF 003075 EOR #$FF ;* 5937 9105 003080 STA ($05),Y ;* 5939 E606 003085 INC $06 ;* 593B D0EE 003090 BNE HWMCH ;* 593D 60 003095 ENDRAM RTS ;* ; =593D 003100 * = $E944 5944 A93C 003105 SI0INT LDA #$3C ;* 5946 8D02D3 003110 STA $D302 ;* 5949 A93C 003115 LDA #$3C ;* 594B 8D03D3 003120 STA $D303 ;* 594E A903 003125 LDA #3 ;* 5950 8D3202 003130 STA $0232 ;* 5953 8541 003135 STA $41 ;* 5955 8D0FD2 003140 STA $D20F ;* 5958 60 003145 RTS ;* 5959 8A 003150 SIO TSX ;* 595A 8E1803 003155 STX $0318 ;* 595D A901 003160 LDA #1 ;* 595F 8542 003165 STA $42 ;* 5961 AD0003 003170 LDA $0300 ;* 5964 C960 003175 CMP #$60 ;* 5966 D003 003180 BNE NOTCST ;* 5968 4C80EB 003185 JMP CASENT ;* 596B A900 003190 NOTCST LDA #0 ;* 596D 8D0F03 003195 STA $030F ;* 5970 A901 003200 LDA #1 ;* 5972 8537 003205 STA $37 ;* 5974 A90D 003210 COMMND LDA #$0D ;* 5976 8536 003215 STA $36 ;* 5978 A928 003220 COMFRM LDA #$28 ;* 597A 8D04D2 003235 STA $D204 ;* 597D A900 003230 LDA #0 ;* 597F 8D0602 003235 STA $D206 ;* 5982 18 003240 CLC ;* 5983 AD0003 003245 LDA $0300 ;* 5986 6D0103 003250 ADC $0301 ;* 5989 69FF 003255 ADC #$FF ;* 598B 8D3A02 003260 STA $023A ;* 598E AD0203 003265 LDA $0302 ;* 5991 8D3B02 003270 STA $023B ;* 5994 AD0A03 003275 LDA $030A ;* 5997 8D3C02 003280 STA $023C ;* 599A AD0B03 003285 LDA $030B ;* 599D 803002 003290 STA $023D ;* 2016-11-16 11:06 omnimon-xl.src Page 14 59A0 18 003295 CLC ;* 59A1 A93A 003300 LDA #$3A ;* 59A3 8532 003305 STA $32 ;* 59A5 6904 003310 ADC #4 ;* 59A7 8534 003315 STA $34 ;* 59A9 A902 003320 LDA #2 ;* 59AB 8533 003325 STA $33 ;* 59AD 8535 003330 STA $35 ;* 59AF A934 003335 LDA #$34 ;* 59B1 800303 003340 STA $0303 ;* 59B4 208AEC 003345 JSR SENDIN ;* 59B7 AD3F02 003350 LDA $023F ;* 59BA D003 003355 BNE BADCOM ;* 59BC 98 003360 TYA ;* 59BD D007 003365 BNE ACKREC ;* 59BF C636 003370 BADCOM DEC $36 ;* 59C1 10B5 003375 BPL COMFRM ;* 59C3 4C06EA 003380 JMP DERR1 ;* 59C6 AD0303 003385 ACKREC LDA $0303 ;* 59C9 100C 003390 BPL WATCOM ;* 59CB A90D 003395 LDA #$0D ;* 59CD 8536 003400 STA $36 ;* 59CF 206AEB 003405 JSR LDPNTR ;* 59D2 208AEC 003410 JSR SENDIN ;* 59D5 F0E8 003415 BEQ BADCOM ;* 59D7 207BEC 003420 WATCOM JSR STTMOT ;* 59DA A900 003425 LDA #0 ;* 59DC 8D3F02 003430 STA $023F ;* 59DF 209BEC 003435 JSR WAITER ;* 59E2 F012 003440 BEQ DERR ;* 59E4 200303 003445 BIT $0303 ;* 59E7 7007 003450 BVS MODATA ;* 59E9 AD3F02 003455 LDA $023F ;* 59EC D018 003460 BNE DERR1 ;* 59EE F01D 003465 BEQ RETURN ;* 59F0 206AEB 003470 MGDATA JSR LDPNT ;* 59F3 20E0EA 003475 JSR RECEIV ;* 59F6 AD3F02 003480 DERR LDA $023F ;* 59F9 F005 003485 BEQ NOTERR ;* 59FB AD1903 003490 LDA $0319 ;* 59FE 8530 003495 STA $30 ;* 5A00 A530 003500 NOTERR LDA $30 ;* 5A02 C901 003505 CMP #1 ;* 5A04 F007 003510 BEQ RETURN ;* 5A06 C637 003515 DERR1 DEC $37 ;* 5A08 3003 003520 BMI RETURN ;* 5A0A 4C74E9 003525 JMP COMMND ;* 5A0D 205FEC 003530 RETURN JSR SENDDS ;* 5A10 A900 003535 LDA #0 ;* 5A12 8542 003540 STA $42 ;* 5A14 A430 003545 LDY $30 ;* 5A16 8C0303 003550 STY $0303 ;* 5A19 60 003555 RTS ;* 5A1A A900 003560 WAIT LDA #0 ;* 5A1C 8D3F02 003565 STA $023F ;* 5A1F 18 003570 CLC ;* 2016-11-16 11:06 omnimon-xl.src Page 15 5A20 A93E 003575 LDA #$3E ;* 5A22 8532 003580 STA $32 ;* 5A24 6901 003585 ADC #1 ;* 5A26 8534 003590 STA $34 ;* 5A28 A902 003595 LDA #2 ;* 5A2A 8533 003600 STA $33 ;* 5A2C 8533 003605 STA $35 ;* 5A2E A9FF 003610 LDA #$FF ;* 5A30 853C 003615 STA $3C ;* 5A32 20E0EA 003620 JSR RECEIV ;* 5A35 A0FF 003625 LDY #$FF ;* 5A37 A530 003630 LDA $30 ;* 5A39 C901 003625 CMP #1 ;* 5A3B D019 003640 BNE NWOK ;* 5A3D AD3E02 003645 WOK LDA $023E ;* 5A40 C941 003650 CMP #$41 ;* 5A42 F021 003655 BEQ GOOD ;* 5A44 C943 003660 CMP #$43 ;* 5A46 F01D 003665 BEQ GOOD ;* 5A48 C945 003670 CMP #$45 ;* 5A4A D006 003675 BNE NOTDER ;* 5A4C A990 003680 LDA #$90 ;* 5A4E 8530 003685 STA $30 ;* 5A50 D004 003690 BNE NWOK ;* 5A52 A98B 003695 NOTDER LDA #$8B ;* 5A54 8530 003700 STA $30 ;* 5A56 A530 003705 NWOK LDA $30 ;* 5A58 C98A 003710 CMP #$8A ;* 5A5A F007 003715 BEQ BAD ;* 5A5C A9FF 003720 LDA #$FF ;* 5A5E 8D3F02 003725 STA $023F ;* 5A61 D002 003730 BNE GOOD ;* 5A63 A000 003735 BAD LDY #0 ;* 5A65 A530 003740 GOOD LDA $30 ;* 5A67 BD1903 003745 STA $0319 ;* 5A6A 60 003750 RTS ;* ; 5A6B A901 003755 SEND LDA #1 ;* 5A6D 8530 003760 STA $30 ;* 5A6F 20F2EB 003765 JSR SENDEN ;* 5A72 A000 003770 LDY #0 ;* 5A74 8431 003775 STY $31 ;* 5A76 843B 003780 STY $3B ;* 5A78 843A 003785 STY $3A ;* 5A7A B132 003790 LDA ($32),Y ;* 5A7C 8D0DD2 003795 STA $D20D ;* 5A7F 8531 003800 STA $31 ;* 5A81 A511 003805 NOTDON LDA $11 ;* 5A83 D003 003810 BNE NTBRKO ;* 5A85 4CA0ED 003815 JMP BROKE ;* 5A88 A53A 003820 NTBRKO LDA $3 A ;* 5A8A F0F5 003825 BEQ NOTDON ;* 5A8C 205FEC 003830 JSR SENDDS ;* 5A8F 60 003835 RTS ;* 5A90 98 003840 ISRQDN TYA ;* 5A91 48 003845 PHA ;* 2016-11-16 11:06 omnimon-xl.src Page 16 5A92 E632 003850 INC $32 ;* 5A94 D002 003855 BNE NQWRPO ;* 5A96 E633 003860 INC $33 ;* 5A98 A532 003865 NOWRPO LDA $32 ;* No Write Protect 5A9A C534 003870 CMP $34 ;* 5A9C A533 003875 LDA $33 ;* 5A9E E535 003880 SBC $35 ;* 5AA0 901C 003885 BCC NOTEND ;* 5AA2 A53B 003890 LDA $3B ;* 5AA4 D00B 003895 BNE RELONE ;* 5AA6 A531 003900 LDA $31 ;* 5AA8 8D0DD2 003905 STA $D20D ;* 5AAB A9FF 003910 LDA #$FF ;* 5AAD 853B 003915 STA $3B ;* 5AAF D009 003920 BNE CHKDON ;* 5AB1 A510 003925 RELONE LDA $10 ;* 5AB3 0908 003930 ORA #8 ;* 5AB5 8510 003935 STA $10 ;* 5AB7 8D0ED2 003940 STA $D20E ;* 5ABA 68 003945 CHKDON PLA ;* 5ABB A8 003950 TAY ;* 5ABC 68 003955 PLA ;* 5ABD 40 003960 RTI ;* 5ABE A000 003965 NOTEND LDY #0 ;* 5AC0 B132 003970 LDA ($32),Y ;* 5AC2 8D0DD2 003975 STA $D20D ;* 5AC5 18 003980 CLC ;* 5AC6 6531 003985 ADC $31 ;* 5AC8 6900 003990 ADC #0 ;* 5ACA 8531 003995 STA $31 ;* 5ACC 4CBAEA 004000 JMP CHKDON ;* 5ACF A53B 004005 ISRTD LDA $3B ;* 5AD1 F00B 004010 BEQ FOOEY ;* 5AD3 853A 004015 STA $3A ;* 5AD5 A510 004020 LDA $10 ;* 5AD7 29F7 004025 AND #$F7 ;* 5AD9 8510 004030 STA $10 ;* 5ADB 8D0ED2 004035 STA $D20E ;* 5ADE 68 004040 FOOEY PLA ;* 5ADF 40 004045 RTI ;* ; 5AE0 A900 004050 RECEIV LDA #0 ;* 5AE2 AC0F03 004055 LDY $030F ;* 5AE5 D002 004060 BNE NOCLR ;* 5AE7 8531 004065 STA $31 ;* 5AE9 8538 004070 NOCLR STA $38 ;* 5AEB 8539 004075 STA $39 ;* 5AED A901 004080 LDA #1 ;* 5AEF 8530 004085 STA $30 ;* 5AF1 201BEC 004090 JSR RECVEN ;* 5AF4 A93C 004095 LDA #$3C ;* 5AF6 8D03D3 004100 STA $0303 ;* 5AF9 A511 004105 CHKTIM LDA $11 ;* 5AFB D003 004110 BNE NTBRK1 ;* 5AFD 4CA0ED 004115 JMP BROKE ;* 5B00 AD1703 004120 NTBRK1 LDA $03 ;* 2016-11-16 11:06 omnimon-xl.src Page 17 5B03 F005 004125 BEQ TOUT ;* 5B05 A539 004130 LDA $39 ;* 5B07 F0F0 004135 BEQ CHKTIM ;* 5B09 60 004140 GOBACK RTS ;* 5B0A A98A 004145 TOUT LDA #$8A ;* 5B0C 8530 004150 STA $30 ;* 5B0E 60 004155 SRETRN RTS ;* 5B0F 98 004160 ISRSIR TYA ;* 5B10 48 004165 PHA ;* 5B11 AD0FD2 004170 LDA $D20F ;* 5B14 8D0AD2 004175 STA $D20A ;* 5B17 3004 004180 BMI NTFRAM ;* 5B19 A08C 004185 LDY #$8C ;* 5B1B 8430 004190 STY $30 ;* 5B1D 2920 004195 NTFRAM AND #$2 ;* 5B1F D004 004200 BNE NTOVRN ;* 5B21 A08E 004205 LDY #$8E ;* 5B23 8430 004210 STY $30 ;* 5B25 A538 004215 NTOVRN LDA $38 ;* 5B27 F013 004220 BEQ NOTYET ;* 5B29 AD0DD2 004225 LDA $D20D ;* 5B2C C531 004230 CMP $31 ;* 5B2E F004 004235 BEQ SRETRN ;* 5B30 A08F 004240 LDY #$8F ;* 5B32 8430 004245 STY $30 ;* 5B34 A9FF 004250 SRETURN LDA #$FF ;* 5B36 8539 004255 STA #$39 ;* 5B38 68 004260 SUSUAL PLA ;* 5B39 A8 004265 TAY ;* 5B3A 68 004270 PLA ;* 5B3B 40 004275 RTI ;* 5B3C AD0DD2 004280 NOTYET LDA $D20D ;* 5B3F A000 004285 LDY #0 ;* 5B41 9132 004290 STA ($32),Y ;* 5B43 18 004295 CLC ;* 5B44 6531 004300 ADC $31 ;* 5B46 6900 004305 ADC #0 ;* 5B48 8531 004310 STA $31 ;* 5B4A E632 004315 INC $32 ;* 5B4C D002 004320 BNE NTWRPi ;* 5B4E E633 004325 INC $33 ;* 5B50 A532 004330 NTWRP1 LDA $32 ;* 5B52 C534 004335 CMP $34 ;* 5B54 A533 004340 LDA $33 ;* 5B56 E535 004345 SBC $35 ;* 5B58 90DE 004350 BCC SUSUAL ;* 5B5A A53C 004355 LDA $3C ;* 5B5C F006 004360 BEQ GOON ;* 5B5E A900 004365 LDA #0 ;* 5B60 853C 004370 STA $30C ;* 5B62 F0D0 004375 BEQ SRETRN ;* 5B64 A9FF 004380 GOON LDA #$FF ;* 5B66 8538 004385 STA $38 ;* 5B68 D0CE 004390 BNE SUSUAL ;* 5B6A 18 004395 LDPNTR CLC ;* 5B6B AD0403 004400 LDA $0304 ;* 2016-11-16 11:06 omnimon-xl.src Page 18 5B6E 8532 004405 STA $32 ;* 5B70 6D0803 004410 ADC $0308 ;* 5B73 8534 004415 STA $34 ;* 5B75 AD0503 004420 LDA $0305 ;* 5B78 8533 004425 STA $33 ;* 5B7A 6D0903 004430 ADC $0309 ;* 5B7D 8535 004435 STA $35 ;* 5B7F 60 004440 RTS ;* 5B80 AD0303 004445 CASENT LDA $0303 ;* 5B83 102E 004450 BPL CASRED ;* 5B85 20A3EC 004455 JSR COMPUT ;* 5B88 4C8FEB 004460 JMP NEW1 ;* ; 5B8B 04 004465 .BYTE 4 ;* 5B8C 8D06D2 004470 STA $D206 ;* 5B8F 20F2EB 004475 NEW1 JSR SENDEN ;* 5B92 A00F 004480 LDY #$0F ;* 5B94 AD0B03 004485 LDA $030B ;* 5B97 3002 004490 BMI SRTIR0 ;* 5B99 A0B4 004495 LDY #$B4 ;* 5B9B A200 004500 SRTIR0 LDX #0 ;* 5B9D 20B9ED 004505 JSR SETVBX ;* 5BA0 A934 004510 LDA #$34 ;* 5BA2 8D02D3 004515 STA $D302 ;* 5BA5 AD1703 004520 TIMIT LDA $0317 ;* 5BA8 D0FB 004525 BNE TIMIT ;* 5BAA 206AEB 004530 JSR LDPNTR ;* 5BAD 206BEA 004535 JSR SEND ;* 5BB0 4CDFEB 004540 JMP CRETRN ;* 5BB3 A9FF 004545 CASRED LDA #$FF ;* 5BB5 8D0F03 004550 STA $030F ;* 5BB8 A00A 004555 LDY #$0A ;* 5BBA AD0B03 004560 LDA $030B ;* 5BBD 3002 004565 BMI SRTIR1 ;* 5BBF A078 004570 LDY #$78 ;* 5BC1 A200 004575 SRTIR1 LDX #0 ;* 5BC3 20B9ED 004580 JSR SETVBX ;* 5BC6 A934 004585 LDA #$34 ;* 5BC8 8D02D3 004590 STA $D302 ;* 5BCB AD1703 004595 TIMIT1 LDA $0317 ;* 5BCE D0FB 004600 BNE TIMIT1 ;* 5BD0 206AEB 004605 JSR LDPNTR ;* 5BD3 2075EC 004610 JSR STTMOT ;* 5BD6 20B9ED 004615 JSR SETVBX ;* 5BD9 201EED 004620 JSR BEGIN ;* 5BDC 20E0EA 004625 JSR RECEIV ;* 5BDF AD0B03 004630 CRETRN LDA $030B ;* 5BE2 3005 004635 BMI SRTIR2 ;* 5BE4 A93C 004640 LDA #$3C ;* 5BE6 8D02D3 004645 STA $0302 ;* 5BE9 4C0DEA 004650 SRTIR2 JMP RETURN ;* 5BEC A900 004655 JTIMER LDA #0 ;* 5BEE 8D1703 004660 STA $0317 ;* 5BF1 60 004665 RTS ;* 5BF2 A907 004670 SENDEN LDA #7 ;* 5BF4 2D3202 004675 AND $0232 ;* 2016-11-16 11:06 omnimon-xl.src Page 19 5BF7 0920 004680 ORA #$20 ;* 5BF9 AC0003 004685 LDY $0300 ;* 5BFC C060 004690 CPY #$60 ;* 5BFE D00C 004695 BNE NOTCAS ;* 5C00 0908 004700 ORA #8 ;* 5C02 A007 004705 LDY #7 ;* 5C04 8C02D2 004710 STY $0202 ;* 5C07 A005 004715 LDY #5 ;* 5C09 8C00D2 004720 STY $D200 ;* 5C0C 8D3202 004725 NOTCAS STA $0232 ;* 5C0F 8D0FD2 004730 STA $D20F ;* 5C12 A9C7 004735 LDA #$C7 ;* 5C14 2510 004740 AND $10 ;* 5C16 0910 004745 ORA #$10 ;* 5C18 4C31EC 004750 JMP CONTIN ;* 5C1B A907 004755 RECVEN LDA #7 ;* 5C1D 2D3202 004760 AND $0232 ;* 5C20 0910 004765 ORA #$10 ;* 5C22 8D3202 004770 STA $0232 ;* 5C25 8D0FD2 004775 STA $D20F ;* 5C28 8D0AD2 004780 STA $D20A ;* 5C2B A9C7 004785 LDA #$C7 ;* 5C2D 2510 004790 AND $10 ;* 5C2F 0920 004795 ORA #$20 ;* 5C31 8510 004800 CONTIN STA $10 ;* 5C33 8D0ED2 004805 STA $D20E ;* 5C36 A928 004810 LDA #$28 ;* 5C38 8D08D2 004815 STA $D20S ;* 5C3B A206 004820 LDX #6 ;* 5C3D A9A8 004825 LDA #$A8 ;* 5C3F A441 004830 LDY $41 ;* 5C41 D002 004835 BNE NOISE1 ;* 5C43 A9A0 004840 LDA #$A0 ;* 5C45 9D01D2 004845 N0ISE1 STA $D201,X ;* 5C48 CA 004850 DEX ;* 5C49 CA 004855 DEX ;* 5C4A 10F9 004860 BPL NOISE1 ;* 5C4C A9A0 004865 LDA #$A0 ;* 5C4E 8D05D2 004870 STA $D205 ;* 5C51 AC0003 004875 LDY $0300 ;* 5C54 C060 004880 CPY #$60 ;* 5C56 F006 004885 BEQ CAS31 ;* 5C58 8D01D2 004890 STA $D201 ;* 5C5B 8D03D2 004895 STA $D203 ;* 5C5E 60 004900 CAS31 RTS ;* 5C5F EA 004905 SENDDS NOP ;* 5C60 A9C7 004910 RECVD5 LDA #$C7 ;* 5C62 2510 004915 AND $10 ;* 5C64 8510 004920 STA $10 ;* 5C66 8D0ED2 004925 STA $D20E ;* 5C69 A206 004930 LDX #6 ;* 5C6B A900 004935 LDA #0 ;* 5C6D 9D01D2 004940 ZERIT STA $D201,X ;* 5C70 CA 004945 DEX ;* 5C71 CA 004950 DEX ;* 5C72 10F9 004955 BPL ZERIT ;* 2016-11-16 11:06 omnimon-xl.src Page 20 5C74 60 004960 RTS ;* 5C75 AD0603 004965 STTMOT LDA $0306 ;* 5C78 6A 004970 ROR A ;* 5C79 6A 004975 ROR A ;* 5C7A A8 004980 TAY ;* 5C7B 293F 004985 AND #$3F ;* 5C7D AA 004990 TAX ;* 5C7E 98 004995 TYA ;* 5C7F 6A 005000 ROR A ;* 5C80 2900 005005 AND #$C0 ;* 5C82 A8 005010 TAY ;* 5C83 60 005015 RTS ;* 5C84 0FEB 005020 INTTBL .WORD ISRSIR ;* 5C86 90EA 005025 .WORD ISRODN ;* 5C88 CFEA 005030 -WORD ISRTD ;* 5C8A A201 005035 SENDIN LDX #1 ;* 5C8C A0FF 005040 DELAY0 LDY #$FF ;* 5C8E 88 005045 DELAY1 DEY ;* 5C8F D0F0D 005050 BNE DELAY1 ;* 5C91 CA 005055 DEX ;* 5C92 D0F8 005060 BNE DELAY0 ;* 5C94 206BEA 005065 JSR SEND ;* 5C97 A002 005070 LDY #2 ;* 5C99 A200 005075 LDX #0 ;* 5C9B 20B9ED 005080 WAITER JSR SETVBX ;* 5C9E 201AEA 005085 JSR WAIT ;* 5CA1 98 005090 TYA ;* 5CA2 60 005095 RTS ;* 5CA3 ADEE02 005100 COMPUT LDA $02EE ;* 5CA6 8D04D2 005105 STA $D204 ;* 5CA9 ADEF02 005110 LDA $02EF ;* 5CAC 8D06D2 005115 STA $D206 ;* 5CAF 60 005120 RTS ;* ; 5CB0 A900 005130 HARDI LDA #0 ;* 5CB2 AA 005135 TAX ;* 5CB3 8D03D3 005140 STA $D303 ;* 5CB6 9D00D0 005145 CLRCHP STA $D000,X ;* 5CB9 9D00D4 005150 STA $D400,X ;* 5CBC 9D00D2 005155 STA $D200,X ;* 5CBF 0901 005160 CMP #1 ;* 5CC1 F003 005165 BEQ SKIP ;* 5CC3 9D00D3 005170 STA $D300, X ;* 5CC6 E8 005175 SKIP INX ;* 5CC7 D0ED 005180 BNE CLRCHP ;* 5CC9 A930 005185 LDA #$3C ;* OSNLX Power Up 5CCB 8D03D3 005190 STA $D303 ;* 5CCE A9FF 005195 LDA #$FF ;* 5CD0 8D01D3 005200 STA $D301 ;* 5CD3 A938 005205 LDA #$38 ;* 5CD5 8D02D3 005210 STA $D302 ;* 5CD8 8D03D3 005215 STA $D303 ;* 5CDB A900 005220 LDA #0 ;* 5CDD 8B00D3 005225 STA $D300 ;* 5CE0 A9FF 005530 LDA #$FF ;* 5CE2 3D01D3 005535 STA $D301 ;* 2016-11-16 11:06 omnimon-xl.src Page 21 5CE5 A93C 005240 LDA #$3C ;* 5CE7 8D02D3 005245 STA $D302 ;* 5CEA 8D03D3 005250 STA $D303 ;* 5CED AD01D3 005255 LDA $D301 ;* 5CF0 AD00D3 005260 LDA $D300 ;* 5CF3 A922 005265 LDA #$22 ;* 5CF5 8D0FD2 005270 STA $D20F ;* 5CF8 A9A0 005275 LDA #$A0 ;* 5CFA 8D05D2 005280 STA $D205 ;* 5CFD 8D07D2 005285 STA $0207 ;* 5D00 A928 005290 LDA #$28 ;* 5D02 8D08D2 005295 STA $D208 ;* 5D05 A9FF 005300 LDA #$FF ;* 5D07 8D0DD2 005305 STA $D20D ;* 5D0A 60 005310 RTS ;* ; =5D0B 005315 * = $ED10 5D10 A511 005320 BEGIN LDA $11 ;* 5D12 D003 005325 BNE NTBRK2 ;* 5D14 4CA0ED 005330 JMP BROKE ;* 5D17 78 005335 NTBRK2 SEI ;* 5D18 AD1703 005340 LDA $0317 ;* 5D1B D002 005345 BNE OKTIM1 ;* 5D1D F025 005350 BEQ TOUT1 ;* 5D1F AD0FD2 005355 0KTIM1 LDA $D20F ;* 5D22 2910 005360 AND #$10 ;* 5D24 D0EA 005365 BNE BEGIN ;* 5D26 8D1603 005370 STA $0316 ;* 5D29 AE0BD4 005375 LDX $D40B ;* 5D2C A414 005380 LDY $14 ;* 5D2E 8E0C03 005385 STX $030C ;* 5D31 8C0D03 005390 STY $0300 ;* 5D34 A201 005395 LDX #1 ;* 5D36 BE1503 005400 STX $0315 ;* 5D39 A00A 005405 LDY #10 ;* 5D3B A511 005410 COUNT LDA $11 ;* 5D3D F061 005415 BEQ BROKE ;* 5D3F AD1703 005420 LDA $0317 ;* 5D42 D004 005425 BNE OKTIMR ;* 5D44 58 005430 TOUT1 CLI ;* 5D45 4C0AEB 005435 JMP TOUT ;* 5D48 AD0FD2 005440 OKTIMR LDA $D20F ;* 5D4B 2910 005445 AND #$10 ;* 5D4D CD1603 005450 CMP $0316 ;* 5D50 F0E9 005455 BEQ COUNT ;* 5D52 8D1603 005460 STA $0316 ;* 5D55 88 005465 DEY ;* 5D56 D0E3 005470 BNE COUNT ;* 5D58 CE1503 005475 DEC $0315 ;* 5D5B 3012 005480 BMI GOREAD ;* 5D5D AD0BD4 005485 LDA $D40B ;* 5D60 A414 005490 LDY $14 ;* 5D62 20A3EC 005495 JMP COMPUT ;* 5D65 EA 005500 NOP ;* 5D66 EA 005505 NOP ;* 5D67 EA 005510 NOP ;* 2016-11-16 11:06 omnimon-xl.src Page 22 5D68 EA 005515 NOP ;* 5D69 EA 005520 NOP ;* 5D6A EA 005525 NOP ;* 5D6B A009 005530 LDY #9 ;* 5D6D D0CC 005535 BNE COUNT ;* 5D6F ADEE02 005540 G0READ LDA $02E ;* 5D72 8D04D2 005545 STA $0204 ;* 5D75 ADEF02 005550 LDA $02EF ;* 5D78 8D06D2 005555 STA $0206 ;* 5D7B A900 005560 LDA #0 ;* 5D7D 8D0FD2 005565 STA $D20F ;* 5D80 AD3202 005570 LDA $0232 ;* 5D83 8D0FD2 005575 STA $D20F ;* 5D86 A955 005580 LDA #$55 ;* 5D88 9132 005585 STA ($32),Y ;* 5D8A C8 005590 INY ;* 5D8B 9132 005595 STA ($32),Y ;* 5D8D A9AA 005600 LDA #$AA ;* 5D8F 8531 005605 STA $31 ;* 5D91 18 005610 CLC ;* 5D92 A532 005615 LDA $32 ;* 5D94 6902 005620 ADC #2 ;* 5D96 8532 005625 STA $32 ;* 5D98 A533 005630 LDA $33 ;* 5D9A 6900 005635 ADC #0 ;* 5D9C 8533 005640 STA $33 ;* 5D9E 58 005645 CLI ;* 5D9F 60 005650 RTS ;* 5DA0 205FEC 005655 BROKE JSR SENDDS ;* 5DA3 A93C 005680 LDA #$3C ;* 5DA5 8D02D3 005665 STA $D302 ;* 5DA8 8D03D3 005670 STA $D303 ;* 5DAB A980 005675 LDA #$80 ;* 5DAD 8530 005680 STA $30 ;* 5DAF AE1803 005685 LDX $0318 ;* 5DB2 9A 005690 TXS ;* 5DB3 C611 005695 DEC ;* 5DB5 58 005700 CLI ;* 5DB6 4C0DEA 005705 JMP RETURN ;* 5DB9 A9EC 005710 SETVBXL LDA #$EC ;* 5DBB 8D2602 005715 STA $0226 ;* 5DBE A9EB 005720 LDA #$EB ;* 5DC0 8D2702 005725 STA $0227 ;* 5DC3 A901 005730 LDA #1 ;* 5DC5 78 005735 SEI ;* 5DC6 205CE4 005740 JSR $E45C ;* 5DC9 A901 005745 LDA #1 ;* 5DCB 8D1703 005750 STA $0317 ;* 5DCE 58 005755 CLI ;* 5DCF 60 005760 RTS ;* 5DD0 E803 005765 POKTAB .WORD $03E8 ;* NOT USED 5DD2 4304 005770 .WORD $0443 ;* 5DD4 9E04 005775 .WORD $049E ;* 5DD6 F904 005780 .WORD $04F9 ;* 5DD8 5405 005785 .WORD $0554 ;* 5DDA AF05 005790 .WORD $05AF ;* 2016-11-16 11:06 omnimon-xl.src Page 23 5DDC 0A06 005795 .WORD $060A ;* 5DDE 6508 005800 .WORD $0665 ;* 5DE0 C006 005805 .WORD $06C0 ;* 5DE2 1A07 005810 .WORD $071A ;* 5DE4 7507 005815 .WORD $0775 ;* 5DE6 D007 005820 .WORD $07DO ;* 5DE8 2485 005825 .BYTE $24, $85 ;* ; 5DEA A9A0 005830 DINIT LDA #$A0 ;* 5DEC 8D4602 005835 STA $0246 ;* 5DEF 60 005840 RTS ;* 5DF0 A931 005845 DSKIF LDA #$31 ;* 5DF2 8D0003 005850 STA $0300 ;* 5DF5 AD4602 005855 LDA $0246 ;* 5DF8 AE0203 005860 LDX $0302 ;* 5DFB E021 005865 CPX #$21 ;* 5DFD F002 005870 BEQ PUTDTO ;* 5DFF A907 005875 LDA #7 ;* 5E01 8D0603 005880 PUTDTO STA $0306 ;* 5E04 A240 005885 LDX #$40 ;* 5E06 A080 005890 LDY #$80 ;* 5E08 AD0203 005895 LDA $0302 ;* 5E0B C957 005900 CMP #$57 ;* 5E0D D002 005905 BNE CKSTC ;* 5E0F A280 005910 LDX #$80 ;* 5E11 C953 005915 CKSTC CMP #$53 ;* 5E13 D00C 005920 BNE PUTCNT ;* 5E15 A9EA 005925 LDA #$EA ;* 5E17 8D0403 005930 STA $0304 ;* 5E1A A902 005935 LDA #2 ;* 5E1C 8D0503 005940 STA $0305 ;* 5E1F A004 005945 LDY #4 ;* 5E21 BE0303 005950 PUTCNT STX $0303 ;* 5E24 8C0803 005955 STY $0308 ;* 5E27 A900 005960 LDA #0 ;* 5E29 8D0903 005965 STA $0309 ;* 5E2C 2059E4 005970 JSR SIOV ;* 5E2F 1001 005975 BPL GOODST ;* 5E31 60 005980 RTS ;* 5E32 AD0203 005985 GOODST LDA $0302 ;* 5E35 C953 005990 CMP #$53 ;* 5E37 D00A 005995 BNE PUTBC ;* 5E39 206DEE 006000 JSR PUTADR ;* 5E3C A002 006005 LDY #2 ;* 5E3E B115 006010 LDA ($15),Y ;* 5E40 8D4602 006015 STA $0246 ;* 5E43 AD0203 006020 PUTBC LDA $0302 ;* 5E46 C921 006025 CMP #$21 ;* 5E48 D01F 006030 BNE ENDDIF ;* 5E4A 206DEE 006035 FMTD JSR PUTADR ;* 5E4D A0FE 006040 LDY #$FE ;* 5E4F C8 006045 TWICE INY ;* 5E50 C8 006050 INY ;* 5E51 B115 006055 RDBAD LDA ($15),Y ;* 5E53 C9FF 006060 CMP #$FF ;* 5E55 D0F8 006065 BNE TWICE ;* 2016-11-16 11:06 omnimon-xl.src Page 24 5E57 C8 006070 INY ;* 5E58 B115 006075 LDA ($15),Y ;* 5E5A C8 006080 INY ;* 5E5B C9FF 006085 CMP #$FF ;* 5E5D D0F2 006090 BNE RDBAD ;* 5E5F 88 006095 DEY ;* 5E60 88 006100 DEY ;* 5E61 8C0803 006105 STY $0308 ;* 5E64 A900 006110 LDA #0 ;* 5E66 8D0903 006115 STA $0309 ;* 5E69 AC0303 006120 ENDDIF LDY $0303 ;* 5E6C 60 006125 RTS ;* 5E6D AD0403 006130 PUTADR LDA $0304 ;* 5E70 8515 006135 STA $15 ;* 5E72 AD0503 006140 LDA $0305 ;* 5E75 8516 006145 STA $16 ;* 5E77 60 006150 RTS ;* 5E78 A91E 006155 PHINIT LDA #30 ;* 5E7A 851C 006160 STA $1C ;* 5E7C 60 006165 RTS ;* ; 5E7D EA02 006170 PHSTLO .WORD $02EA ;* 5E7F C003 006175 PHCHLO .WORD $03C0 ;* ; 5E81 A904 006180 PHSTAT LDA #4 ;* 5E83 851E 006185 STA $1E ;* 5E85 AE7DEE 006190 LDX PHSTLO ;* 5E88 AC7EEE 006195 LDY PHSTL0+1 ;* 5E8B A953 006200 LDA #$53 ;* 5E8D 8D0203 006205 STA $0302 ;* 5E90 8D0A03 006210 STA $030A ;* 5E93 20E6EE 006215 JSR SETDCB ;* 5E96 2059E4 006220 JSR SIOV ;* 5E99 3003 006225 BMI BADST ;* 5E9B 2014EF 006230 JSR PHPUT ;* 5E9E 60 006235 BADST RTS ;* 5E9F 2081EE 006240 PHOPEN JSR PHSTAT ;* 5EA2 A900 006245 LDA #0 ;* 5EA4 851D 006250 STA $1D ;* 5EA6 60 006255 RTS ;* 5EA7 851F 006260 PHWRIT STA $1F ;* 5EA9 201AEF 006265 JSR PRMODE ;* 5EAC A61D 006270 LDX $1D ;* 5EAE A51F 006275 LDA $1F ;* 5EB0 9DC003 006280 STA $03C0,X ;* 5EB3 E8 006285 INX ;* 5EB4 E41E 006290 CPX $1E ;* 5EB6 F013 006295 BEQ BUFFUL ;* 5EB8 861D 006300 STX $1D ;* 5EBA C99B 006305 CMP #$9B ;* 5EBC F003 006310 BEQ BLFILL ;* 5EBE A001 006315 LDY #1 ;* 5EC0 60 006320 RTS ;* 5EC1 A920 006325 BLFILL LDA #$20 ;* 5EC3 9DC003 006330 FILLBF STA $03C0 ;* 5EC6 E8 006335 INX ;* 2016-11-16 11:06 omnimon-xl.src Page 25 5EC7 E41E 006340 CPX $1E ;* 5EC9 D0F8 006345 BNE FILLBF ;* 5ECB A900 006350 BUFFUL LDA #0 ;* 5ECD 851D 006366 STA $1D ;* 5ECF AE7FEE 006360 LDX PHCHLO ;* 5ED2 AC80EE 006365 LDY PHCHL0+1 ;* 5ED5 20E6EE 006370 JSR SETDCB ;* 5ED8 2059E4 006375 JSR SIOV ;* 5EDB 60 006380 RTS ;* 5EDC 201AEF 006385 PHCLOS JSR PRMODE ;* 5EDF A61D 006390 LDX $1D ;* 5EE1 D0DE 006395 BNE BLFILL ;* 5EE3 A001 006400 LDY #1 ;* 5EE5 60 006405 RTS ;* 5EE6 8E0403 006410 SETDCB STX $0304 ;* 5EE9 8C0503 006415 STY $0305 ;* 5EEC A940 006420 LDA #$40 ;* 5EEE 8D0003 006425 STA $0300 ;* 5EF1 A901 006430 LDA #1 ;* 5EF3 8D0103 006435 STA $0301 ;* 5EF6 A980 006440 LDA #$80 ;* 5EF8 AE0203 006445 LDX $0302 ;* 5EFB E053 006450 CPX #$53 ;* 5EFD D002 006455 BNE PSIOC ;* 5EFF A940 006460 LDA #$40 ;* 5F01 8D0303 006465 PSIOC STA $0303 ;* 5F04 A51E 006470 LDA $1E ;* 5F06 8D0803 006475 STA $0308 ;* 5F09 A900 006480 LDA #0 ;* 5F0B 8D0903 006485 STA $0309 ;* 5F0E A51C 006490 LDA $1C ;* 5F10 8D0603 006495 STA $0306 ;* 5F13 60 006500 RTS ;* 5F14 ADEC02 006505 PHPUT LDA $02EC ;* 5F17 851C 006510 STA $1C ;* 5F19 60 006515 RTS ;* 5F1A A057 006520 PRNODE LDY #$57 ;* 5F1C A52B 006525 LDA $2B ;* 5F1E C94E 006530 CMODE CMP #$4E ;* 5F20 D004 006535 BNE CDUBL ;* 5F22 A228 006540 LDX #$28 ;* 5F24 D00E 006545 BNE SETBSZ ;* 5F26 C944 006550 CDUBL CMP #$44 ;* 5F28 D004 006555 BNE CSIDE ;* 5F2A A214 006560 LDX #$14 ;* 5F2C D006 006565 BNE SETBSZ ;* 5F2E C953 006570 CSIDE CMP #$53 ;* 5F30 D00B 006575 BNE GOERR ;* 5F32 A21D 006580 LDX #$1D ;* 5F34 861E 006585 SETBSZ STX $1E ;* 5F36 8C0203 006590 STY $0302 ;* 5F39 8D0A03 006595 STA $030A ;* 5F3C 60 006600 RTS ;* 5F3D A94E 006605 GOERR LDA #$4E ;* 5F3F D0DD 006610 BNE CMODE ;* 5F41 A9CC 006615 INIT LDA #*CC ;* 2016-11-16 11:06 omnimon-xl.src Page 26 5F43 8DEE02 006620 STA $02EE ;* 5F46 A905 006625 LDA #5 ;* 5F48 8DEF02 006630 STA $02EF ;* 5F4B 60 006635 SPECIA RTS ;* 5F4C A52B 006640 OPENC LDA $2B ;* 5F4E 853E 006645 STA $3E ;* 5F50 A52A 006650 LDA $2A ;* 5F52 290C 006655 AND #$0C ;* 5F54 C904 006660 CMP #4 ;* 5F56 F005 006665 BEQ OPINP ;* 5F58 C908 006670 CMP #8 ;* 5F5A F039 006675 BEQ OPOUT ;* 5F5C 60 006680 RTS ;* 5F5D A900 006685 OPINP LDA #0 ;* 5F5F 8D8902 006690 STA $0289 ;* 5F62 853F 006695 STA $3F ;* 5F64 A901 006700 SFH LDA #1 ;* 5F66 2058F0 006705 JSR $F058 ;* BEEP 5F69 3024 006710 BMI OPNRTN ;* 5F6B A934 006715 LDA #$34 ;* 5F6D 8D02D3 006720 STA $D302 ;* 5F70 A040 006725 LDY #$40 ;* 5F72 A202 006730 LDX #2 ;* 5F74 A903 006735 LDA #3 ;* 5F76 8D2A02 006740 STA $022A ;* 5F79 205CE4 006745 JSR SETVBV ;* 5F7C AD2A02 006750 WAITTM LDA $022A ;* 5F7F D0FB 006755 BNE WAITTM ;* 5F81 A980 006760 LDA #$80 ;* 5F83 853D 006765 STA $3D ;* 5F85 8D8A02 006770 STA $028A ;* 5F88 4CD3EF 006775 JMP OPOK ;* 5F8B A080 006780 PBRK LDY #$30 ;* 5F8D C611 006785 DEC $11 ;* 5F8F A900 006790 OPNRTN LDA #0 ;* 5F91 8D8902 006795 STA $0289 ;* 5F94 60 006800 RTS ;* 5F95 6805 006805 OPOUT LDA #$80 ;* 5F97 8D8902 006810 STA $0289 ;* 5F9A A902 006815 LDA #2 ;* 5F9C 2058F0 006820 JSR $F058 ;* 5F9F 30EE 006825 BMI OPNRTN ;* 5FA1 20A3EC 006830 JSR COMPUT ;* 5FA4 4CABEF 006835 JMP EFAB ;* 5FA7 04 006840 .BYTE 4 ;* 5FA8 8D06D2 006845 STA $D206 ;* 5FAB A960 006850 EFAB LDA #$60 ;* 5FAD 8D0003 006855 STA $0300 ;* 5FB0 2068E4 006860 JSR SENDEV ;* 5FB3 A934 006865 LDA #$34 ;* 5FB5 8D02D3 006870 STA $D302 ;* 5FB8 A903 006875 LDA #3 ;* 5FBA A202 006880 LDX #2 ;* 5FBC A080 006885 LDY #$80 ;* 5FBE 205CE4 006890 JSR SETVBV ;* 5FC1 A9FF 006895 LDA #$FF ;* 2016-11-16 11:06 omnimon-xl.src Page 27 5FC3 8D2A02 006900 STA $022A ;* 5FC6 A511 006905 WDLR LDA $11 ;* 5FC8 F0C1 006910 BEQ PBRK ;* 5FCA AD2A02 006915 LDA $022A ;* 5FCD D0F7 006920 BNE WDLR ;* 5FCF A900 006925 LDA #0 ;* 5FD1 853D 006930 STA $3D ;* 5FD3 A001 006935 OPOK LDY #1 ;* 5FD5 60 006940 RTS ;* 5FD6 A53F 006945 GBYTE LDA $3F ;* 5FD8 3033 006950 BMI ISEOF ;* 5FDA A63D 006955 LDX $3D ;* 5FDC EC8A02 006960 CPX $028A ;* 5FDF F008 006965 BEQ RBLOK ;* 5FE1 BD0004 006970 LDA $0400,X ;* 5FE4 E63D 006975 INC $3D ;* 5FE6 A001 006980 LDY #1 ;* 5FE8 60 006985 GBX RTS ;* 5FE9 A952 006990 RBLOK LDA #$52 ;* 5FEB 2095F0 006995 JSR SIOSB ;* 5FEE 88 007000 TYA ;* 5FEF 30F7 007005 BMI GBX ;* 5FF1 A900 007010 LDA #0 ;* 5FF3 853D 007015 STA $3D ;* 5FF5 A280 007020 LDX #$80 ;* 5FF7 ADFF03 007025 LDA $03FF ;* 5FFA C9FE 007030 CMP #$FE ;* 5FFC F00D 007035 BEQ ATEOF ;* 5FFE C9FA 007040 CMP #$FA ;* 6000 D003 007045 BNE NLR ;* 6002 AE7F04 007050 LDX $047F ;* 6005 8E8A02 007055 NLR STX $028A ;* 6008 4CD6EF 007060 JMP GBYTE ;* 600B C63F 007065 ATEOF DEC $3F ;* 600D A088 007070 ISEOF LDY #$88 ;* 600F 60 007075 RTS ;* 6010 A63D 007080 PBYTE LDX $3D ;* 6012 9D0004 007035 STA $0400,X ;* 6015 E63D 007090 INC $3D ;* 6017 A001 007095 LDY #1 ;* 6019 E07F 007100 CPX #127 ;* 601B F001 007105 BEQ *+3 ;* 601D 60 007110 RTS ;* 601E A9FC 007115 LDA #$FC ;* 6020 20D2F0 007120 JSR WSIOSB ;* 6023 A900 007125 LDA #0 ;* 6025 853D 007130 STA $3D ;* 6027 60 007135 RTS ;* 6028 A001 007140 STATU LDY #1 ;* 602A 60 007145 RTS ;* 602B AD8902 007150 CLOSEC LDA $0289 ;* 602E 3008 007155 BMI CLWRT ;* 6030 A001 007160 LDY #1 ;* 6032 A93C 007165 FCAX LDA #$3C ;* 6034 8D02D3 007170 STA $D302 ;* 6037 60 007175 RTS ;* 2016-11-16 11:06 omnimon-xl.src Page 28 6038 A63D 007180 CLWRT LDX $3D ;* 603A F00A 007185 BEQ WTLR ;* 603C 8E7F04 007190 STX $047F ;* 603F A9FA 007195 LDA #$FA ;* 6041 20D2F0 007200 JSR WSIOSB ;* 6044 30EC 007205 BMI FCAX ;* 6046 A27F 007210 WTLR LDX #127 ;* 6048 A900 007215 LDA #0 ;* 604A 9D0004 007220 ZTBUF STA $0400,X ;* 604D CA 007225 DEX ;* 604E 10FA 007230 BPL ZTBUF ;* 6050 A9FE 007235 LDA #$FE ;* 6052 20D2F0 007240 JSR WSIOSB ;* 6055 4C32F0 007245 JMP FCAX ;* 6058 8540 007250 BEEP STA $40 ;* 605A A514 007255 BEEP1 LDA $14 ;* 605C 18 007260 CLC ;* 605D 691E 007265 ADC #30 ;* 605F AA 007270 TAX ;* 6060 A9FF 007275 WFL LDA #$FF ;* 6062 3D1FD0 007280 STA $D01F ;* 6065 A900 007285 LDA #0 ;* 6067 A0F0 007290 LDY #$F0 ;* 6069 88 007295 DEY ;* 606A D0FD 007300 BNE *-1 ;* 606C 3D1FD0 007305 STA $D01F ;* 606F A0F0 007310 LDY #$F0 ;* 6071 88 007315 DEY ;* 6072 D0FD 007320 BNE *-1 ;* 6074 E414 007325 CPX $14 ;* 6076 D0E8 007330 BNE WFL ;* 6078 C640 007335 DEC $40 ;* 607A F00B 007340 BEQ WFAK ;* 607C 8A 007345 TXA ;* 607D 18 007350 CLC ;* 607E 690A 007355 ADC #10 ;* 6080 AA 007360 TAX ;* 6081 E414 007365 CPX $14 ;* 6083 D0FC 007370 BNE *-2 ;* 6085 F0D3 007375 BEQ BEEP1 ;* 6087 203CF0 007380 WFAK JSR WFAK1 ;* 608A 98 007385 TYA ;* 608B 60 007390 RTS ;* 608C AD25E4 007395 WFAK1 LDA $E425 ;* 608F 48 007400 PHA ;* 6090 AD24E4 007405 LDA $E424 ;* 6093 43 007410 PHA ;* 6094 60 007415 RTS ;* 6095 8D0203 007420 SIOSB STA $0302 ;* 6098 A900 007425 LDA #0 ;* 609A 8D0903 007430 STA $0309 ;* 609D A983 007435 LDA #131 ;* 609F 8D0303 007440 STA $0308 ;* 60A2 A903 007445 LDA #3 ;* 60A4 3D0503 007450 STA $0305 ;* 60A7 A9FD 007455 LDA #$FD ;* 2016-11-16 11:06 omnimon-xl.src Page 29 60A9 8D0403 007460 STA $0304 ;* 60AC A960 007465 CSIO LDA #$60 ;* 60AE 8D0003 007470 STA $0300 ;* 60B1 A900 007475 LDA #0 ;* 60B3 8D0103 007480 STA $0301 ;* 60B6 A923 007435 LDA #35 ;* 60B8 8D0603 007490 STA $0306 ;* 60BB AD0203 007495 LDA $0302 ;* 60BE A040 007500 LDY #$40 ;* 60C0 C952 007505 CMP #$52 ;* 60C2 F002 007510 BEQ *+4 ;* 60C4 A080 007515 LDY #$80 ;* 60C6 8C0303 007520 STY $0303 ;* 60C9 A53E 007525 LDA $3E ;* 60CB 8D0B03 007530 STA $030B ;* 60CE 2059E4 007535 JSR $E459 ;* 60D1 60 007540 RTS ;* 60D2 8DFF03 007545 WSIOSB STA $03FF ;* 60D5 A955 007550 LDA #$55 ;* 60D7 8DFD03 007555 STA $03FD ;* 60DA 8DFE03 007560 STA $03FE ;* 60DD A957 007565 LDA #$57 ;* 60DF 2095F0 007570 JSR SIOSB ;* 60E2 60 007575 RTS ;* 60E3 50 007580 TBLENT .BYTE 'P' ;* 60E4 30E4 007585 .BYTE $30,$E4 ;* 60E6 43 007590 .BYTE 'C' ;* 60E7 40E4 007595 .BYTE $40,$E4 ;* 60E9 45 007600 .BYTE 'E' ;* 60EA 00E4 007605 .BYTE $00,$E4 ;* 60EC 53 007610 .BYTE 'S' ;* 60ED 10E4 007615 .BYTE $10,$E4 ;* 60EF 4B 007620 .BYTE 'K' ;* 60F0 20E4 007625 .BYTE $20,$E4 ;* =000E 007630 TBLLEN = 14 60F2 A23F 007635 CLICK LDX #$3F ;* 60F4 8E1ED0 007640 CLICK1 STX $D01F ;* 60F7 8E0AD4 007645 STX $D40A ;* 60FA CA 007650 DEX ;* 60FB 10F7 007655 BPL CLICK1 ;* 60FD 60 007660 RTS ;* 60FE A900 007665 COLCR LDA #0 ;* 6100 A67B 007670 LDX $7B ;* 6102 D004 007675 BNE COLCR 1 ;* 6104 A657 007680 LDX $57 ;* 6106 D002 007685 BNE CQLCR2 ;* 6108 A552 007690 COLCR1 LDA $52 ;* 610A 8555 007695 COLCR2 STA $55 ;* 610C 60 007700 RTS ;* 610D 424F4F54 007705 DERRS .BYTE "BOOT ERROR", $9B ;* 6111 20455252 6115 4F529B =00F1 007710 DERRH = DERR5/256 =000D 007715 DERRL = DERR5&255 6118 453A9B 007720 ORNEDT .BYTE "E:",$9B ;* =00F1 007725 OPNH = OPNEDT/256 2016-11-16 11:06 omnimon-xl.src Page 30 =0018 007730 OPNL = OPNEDT&255 611B 78 007735 RESET SEI ;* 611C AD4402 007740 LDA $0244 ;* 611F D004 007745 BNE PWRUP ;* 6121 A9FF 007750 LDA #$FF ;* 6123 D038 007755 BNE PWRUP 1 ;* ;* ;* Reset Entry point ;* =6125 007759 RSTVEntry = . ; njc 6125 78 007760 PWRUP SEI ;* POWER UP VECTOR 6126 48 007765 PHA ;* SAVE A.X,Y FOR OMNIMON 6127 8A 007770 TXA ;* 6128 48 007775 PHA ;* 6129 98 007780 TYA ;* 612A 48 007785 PHA ;* 612B 20B0EC 007790 JSR HARDI ;* 612E AD1FD0 007795 LDA CONSOL ;* Console = $D01F 6131 2907 007800 AND #7 ;* TEST 3 BITS 6133 C905 007805 CMP #5 ;* SELECT KEY 6135 D018 007810 BNE CONTPU ;* 6137 8642 007815 STX $42 ;* 6139 8EFE02 007820 STX $02FE ;* DSPFLG 613C 8EFF02 007825 STX $02FF ;* SSFLAG (Stop/Start Screen Scroll) 613F ADF803 007830 LDA $03F8 ;* CHK BASIC FLAG 6142 D005 007835 BNE TRTOP ;* NOT THERE 6144 A9FD 007840 LDA #$FD ;* WAS THERE 6146 8D01D3 007845 STA $D301 ;* TURN BACK ON 6149 2025E9 007850 TRTOP JSR HOWMCH ;* 614C 4CD9F1 007855 JMP ESTSCM ;* 614F AD4402 007860 CONTPU LDA $0244 ;* IS IT RESET 6152 D007 007865 BNE PWRUP3 ;* 6154 AD3D03 007870 LDA $033D ;* 6157 C95C 007875 CMP #$5C ;* 6159 F0C0 007880 BEQ RESET ;* 615B A900 007885 PWRUP3 LDA #0 ;* 615D 8508 007890 PWRUP1 STA $08 ;* 615F D8 007895 CLD ;* 6160 A2FF 007900 LDX #$FF ;* 6162 9A 007905 TXS ;* STACK POINTER 6163 AD1FD0 007910 LDA CONSOL ;* Console $D01F 6166 2906 007915 AND #6 ;* SELECT & OPTION 6168 F013 007920 BEG ENSPEC ;* 616A AD13D0 007925 SPECL LDA $D013 ;* 616D 6A 007930 ROR A ;* 616E 900D 007935 BCC ENSPEC ;* 6170 ADFCBF 007940 LDA $BFFC ;* 6173 D008 007945 BNE ENSPEC ;* 6175 ADFDBF 007950 LDA $BFFD ;* 6178 1003 007955 BPL ENSPEC ;* 617A 6CFEBF 007960 CAINIT JMP ($BFFE) ;* 617D A508 007965 ENSPEC LDA $08 ;* 617F F007 007970 BEG TESTB ;* 6181 ADF803 007975 LDA $03F8 ;* 6184 D011 007980 BNE ENSPE2 ;* 6186 F007 007985 BEG TRNONB ;* 2016-11-16 11:06 omnimon-xl.src Page 31 6188 AD1FD0 007990 TESTB LDA CONSOL ;* Console $D01F 618B 2904 007995 AND #4 ;* OPTION PUSHED 618D F008 008000 BEG ENSPE2 ;* 618F AD01D3 008005 TRNONB LDA $D301 ;* 6192 29FD 008010 AND #$FD ;* TURN ON BASIC ROM 6194 8D01D3 008015 STA $D301 ;* 6197 2025E9 008020 ENSPE2 JSR HOWMCH ;* GO CHK RAM 619A A508 008025 LDA $08 ;* 619C D024 008030 BNE Z0SRAM ;* 619E A008 008035 ZERORM LDY #8 ;* 61A0 8504 008040 STA $04 ;* 61A2 8505 008045 STA $05 ;* 61A4 9104 008050 CLRRAM STA ($04),Y ;* 61A6 C8 008055 INY ;* 61A7 D0FB 008060 BNE CLRRAM ;* 61A9 E605 008065 INC $05 ;* 61AB A605 008070 LDX $05 ;* 61AD E406 008075 CPX $06 ;* 61AF D0F3 008080 BNE CLRRAM ;* 61B1 AD72E4 008085 LDA $E472 ;* 61B4 850A 008090 STA $0A ;* 61B6 AD73E4 008095 LDA $E473 ;* 61B9 850B 008100 STA $0B ;* 61BB A9FF 008105 LDA #$FF ;* 61BD 8D4402 008110 STA $0244 ;* 61C0 D017 008115 BNE ESTSCM ;* 61C2 A200 008120 Z0SRAM LDX #0 ;* 61C4 3A 008125 TXA ;* 61C5 9D0002 008130 Z0SRM2 STA $0200,X ;* 61C8 E0ED 008235 CPX #$ED ;* 61CA B003 008140 BCS Z0SRM4 ;* 61CC 9D0003 008145 STA $0300,X ;* 61CF CA 008150 Z0SRM4 DEX ;* 61D0 D0F3 008155 BNE Z0SRM2 ;* 61D2 A210 008160 LDX #$10 ;* 61D4 9500 003165 Z0SRM3 STA $00,X ;* 61D6 E8 008170 INX ;* 61D7 10FB 003175 BPL Z0SRM3 ;* 61D9 A200 008180 ESTSCM LDX #0 ;* 61DB AD01D3 008185 LDA $D301 ;* IS BASIC ROM THERE 61DE 2902 008190 AND #2 ;* 61E0 F001 008195 BEQ EST1 ;* 61E2 E8 008200 INX ;* 61E3 8EF803 008205 EST1 STX $03F8 ;* 61E6 A95C 008210 LDA #$5C ;* 61E8 8D3D03 008215 STA S033D ;* 61EB A902 008220 LDA #2 ;* 61ED 8552 008225 STA $52 ;* 61EF A927 008230 LDA #39 ;* 61F1 8553 008235 STA $53 ;* 61F3 A225 008240 OPSYS LDX #$25 ;* 61F5 BD80E4 008245 M0VVEC LDA $E480,X ;* 61F8 9D0002 008250 STA $0200,X ;* 61FB CA 008255 DEX ;* 61FC 10F7 008260 BPL M0VVEC ;* 61FE A20E 008265 LDX #$0E ;* 2016-11-16 11:06 omnimon-xl.src Page 32 6200 BDE3F0 008570 NXTENT LDA $F0E3,X ;* 6203 9D1A03 008575 STA $031A,X ;* 6206 CA 008280 DEX ;* 6207 10F7 008285 BPL NXTENT ;* 6209 C611 008290 OSRAM DEC $11 ;* 620B A954 008295 LDA #$54 ;* 620D 8D3602 008300 STA $0236 ;* 6210 A9E7 008305 LDA #$E7 ;* 6212 8D3702 008310 STA $0237 ;* 6215 A506 008315 LDA $06 ;* 6217 8DE402 008320 STA $02E4 ;* 621A 8DE602 008325 STA $02E6 ;* 621D A900 008330 LDA #0 ;* 621F 8DE502 008335 STA $02E5 ;* 6222 8506 008340 STA $06 ;* ; 6224 200CE4 008345 JSR $E40C ;* 6227 201CE4 008350 JSR $E41C ;* 622A 202CE4 008355 JSR $E42C ;* 622D 203CE4 008360 JSR $E43C ;* 6230 204CE4 008365 JSR $E44C ;* 6233 206EE4 008370 JSR $E46E ;* 6236 2065E4 008375 JSR $E465 ;* 6239 206BE4 008380 JSR $E46B ;* ; ; |Key Value 0 1 2 3 4 5 6 7 | ; | | ; | | ; |OPTION X X X X | ; |SELECT X X X X | ; |START X X X X | ; | | ; Bits 2 0 0 0 0 1 1 1 1 ; 1 0 0 1 1 0 0 1 1 ; 0 0 1 0 1 0 1 0 1 ; ; Where zero means all keys have been pressed, one means ; OPTION and SELECT have been pressed, etc., to seven, which ; means no keys have been pressed. CONSOL is updated every ; stage two VBLANK procedure with the value eight. ; ;--- -------- ------ -------------------------- ------------------ 623C AD1FD0 008385 LDA CONSOL ;* Console $D01F 623F AA 008390 TAX ;* 6240 2901 008395 AND #1 ;* START KEY 6242 D002 008400 BNE NOSTRT ;* ;* ;* Start key ;* ; Cassette boot request flag on coldstart. Checks to see if the ; START key is pressed and, if so, CKEY is set. Autoboot cassettes ; are loaded by pressing the START console key while turning the ; power on. In response to the beep, press the PLAY button on the 6244 E64A 008405 INC CKEY ;* CKEY =$4A ;* ;* Start key 2016-11-16 11:06 omnimon-xl.src Page 33 ;* 6246 58 008410 NOSTRT CLI ;* 6247 8A 008415 TXA ;* 6248 2906 008420 AND #6 ;* SELECT & OPTION 624A D010 008425 BNE OMNI2 ;* 624C 2001C0 008430 JSR $C001 ;* Jump to Omnimon 624F A200 008435 LDX #0 ;* 6251 A90C 008440 LDA #$0C ;* 6253 9D4203 008445 STA $0342, X ;* 6256 2056E4 008450 JSR $E456 ;* 6259 4C6EF2 008455 JMP ENDBCK ;* ; 625C 8A 008460 OMNI2 TXA ;* 625D 2902 008465 AND #2 ;* SELECT KEY 625F D003 008470 BNE CPU2 ;* 6261 4C15C0 008475 JMP $C015 ;* GOT IT 6264 A200 008480 CPU2 LDX #0 ;* 6266 8EE702 008485 STX $02E7 ;* 6269 A907 008490 LDA #7 ;* 626B 8DE802 008495 STA $02E8 ;* 626E AEE402 008500 ENDBCK LDX $02E4 ;* 6271 E0B0 008505 CPX #$B0 ;* 6273 B00A 008510 BCS ENDACK ;* 6275 AEFCBF 008515 LDX $BFFC ;* 6278 D005 008520 BNE ENDACK ;* 627A E606 008525 INC $06 ;* 627C 207AF1 008530 JSR CAINIT ;* INIT CART. 627F A903 008535 ENDACK LDA #3 ;* OPEN SCREEN 6281 A200 008540 LDX #0 ;* 6283 9D4203 008545 STA $0342, X ;* 6286 A918 008550 LDA #$18 ;* 6288 9D4403 008555 STA $0344, X ;* 628B A9F1 008560 LDA #$F1 ;* 628D 9D4503 008565 STA $0345, X ;* 6290 A90C 008570 LDA #$0C ;* 6292 9D4A03 008575 STA $034A, X ;* 6295 2056E4 008580 JSR $E456 ;* 6298 1003 008585 BPL SCRNOK ;* 629A 4C25F1 008590 JMP PWRUP ;* ; 629D E8 008595 INX ;* 629E D0FD 008600 BNE SCRNOK ;* 62A0 C8 008605 INY ;* 62A1 10FA 008610 BPL SCRNOK ;* 62A3 209EF3 008615 JSR $F39E ;* CSBOOT 62A6 A506 008620 LDA $06 ;* 62A8 F006 008625 BEQ NOCART ;* 62AA ADFDBF 008630 LDA $BFFD ;* 62AD 6A 008635 ROR A ;* 62AE 9003 008640 BNE NOBOOT ;* 62B0 20CFF2 008645 NOCART JSR $F2CF ;* BOOT 62B3 A900 008650 NOBOOT LDA #0 ;* 62B5 8D4402 008655 STA $0244 ;* 62B8 A506 008660 LDA $06 ;* 62BA F00A 008665 BEQ NOCAR2 ;* 62BC ADFDBF 008670 LDA $BFFD ;* 2016-11-16 11:06 omnimon-xl.src Page 34 62BF 2904 008675 AND #4 ;* 62C1 F003 008680 BEQ NOCAR2 ;* 62C3 6CFABF 008685 JMP ($BFFA) ;* 62C6 6C0A00 008690 N0CAR2 JMP ($0A) ;* DOSVEC 62C9 203EF6 008695 BLACKB JSR $F63E ;* EGETCH 62CC 4CC9F2 008700 JMP BLACKB ;* 62CF A508 008705 BOOT LDA S08 ;* 62D1 F00A 008710 BEQ NOWARM ;* 62D3 A509 008715 LDA $09 ;* 62D5 2901 008720 AND #1 ;* 62D7 F003 008725 BEQ NOINIT ;* 62D9 207EF3 008730 JSR DINI ;* 62DC 60 008735 NOINIT1 RTS ;* 62DD A901 008740 NOWARM1 LDA $1 ;* 62DF 8D0103 008745 STA $0301 ;* 62E2 A953 008750 LDA #$53 ;* 62E4 8D0203 008755 STA $0302 ;* 62E7 2053E4 008760 JSR $E453 ;* 62EA 1001 008765 BPL DOBOOT ;* 62EC 60 008770 RTS ;* 62ED A900 008775 DOBOOT1 LDA #0 ;* 62EF 8D0B03 008780 STA $030B ;* 62F2 8D0403 008785 STA $0304 ;* 62F5 A901 008790 LDA #1 ;* 62F7 8D0A03 008795 STA $030A ;* 62FA A904 008800 LDA #4 ;* 62FC 8D0503 008805 STA $0305 ;* 62FF EA 008810 NOP ;* 6300 EA 008815 NOP ;* 6301 20C0FC 008820 SECT1 JSR GETSEC ;* 6304 1008 008825 BPL ALLSEC ;* 6306 2081F3 008830 BADDSK JSR DSKRDE ;* 6309 A54B 008835 LDA $4B ;* 630B F0E0 008840 BEQ DOBOOT ;* 630D 60 008845 RTS ;* 630E A203 008850 ALLSEC LDX #3 ;* 6310 BD0004 008855 RDBYTE1 LDA $0400,X ;* 6313 9D4002 008860 STA $0240,X ;* 6316 CA 008865 DEX ;* 6317 10F7 008870 BPL RDBYTE ;* 6319 AD4202 008875 LDA $0242 ;* 631C 8504 008880 STA $04 ;* 631E AD4302 008885 LDA $0243 ;* 6321 8505 008890 STA $05 ;* 6323 AD0404 008895 LDA $0404 ;* 6326 850C 008900 STA $00 ;* 6328 AD0504 008905 LDA $0405 ;* 632B 850D 008910 STA $0D ;* 632D A07F 008915 MVBUFF LDY #$7F ;* 632F B90004 008920 MVNXB LDA $0400,Y ;* 6332 9104 008925 STA ($04),Y ;* 6334 88 008930 DEY ;* 6335 10F8 008935 BPL MVNXB ;* 6337 18 008940 CLC ;* 6338 A504 008945 LDA $04 ;* 633A 6980 008950 ADC #$80 ;* 2016-11-16 11:06 omnimon-xl.src Page 35 633C 8504 008955 STA $04 ;* 633E A505 008960 LDA $05 ;* 6340 6900 008965 ADC #0 ;* 6342 8505 008970 STA $05 ;* 6344 CE4102 008975 DEC $0241 ;* 6347 F011 008980 BEQ ENBOOT ;* 6349 EE0A03 003985 INC $030A ;* 634C 20C0FC 008990 SECTX JSR 6ETSEC ;* 634F 10DC 000995 BPL MVBUFF ;* 6351 2081F3 009000 JSR DSKRDE ;* 6354 A54B 009005 LDA $4B ;* 6356 D0AE 009010 BNE BADDSK ;* 6358 F0F2 009015 BEQ SECTX ;* 635A A54B 009020 ENBOOT LDA $4B ;* 635C F003 009025 BEQ XBOOT ;* 635E 20C0FC 009030 JSR 6ETSEC ;* 6361 206CF3 009035 XB00T JSR BLOAD ;* 6364 B0A0 009040 BCS BADDSK ;* 6366 207EF3 009045 JSR DINI ;* 6369 E609 009050 INC $09 ;* 636B 60 009055 RTS ;* 636C 18 009060 BLOAD CLC ;* 636D AD4202 009065 LDA $0242 ;* 6370 6906 009070 ADC #6 ;* 6372 8504 009075 STA $04 ;* 6374 AD4302 009080 LDA $0243 ;* 6377 6900 009085 ADC #0 ;* 6379 8505 009090 STA $05 ;* 637B 6C0400 009095 JMP ($04) ;* 637E 6C0C00 009100 DINI JMP ($0C) ;* 6381 A20D 009105 DSKRDE LDX #DERRL ;* 6383 A0F1 009110 LDY #DERRL ;* 6385 8A 009115 PUTLIN TXA ;* 6386 A200 009120 LDX #0 ;* 6388 9D4403 009125 STA $0344,X ;* 638B 98 009130 TYA ;* 638C 9D4503 009135 STA $0345,X ;* 638F A909 009140 LDA #9 ;* 6391 9D4203 009145 STA $0342,X ;* 6394 A9FF 009150 LDA #$FF ;* 6396 9D4803 009155 STA $0348,X ;* 6399 4C56E4 009160 JMP $E456 ;* 639C EA 009165 NOP ;* 639D EA 009170 NOP ;* 639E A508 009175 CSBOOT LDA $08 ;* 63A0 F00A 009180 BEQ CSBOT2 ;* 63A2 A509 009185 LDA $09 ;* 63A4 290A 009190 AND #2 ;* 63A6 F003 009195 BEQ NOCSB2 ;* 63A8 20CDF3 009200 JSR CINI ;* 63AB 60 009205 N0CSB2 RTS ;* 63AC A54A 009210 CSB0T2 LDA $4A ;* 63AE F01C 009215 BEQ NOCSBT ;* 63B0 A980 009220 LDA #$80 ;* 63B2 853E 009225 STA $3E ;* 63B4 E64B 009230 INC $4B ;* 2016-11-16 11:06 omnimon-xl.src Page 36 63B6 207DE4 009235 JSR $E47D ;* 63B9 2001F3 009240 JSR SECT1 ;* 63BC A900 009245 LDA #0 ;* 63BE 854B 009250 STA $4B ;* 63C0 854A 009255 STA $4A ;* 63C2 0609 009260 ASL $09 ;* 63C4 A50C 009265 LDA $0C ;* 63C6 8502 009270 STA $02 ;* 63C8 A500 009275 LDA $0D ;* 63CA 8503 009280 STA $03 ;* 63CC 60 009285 NOCSBT RTS ;* 63CD 6C0200 009290 CINI JMP ($02) ;* 63D0 A9FF 009295 PWRONA LDA #$FF ;* 63D2 8DFC02 009300 STA $02FC ;* 63D5 ADE602 009305 LDA $02E6 ;* 63D8 29F0 009310 AND #$F0 ;* 63DA 856A 009315 STA $6A ;* 63DC A940 009320 LDA #$40 ;* 63DE 80BE02 009325 STA $02BE ;* 63E1 60 009330 RTS ;* 63E2 A205 009335 DOPEN0 LDX #5 ;* 63E4 B0C8FE 009340 DOPEN8 LDA COLRTB-1,X ;* 63E7 9DC302 009345 STA $02C3,X ;* 63EA CA 009350 DEX ;* 63EB D0F7 009355 BNE D0PEN8 ;* 63ED 8664 009360 STX $64 ;* 63EF A46A 009365 LDY $6A ;* 63F1 88 009370 DEY ;* 63F2 8C9502 009375 STY $0295 ;* 63F5 60 009380 RTS ;* 63F6 A52B 009385 DOPEN LDA $2B ;* OLD DOPEN 63F8 290F 009390 AND #$0F ;* 63FA D008 009395 BNE OPNCOM ;* 63FC A52A 009400 EOPEN LDA $2A ;* 63FE 290F 009405 AND #$0F ;* 6400 852A 009410 STA $2A ;* 6402 A900 009415 LDA #0 ;* 6404 8557 009420 OPNCOM STA $57 ;* 6406 20E2F3 009425 JSR DOPEN0 ;* 6409 8E9302 009430 STX $0293 ;* 640C 867B 009435 STX $7B ;* 640E 8EF002 009440 STX $02F0 ;* 6411 A9E0 009445 LDA #$E0 ;* 6413 80F402 009450 STA $02F4 ;* 6416 A902 009455 LDA #2 ;* 6418 80F302 009460 STA $02F3 ;* 641B 802F02 009465 STA $022F ;* 641E A901 009470 LDA #1 ;* 6420 854C 009475 STA $4C ;* 6422 A00E 009480 LDY #14 ;* 6424 99A302 009485 CLRTBS STA $02A3, Y ;* 6427 88 009490 DEY ;* 6428 10FA 009495 BPL CLRTBS ;* 642A A9C0 009500 LDA #$C0 ;* 642C 0510 009505 ORA $10 ;* 642E 8510 009510 STA $10 ;* 2016-11-16 11:06 omnimon-xl.src Page 37 6430 8D0ED2 009515 STA $D20E ;* 6433 A960 009520 LDA #$60 ;* 6435 809402 009525 STA $0294 ;* 6438 A657 009530 LDX $57 ;* 643A BD55FE 009535 LDA ANCONV,X ;* 643D D004 009540 BNE DOPENA ;* 643F A991 009545 OFNERR LDA #$91 ;* 6441 854C 009550 STA $4C ;* 6443 8551 009555 DOPENA STA $51 ;* 6445 A56A 009560 LDA $6A ;* 6447 8565 009565 STA $65 ;* 6449 BC25FE 009570 LDY ALOCAT,X ;* 644C A928 009575 D0PEN1 LDA #40 ;* 644E 2021F9 009530 JSR DBSUB ;* 6451 88 009585 DEY ;* 6452 D0F8 009590 BNE DOPEN1 ;* 6454 AD6F02 009595 LDA $026F ;* 6457 293F 009600 AND #$3F ;* 6459 3567 009605 STA $67 ;* 645B A8 009610 TAY ;* 645C E008 009615 CPX #8 ;* 645E 901F 009620 BCC NOT8 ;* 6460 E00F 009625 CPX #15 ;* 6462 F00D 009630 BEQ MODE15 ;* 6464 E00C 009635 CPX #12 ;* 6466 B017 009640 BCS NOT8 ;* 6468 8A 009645 TXA ;* 6469 6A 009650 ROR A ;* 646A 6A 009655 ROR A ;* 646B 6A 009660 ROR A ;* 646C 29C0 009665 AND #$C0 ;* 646E 0567 009670 ORA $67 ;* 6470 A8 009675 TAY ;* 6471 A910 009680 MODE15 lDA #16 ;* 6473 2021F9 009685 JSR DBSUB ;* 6476 E00B 009690 CPX #11 ;* 6478 D005 009695 BNE NOT8 ;* 647A A906 009700 LDA #6 ;* 647C 8DC802 009705 STA $02C8 ;* 647F 8C6F02 009710 NOT8 STY $026F ;* 6482 A564 009715 LDA $64 ;* 6484 8558 009720 STA $58 ;* 6486 A565 009725 LDA $65 ;* 6488 8559 009730 STA $59 ;* 648A AD0BD4 009735 VBWAIT LDA $D40B ;* 648D C97A 009740 CMP #$7A ;* 648F D0F9 009745 BNE VBWAIT ;* 6491 201FF9 009750 JSR DBDEC ;* 6494 BD65FE 009755 LDA PAGETB,X ;* 6497 F006 009760 BEQ NOMOD ;* 6499 A9FF 009765 LDA #$FF ;* 649B 8564 009770 STA $64 ;* 649D C665 009775 DEC $65 ;* 649F A564 009780 NOMOD LDA $64 ;* 64A1 8568 009785 STA $68 ;* 64A3 A565 009790 LDA $65 ;* 2016-11-16 11:06 omnimon-xl.src Page 38 64A5 8569 009795 STA $69 ;* 64A7 2013F9 009800 JSR DBDDEC ;* 64AA A941 009805 LDA #$41 ;* 64AC 2017F9 009310 JSR STORE ;* 64AF 8666 009815 STX $66 ;* 64B1 A918 009820 LDA #24 ;* 64B3 8DBF02 009825 STA $02BF ;* 64B6 A557 009830 LDA $57 ;* 64B8 C90C 009835 CMP #12 ;* 64BA B004 009840 BCS MODE12 ;* 64BC C909 009845 CMP #9 ;* 64BE B02D 009850 BCS NOTMXD ;* 64C0 A52A 009855 MODE12 LDA $2A ;* 64C2 2910 009860 AND #$10 ;* 64C4 F027 009865 BEQ NOTMXD ;* 64C6 A904 009870 LDA #4 ;* 64C8 8DBF02 009875 STA $02BF ;* 64CB A202 009880 LDX #2 ;* 64CD A902 009885 DOPEN2 LDA #2 ;* 64CF 2017F9 009890 JSR STORE ;* 64D2 CA 009895 DEX ;* 64D3 10F8 009900 BPL DOPEN2 ;* 64D5 A46A 009905 LDY $6A ;* 64D7 88 009910 DEY ;* 64D8 98 009915 TYA ;* 64D9 2017F9 009920 JSR STORE ;* 64DC A960 008825 LDA #$60 ;* 64DE 2017F9 009930 JSR STORE ;* 64E1 A942 009935 LDA #$42 ;* 64E3 2017F9 009940 JSR STORE ;* 64E6 18 009945 CLC ;* 64E7 A910 009950 LDA #MXDMDE-NUMDLE ;* 64E9 6566 009955 ADC $66 ;* 64EB 8566 009960 STA $66 ;* 64ED A466 009965 NOTMXD LDY $66 ;* 64EF BE35FE 009970 LDX NUMDLE,Y ;* 64F2 A551 009975 D0PEN3 LDA $51 ;* 64F4 2007F9 009980 JSR STORE ;* 64F7 CA 009985 DEX ;* 64F8 D0F8 009990 BNE DOPEN3 ;* 64FA A557 009995 LDA $57 ;* 64FC C908 010000 CMP #8 ;* 64FE 9026 010005 BCC D0PEN5 ;* 6500 C90F 010010 CMP #15 ;* 6502 F004 010015 BEQ MDE15 ;* 6504 C90C 010020 CMP #12 ;* 6506 B01E 010025 BCS DOPEN5 ;* 6508 A25D 010030 MDE15 LDX #93 ;* 650A A56A 010035 LDA $6A ;* 650C 38 010040 SEC ;* 650D E910 010045 SBC #$10 ;* 650F 2017F9 010050 JSR STORE ;* 6512 A900 010055 LDA #0 ;* 6514 2017F9 010060 JSR STORE ;* 6517 A551 010065 LDA $51 ;* 6519 0940 010070 ORA #$40 ;* 2016-11-16 11:06 omnimon-xl.src Page 39 651B 2017F9 010075 JSR STORE ;* 651E A551 010080 DOPEN4 LDA $51 ;* 6520 2017F9 010085 JSR STORE ;* 6523 CA 010090 DEX ;* 6524 D0F8 010095 BNE DQPEN4 ;* 6526 A559 010100 DOPEN5 LDA $59 ;* 6528 2017F9 010105 JSR STORE ;* 652B A558 010110 LDA $58 ;* 652D 2017F9 010115 JSR STORE ;* 6530 A551 010120 LDA $51 ;* 6532 0940 010125 ORA #$40 ;* 6534 A203 010130 LDX #3 ;* 6536 2017F9 010135 DOPEN JSR STORE ;* 6539 A970 010140 LDA #$70 ;* 653B CA 010145 DEX ;* 653C D0F8 010150 BNE D0PEN6 ;* 653E A564 010155 LDA $64 ;* 6540 8D3002 010160 STA $0230 ;* 6543 A565 010165 LDA $65 ;* 6545 8D3102 010170 STA $0231 ;* 6548 A970 010175 LDA #$70 ;* 654A 2017F9 010180 JSR STORE ;* 654D A564 010135 LDA $64 ;* 654F 8DE502 010190 STA $02E5 ;* 6552 A565 010195 LDA $65 ;* 6554 8DE602 010200 STA $02E6 ;* 6557 A568 010205 LDA $68 ;* 6559 8564 010210 STA $64 ;* 655B A569 010215 LDA $69 ;* 655D 8565 010220 STA $65 ;* 655F AD3102 010225 LDA $0231 ;* 6562 2017F9 010230 JSR STORE ;* 6565 A03002 010235 LDA $0230 ;* 6568 2017F9 010240 JSR STORE ;* 656B A54C 010245 LDA $4C ;* 656D 1007 010250 BPL D0PEN9 ;* 656F 48 010255 PHA ;* 6570 20FCF3 010260 JSR EOPEN ;* 6573 68 010265 PLA ;* 6574 A8 010270 TAY ;* 6575 60 010275 RTS ;* 6576 A52A 010280 DOPEN9 LDA $2A ;* 6578 2920 010285 AND #$20 ;* 657A D00B 010290 BNE D0PEN7 ;* 657C 20B9F7 010295 JSR CLRSCR ;* 657F 8D9002 010300 STA $0290 ;* 6582 A552 010305 LDA $52 ;* 6584 8D9102 010310 STA $0291 ;* 6587 A922 010315 DOPEN7 LDA #$22 ;* 6589 0D2F02 010320 ORA $022F ;* 658C 8D2F02 010325 STA $022F ;* 658F 4C21F6 010330 JMP RETUR2 ;* 6592 EA 010335 NOP ;* 6593 2096FA 010340 GETCH JSR RANGE ;* 6596 20A2F5 010345 JSR GETPLT ;* 6599 2032FB 010350 JSR INATAC ;* 2016-11-16 11:06 omnimon-xl.src Page 40 659C 20D4F9 010355 JSR INCRSB ;* 659F 4C34F6 010360 JMP RETUR1 ;* 65A2 2047F9 010365 GETPLT JSR CONVRT ;* 65A5 B164 010370 LDA ($64),Y ;* 65A7 2DA002 010375 AND $02AO ;* 65AA 466F 010380 SHIFTD LSR $6F ;* 65AC B003 010385 BCS SHIFT1 ;* 65AE 4A 010390 LSR A ;* 65AF 10F9 010395 BPL SHIFTD ;* 65B1 8DFA02 010400 SHIFT1 STA $02FA ;* 65B4 C900 010405 CMP #0 ;* 65B6 60 010410 RTS ;* 65B7 8DFB02 010415 OUTCH STA $02FB ;* 65BA 2096FA 010420 JSR RANGE ;* 65BD ADFB02 010425 OUTCHA LDA $O2FB ;* 65C0 C97D 010430 CMP #$7D ;* 65C2 0006 010435 BNE OUTCHE ;* 65C4 20B9F7 010440 JSR CLRSCR ;* 65C7 4C21F6 010445 JMP RETUR2 ;* 65CA ADFB02 010450 OUTCHE LDA $02FB ;* 65CD C99B 010455 CMP #$9B ;* 65CF D006 010460 BNE OUTCHB ;* 65D1 2030FA 010465 JSR DOCRWS ;* Do CR WARMSTART 65D4 4C21F6 010470 JMP RETUR2 ;* ;* ;* ;* 65D7 20E0F5 010475 OUTCHB JSR OUTPUT ;* 65DA 20D8F9 010480 JSR INCRSR ;* 65DD 4C21F6 010485 JMP RETUR2 ;* ;* ;* ;* 65E0 ADFF02 010490 OUTPUT LDA $02FF ;* SSFLAG (Start/Stop Flag) 65E3 D0FB 010495 BNE OUTPUT ;* tight loop ! 65E5 A202 010500 LDX #2 ;* 65E7 B554 010505 CRLOOP LDA $54,X ;* 65E9 955A 010510 STA $5A,X ;* 65EB CA 010515 DEX ;* 65EC 10F9 010520 BPL CRLOOP ;* 65EE ADFB02 010525 LDA $02FB ;* 65F1 A8 010530 TAY ;* 65F2 2A 010535 ROL A ;* 65F3 2A 010540 ROL A ;* 65F4 2A 010545 ROL A ;* 65F5 2A 010550 ROL A ;* 65F6 2903 010555 AND #3 ;* 65F8 AA 010560 TAX ;* 65F9 98 010565 TYA ;* 65FA 299F 010570 AND #$9F ;* 65FC 1DF0FF 010575 ORA ATAINT,X ;* 65FF 8DFA02 010580 0UTCH2 STA $02FA ;* 6602 2047F9 010585 JSR CONVRT ;* 6605 ADFA02 010590 LDA $02FA ;* 6608 466F 010595 SHIFTU LSR $6F ;* 660A B004 010600 BCS SHIFT2 ;* 2016-11-16 11:06 omnimon-xl.src Page 41 660C 0A 010605 ASL A ;* 660D 4C00F6 010610 JMP SHIFTU ;* 6610 2DA002 010615 SHIFT2 AND $02AO ;* 6613 8550 010620 STA $50 ;* 6615 ADA002 010625 LDA $02AO ;* 6618 49FF 010630 EOR #$FF ;* 661A 3164 010635 AND ($64),Y ;* 661C 0550 010640 ORA $50 ;* 661E 9164 010645 STA ($64),Y ;* 6620 60 010650 RTS ;* 6621 20A2F5 010655 RETUR2 JSR GETPUT ;* 6624 855D 010660 STA $5D ;* 6626 A657 010665 LDX $57 ;* 6628 D00A 010670 BNE RETUR1 ;* 662A AEF002 010675 LDX $02F0 ;* 662D D005 010680 BNE RETUR1 ;* 662F 4980 010685 EOR #$80 ;* 6631 20FFF5 010690 JSR OUTCH2 ;* 6634 A44C 010695 RETUR1 LDY $4C ;* 6636 A901 010700 LDA #1 ;* 6638 854C 010705 STA $4C ;* 663A ADFB02 010710 LDA $02FB ;* 663D 60 010715 NOFUNC RTS ;* 663E 209BFC 010720 EGETCH JSR SWAP ;* 6641 2088FA 010725 JSR ERANGE ;* 6644 A56B 010730 LDA $6B ;* 6646 D034 010735 BNE EGETC3 ;* 6648 A554 010740 LDA $54 ;* 664A 856C 010745 STA $6C ;* 664C A555 010750 LDA $55 ;* 664E 856D 010755 STA $6D ;* 6650 20E2F6 010760 E6ETC1 JSR KGETCH ;* 6653 844C 010765 STY $4C ;* 6655 ADFB02 010770 LDA $02FB ;* 6658 C99B 010775 CMP #$9B ;* CR? 665A F012 010780 BEQ EGETC2 ;* 665C 20ADF6 010785 JSR DOSS ;* 665F 209BFC 010790 JSR SWAP ;* 6662 A563 010795 LDA$63 ;* 6664 C971 010800 CMP #113 ;* 6666 D003 010805 BNE EGETC6 ;* 6668 200AF9 010810 JSR BELL ;* 666B 4C50F6 010815 EGETC6 JMP E6ETC1 ;* 666E 20E4FA 010820 EGETC2 JSR OFFCRS ;* 6671 20F8FB 010825 JSR DOBUFC ;* 6674 A56C 010830 LDA $6C ;* 6676 8554 010835 STA $54 ;* 6678 A56D 010340 LDA $6D ;* 667A 8555 010845 STA $55 ;* 667C A56B 010850 EGETC3 LDA $6B ;* 667E F011 010855 BEQ EGETC5 ;* 6680 C66B 010860 EGETC7 DEC $6B ;* 6682 F00D 010865 BEQ EGETC5 ;* 6684 A54C 010870 LDA $4C ;* 6686 30F8 010875 BMI EGETC7 ;* 6688 2093F5 010880 JSR GETCH ;* 2016-11-16 11:06 omnimon-xl.src Page 42 668B 8DFB02 010885 STA $02FB ;* 668E 4C9BFC 010890 JMP SWAP ;* 6691 2030FA 010895 EGETCS JSR DOCRWS ;* 6694 A99B 010900 LDA #$9B ;* 6696 8DFB02 010905 STA $02FB ;* 6699 2021F6 010910 JSR RETUR2 ;* 669C 844C 010915 STY $4C ;* 669E 4C9BFC 010920 JMP SWAP ;* 66A1 6C6400 010925 JSRIND JMP ($64) ;* 66A4 8DFB02 010930 EOUTCH STA $02FB ;* 66A7 209BFC 010935 JSR SWAP ;* 66AA 2088FA 010940 JSR ERANGE ;* 66AD 20E4FA 010945 DOSS JSR OFFCRS ;* 66B0 2015E9 010950 JSR TSTCTL ;* 66B3 F009 010955 BEQ EOUTC5 ;* 66B5 0EA202 010960 E0UTC6 ASL $02A2 ;* 66B8 20CAF5 010965 JSR OUTCHE ;* 66BB 4C9BFC 010970 ERETN JMP SWAP ;* 66BE ADFE02 010975 E0UTC5 LDA $02FE ;* 66C1 0DA202 010980 ORA $02A2 ;* 66C4 D0EF 010985 BNEE EOUTC6 ;* 66C6 0EA202 010990 ASL $02A2 ;* 66C9 E8 010995 INX ;* 66CA BDCEFE 011000 LDA CNTRLS, X ;* 66CD 8564 011005 STA $64 ;* 66CF BDCEFE 011010 LDA CNTRLS+1,X ;* 66D2 8665 011015 STA $65 ;* 66D4 20A1F6 011020 JSR JSRIND ;* 66D7 2021F6 011025 JSR RETUR2 ;* 66DA 4C9BFC 011030 JMP SWAP ;* 66DD A9FF 011035 KGETC2 LDA #$FF ;* 66DF 8DFC02 011040 STA $02FC ;* 66E2 A52A 011045 KGETCH LDA $2A ;* 66E4 4A 011050 LSR A ;* 66E5 B062 011055 BCS GETOUT ;* 66E7 A980 011060 LDA #$80 ;* 66E9 A611 011065 LDX $11 ;* 66EB F058 011070 BEQ K7 ;* 66ED ADFC02 011075 LDA $02FC ;* 66F0 C9FF 011080 CMP #$FF ;* 66F2 F0EE 011085 BEQ KGETCH ;* 66F4 857C 011090 STA $7C ;* 66F6 A2FF 011095 LDX #$FF ;* 66F8 8EFC02 011100 STX $02FC ;* 66FB 20F2F0 011105 JSR CLICK ;* 66FE AA 011110 K6ETC3 TAX ;* 66FF E0C0 011115 CPX #$C0 ;* 6701 9002 011120 BCC ASCC01 ;* 6703 A203 011125 LDX #3 ;* 6705 BDFEFE 011130 ASCC01 LDA ATASCI,X ;* 6708 8DFB02 011135 STA $02FB ;* 670B C980 011140 CMP #$80 ;* 670D F0CE 011145 BEQ KGETC2 ;* 670F C981 011150 CMP #$81 ;* 6711 D00B 011155 BNE KGETC1 ;* 6713 ADB602 011160 LDA $02B6 ;* 2016-11-16 11:06 omnimon-xl.src Page 43 6716 4980 011165 EOR #$80 ;* 6718 8DB602 011170 STA $02B6 ;* 671B 4CDDF6 011175 JMP KGETC2 ;* 671E C982 011180 K6ETC1 CMP #$82 ;* 6720 D007 011185 BNE K1 ;* 6722 A900 011190 LDA #0 ;* 6724 8DBE02 011195 STA $02BE ;* 6727 F0B4 011200 BEQ KGETC2 ;* 6729 C983 011205 K1 CMP #$83 ;* 672B D007 011210 BNE K2 ;* 672D A940 011215 LDA #$40 ;* 672F 8DBE02 011220 STA $02BE ;* 6732 D0A9 011225 BNE KGETC2 ;* 6734 0984 011230 K2 CMP #$84 ;* 6736 D007 011235 BNE K3 ;* 6738 A980 011240 LDA #$80 ;* 673A 8DBE02 011245 STA $02BE ;* 673D D09E 011250 BNE KGETC2 ;* 673F C985 011255 K3 CMP #$85 ;* 6741 D00A 011260 BNE K6 ;* 6743 A988 011265 LDA #$88 ;* 6745 8540 011270 K7 STA $4C ;* 6747 8511 011275 STA $11 ;* 6749 A99B 011280 GETOUT LDA #$9B ;* 674B D026 011285 BNE K8 ;* 674D A57C 011290 K6 LDA $7C ;* 674F 0940 011295 CMP #$40 ;* 6751 B015 011300 BCS K5 ;* 6753 ABFB02 011305 LDA $02FB ;* 6756 0961 011310 CMP #$61 ;* 6758 900E 011315 BCC K5 ;* 675A 097B 011320 CMP #$7B ;* 675C B00A 011325 BCS K5 ;* 675E ADBE02 011330 LDA $02BE ;* 6761 F005 011335 BEG K5 ;* 6763 057C 011340 ORA $7C ;* 6765 4CFEF6 011345 JMP KGETC3 ;* 6768 2015E9 011350 K5 JSR TSTCTL ;* 676B F009 011355 BEQ K4 ;* 676D A0FB02 011360 LDA $02FB ;* 6770 4DB602 011365 EOR $02B6 ;* 6773 8DFB02 011370 K8 STA $02FB ;* 6776 4C34F6 011375 K4 JMP RETUR1 ;* 6779 A980 011380 ESCAPE LDA #$30 ;* 677B 80A202 011385 STA $02A2 ;* 677E 60 011390 RTS ;* ; 677F C654 011395 CRSRUP DEC $54 ;* 6781 1006 011400 BPL COMRET ;* 6783 AEBF02 011405 LDX $02BF ;* 6786 CA 011410 DEX ;* 6787 8654 011415 UPDNCM STX $54 ;* 6789 4C54FC 011420 COMRET JMP STRBEG ;* 678C E654 011425 CRSRDN INC $54 ;* 678E A554 011430 LDA $54 ;* 6790 CDBF02 011435 CMP $02BF ;* 2016-11-16 11:06 omnimon-xl.src Page 44 6793 90F4 011440 BCC COMRET ;* 6795 A200 011445 LDX #0 ;* 6797 F0EE 011450 BEQ UPDNCM ;* 6799 C655 011455 CRSRLF DEC $55 ;* 679B A666 011460 LDA $55 ;* 679D 3004 011465 BMI CRSRL1 ;* 679F C552 011470 CMP $52 ;* 67A1 B004 011475 BCS CQMRE1 ;* 67A3 A553 011480 CRSRL1 LDA $53 ;* 67A5 8555 011485 LFRTCM STA $55 ;* 67A7 4CD5FB 011490 COMRE1 JMP DOLCOL ;* 67AA E655 011495 CRSRRT INC $55 ;* 67AC A555 011500 LDA $55 ;* 67AE C553 011505 CMP $53 ;* 67B0 90F5 011510 BCC COMRE1 ;* 67B2 F0F3 011515 BEQ COMRE1 ;* 67B4 A552 011520 LDA $52 ;* 67B6 4CA5F7 011525 JMP LFRTCM ;* 67B9 20D4FC 011530 CLRSCR JSR PUTMSC ;* 67BC A000 011535 LDY #0 ;* 67BE 98 011540 TYA ;* 67BF 9164 011545 CLRSC2 STA ($64),Y ;* 67C1 C8 011550 INY ;* 67C2 D0FB 011555 BNE CLRSC2 ;* 67C4 E665 011560 INC $65 ;* 67C6 A665 011565 LDX $65 ;* 67C8 E46A 011570 CPX $6A ;* 67CA 90F3 011575 BCC CLRSC2 ;* 67CC A9FF 011580 LDA #$FF ;* 67CE 99B202 011585 CLRSC3 STA $0282,Y ;* 67D1 C8 011590 INY ;* 67D2 C004 011595 CPY #4 ;* 67D4 90F8 011600 BCC CLRSC3 ;* 67D6 20FEF0 011605 HOME JSR COLOR ;* 67D9 8563 011610 STA $63 ;* 67DB 856D 011615 STA $6D ;* 67DD A900 011620 LDA #0 ;* 67DF 8554 011625 STA $54 ;* 67E1 8556 011630 STA $56 ;* 67E3 856C 011635 STA $6C ;* 67E5 60 011640 RTS ;* 67E6 A563 011645 BS LDA $63 ;* 67E8 C552 011650 CMP $52 ;* 67EA F021 011655 BEQ BS1 ;* 67EC A555 011660 BSA LDA $55 ;* 67EE C552 011665 CMP $52 ;* 67F0 D003 011670 BNE BS3 ;* 67F2 206BFC 011675 JSR DELTIM ;* 67F5 2099F7 011680 BS3 JSR CRSRLF ;* 67F8 A555 011685 LDA $55 ;* 67FA C553 011690 CMP $53 ;* 67FC D007 011695 BNE BS2 ;* 67FE A554 011700 LDA $54 ;* 6800 F003 011705 BEQ BS2 ;* 6802 207FF7 011710 JSR CRSRUP ;* 6805 A920 011715 BS2 LDA #$20 ;* 2016-11-16 11:06 omnimon-xl.src Page 45 6807 8DFB02 011720 STA $02FB ;* 680A 20E0F5 011725 JSR OUTPLT ;* 680D 4CD5FB 011730 BS1 JMP DOLCOL ;* 6810 20AAF7 011735 TAB JSR CRSRRT ;* 6813 A555 011740 LDA $55 ;* 6815 C552 011745 CMP $52 ;* 6817 D00A 011750 BNE TAB1 ;* 6819 2034FA 011755 JSR DOCR ;* 681C 2020FB 011760 JSR LOGGET ;* 681F 9002 011765 BCC TAB1 ;* 6821 B007 011770 BCS TAB2 ;* 6823 A563 011775 TAB1 LDA $63 ;* 6825 2025FB 011780 JSR BITGET ;* 6828 90E6 011785 BCC TAB ;* 682A 4CD5FB 011790 TAB2 JMP DOLCOL ;* 682D A563 011795 SETTAB LDA $63 ;* 682F 4C06FB 011800 JMP BITSET ;* 6832 A563 011805 CLRTAB LDA $63 ;* 6834 4C12FB 011810 JMP BITCLR ;* 6837 2085FC 011815 INSCHR JSR PHACR8 ;* 683A 20A2F5 011820 JSR GETPLT ;* 683D 857D 011825 STA $7D ;* 683F A900 011830 LDA #0 ;* 6841 8DBB02 011835 STA $02BB ;* 6844 20FFF5 011840 INSCH4 JSR DUTCH 2 ;* 6847 A563 011845 LDA $63 ;* 6849 48 011850 PHA ;* 684A 20DCF9 011855 JSR INCRSA ;* 684D 68 011860 PLA ;* 684E C563 011865 CMP $63 ;* 6850 B00C 011870 BCS INSCH3 ;* 6852 A57D 011875 INSCH1 LDA $7D ;* 6854 48 011880 PHA ;* 6855 20A2F5 011885 JSR GETPLT ;* 6858 857D 011890 STA $7D ;* 685A 68 011895 PLA ;* 685B 4C44F8 011900 JMP INSCH4 ;* 685E 2090FC 011905 INSCH3 JSR PLACRS ;* 6861 CEBB02 011910 INSCH6 DEC $02BB ;* 6864 3004 011915 BMI INSCH5 ;* 6866 C654 011920 DEC $54 ;* 6868 D0F7 011925 BNE INSCH6 ;* 686A 4CD5FB 011930 INSCH5 JMP DOLCOL ;* 686D 2035FC 011935 DELCHR JSR PHACRS ;* 6870 2047F9 011940 DELCH1 JSR CONVRT ;* 6873 A564 011945 LDA $64 ;* 6875 8568 011950 STA $68 ;* 6877 A565 011955 LDA $65 ;* 6879 8569 011960 STA $69 ;* 687B A563 011965 LDA $63 ;* 687D 48 011970 PHA ;* 687E 20D4F9 011975 JSR INCRSB ;* 6881 68 011980 PLA ;* 6882 C563 011985 CMP $63 ;* 6884 B010 011990 BCS DELCH2 ;* 6886 A554 011995 LDA $54 ;* 2016-11-16 11:06 omnimon-xl.src Page 46 6888 CDBF02 012000 CMP $02BF ;* 688B B009 012005 BCS DELCH2 ;* 688D 20A2F5 012010 JSR GETPLT ;* 6890 A000 012015 LDY #0 ;* 6892 9168 012020 STA ($68),Y ;* 6894 F0DA 012025 BEQ DELCH1 ;* 6896 A000 012030 DELCH2 LDY #0 ;* 6898 98 012035 TYA ;* 6899 9168 012040 STA ($68),Y ;* 689B 2060FC 012045 JSR DELTIA ;* 689E 2090FC 012050 JSR PLACR6 ;* 68A1 4CD5FB 012055 JMP DOLCOL ;* 68A4 38 012060 INSLIN SEC ;* 68A5 207BFB 012065 INSLIA JSR EXTEND ;* 68A8 A552 012070 LDA $52 ;* 68AA 8555 012075 STA $55 ;* 68AC 2047F9 012080 JSR CONVRT ;* 68AF A564 012085 LDA $64 ;* 68B1 8568 012090 STA $68 ;* 68B3 18 012095 CLC ;* 68B4 6928 012100 ADC #40 ;* 68B6 8566 012105 STA $66 ;* 68B8 A565 012110 LDA $65 ;* 68BA 8569 012115 STA $69 ;* 68BC 6900 012120 ADC #0 ;* 68BE 8567 012125 STA $67 ;* 68C0 A654 012130 LDX $54 ;* 68C2 E017 012135 CPX #23 ;* 68C4 F008 012140 BEQ INSLI2 ;* 68C6 204EFB 012145 INSLI1 JSR MOVLIN ;* 68C9 E8 012150 INX ;* 68CA E017 012155 CPX #23 ;* 68CC D0F8 012160 BNE INSLI1 ;* 68CE 209BFB 012165 INSLI2 JSR CLRLIN ;* 68D1 4CD5FB 012170 JMP DOLC0L ;* 68D4 20D5FB 012175 DELLIN JSR DOLCOL ;* 68D7 A451 012180 DELLIA LDY $51 ;* 68D9 8454 012185 STY $54 ;* 68DB A454 012190 DELLIB LDY $54 ;* 68DD 98 012195 DELLI1 TYA ;* 68DE 38 012200 SEC ;* 68DF 2023FB 012205 JSR LO2GET ;* 68E2 08 012210 PHP ;* 68E3 98 012215 TYA ;* 68E4 18 012220 CLC ;* 68E5 6978 012225 ADC #120 ;* 68E7 28 012230 PLP ;* 68E8 2004FB 012235 JSR BITPUT ;* 68EB C8 012240 INY ;* 68EC C018 012245 CPY #24 ;* 68EE D0ED 012250 BNE DELLI1 ;* 68F0 ADB402 012255 LDA $02B4 ;* 68F3 0901 012260 ORA #1 ;* 68F5 8DB402 012265 STA $02B4 ;* 68F8 A552 012270 DELLI2 LDA $52 ;* 68FA 8555 012275 STA $55 ;* 2016-11-16 11:06 omnimon-xl.src Page 47 68FC 2047F9 012280 JSR CONVRT ;* 68FF 20B2FB 012285 JSR SCR0L1 ;* 6902 2020FB 012290 JSR LOGGET ;* 6905 90D4 012295 BCC DELLIB ;* 6907 4CD5FB 012300 JMP DOLCOL ;* 690A A020 012305 BELL LDY #$20 ;* 690C 20F2F0 012310 BELL1 JSR CLICK ;* 690F 83 012315 DEY ;* 6910 10FA 012320 BPL BELL1 ;* 6912 60 012325 RTS ;* 6913 A902 012330 DBDDEC LDA #2 ;* 6915 D00A 012335 BNE DBSUB ;* 6917 A44C 012340 STORE LDY $4C ;* 6919 302B 012345 BMI STROK ;* 691B A000 012350 LDY #0 ;* 691D 9164 012355 STORE1 STA ($64),Y ;* 691F A901 012360 DBDEC LDA #1 ;* 6921 3D9E02 012365 DBSUB STA $029E ;* 6924 A54C 012370 LDA $4C ;* 6926 301E 012375 BMI STROK ;* 6928 A564 012380 LDA $64 ;* 692A 38 012385 SEC ;* 692B ED9E02 012390 SBC $029E ;* 692E 8564 012395 STA $64 ;* 6930 B002 012400 BCS DBSUB1 ;* 6932 C665 012405 DEC $65 ;* 6934 A50F 012410 DBSUB1 LDA $0F ;* 6936 C565 012415 CMP $65 ;* 6938 900C 012420 BCC STROK ;* 693A D006 012425 BNE STRERR ;* 693C A50E 012430 LDA $0E ;* 693E C564 012435 CMP $64 ;* 6940 9004 012440 BCC STROK ;* 6942 A993 012445 STRERR LDA #$93 ;* 6944 854C 012450 STA $4C ;* 6946 60 012455 STROK RTS ;* 6947 A554 012460 CONVRT LDA $54 ;* 6949 48 012465 PHA ;* 694A A555 012470 LDA $55 ;* 694C 48 012475 PHA ;* 694D A556 012480 LDA $56 ;* 694F 48 012485 PHA ;* 6950 2004FC 012490 JSR PUTMSC ;* 6953 A554 012495 LDA $54 ;* 6955 8566 012500 STA $66 ;* 6957 A900 012505 LDA #0 ;* 6959 8567 012510 STA $67 ;* 695B A566 012515 LDA $66 ;* 695D 0A 012520 ASL A ;* 695E 2667 012525 R0L $67 ;* 6960 8551 012530 STA $51 ;* 6962 A467 012535 LDY $67 ;* 6964 8C9F02 012540 STY $029F ;* 6967 0A 012545 ASL A ;* 6968 2667 012550 R0L $67 ;* 696A 0A 012555 ASL A ;* 2016-11-16 11:06 omnimon-xl.src Page 48 696B 2667 012560 ROL $67 ;* 696D 18 012565 CLC ;* 696E 6551 012570 ADC $51 ;* 6970 8566 012575 STA $66 ;* 6972 A567 012580 LDA $67 ;* 6974 6D9F02 012585 ADC $029F ;* 6977 8567 012590 STA $67 ;* 6979 A657 012595 LDX $57 ;* 697B BC75FE 012600 LDY DHLINE,X ;* 697E 88 012605 CONVR1 DEY ;* 697F 3007 012610 BMI CONVR2 ;* 6981 0666 012615 ASL $66 ;* 6983 2667 012620 ROL $67 ;* 6985 4C7EF9 012625 JMP CONVR1 ;* 6988 BCA5FE 012630 CONVR2 LDY DIV2TB,X ;* 698B A555 012635 LDA $55 ;* 698D A207 012640 LDX #7 ;* 698F 88 012645 CONVR3 DEY ;* 6990 300A 012650 BMI CONVR4 ;* 6992 CA 012655 DEX ;* 6993 4656 012660 LSR $56 ;* 6995 6A 012665 ROR A ;* 6996 6EA102 012670 ROR $02A1 ;* 6999 4C8FF9 012675 JMP CONVR3 ;* 699C C8 012680 CONVR4 INY ;* 699D 18 012685 CLC ;* 699E 6566 012690 ADC $66 ;* 69A0 8566 012695 STA $66 ;* 69A2 9002 012700 BCC CONVR5 ;* 69A4 E667 012705 INC $67 ;* 69A6 38 012710 CONVR5 SEC ;* 69A7 6EA102 012715 CONVR6 ROR $02A1 ;* 69AA 18 012720 CLC ;* 69AB CA 012725 DEX ;* 69AC 10F9 012730 BPL CONVR6 ;* 69AE AEA102 012735 LDX $02A1 ;* 69B1 A566 012740 LDA $66 ;* 69B3 18 012745 CLC ;* 69B4 6564 012750 ADC $64 ;* 69B6 8564 012755 STA $64 ;* 69B8 855E 012760 STA $5E ;* 69BA A567 012765 LDA $67 ;* 69BC 8565 012770 ADC $65 ;* 69BE 8565 012775 STA $65 ;* 69C0 855F 012780 STA $5F ;* 69C2 BDB5FE 012785 LDA DMASK7,X ;* 69C5 8DA002 012790 STA $02A0 ;* 69C8 856F 012795 STA $6F ;* 69CA 68 012800 PLA ;* 69CB 8556 012805 STA $56 ;* 69CD 68 012810 PLA ;* 69CE 8555 012815 STA $55 ;* 69D0 68 012820 PLA ;* 69D1 8554 012825 STA $54 69D3 ;* 69D3 60 012830 RTS ;* ; 2016-11-16 11:06 omnimon-xl.src Page 49 69D4 A900 012835 INCRSB LDA #0 ;* 69D6 F002 012840 BEQ INCRSC ;* 69D8 A99B 012845 INCRSR LDA #$9B ;* 69DA 857D 012850 INCRSC STA $7D ;* 69DC E663 012855 INCRSA INC $63 ;* 69DE E655 012860 INC $55 ;* 69E0 D002 012865 BNE INCSR2 ;* 69E2 E656 012870 INC $56 ;* 69E4 A555 012875 INCSR2 LDA $55 ;* 69E6 A657 012880 LDX $57 ;* 69E8 D085FE 012385 CMP COLUMN,X ;* 69EB F00B 012890 BEQ INC2A ;* 69ED E000 012895 CPX #0 ;* 69EF D006 012900 BNE INCRS3 ;* 69F1 C553 012905 CMP $53 ;* 69F3 F002 012910 BEQ INCRS3 ;* 69F5 B001 012915 BCS INC2A ;* 69F7 60 012920 INCRS3 RTS ;* ; 69F8 E008 012925 INC2A CPX #8 ;* 69FA 9004 012930 BCC DOCR ;* 69FC A556 012935 LDA $56 ;* 69FE F0F7 012940 BEQ INCRS3 ;* 6A00 A557 012945 DOCR1 LDA $57 ;* 6A02 D030 012950 BNE DOCR ;* 6A04 A563 012955 LDA $63 ;* 6A06 C951 012960 CMP #81 ;* 6A08 900A 012965 BCC DOCR1B ;* 6A0A A57D 012970 LDA $7D ;* 6A0C F026 012975 BEQ DOCR ;* 6A0E 2030FA 012980 JSR DOCRNS ;* Do CR No Start 6A11 4C77FA 012985 JMP INCRS1 ;* 6A14 2034FA 012990 DOCR1B JSR DOCR ;* 6A17 A554 012995 LDA $54 ;* 6A19 18 013000 CLC ;* 6A1A 6978 013005 ADC #120 ;* 6A1C 2025FB 013010 JSR BITGET ;* 6A1F 9008 013015 BCC DOCR1A ;* 6A21 A57D 013020 LDA $7D ;* 6A23 F004 013025 BEQ DOCR1A ;* 6A25 18 013030 CLC ;* 6A26 20A8F8 013035 JSR INSLIA ;* 6A29 4CD5FB 013040 DOCR1A JMP DOLCOL ;* 6A2C A900 013045 NOSCRL LDA #0 ;* 6A2E F002 013050 BEQ N0SCR1 ;* ;* ;* Do CR WARMSTART ;* ;* 6A30 = FA30 6A30 A99B 013055 DOCRWS LDA #$9B ;* 6A32 8570 013060 NQSCR1 STA $7D ;* INSDAT - tmp storage but used by the display for the character under the cursor 6A34 20FEF0 013065 DOCR JSR COLOR ;* 6A37 A900 013070 LDA #0 ;* 6A39 8556 013075 STA $56 ;* 6A3B E654 013080 INC $54 ;* 6A3D A657 013085 DOCR2 LDX $57 ;* 2016-11-16 11:06 omnimon-xl.src Page 50 6A3F A018 013090 LDY #24 ;* 6A41 247B 013095 BIT $7B ;* 6A43 1005 013100 BPL DOCR2A ;* 6A45 A004 013105 LDY #4 ;* 6A47 98 013110 TYA ;* 6A48 D003 013115 BNE DOCR2B ;* 6A4A BD95FE 013120 DOCR2A LDA NOROWS,X ;* 6A4D C554 013125 DOCR2B CMP $54 ;* 6A4F 0026 013130 BNE INCRS1 ;* 6A51 8C9D02 013135 STY $029D ;* 6A54 8A 013140 TXA ;* 6A55 D020 013145 BNE INCRS1 ;* 6A57 A570 013150 LDA $7D ;* 6A59 F01C 013155 BEQ INCRS1 ;* 6A5B C99B 013160 CMP #$9B ;* 6A5D 38 013165 SEC ;* 6A5E F001 013170 BEQ DOCR4B ;* 6A60 18 013175 CLC ;* 6A61 20ACFB 013180 DOCR4B JSR SCROLL ;* 6A64 EEBB02 013185 INC $02BB ;* 6A67 C66C 013190 DEC $6C ;* 6A69 CE9D02 013195 DEC $029D ;* 6A6C ADB202 013200 LDA $02B2 ;* 6A6F 38 013205 SEC ;* 6A70 10EF 013210 BPL DOCR4B ;* 6A72 AD9D02 013215 LDA $029D ;* 6A75 8554 013220 STA $54 ;* 6A77 4CD5FB 013225 INCRS1 JMP DOLCOL ;* 6A7A 38 013230 SUBEND SEC ;* 6A7B 8570 013235 LDA $70,X ;* 6A7D E574 013240 SBC $74 ;* 6A7F 9570 013245 STA $70,X ;* 6A81 B571 013250 LDA $71,X ;* 6A83 E575 013255 SBC $75 ;* 6A85 9571 013260 STA $71, X ;* 6A87 60 013265 RTS ;* ;* ;* ;* 6A88 A0BF02 013270 ERANGE LDA *02BF ;* 6A8B C904 013275 CMP #4 ;* 6A8D F007 013280 BEQ RANGE ;* 6A8F A557 013285 LDA $57 ;* 6A91 F003 013290 BEQ RANGE ;* 6A93 20FCF3 013295 JSR EOPEN ;* 6A96 A927 013300 RANGE LDA #39 ;* 6A98 0553 013305 CMP $53 ;* 6A9A B002 013310 BCC RANGE3 ;* 6A9C 8553 013315 STA $53 ;* 6A9E A657 013320 RANGE3 LDX $57 ;* 6AA0 BD95FE 013325 LDA NOROWS,X ;* 6AA3 C554 013330 CMP $54 ;* 6AA5 902A 013335 BCC RNGERR ;* 6AA7 F028 013340 BEG RNGERR ;* 6AA9 E008 013345 CPX #8 ;* 6AAB D00A 013350 BNE RANGE1 ;* 2016-11-16 11:06 omnimon-xl.src Page 51 6AAD A556 013355 LDA $56 ;* 6AAF F013 013360 BEG RNGOK ;* 6AB1 C901 013365 CMP #1 ;* 6AB3 D01C 013370 BNE RNGERR ;* 6AB5 F004 013375 BEQ RANGE2 ;* 6AB7 A556 013380 RANGE1 LDA $56 ;* 6AB9 D016 013385 BNE RNGERR ;* 6ABB BD85FE 013390 RANGE2 LDA COLUMN,X ;* 6ABE C555 013395 CMP $55 ;* 6AC0 900F 013400 BCC RNGERR ;* 6AC2 F00D 013405 BEG RNGERR ;* 6AC4 A901 013410 RNGOK LDA #1 ;* 6AC6 854C 013415 STA $4C ;* 6AC8 A900 013420 LDA #$80 ;* 6ACA A611 013425 LDX $11 ;* 6ACC 8511 013430 STA $11 ;* 6ACE F006 013435 BEQ RNGER2 ;* 6AD0 60 013440 RTS ;* ; 6AD1 20D6F7 013445 RNGERR JSR HOME ;* 6AD4 A98D 013450 LDA #$8D ;* 6AD6 854C 013455 RNGER2 STA $4C ;* 6AD8 68 013460 RNGER1 PLA ;* 6AD9 68 013465 PLA ;* 6ADA A57B 013470 LDA $78 ;* 6ADC 1003 013475 BPL RETUR3 ;* 6ADE 20A1FC 013480 JSR SWAPA ;* 6AE1 4C34F6 013485 RETUR3 JMP RETUR ;* 6AE4 A000 013490 OFFCRS LDY #0 ;* 6AE6 A55D 013495 LDA $5D ;* 6AE8 915E 013500 STA ($5E),Y ;* 6AEA 60 013505 RTS ;* ; 6AEB 48 013510 BITCON PHA ;* 6AEC 2907 013515 AND #7 ;* 6AEE AA 013520 TAX ;* 6AEF BDBDFE 013525 LDA MASKTB,X ;* 6AF2 856E 013530 STA $6E ;* 6AF4 68 013535 PLA ;* 6AF5 4A 013540 LSR A ;* 6AF6 4A 013545 LSR A ;* 6AF7 4A 013550 LSR A ;* 6AF8 AA 013555 TAX ;* 6AF9 60 013560 RTS ;* ; 6AFA 2EB402 013565 BITROL ROL $0284 ;* 6AFD 2EB302 013570 ROL $0283 ;* 6B00 2EB202 012575 ROL $0282 ;* 6B03 60 013580 RTS ;* ; 6B04 900C 013585 BITPUT BCC BITCLR ;* 6B06 20EBFA 013590 BITSET JSR BITCON ;* 6B09 BDA302 013595 LDA $02A3,X ;* 6B0C 056E 013600 ORA $6E ;* 6B0E 9DA302 013605 STA $02A3,X ;* 6B11 60 013610 RTS ;* 2016-11-16 11:06 omnimon-xl.src Page 52 ; 6B12 20EBFA 013615 BITCLR JSR BITCON ;* 6B15 A56E 013620 LDA $6E ;* 6B17 49FF 013625 EOR #$FF ;* 6B19 3DA302 013630 AND $02A3,X ;* 6B1C 9DA302 013635 STA $02A3,X ;* 6B1F 60 013640 RTS ;* ; 6B20 A554 013645 LOGGET LDA $54 ;* 6B22 18 013650 LO1GET CLC ;* 6B23 6978 013655 LO2GET ADC #120 ;* 6B25 20EBFA 013660 BITGET JSR BITCON ;* 6B28 18 013665 CLC ;* 6B29 BDA302 013670 LDA $02A3,X ;* 6B2C 256E 013675 AND $6E ;* 6B2E F001 013680 BEQ BITGE1 ;* ; 6B30 38 013685 SEC ;* 6B31 60 013690 BITGE1 RTS ;* 6B32 ADFA02 013695 INATAC LDA $02FA ;* 6B35 A457 013700 LDY $57 ;* 6B37 C003 013705 CPY #3 ;* 6B39 B00F 013710 BCS IMATA1 ;* 6B3B 2A 013715 ROL A ;* 6B3C 2A 013720 ROL A ;* 6B3D 2A 013725 ROL A ;* 6B3E 2A 013730 ROL A ;* 6B3F 2903 013735 AND #3 ;* 6B41 AA 013740 TAX ;* 6B42 ADFA02 013745 LDA $02FA ;* 6B45 299F 013750 AND #$9F ;* 6B47 1DF4FF 013755 ORA INTATA,X ;* 6B4A 8DFB02 013760 INATA1 STA $02FB ;* 6B4D 60 013765 RTS ;* ; 6B4E A902 013770 MOVLIN LDA #2 ;* 6B50 8565 013775 STA $65 ;* 6B52 A947 013780 LDA #$47 ;* 6B54 8564 013785 STA $64 ;* 6B56 A027 013790 LDY #39 ;* 6B58 9166 013795 MOVLI1 LDA ($66),Y ;* 6B5A 8550 013800 STA $50 ;* 6B5C B168 013805 LDA ($68),Y ;* 6B5E 9166 013810 STA ($66),Y ;* 6B60 A550 013815 LDA $50 ;* 6B62 9164 013820 STA ($64),Y ;* 6B64 88 013825 DEY ;* 6B65 10F1 013830 BPL MOVLI1 ;* 6B67 A565 013835 LDA $65 ;* 6B69 8569 013840 STA $69 ;* 6B6B A564 013845 LDA $64 ;* 6B6D 8568 013850 STA $68 ;* 6B6F 18 013855 CLC ;* 6B70 A566 013860 LDA $66 ;* 6B72 6928 013865 ADC #40 ;* 6B74 8566 013870 STA $66 ;* 2016-11-16 11:06 omnimon-xl.src Page 53 6B76 9002 013875 BCC MOVLI2 ;* 6B78 E667 013880 INC $67 ;* 6B7A 60 013885 MOVLI2 RTS ;* ; 6B7B 08 013890 EXTEND PHP ;* 6B7C A017 013895 LDY #23 ;* 6B7E 98 013900 EXTEN1 TYA ;* 6B7F 2022FB 013905 JSR LO1GET ;* 6B82 08 013910 PHP ;* 6B83 98 013915 TYA ;* 6B84 18 013920 CLC ;* 6B85 6979 013925 ADC #121 ;* 6B87 28 013930 PLP ;* 6B88 2004FB 013935 JSR BITPUT ;* 6B8B 88 013940 EXTEN3 DEY ;* 6B8C 3004 013945 BMI EXTEN4 ;* 6B8E C454 013950 CPY $54 ;* 6B90 B0EC 013955 BCS EXTEN1 ;* 6B92 A554 013960 EXTEN4 LDA $54 ;* 6B94 18 013965 CLC ;* 6B95 6978 013970 ADC #120 ;* 6B97 28 013975 PLP ;* 6B98 4C04FB 013980 JMP BITPUT ;* 6B9B A552 013985 CLRLIN LDA $52 ;* 6B9D 8555 013990 STA $55 ;* 6B9F 2047F9 013995 JSR CONVRT ;* 6BA2 A027 014000 LDY #39 ;* 6BA4 A900 014005 LDA #0 ;* 6BA6 9164 014010 CLRLI1 STA ($64),Y ;* 6BA8 88 014015 DEY ;* 6BA9 10FB 014020 BPL CLRLI1 ;* 6BAB 60 014025 RTS ;* 6BAC 20FAFA 014030 SCROLL JSR BITROL ;* 6BAF 20D4FC 014035 JSR PUTMSC ;* 6BB2 A028 014040 SCROL1 LDY #40 ;* 6BB4 B164 014045 LDA ($64),Y ;* 6BB6 A66A 014050 LDX $6A ;* 6BB8 CA 014055 DEX ;* 6BB9 E465 014060 CPX $65 ;* 6BBB D008 014065 BNE SCROL2 ;* 6BBD A2D7 014070 LDX #$D7 ;* 6BBF E464 014075 CPX $64 ;* 6BC1 B002 014080 BCS SCROL2 ;* 6BC3 A900 014085 LDA #0 ;* 6BC5 A000 014090 SCR0L2 LDY #0 ;* 6BC7 9164 014095 STA ($64),Y ;* 6BC9 E664 014100 INC $64 ;* 6BCB D0E5 014105 BNE SCROL1 ;* 6BCD E665 014110 INC $65 ;* 6BCF A565 014115 LDA $65 ;* 6BD1 C56A 014120 CMP $6A ;* 6BD3 D0DD 014125 BNE SCROL1 ;* 6BD5 A900 014130 DOLCOL LDA #0 ;* 6BD7 8563 014135 STA $63 ;* 6BD9 A554 014140 LDA $54 ;* 6BDB 8551 014145 STA $51 ;* 2016-11-16 11:06 omnimon-xl.src Page 54 6BDD A551 014150 D0LC01 LDA $51 ;* 6BDF 2022FB 014155 JSR L01GET ;* 6BE2 B00C 014160 BCS D0LC02 ;* 6BE4 A563 014165 LDA $63 ;* 6BE6 18 014170 CLC ;* 6BE7 6928 014175 ADC #40 ;* 6BE9 8563 014180 STA $63 ;* 6BEB C651 014185 DEC $51 ;* 6BED 4CDDFB 014190 JMP DOLCO1 ;* 6BF0 18 014195 DOLCQ2 CLC ;* 6BF1 A563 014200 LDA $63 ;* 6BF3 6555 014205 ADC $55 ;* 6BF5 8583 014210 STA $63 ;* 6BF7 80 014215 RTS ;* ; 6BF8 2085FC 014220 DOBUFC JSR PHACRS ;* 6BFB A563 014225 LDA $63 ;* 6BFD 48 014230 PHA ;* 6BFE A56C 014235 LDA $6C ;* 6C00 8554 014240 STA $54 ;* 6C02 A56D 014245 LDA $6D ;* 6C04 8555 014250 STA $55 ;* 6C06 A901 014255 LDA #1 ;* 6C08 856B 014280 STA $6B ;* 6C0A A217 014265 DOBUF1 LDX #23 ;* 6C0C A57B 014270 LDA $7B ;* 6C0E 1002 014275 BPL DOB1 ;* 6C10 A203 014280 LDX #3 ;* 6C12 E454 014285 DOB1 CPX $54 ;* 6C14 D00B 014290 BNE DOBU1A ;* 6C16 A555 014295 LDA $55 ;* 6C18 C553 014300 CMP $53 ;* 6C1A D005 014305 BNE DOBU1A ;* 6C1C E66B 014310 INC $6B ;* 6C1E 4C31FC 014315 JMP DOBUF2 ;* 6C21 20D4F9 014320 DOBU1A JSR INCRSB ;* 6C24 E66B 014325 INC $6B ;* 6C26 A563 014330 LDA $63 ;* 6C28 C552 014335 CMP $52 ;* 6C2A D0DE 014340 BNE DOBUF1 ;* 6C2C C654 014345 DEC $54 ;* 6C2E 2099F7 014350 JSR CRSRLF ;* 6C31 20A2F5 014355 DOBUF2 JSR GETPLT ;* 6C34 D017 014360 BNE DOBUF4 ;* 6C36 C88B 014365 DEC $6B ;* 6C38 A563 014370 LDA $63 ;* 6C3A C552 014375 CMP $52 ;* 6C3C F00F 014380 BEQ DOBUF4 ;* 6C3E 2099F7 014385 JSR CRSRLF ;* 6C41 A555 014390 LDA $55 ;* 6C43 C553 014395 CMP $%3 ;* 6C45 D002 014400 BNE DOBUF3 ;* 6C47 C654 014405 DEC $54 ;* 6C49 A58B 014410 DOBUF3 LDA $6B ;* 6C4B D0E4 014415 BNE DOBUF2 ;* 6C4D 88 014420 DOBUF4 PLA ;* 2016-11-16 11:06 omnimon-xl.src Page 55 6C4E 8563 014425 STA $63 ;* 6C50 2090FC 014430 JSR PLACRS ;* 6C53 80 014435 RTS ;* ; 6C54 20D5FB 014440 STRBEG JSR DOLCOL ;* 6C57 A551 014445 LDA $51 ;* 6C59 856C 014450 STA $6C ;* 6C5B A552 014455 LDA $52 ;* 6C5D B56D 014460 STA $6D ;* 6C5F 60 014465 RTS ;* 6C60 A563 014470 DELTIA LDA $63 ;* 6C62 C552 014475 CMP $52 ;* 6C64 D002 014480 BNE DELTIB ;* 6C66 C654 014485 DEC $54 ;* 6C68 20D5FB 014490 DELTIB JSR DOLCOL ;* 6C6B A563 014495 DELTIM LDA $63 ;* 6C6D C552 014500 CMP $52 ;* 6C6F F013 014505 BEQ DELTI3 ;* 6C71 2047F9 014510 JSR CONVRT ;* 6C74 A553 014515 LDA $53 ;* 6C76 38 014520 SEC ;* 6C77 E552 014525 SBC $52 ;* 6C79 A8 014530 TAY ;* 6C7A B164 014535 DELTI1 LDA ($64),Y ;* 6C7C D006 014540 BNE DELTI3 ;* 6C7E 88 014545 DEY ;* 6C7F 10F9 014550 BPL DELHI ;* 6C81 4CDBF8 014555 DELTI2 JMP DELLIB ;* 6C84 60 014560 DELII3 RTS ;* ; 6C85 A202 014565 PHACRS LDX #2 ;* 6C87 B554 014570 PHACR1 LDA $54,X ;* 6C89 9DB802 014575 STA $02B8,X ;* 6C8C CA 014580 DEX ;* 6C8D 10F3 014585 BPL PHACR1 ;* 6C8F 60 014590 RTS ;* ; 6C90 A202 014595 PLACRS LDX #2 ;* 6C92 BDB802 014600 PLACR1 LDA $0288,X ;* 6C95 9554 014605 STA $54,X ;* 6C97 CA 014610 DEX ;* 6C98 10F8 014615 BPL PLACE1 ;* 6C9A 60 014620 RTS ;* ; 6C9B 20A1FC 014625 SWAP JSR SWAPA ;* 6C9E 4C34F6 014630 JMP RETUR1 ;* 6CA1 ADBF02 014635 SWAPA LDA $02BF ;* 6CA4 C918 014640 CMP #24 ;* 6CA6 F017 014645 BEQ SWAP3 ;* 6CA8 A20B 014650 LDX #11 ;* 6CAA B554 014655 SWAP1 LDA $54,X ;* 6CAC 48 014660 PHA ;* 6CAD BD9002 014665 LDA $0290,X ;* 6CB0 9554 014670 STA $54,X ;* 6CB2 68 014675 PLA ;* 6CB3 909002 014680 STA $0290,X ;* 2016-11-16 11:06 omnimon-xl.src Page 56 6CB6 CA 014685 DEX ;* 6CB7 10F1 014690 BPL SWAP1 ;* 6CB9 A57B 014695 LDA $7B ;* 6CBB 49FF 014700 EOR #$FF ;* 6CBD 857B 014705 STA $78 ;* 6CBF 60 014710 SWAP3 RTS ;* ; 6CC0 A54B 014715 GETSEC LDA $4B ;* 6CC2 F003 014720 BEQ DISKM ;* 6CC4 4C7AE4 014725 JMP $E47A ;* 6CC7 A952 014730 DISKM LDA #$52 ;* 6CC9 8D0203 014735 STA $0302 ;* 6CCC A901 014740 LDA #1 ;* 6CCE 8D0103 014745 STA $0301 ;* 6CD1 4C53E4 014750 JMP $E453 ;* 6CD4 A558 014755 PUTMSC LDA $58 ;* 6CD6 8564 014760 STA $64 ;* 6CD8 A559 014765 LDA $59 ;* 6CDA 8565 014770 STA $65 ;* 6CDC 60 014775 RTS ;* ; 6CDD A200 014780 DRAW LDX #0 ;* 6CDF A522 014785 LDA $22 ;* 6CE1 C911 014790 CMP #$11 ;* 6CE3 F008 014795 BEG DRAWA ;* 6CE5 C912 014800 CMP #$12 ;* 6CE7 F003 014805 BEG DRAWS ;* 6CE9 A084 014810 LDY #$84 ;* 6CEB 60 014815 RTS ;* ; 6CEC E8 014320 DRAWB INX ;* 6CED 8EB702 014825 DRAWA STX $02B7 ;* 6CF0 A554 014830 LDA $54 ;* 6CF2 8560 014835 STA $60 ;* 6CF4 A555 014840 LOA $55 ;* 6CF6 8561 014845 STA $61 ;* 6CF8 A556 014850 LDA $56 ;* 6CFA 8562 014855 STA $62 ;* 6CFC A901 014860 LDA #1 ;* 6CFE 8579 014865 STA $79 ;* 6D00 857A 014870 STA $7A ;* 6D02 38 014875 SEC ;* 6D03 A560 014880 LDA $60 ;* 6D05 E55A 014885 SBC $5A ;* 6D07 8576 014890 STA $76 ;* 6D09 B00D 014895 BCS DRAW1 ;* 6D0B A9FF 014900 LDA #$FF ;* 6D0D 8579 014905 STA $79 ;* 6D0F A576 014910 LDA $76 ;* 6D11 49FF 014915 EOR #$FF ;* 6D13 18 014920 CLC ;* 6D14 6901 014925 ADC #1 ;* 6D16 8576 014930 STA $76 ;* 6D18 38 014935 DRAW1 SEC ;* 6D19 A561 014940 LDA $61 ;* 6D1B E55B 014945 SBC $5B ;* 2016-11-16 11:06 omnimon-xl.src Page 57 6D1D 8577 014950 STA $77 ;* 6D1F A562 014955 LDA $62 ;* 6D21 E55C 014960 SBC $5C ;* 6D23 8578 014965 STA $78 ;* 6D25 B016 014970 BCS DRAW2 ;* 6D27 A9FF 014975 LDA #$FF ;* 6D29 857A 014980 STA $7A ;* 6D2B A577 014985 LDA $77 ;* 6D2D 49FF 014990 EOR #$FF ;* 6D2F 8577 014995 STA $77 ;* 6D31 A578 015000 LDA $78 ;* 6D33 49FF 015005 EOR #$FF ;* 6D35 8578 015010 STA $78 ;* 6D37 E677 015015 INC $77 ;* 6D39 D002 015020 BNE DRAW2 ;* 6D3B E678 015025 INC $78 ;* 6D3D A202 015030 DRAW2 LDX #2 ;* 6D3F A000 015035 LDY #0 ;* 6D41 8473 015040 STY $73 ;* 6D43 98 015045 DRAW3A TYA ;* 6D44 9570 015050 STA $70,X ;* 6D46 B55A 015055 LDA $5A,X ;* 6D48 9554 015060 STA $54,X ;* 6D4A CA 015065 DEX ;* 6D4B 10F6 015070 BPL DRAW3A ;* 6D4D A577 015075 LDA $77 ;* 6D4F E8 015080 INX ;* 6D50 A8 015085 TAY ;* 6D51 A578 015090 LDA $78 ;* 6D53 857F 015095 STA $7F ;* 6D55 8575 015100 STA $75 ;* 6D57 D00A 015105 BNE DRAW3 ;* 6D59 A577 015110 LDA $77 ;* 6D5B C576 015115 CMP $76 ;* 6D5D B004 015120 BCS DRAW3 ;* 6D5F A476 015125 LDY $76 ;* 6D61 A202 015130 LDX #2 ;* 6D63 98 015135 DRAW3 TYA ;* 6D64 857E 015140 STA $7E ;* 6D66 8574 015145 STA $74 ;* 6D68 48 015150 PHA ;* 6D69 A575 015155 LDA $75 ;* 6D6B 4A 015160 LSR A ;* 6D6C 68 015165 PLA ;* 6D6D 6A 015170 ROR A ;* 6D6E 9570 015175 STA $70,X ;* 6D70 A57E 015180 DRAW4A LDA $7E ;* 6D72 057F 015185 ORA $7F ;* 6D74 D003 015190 BNE DRAW11 ;* 6D76 4C22FE 015195 JMP DRAW10 ;* 6D79 18 015200 DRAW11 CLC ;* 6D7A A570 015205 LDA $70 ;* 6D7C 6576 015210 ADC $76 ;* 6D7E 8570 015215 STA $70 ;* 6D80 9002 015220 BCC DRAW6 ;* 6D82 E671 015225 INC $71 ;* 2016-11-16 11:06 omnimon-xl.src Page 58 6D84 A571 015230 DRAW5 LDA $71 ;* 6D86 C575 015235 CMP $75 ;* 6D88 9014 015240 BCC DRAW5 ;* 6D8A D006 015245 BNE DRAW5A ;* 6D8C A570 015250 LDA $70 ;* 6D8E C574 015255 CMP $74 ;* 6D90 900C 015260 BCC DRAW6 ;* 6D92 18 015265 DRAW5A CLC ;* 6D93 A554 015270 LDA $54 ;* 6D95 6579 015275 ADC $79 ;* 6D97 8554 015280 STA $54 ;* 6D99 A200 015235 LDX #0 ;* 6D9B 207AFA 015290 JSR SUBEND ;* 6D9E 18 015295 DRAW6 CLC ;* 6D9F A572 015300 LDA $72 ;* 6DA1 6577 015305 ADC $77 ;* 6DA3 8572 015310 STA $72 ;* 6DA5 A573 015315 LDA $73 ;* 6DA7 6578 015320 ADC $78 ;* 6DA9 8573 015325 STA $73 ;* 6DAB C575 015330 CMP $75 ;* 6DAD 9027 015335 BCC DRAWS ;* 6DAF D006 015340 BNE DRAW6A ;* 6DB1 A572 015345 LDA $72 ;* 6DB3 C574 015350 CMP $74 ;* 6DB5 901F 015355 BCC DRAWS ;* 6DB7 237A 015360 DRAW6A BIT $7A ;* 6DB9 1010 015365 BPL DRAW6B ;* 6DBB C655 015370 DEC $55 ;* 6DBD A555 015375 LDA $55 ;* 6DBF C9FF 015380 CMP #$FF ;* 6DC1 D00E 015385 BME DRAW7 ;* 6DC3 A556 015390 LDA $56 ;* 6DC5 F00A 015395 BEQ DRAW7 ;* 6DC7 C656 015400 DEC $56 ;* 6DC9 1006 015405 BPL DRAW7 ;* 6DCB E655 015410 DRAW6B INC $55 ;* 6DCD D002 015415 BNE DRAW? ;* 6DCF E656 015420 INC $56 ;* 6DD1 A202 015425 DRAW7 LDX #2 ;* 6DD3 207AFA 015430 JSR SUBEND ;* 6DD6 2096FA 015435 DRAW8 JSR RANGE ;* 6DD9 20E0F5 015440 JSR OUTPLT ;* 6DDC ADB702 015445 LDA $02B7 ;* 6DDF F02F 015450 BEQ DRAW9 ;* 6DE1 2085FC 015455 JSR PHACRS ;* 6DE4 ADFB02 015460 LDA $02FB ;* 6DE7 8DBC02 015465 STA $02BC ;* 6DEA A554 015470 DRAW8A LDA $54 ;* 6DEC 48 015475 PHA ;* 6DED 20DCF9 015480 JSR INCRSA ;* 6DF0 68 015485 PLA ;* 6DF1 8554 015490 STA $54 ;* 6DF3 2096FA 015495 DRAW8C JSR RANGE ;* 6DF6 20A2F5 015500 JSR GETPLT ;* 6DF9 D00C 015505 BNE DRAWSB ;* 2016-11-16 11:06 omnimon-xl.src Page 59 6DFB ADFD02 015510 LDA $02FD ;* 6DFE 8DFB02 015515 STA $02FB ;* 6E01 20E0F5 015520 JSR OUTPLT ;* 6E04 4CEAFD 015525 JMP DRAWSA ;* 6E07 ADBC02 015530 DRAW8B LDA $02BC ;* 6E0A 8DFB02 015535 STA $02FB ;* 6E0D 2090FC 015540 JSR PLACR3 ;* 6E10 38 015545 DRAW9 SEC ;* 6E11 A57E 015550 LDA $7E ;* 6E13 E901 015555 SBC #1 ;* 6E15 857E 015560 STA $7E ;* 6E17 A57F 015565 LDA $7F ;* 6E19 E900 015570 SBC #0 ;* 6E1B 857F 015575 STA $7F ;* 6E1D 3003 015580 BMI DRAW10 ;* 6E1F 4C70FD 015585 JMP DRAW4A ;* 6E22 4C34F6 015590 DRAW10 JMP RETUR1 ;* ; 6E25 18100A0A 015595 ALOCAT .BYTE 24,16,10,10,16,28,52,100,196,196,196,196 ;* 6E29 101C3464 6E2D C4C4C4C4 ; 6E31 1C1064C4 015600 .BYTE 28,16,1O,10,16,28,52,100,196,196,196,196 ;* ; 6E35 17170B17 015605 NUMDLE .BYTE 23,23,11,23,47,47,95,95,97,97,97,97 ;* 6E39 2F2F5F5F 6E3D 61616161 ; 6E41 170BBF61 015610 .BYTE 23,11,191,97 ;* ; 6E45 13130913 015615 MXDMDE .BYTE 19,19,9,19,39,39,79,79,65,65,65,65 ;* 6E49 27274F4F 6E4D 41414141 ; 6E51 13099F41 015620 .BYTE 19,9,159,65 ;* ; 6E55 02060708 015625 ANCONV .BYTE 2,6,7,8,9,10,11,13,15,15,15,15 ;* 6E59 090A0B0D 6E5D 0F0F0F0F ; 6E61 04050C0E 015630 .BYTE 4,5,12,14 ;* ; 6E65 00000000 015635 PAGETB .BYTE 0,0,0,0,0,0,0,1,1,1,1,1 ;* 6E69 00000001 6E6D 01010101 ; 6E71 00000101 015640 .BYTE 0,0,1,1 ;* ; 6E75 02010100 015645 DHLINE .BYTE 2,1,1,0,0,1,1,2,2,2,2,2 ;* 6E79 00010102 6E7D 02020202 ; 6E81 02020102 015650 .BYTE 2,2,1,1 ;* ; 6E85 28141428 015655 COLUMN .BYTE 40,20,20,40,80,80,160,160,64,80,80,80 ;* 6E89 5050A0A0 2016-11-16 11:06 omnimon-xl.src Page 60 6E8D 40505050 ; 6E91 2828A0A0 015660 .BYTE 40,40,160,160 ;* ; 6E95 18180018 015665 NOROWS .BYTE 24,24,12,24,48,48,96,96,192,192,192.192 ;* 6E99 30306060 6E9D C0C0C0C0 ; 6EA1 180CC0C0 015670 .BYTE 24,12,192,192 ;* ; 6EA5 00000002 015675 DIV2TB .BYTE 0,0,0,2,3,2,3,2,3,1,1,1 ;* 6EA9 03020302 6EAD 03010101 ; 6EB1 00000302 015680 .BYTE 0,0,3,2 ;* ; 6EB5 00FFF00F 015685 DMASKT .BYTE 0,$FF,$F0,$0F,$CO,$30,$0C,$03 ;* 6EB9 C0300C03 ; 6EBD 80402010 015690 MASKTB .BYTE $80,$40,$20,$10,$08,$04,$02,$01,$00,$01,$03,$07 ;* 6EC1 08040201 6EC5 00010307 ; 6EC9 28CA9046 015695 COLRTB .BYTE $28,$CA,$90,$46,0 ;* 6ECD 00 ; 6ECE 1B 015700 CNTRLS .BYTE $1B ;* 6ECF 79F7 015705 .WORD ESCAPE ;* 6ED1 1C 015710 .BYTE $10 ;* 6ED2 7FF7 015715 .WORD CRSRUP ;* 6ED4 1D 015720 .BYTE $1D ;* 6ED5 8CF7 015725 .WORD CRSRDN ;* 6ED7 1E 015730 .BYTE $1E ;* 6ED8 99F7 015735 .WORD CRSRLF ;* 6EDA 1F 015740 .BYTE $1F ;* 6EDB AAF7 015745 .WORD CRSRRT ;* 6EDD 7D 015750 .BYTE $7D ;* 6EDE B9F7 015755 .WORD CLRSCR ;* 6EE0 7E 015760 .BYTE $7E ;* 6EE1 E6F7 015765 .WORD BS ;* 6EE3 7F 015770 .BYTE $7F ;* 6EE4 10F8 015775 .WORD TAB ;* 6EE6 9B 015780 .BYTE $9B ;* 6EE7 30FA 015785 .WORD DOCRWS ;* 6EE9 9C 015790 .BYTE $9C ;* 6EEA D4F8 015795 .WORD DELLIN ;* 6EEC 9D 015800 .BYTE $9D ;* 6EED A4F8 015805 .WORD INSLIN ;* 6EEF 9E 015810 .BYTE $9E ;* 6EF0 32F8 015815 .WORD CLRTAB ;* 6EF2 9F 015820 .BYTE $9F ;* 6EF3 2DF8 015825 .WORD SETTAB ;* 6EF5 FD 015830 .BYTE $FD ;* 6EF6 0AF9 015835 .WORD BELL ;* 6EF8 FE 015840 .BYTE $FE ;* 6EF9 6DF8 015845 .WORD DELCHR ;* 2016-11-16 11:06 omnimon-xl.src Page 61 6EFB FF 015850 .BYTE $FF ;* 6EFC 37F8 015855 .WORD INSCHR ;* ; 6EFE 6C6A3B80 015860 ATASCI .BYTE $6C, $6A, $3B, $80, $80, $6B, $2B, $2A ;* 6F02 806B2B2A 6F06 6F807075 015865 .BYTE $6F, $BO, $70, $75, $9B, $69, $2D, $3D ;* 6F0A 9B692D3D 6F0E 76806380 015870 .BYTE $76, $8O, $63, $80, $80, $62, $78, $7A ;* 6F12 8062787A 6F16 34803336 015875 .BYTE $34, $80, $33, $36, $1B, $35, $32, $31 ;* 6F1A 1B353231 6F1E 2C202F6F 015880 .BYTE $20, $20, $2E, $6E, $8O, $61, $2F, $81 ;* 6F22 806D2F81 6F26 72806579 015885 .BYTE $72, $80, $65, $79, $7F, $74, $77, $71 ;* 6F2A 7F747771 6F2E 39803037 015890 .BYTE $39, $80, $30, $37, $7E, $38, $3C, $3E ;* 6F32 7E383C3E 6F36 66686480 015895 .BYTE $66, $68, $64, $80, $82, $67, $73, $61 ;* 6F3A 82677361 6F3E 4C4A3A80 015900 .BYTE $4C, $4A, $3A, $80, $80, $4B, $5C, $5E ;* 6F42 804B5C5E 6F46 4F805055 015905 .BYTE $4F, $80, $50, $55, $9B, $49, $5F, $7C ;* 6F4A 9B495F7C 6F4E 56804380 015910 .BYTE $56, $80, $43, $80, $80, $42, $58, $5A ;* 6F52 8042585A 6F56 24802326 015915 .BYTE $24, $80, $23, $26, $1B, $25, $22, $21 ;* 6F5A 1B252221 6F5E 5B205D4E 015920 .BYTE $59, $20, $5D, $4E, $80, $4D, $3F, $81 ;* 6F62 804D3F81 6F66 52804559 015925 .BYTE $52, $80, $45, $59, $9F, $54, $57, $51 ;* 6F6A 9F545751 6F6E 28802927 015930 .BYTE $28, $80, $29, $27, $9C, $40, $7D, $9D ;* 6F72 9C407D9D 6F76 46484480 015935 .BYTE $46, $48, $44, $80, $83, $47, $53, $41 ;* 6F7A 83475341 6F7E 0C0A7B80 015940 .BYTE $00, $0A, $7B, $80, $80, $0B, $1E, $1F ;* 6F82 800B1E1F 6F86 0F801015 015945 .BYTE $0F, $80, $10, $15, $9B, $09, $1C, $1D ;* 6F8A 9B091C1D 6F8E 16800380 015950 .BYTE $16, $8O, $03, $80, $80, $02, $18, $1A ;* 6F92 8002181A 6F96 80808580 015955 .BYTE $80, $80, $85, $80, $1B, $80, $FD, $80 ;* 6F9A 1B80FD80 6F9E 0020600E 015960 .BYTE $00, $20, $60, $0E, $80, $0D, $80, $81 ;* 6FA2 80008081 6FA6 12800519 015965 .BYTE $12, $80, $05, $19, $9E, $14, $17, $11 ;* 6FAA 9E141711 6FAE 80803080 015970 .BYTE $80, $80, $80, $80, $FE, $80, $7D, $FF ;* 6FB2 FE807DFF 6FB6 06080480 015975 .BYTE $06,$08,$04,$80,$84,$07,$13,$01 ;* 6FBA 94071301 6FBE AD09D2 015980 PIRQ5 LDA $D209 ;* 6FC1 CDF202 015985 CMP $02F2 ;* 6FC4 D005 015990 BNE PIRQ3 ;* 6FC6 ADF102 015995 LDA $02F1 ;* 6FC9 D01E 016000 BNE PIRQ4 ;* 2016-11-16 11:06 omnimon-xl.src Page 62 6FCB AD09D2 016005 PIRQ3 LDA $D209 ;* 6FCE C99F 016010 CMP #$9F ;* 6FD0 D00A 016015 BNE PIRQ1 ;* 6FD2 ADFF02 016020 LDA $02FF ;* 6FD5 49FF 016025 EOR #$FF ;* 6FD7 8DFF02 016030 STA $02FF ;* 6FDA B00D 016035 BCS PIRQ4 ;* 6FDC 8DFC02 016040 PIRQ1 STA $02FC ;* 6FDF 8DF202 016045 STA $02F2 ;* 6FE2 A901 016050 LDA #1 ;* ; ; I think this is $00FFE4 (COPV), 65C816 Native Vector ; $00FFE6 (BRKV) ; $00FFE8 (ABTV) ; $00FFEA (NMIV) ; $00FFEC (???) RSTV is $FFFC (back to Emulation on RST) ; $00FFEE (IRQV) ; 6FE4 8DF102 016055 STA $02F1 ;* 6FE7 854D 016060 STA $4D ;* 6FE9 A910 016065 PIRQ4 LDA #$10 ;* 6FEB 8D2B02 016070 STA $022B ;* 6FEE 68 016075 PIRQ2 PLA ;* 6FEF 40 016080 RTI ;* ; 6FF0 40002060 016085 ATAINT .BYTE $40,0,$20,$60 ;* 6FF4 20400060 016090 INTATA .BYTE $20,$40,0,$60 ;* ; ;6FF8 F3E691E7 016095 .BYTE $F3,$E6,$91,$E7,$25,$F1,$F3,$E6 ; 6502 Vectors (and 65C816 Emulation vectors) ; Signal Vector Push PC and P Set B Flag ; NMI $FFFA/$FFFB yes no ; RESET $FFFC/$FFFD no no ; IRQ $FFFE/$FFFF yes no (Hardware) ; BRK $FFFE/$FFFF yes yes (Software) ; ; 65C816 (native mode) ; ; The 65C816 has four hardware interrupt inputs & 2 software interrupts, summarized as follows: ; ; Common Interrupt Input Input Microprocessor Hardware ; Name Mnemonic Name Type Action Vector ; Co-Processor COP n/a n/a Software interrupt $00FFE4 ; Break BRK n/a n/a Software interrupt $00FFE6 ; Abort ABT ABORTB Level "Abort" current instruction $00FFE8 ; Interrupt request IRQ IRQB Level Service maskable interrupt $00FFEE ; Non-maskable Int NMI NMIB Edge Service non-maskable interrupt $00FFEA ; Reset RST RESB Level Reset state $00FFFC* ; ; * - Jumps back to Emulation mode ; ; Not a vector for the 6502, Abort for 65c816 6FF8 F3E6 016095 UNKV .BYTE $F3,$E6 ;* 6FFA 91E7 016100 NMIV .BYTE $91,$E7 ;* 6FFC 25F1 016105 RSTV .BYTE $25,$F1 ;* 2016-11-16 11:06 omnimon-xl.src Page 63 6FFE F3E6 016110 IRQV .BYTE $F3,$E6 ;* BRK also ; ; I/O (Hardware, $D000-$D7FF) ; =D400 016115 ANTIC = $D400 ; ANTIC D400-D4FF =D000 016120 GTIA = $D000 ; GTIA D000-D1FF =D200 016125 POKEY = $D200 ; POKEY D200-D20F =D300 016130 PIA = $D300 ; PIA D300-D31F (6520) ; ; ASSEMBLY ERRORS: 0 21135 BYTES FREE ; -[ Fini ]---------------------------------------------------------------------