L`L:;<`NNĈ) ⩑ѠbL¥HH5HHH܌ܭܢܢ܄ ̈́j)9 9$00L Ԭ e::e;;I) Ԭ 8Ie<L\2_2΍^2]2΍a2`2`Pꩯl/lTURBOBOOTd}U<d9.q5M% ُ-d?00 AAAturboboot V2.00Paul J. Bosacki For Master Adapter only. Please refer to instruction sheet.rstood. MAKING YOUR NEW BOOT DISK: Since GEOS is not yet patched for operation at 4 MHz, while doing these procedures you must either have your accelerator switched to MANUAL 1 MHz, or have the accelerator set to DISABLE, or be running in a plain C64. r applications, and already patched to load  and run at 4 MHz. USING YOUR NEW BOOT DISK: Archive away your original GEOS boot disk! To boot GEOS, insert the new boot disk and enter LOAD "BOOT",8,1. The Turbo Master CPU can be set to SOFT 4 MHz thr>d?00 AAAturboboot V1.0Paul J. Bosacki Captures the GEOS Kernal and installs patches for 4 MHz Turbo Master CPU.have on a boot disk. These should include CONFIGURE, deskTop, your printer driver, and your input driver. If you use several input drivers, your preferred default should be first Don't fill the new boot disk too full; leave at least 22 kBytes free. T created the new boot disk, other auto-exec files can be placed on it, so long as they follow CONFIGURE. 5) You may want to move the new boot file TURBOBOOT to the second position on the directory in place of MakeTurbo. MakeTurbo is no longer needed o 9.q5M% ُ->>  L\2_2ύ^2]2ύa2`2`Q>L\2_2΍^2]2΍a2`2eo~`Pꩯl/l È$xH5H hh(` Hޝh΢ Ν)``TURBOBOOT}U<ddisk drives. However, this normally will not be a problem, because the fast disk load in Turbo Master CPU will be turned ON, or JiffyDOS will be in use. Once inside GEOS, the resident Turbo DOS takes over. 3) You can make multiple boot disks for diff  2061 oԠ `y y d n z z O K . . y Z`  ͽ`z `z `ގߌߜߜߜߜߠߜ ߜ ߮ߍ߭)``z ` ` 65C02 PROCESSOR NOT PRESENT. TEST ABORTE  2061 o `= ߭= ] g sO K . . = Z$  ͽ`> `> `> ` ` 65C02 PROCESSOR NOT PRESENT. TEST ABORTED. THIS TEST PROGRAM IS FOR MASTER ADAPTER WITH TURBO MASTER C1P.©-©H%HHHLL-seRigmouseTopmouseVecmouseXPo:mouseYPo<msbxposmsePicPt1nationalnmivecnumDriveobj0Poinobj1Poinobj2Poinobj3Poinobj4Poinobj5Poinobj6Poinobj7PoinotherPrepressFla~ぃ>nTBoot64 V1.10Paul J. Bosacki For Master Adapter only. Please refer to instruction sheet.lP@`ޑͱHޑh и жNYdy,ލߥߥߥߩߩߍߍ ߍ ߎ߭)``΢ Ν)``TURBOBOOT}U<d^.noeqin .noglbl .include geosSym .include geosMac .eqin .glbl .endif RAMBUFFER =$e100 i0I+Start: jmp LaunchMain TurboStr: .byte "REUAccess",NULL LaunchMain: ldy $c049 ;check kernal iny beq 99$ LoadB dispBufferOnH‘QdQpgpdApdVp`papapaxpqrY%rQ%rQ%rQ%Q% Bj>>> CLj~ぃ>n .P;$df09 stx $df01 10$: lda $df00 and #$60 beq 10$ rts (qpHpppppp0I+RAMCode: ldx #$0f ;save psuedo registers 5$: lda r0L,x sta o_zpbuff,x dex bpl 5$ tya ;get command and #3 ;AND out high bits tay ;and index to low byte ld h0I+DetExpSize: php ;save procesor status sei ;no IRQs PushB CPU_DATA ;save bank configuration LoadB CPU_DATA,IO_IN ;bank $Dxxx I/O in lda $D015 ;get sprite enable register pha ;save it on stack lda #0 ;turn sprites OFF  XX0I+nonextpg: ldx #$40 verifyExit: ldy #$0f 5$: lda o_zpbuff,y .byte $99,$02,$00 ;sta r0L,y Use .byte form to avoid ; "illegal addressing mode" assembler error dey bpl 5$ txa tay rts IsStash: 10$ lda (r0),y ;C64 addr   rts *nh0I+InstallPatches: Transfer: ldy #codeLong 10$: lda RAMCode-1,y sta $de00-1,y dey bne 10$ StashPG: ldx #$90 LoadB $df03,$de LoadB $df05,$ff LoadB $df08,1 LoadB $df02,0 sta $df04 sta $df06 sta $df07 sta te $6c,$0e,$00 ;jmp (r6) execute command ;Use .byte form to avoid assembler error GetNxtPg: inc r1H ;increment reu address inc r0H ;increment host address lda r7H beq nonextpg dec r7H ;dec page trans. size bra ramLoop ;test more pages? .pl=yes 0I+Start: jmp LaunchMain TurboStr: .byte "REUAccess",NULL LaunchMain: ldy $c049 ;check kernal iny beq 99$ LoadB dispBufferOn, %10000000 jsr EraseScreen jsr DetExpSize 99$: jmp EnterDeskTop EraseScreen: MoveB COLOR_MATRH>>> CLj~ぃ>n .P ~L Pxآ 6 ĭPPPi PPP Í.©&-L,¥PpHpppppp0I+RAMCode: ldx #$0f ;save psuedo registers 5$: lda r0L,x sta o_zpbuff,x dex bpl 5$ tya ;get command and #3 ;AND out high bits tay ;and index to low byte lda #]RAMBUFFER ;command address sta r6H lda o_cmndVector,y ssta $D015 ; " " " LoadB ramExpSize,0 jsr TstMstr bne 95$ jsr IsREUType bne 95$ jsr InstallPatches 95$: pla ;retrieve data for sprites sta $D015 ;restore register PopB CPU_DATA ;restore bank from stack plp ;restore processor status, includess sta $de00,y iny dex bne 10$ beq cSet IsFetch: 10$ lda $de00,y sta (r0),y iny dex bne 10$ beq GetNxtPg IsSwap: 10$: lda (r0),y pha lda $de00,y sta (r0),y pla sta $de00,y iny dex bne 10$ cSet: jsr o_StashPAGE bne GetNxtPg IsVerify000000000I+;********************************** ; turboREU.src -- code for accessing REU. ; ; built: starting May 30, 1991I+@ I+ ; author: Paul Bosacki ;********************************** .if Pass1 HSHHpr rt((p ŨŨJ Ai‘QdQpgpdApdVp`papapaxpqrY%rQ%rQ%rQ%Q% Bj>>> CLj~ぃ>h0I+InstallPatches: Transfer: ldy #codeLong 10$: lda RAMCode-1,y sta $de00-1,y dey bne 10$ StashPG: ldx #$90 LoadB $df03,$de LoadB $df05,$ff LoadB $df08,1 LoadB $df02,0 sta $df04 sta $df06 sta $df07 sta $df0a sta IX,r2L LoadW r0,1000 LoadW r1,COLOR_MATRIX jsr FillRam lda #2 jsr SetPattern jsr i_Rectangle .byte 0,199 .word 0,319 rts lh0I+DetExpSize: php ;save procesor status sei ;no IRQs PushB CPU_DATA ;save bank configH~ぃ>n .P ~L Pxآ 6 ĭPPPi PPP Í.©&-L,¥PP ۭPPP Pi PAWrite Image V2.1geoWrite V2.1  ...݅ ( >1 59 ..  9 < <` " . r " `(@1ʎsAڢ9 V&ing IRQ rts IsREUType: lda $df00 and #$e0 bne 99$ sta $df00+2 ldy #0 10$: dey bne 10$ cmp $df00+2 99$: rts TstMstr: lda $de00 10$: dey bne 10$ cmp $de00 bne 99$ tya 12$: sta $de00,y dey bne 12$ 15$: cmp $de00,y bne 99$ dey bne 15$ 99$:ta r6L MoveW r2,r7 ;r2 holds transfer length ramLoop: jsr o_FetchPage ldx #0 ;assume full page trans. lda r7H ;check assume bne 10$ ;true ldx r7L ;false so get odd # bytes beq nonextpg ;was full pg. trans. 10$: ldy #0 ;prepare indirect index .byAWrite Image V2.1geoWrite V2.1?1ʎ A9 8%Lh92Z?\, A0 8 n5-- 'F & % t %7 Š/ x9 XX0I+cmndVectors: .byte [o_IsStash .byte [o_IsFetch .byte [o_IsSwap .byte [o_IsVerify StashPAGE: ldx #$90 .byte $2c FetchPAGE: ldx #$91 AssertBank: LoadB $df03,$de MoveB r3L,$df06 MoveW r1,$df04 LoadW $df07,$100 sta $dAWrite Image V2.0geoWrite V2.1  ...݅ ( >1 59 ..  9 < <` " . r " `(@1ʎsAڢ9 V& geosSym .endif .header .word 0 .byte 3 .byte 21 PD P.byte $80|USR .byte APPLICATION .byte SEQUENTIAL .word $0400 .word $0400+1 .word $0400 .byte "turboboot V2.0",$30,0,0,$00 .byte "Paul J. BoshP .output MakeREU .header TBoot.hdr.rel .seq .psect $0400 TBoot.src.relpyy=H}U>d9<*q7M-p ُ Dj>d?00 AAA D015 ;get sprite enable register pha ;save it on stack lda #0 ;turn sprites OFF sta $D015 ; " " " H‘QdQpgpdApdVp`papapaxpqrY%rQ%rQ%rQ%Q% Bj>>> CMj}U>d9<*q7M-p ُ Dj>d f02 sta $df0a sta $df09 stx $df01 10$: lda $df00 and #$60 beq 10$ rts zpbuff: .block 16 codeEnd: .byte NULL o_cmndVector == (cmndVector-RAMCode)+RAMBUFFER o_StashPAGE == (StashPAGE-RAMCode)+RAMBUFFER o_FetchPage == (FetchPAGE-RAMCode)+RAMBUFFER o acki ",0 .block 44 .endh@liSHHpr rt((p ŨŨJ Ai‘QdQpgpdApdVp`papapaxpqrY%rQ%rQ%rQ%Q% Bj>>> d㒊l 0la΂Write Image V2.1Red StormgeoWrite V1.1H>d?00 AAA D015 ;get sprite enable register pha ;save it on stack lda #0 ;turn sprites OFF sta $D015 ; " " " LoadB ramExpSize,0 jsr TstMstr bne 95$ jsr IsREUType bne 95$ jsr Instj: 10$ lda (r0),y cmp $de00,y bne 20$ iny dex bne 10$ beq GetNxtPg 20$: ldx #$20 bne verifyExit yvXX0I+cmndVectors: .byte [o_IsStash .byte [o_IsFetch .byte [o_IsSwap .byte [o_IsVerify StashPAGE: ldx #$90 .byte $2kP .output TurboREU .header REUAcc.hdr.rel .seq .psect $0400 REUAcc.src.relU.src -- code for accessing REU. ; ; built: starting May 30, 1991I+@ I+ ; author: Paul Bosacki ;********************************** .if Pass1 P ;********************************** ; TBoot.hdr -- header declaration for BootMaker.    ;    ; started: Dec. 3, 1989 ; author: Paul Bosacki ; ;********************************** .if Pass1 .include _IsStash == (IsStash-RAMCode)+RAMBUFFER o_IsFetch == (IsFetch-RAMCode)+RAMBUFFER o_IsSwap == (IsSwap-RAMCode)+RAMBUFFER o_IsVerify == (IsVerify-RAMCode)+RAMBUFFER o_zpbuff == (zpbuff-RAMCode)+RAMBUFFER codeLong == codeEnd-RAMCode utCharEPutDecimPutH>>> CMj}U>d9<*q7M-p ُ Dj>d?00 AAA D015 ;get sprite enable register HSHHpr rt((p ŨŨJ Ai‘QdQpgpdApdVp`papapaxpqrY%rQ%rQ%rQ%Q% Bj>>> CMj}U>dAWrite Image V2.0geoWrite V2.1  ...݅ ( >1 59 ..  9 < <` " . r " `(@1ʎsAڢ9 V&xx PopB $d015 ;restore sprites PopB CPU_DATA ;restore bank configuration plp ;restore processor status incl. IRQ tya 99$: rts SwizelPage: ldx #$91 ;command = FETCH jsr o_DoREUOP ;get code into $DExx (.x=0) 20$ lda $e100,x ;swap $E1xx and $DExx  @0I+;********************************** P; TBoot.src -- code for opening the various files. ; ; built: starting Aug 30, 1990I+@ I+ ; author: Paul Bosacki ;********************************** .ilEULONG-1 20$: lda REUOp,y sta I+$9eb8-$2000I+,y @00 dey bpl 20$ .endif rts p@00I+MDPatch: bra MDPickUp nop patch: lda #$af sta $00 jmp ($9000) doneIO: lda #$2f sta $00 jmp ($9002) ;ValuI+$9eb8 o_DoREUOp =(DoREUOp-REUOp)+$9eb8 REULONG =REUEnd-REUOp .endif ]x@00 nameString: .byte "TURBOBOOT",NULL bootHead: .word nameString .byte 3,21,63|$80  .byte 255,255,255,128,000,001 .byte 191,224,001,191,255,001 1 sub #0 sta fixJMP+1 LoadW r0,nameString jsr DeleteFile LoadB CPU_DATA,$30 PushB sysRAMFlg LoadB sysFlgCopy,0 sta sysRAMFlag LoadB r0H,$bf LoadB r1H,$2f LoadB r0L,$40 sta r1L sta r2H LoadB r2L,$c0 jsr MoveData LoadB r0H,$90 LoadB r1H h00I+.if (TREU) ;This code ultimately installs at $9EB8 in GEOS code REUOp: ldx #$0d lda r3L cmp ramExpSize bcs 99$ php ;save processor status sei ;no IRQs during REU operation PushB CPU_DATA ;save bank configuration .byte PRG|$80,BASIC,SEQUENTIAL .word $2f3e-codeLong,$7fff,$2f40-4 .byte "GeoTurbo V2.0",0,0,0,0 .byte "Paul J. Bosacki " .block 3*15 z@00 ColdStart: sei cld ldx #$ff txs LoadB CPU_DATA,$30 ldy #0 tya @00I+InstallPatch: ldy $c049 iny bne InstallREU InstallGRAM: ldy #14-1 5$: lda patch,y sta $cfe0-$9000,y dey bpl 5$ LoadB InitForIO-$9000,$4c sta DoneWithIO-$9000 LoadW InitForIO+1-$9000,$cfe0 LoadW DoneWithIO+1-$9000pha lda $de00,x sta $e100,x pla sta $de00,x inx bne 20$ ldx #$90 ;command = STASH bne DoREUOp ;branch always ;Preserve first part of command buffer area at $9F01 for ;exit to Basic .byte 0,0,0,0,0,0,0,0 ;REU transfer routine DoREUOp: sf Pass1 .noeqin .noglbl .include geosSym .include geosMac .eqin .glbl .endif DTWhere == ($c3cf-$9000) DBWhere == ($c3f3-$9000) m_REU == ($9eb8-$2000) TREU = 1 Ll@00 Main: jmp tbMain dedication: .byte "turboBoot: for@00I+MDPatch: bra MDPickUp nop patch: lda #$af sta $00 jmp ($9000) doneIO: lda #$2f sta $00 jmp ($9002) ;Values for REU Command Register table: .byte $91 ;self-modified (initial command = FETCH) .word $de00 ;Address in@00 nameString: .byte "TURBOBOOT",NULL bootHead: .word nameString .byte 3,21,63|$80  .byte 255,255,255,128,000,001 .byte 191,224,001,191,255,001 .byte 144,255,125,136,018,085 .byte 136,060,017,136,100,017 .byte 136,18,$70 LoadB r2H,$10 LoadB r0L,0 sta r1L sta r2L jsr MoveData jsr InstallPatch PopB sysRAMFlg sta sysFlgCopy jsr GetDirHead MoveB curDirHead,track MoveB curDirHead+1,sector ldy curDrive lda driveType-8,y sta typeDrive+1 LoadW r0,ColdStart  LoadB CPU_DATA,$35 ;bank I/O in PushB $d015 ;save sprite enable register lda #0 ;turn sprites OFF for sta $d015 ; REU operations jsr o_SwizelPage ;download routines from REU jsr $e100 ;execute jsr o_SwizelPage ;restore normal GEOS routines $E1   ,$cfe0+(doneIO-patch) rts InstallREU: ldy #$cec9-$ceac 5$: lda MDPatch,y sta $ceac-$9000,y dey bpl 5$ LoadB InitForIO-$9000,$4c sta DoneWithIO-$9000 LoadW InitForIO+1-$9000,$ceb0 LoadW DoneWithIO+1-$9000,$ceb0+(doneIO-patch) .if (TREU) ldy #Rtx o_table ;self-modify the table ldx #10 ;copy 10 bytes from table 15$: lda o_table-1,x sta $df01-1,x ;last byte starts transfer dex bne 15$ 17$: lda $df00 ;wait to ensure complete and #$60 beq 17$ rts REUEnd: o_SwizelPage =(SwizelPage-REUOp)@00 Main: jmp tbMain dedication: .byte "turboBoot: for Noelle, Dylan and Alexander",NULL mBootName: .byte "TurboBoot",NULL tbMain: LoadB dispBufferOn,%10000000 lda MoveData+2 sub #]($bf40-$2f40) sta fixJMP+2 lda MoveData+ C64 for all transfers .word $ff00 ;Address in REU .byte 0 ;REU bank .word $100 ;transfer length .byte 0 ;No REU IRQs .byte 0 ;addrss increment mode nop MDPickUp: nop o_table =$ceb0+(table-patch) uh00I+.if (TREU) ;T8,057,132,168,001 .byte 132,188,001,132,046,113 .byte 136,053,185,136,015,077 .byte 136,000,037,136,240,005 @0 .byte 136,254,013,143,199,217 .byte 143,192,241,128,000,001 .byte 255,255,255  @00 LoadW r1,$2f40-codeLong LoadW r2,codeLong jsr MoveData LoadW $2f3e-codeLong,$2f40-codeLong LoadW r9,bootHead LoadB r10L,0 jsr SaveFile jmp EnterDeskTop n@00I+InstallPatch: ldy $c049 iny bne InstallREU InstallGRAM B r2L,$c0 fixJMP: jsr $ffff LoadB r0H,$70 LoadB r1H,$90 LoadB r2H,$10 LoadB r0L,0 sta r1L sta r2L jsr MoveData GreyScreen: LoadB CPU_DATA,$35 LoadW r0,$a000 ldx #$7d 10$: ldy #63 20$: lda #$55 sta (r0L),y dey lda #$aa sta (r0L),y dey @00 LoadW r9,dirEntryBuf LoadB r0L,0 ;bug fix: r0L must .eq 0 LoadW EnterDeskTop+1,o_BootTop lda #$c3 pha lda #$25 pha lda #$c4 pha lda #$e5 pha jmp LdApplic track: .block 1 sector: .block 1 nTrack: .block 1 nSecto<ff<.info_gw V1.0GATE WAY H h, 8ƈ`HHHHHHR  LoadB year,91 LoadB numDrives,1 ldy curDevice typeDrive: lda #3 sta curType sta driveType-8,y sty curDrive tya jsr SetDevice jsr NewDisk LoadW r0,$2f40-bootWhere LoadW r1,$5000 LoadW r2,bootLong jsr MoveData jmp o_FindExecs UUUUUU50$: ldy o_offset lda diskBlkBuf+2,y ;is file scratched? beq 30$ lda diskBlkBuf+$18,y cmp #AUTO_EXEC beq 40$ 30$: lda o_offset add #32 sta o_offset bne 50$ beq 60$ 40$: ldx #0 @0b4 70$: lda diskBlkBuf+2,y @0 bpl 20$ lda #64 add r0L sta r0L bcc 30$ inc r0H 30$: dex bne 10$ lda $dc0f and #$7f sta $dc0f LoadB $dc0b,$81 LoadB $dc0a,0 sta $dc09 sta $dc08 |@00 LoadB CPU_DATA,$30 ; jsr i_FillRam ; .word $500 ; .wordr: .block 1 offset: .block 1 HardStart: jmp $2f40-codeLong nop endCode: nop codeLong = endCode-ColdStart bootLong = HardStart-BootTop bootWhere = endCode-BootTop o_BootTop = $5000 o_sector = sector-BootTop+$5000 o_track = track-BootTop+$5000 o_nSecto<ff<@00b4  BootTop: sei cld ldx #$ff txs jsr $c436 jsr $c40d FindAutoExecs: MoveB o_sector,r1H MoveB o_track,r1L lda o_offset add #32 sta o_offset ;update offset for the next time bne 10$ 60$: MoveB o_nSector,r1H MoveB o_n@00 ColdStart: sei cld ldx #$ff txs LoadB CPU_DATA,$30 ldy #0 tya 5$: sta $8400,y sta $8500,y sta $8600,y sta $8700,y sta $8800,y dey bne 5$  LoadB r0H,$2f LoadB r1H,$bf LoadB r0L,$40 sta r1L sta r2H Load>0b4 sta dirEntryBuf,x iny inx cpx #$1e bne 70$ k@00 LoadW r9,dirEntryBuf LoadB r0L,0 ;bug fix: r0L must .eq 0 LoadW EnterDeskTop+1,o_BootTop lda #$c3 pha lda #$25 pha lda #$c4 pha lda #$e5 pha jmp L@00 LoadB CPU_DATA,$30 ; jsr i_FillRam ; .word $500 ; .word $8400 ; .byte 0 ldx #7 lda #$bb 40$: sta $8fe8,x dex bpl 40$ LoadB $8ff0,$bf jsr FirstInit jsr InitMouse LoadB interleave,8 LoadB day,22 LoadB month,08 r = nSector-BootTop+$5000 o_nTrack = nTrack-BootTop+$5000 o_offset = offset-BootTop+$5000 o_FindExecs = FindAutoExecs-BootTop+$5000 ng LoadW r2,codeLong jsr MoveData LoadW $2f3e-codeLong,$2f40-codeLong LoadW r9,bootHead LoadB r10L,0 jsr SaveFile Track,r1L bne 10$ 20$: lda #$c3 sta EnterDeskTop+2 lda #$26 sta EnterDeskTop+1 jmp EnterDeskTop 10$: MoveB r1H,o_sector MoveB r1L,o_track LoadW r4,diskBlkBuf jsr GetBlock txa bne 20$ MoveB diskBlkBuf+1,o_nSector MoveB diskBlkBuf,o_nTrack  ? G. (,).] ------------------------ HE NDIRECT ADDRESSING MODE TAKES THE SECOND BYTE OF THE INSTRUCTION (WHICH CONTAINS A ZERO PAGE ADDRESS) AND USES IT AS AN INDIRECT POINT CT ADDRESSING, E.G. (,).] ------------------------ HE NDIRECT ADDRESSING MODE TAKES THE SECOND BYTE OF THE INSTRUCTION (WHICH CONTAINS A ZERO PAGE ADDRESS) AND USES IT AS AN INDIRECT POINT  9000 :!:":#:$:% &')*5+ "CHNEDLER YSTEMS"N, "25 ASTWOOD OAD"d- ".. OX 5964". "SHEVILLE, 28813/0 "ELEPHONE (704) 274-46461234 "[EXT SCREEN CYCLE M TO THE NDEX . REGISTER. HE SIXTEEN-BIT RESULT IS A MEMORY ADDRESS CONTAINING THE EFFECTIVE ADDRESS. HIS ADDRESSING MODE IS UNIQUE TO THE 65XXX FAMILY OF DEVICES. HE ONLY INSTRUCTION THIS ADDRESSING MODE APPLIES TO IS , AND THE P ODE I LAG = 0 XAMPLE 2: ITS ESTED = 0000 1111 ($0) = 1111 0000 ($0) ------------------- ESULTS = 1111 1111 ($) LECTED MEMORY LOCATION DEPENDENT UPON THE RESULTS OF THE TEST. F ALL OF THE TESTED MEMORY BITS ARE ZEROS, THE FLAG IS SET. F ANY TESTED MEMORY BIT IS A ONE (1), THE FLAG IS RESET. ANY OF THE TESTED MEMORY BITS IS ZERO, THE FLAG IS RESET. S TO FIRST SCREEN.]5 9000'# 100(# PAUSE AND QUERY SUBROUTINEP2#: (18) "" (146) " FOR NEXT SCREEN."~<# (18) "" (146) " TO END PROGRAM.";F# K$: K$"" 9030P# (147)Z#T}U,JjWRT},JڵRmu)J ER. HIS ADDRESSING MODE ALSO IS UNIQUE TO THE 65XXX FAMILY OF DEVICES. ERE IS AN EXAMPLE: () OW MANY TIMES HAVE YOU INSTEAD HAD TO DO: #0 (), S $7. ERE IS AN EXAMPLE: (), [OTE: HE ABOVE SYNTAX IS WHAT THE ASSEMBLER ACCEPTS, AND MAKES SENSE TO US. OCKWELL GIVES THE FORM (,) WHICH SYMBOLICALLY CAN BE CONFUSED WITH NDEXED NDIRE  FLAG = 1 ----------------------------------------- HE NDEXED BSOLUTE NDIRECT ADDRESSING MODE TAKES THE CONTENTS OF THE SECOND AND THIRD INSTRUCTION BYTES AND ADDS THE  XAMPLE 1: ITS ESTED = 1111 0000 ($0) = 1111 0000 ($0) ------------------- ESULTS = 1111 0000 ($0) F IT ESET () ARE THREE BYTE INSTRUCTIONS THAT TAKE FIVE CLOCK CYCLES TO EXECUTE. F EXECUTED IN ECIMAL ODE, THESE INSTRUCTIONS ADD ONE MORE CLOCK CYCLE IF THE BRANCH OCCURS ON THE SAME PAGE AND ADD TWO CLOCK CYCLES IF THE BRANCH OCCURS ON A DIF IT TO BE AFFECTED AND MUST BE A VALUE FROM 0 TO 7, AND EXP MUST BE A PAGE ZERO ADDRESS (I.E. LESS THAN 256). XAMPLE: 0000 ; 0001 1035 97 10 1, $10 0002 1037 57 5, $ BYTE OPERATIONS AND BSOLUTE ADDRESSING MODES ARE THREE-BYTE OPERATIONS. ERO PAGE ADDRESSING [ MODE] TAKES THREE CLOCK CYCLES. ERO AGE NDEXED ADDRESSING [,] TAKES FOUR CLOCK CYCLES. BSOLUTE ADDRESSING () TAKES FOUR CLOCK CYCLES AND Y LOCATION, AND STORES THE RESULT IN THE SPECIFIED MEMORY LOCATION. HERE ARE TWO ADDRESSING MODES FOR THIS INSTRUCTION: (P CODE $14) (P CODE $1) HE ERO AGE ADDRE  HE FLAG IS SET IF THE RESULT OF THE PULL IS ZERO, AND CLEARED OTHERWISE. ---------- HIS INSTRUCTION CLEARS THE SPECIFIED MEMORY LOCATION (ERO AGE OR BSOLUTE) TO ALL ZEROS. HERE ARE FOUR ADDRESSING MODE E RESULTS OF THE TEST. F THE MEMORY BITS TESTED ARE ALL 1'S, THE FLAG IS SET. F ANY OF THE TESTED MEMORY BITS IS ZERO, THE FLAG IS RESET. XAMPLE 1: ITS ESTED = 0000  SEEM. IKE , EXCEPT THEY WORK WITH THE . AND . REGISTERS. (, ) -------------------------------------------------- HESE ALSO ARE JUST WHAT THEY SEEM. IKE , EXCEPT TH LAG = 0 XAMPLE 2: ITS ESTED = 0000 1111 ($0 BEFORE COMPLEMENT) = 1111 0000 ($0 AFTER COMPLEMENT) = 1111 0000 ($0) 1, $2, 0002 1059 7 00 7 7, 0, *+129 ------------- HIS IS JUST WHAT IT SAYS, AN UNCONDITIONAL BRANCH. THERWISE, THE FORMAT AND USE IS LIKE , , ETC. UBSTITUTES (WI R (.), S IT WITH THE SPECIFIED MEMORY LOCATION, AND STORES THE RESULT IN THE SPECIFIED MEMORY LOCATION. HERE ARE TWO ADDRESSING MODES FOR THIS INSTRUCTION: (P CODE $04) (P FERENT PAGE. HESE INSTRUCTIONS, WHEN EXECUTED, AFFECT THE 8-BIT DATA FIELD OF THE ZERO PAGE ADDRESS. ORMAT: HE FORMAT FOR THESE INSTRUCTION MODES IS: [LABEL] OP , EXP1, EXP2 WHERE: IS THE BIT NUMBER TO BE ------------------- WO BIT TEST ADDRESSING MODE INSTRUCTIONS ALLOW A TEST AND BRANCH ON INDIVIDUAL BITS OF MEMORY OR / BITS LOCATED IN PAGE ZERO. HE TWO INSTRUCTION MODES, RANCH ON IT ET () AND RANCH ON BSOLUTE NDEXED ADDRESSING (,) TAKES FIVE CLOCK CYCLES. () ------------------------- HIS INSTRUCTION TAKES THE COMPLEMENT OF THE CONTENTS OF THE CCUMULATOR (.), S IT WITH THE SPECIFIED MEMOR SSING MODE IS TWO BYTES AND USES FIVE CLOCK CYCLES. HE ABSOLUTE ADDRESSING MODE IS THREE BYTES AND USES SIX CLOCK CYCLES, BOTH ADDRESSING MODES AFFECT THE FLAG (ERO FLAG) AND MAY, OR MAY NOT, AFFECT THE SELECTED MEMORY LOCATION DEPENDENT UPON TH S FOR THIS INSTRUCTION: (P CODE $64) , (P CODE $74) (P CODE $9) , (P CODE $9) ERO PAGE ADDRESSING MODES ARE TWO  1111 ($0 BEFORE COMPLEMENT) = 1111 0000 ($0 AFTER COMPLEMENT) = 0000 1111 ($0) ------------------------------------- ESULTS = 0000 0000 ($00 AFTER TEST) F EY OPERATE ON THE . AND . REGISTERS. ULL INSTRUCTIONS (, AND DO NOT AFFECT THE CARRY OR OVERFLOW FLAGS. HEY DO SET OR RESET THE FLAG DEPENDING ON BIT 7 OF THE AFFECTED REGISTER AFTER THE PULL. LSO THE FLAG IS AFFECTED. ------------------------------------- ESULTS = 1111 0000 ($0 AFTER TEST) FLAG = 1 () ----------------------- HIS INSTRUCTION TAKES THE CONTENTS OF THE CCUMULATO THIN THE USUAL +127 TO -128 BRANCH RANGE) FOR , BUT SAVES ONE BYTE OF CODE AND TWO CLOCK CYCLES. (, ) ------------------------------------------------ HESE ARE JUST WHAT THEY  CODE $0) HE ERO AGE ADDRESSING MODE IS TWO BYTES AND USES FIVE CLOCK CYCLES. HE ABSOLUTE ADDRESSING MODE IS THREE BYTES AND USES SIX CLOCK CYCLES, BOTH ADDRESSING MODES AFFECT THE FLAG (ERO FLAG) AND MAY, OR MAY NOT, AFFECT THE SE TESTED AND MUST BE A VALUE OF 0-7, EXP1 IS A ZERO PAGE ADDRESS (I.E., LESS THAN 256), AND EXP2 IS AN EXPRESSION USED TO CALCULATE THE RELATIVE BRANCH ADDRESS. XAMPLE: 0000 ; 0001 1056 9 2 ) JJJ Ȉ` ¢ \Ȑ`΍bύcc.b*i? L ǩ ]à,LH hIL îd -  KLL ȩ: ǭ HH yh bh  ȈL) .L"5 "L ǭ ] e é:wL L ĩì ñƭƯƱʩ L8` m aΪ a ǩo̥ ϥΤӑ` m  mLȱ)  @`@E@ 0"E3@ @E3@ @E@ "D3ЌD"D3ЌD"D3@ "D3@ bx!YMJ,),#($YX$$#] f LJ&&` = ` eêeĨL -a L +xrsmnX` é -dmbbc cbLL ȥ  L  LkѦLǠ m:,$`Y 1ΐhhY$`ohh5x*ʕųŬì ñƭƯƱʩ L8` m aΪ a ǩo̥ ϥΤӑ` m  mLȱ)  @`@E@ 0"E3@ @E3@ @E@ "D3ЌD"D3ЌD"D3@ "D3@ bx!YMJ,),#($YX$$#]  L ^ɩ " [ }LJƹ DžÆ zLJ kʥLÅą% L3 JJ$P (Lɦ ` JJ `L kʥЕ (L é Ŋ L L Ȣ.$ 3  Ȣ0 ILE: " ." HIS DOCUMENTATION TEXT FILE IS BASED ON TWO PPENDICES FOUND IN THE OCKWELL "6500 ROGRAMMING ANUAL". HE OCKWELL PPENDIX IS ENTITLED "XPLANATION OF NSTRUCTION ODES OMMON TO 6500/* AND 65XXX EVICES U •h` Ȫ = =  =`  = - f8` - f`L VŰ:)(i` EL ` ``ML`TS`MLLǍ[ ȱ [`[ Ȑ [`N ǩ`d`H h. ǩ L , L L L XXX EVICES NLY." PPENDIX DESCRIBES EIGHT ADDRESSING MODES UNIQUE TO THE 65XXX FAMILY. HE REMAINDER OF THIS TEXT FILE ESSENTIALLY QUOTES VERBATIM FROM THE TWO PPENDICES MENTIONED, BUT WITH SOME REPHRASING. URBO ASTER USES A jMgbkZlRX0NXϮRHHL ȍ[ p ȭ ] Y  LJUXNlko= ǢSLijkl@X E g b E\ ȭX-x, ܭϮ iȩ;܎ܩ,,ܮRxSTLHMHNH 2 INSTRUCTION SET. IS CURRENTLY PUBLISHED BY, SUPPORTED BY, AND AVAILABLE FROM CHNEDLER YSTEMS UNDER AGREEMENT WITH ASTERN OUSE OFTWARE. -------------- WO BIT ADDRESS MODE INSTRUCTIONS ALLOW THE S  EL` Ǣu = ^0^8?Jnunt E!: VŰ Ȥ ©0ttڎbd[d ®ec 9Ž 9Ţ\e0 6ňe 9Ž 9 6 6ŭb[LF Ǭ\cɝ ʊ\dAw e  #)i#$S#$S[[i$$)|mi)S4i#bZH&bTDThDt(ntJrtttrDh2"&&rr&HDDSS MICROMON 6/27/88 PC IRQ SR AC XR YR SPABCDFGHLMNQRSTWX,:;$#"+-OK%&EPV?7¯pg+tȷC8P!ɼ@ˡ̧'F h@ӱ)ѭwS k8ð $, ʊ L9  , Q©LL L9ɑДА kmÐ ,! ͭ b éƢL L ͥ ǩk8k -k\\ bâ], YLͩۅ ONE MORE CLOCK CYCLE. HEN EXECUTED, THESE INSTRUCTION MODES AFFECT THE 8-BIT DATA FIELD OF THE SPECIFIED ZERO PAGE ADDRESS. ORMAT: HE FORMAT FOR THESE INSTRUCTION MODES IS: [LABEL] OP , EXP WHERE: IS THE B b.ci `bc` ȥ ˥ Ȋ)   i@ (L ȦLͽL L L o˅ f zL E  VŰ)`hh`HHH&&hehe…&he` ˍcHH h h : L 3 L o T OT VAILABLE ON TANDARD 6500 EVICES". PPENDIX DESCRIBES THE INSTRUCTION MODES WHICH ALLOW BIT ADDRESSING AND BIT TEST ADDRESSING OF THE DEVICES. HE OCKWELL PPENDIX IS ENTITLED "XPLANATION OF NSTRICTION ODES VAILABLE ON 65  W /; p ȭTS yLL b i +̮Rl =,` w E B )Å`t ` ^ #`"[ " [ tL` w ?L ? Dž Jɩ )L ɦäĩ OCKWELL 65024 PROCESSOR, SO ALL OF OF THE FOLLOWING ADDRESSING MODES ARE AVAILABLE, IN ADDITION TO THE STANDARD 6502/6510 ADDRESSING MODES, WHICH ARE NOT REPEATED HERE. OTE THAT THE ASSEMBLER, VERSION 5.0 OR HIGHER, WILL HANDLE THE FULL 650 OPQ@L Ǎghij ǍijLxϮύX i` Ǎtu Ǎ^_ Ǎkl E W] Ǯd $] ª L\3\8^ȱ_kȭlmtȱmu Ȉ0 ǎ]  Dž` DžÆ` ǥ jH hLH ETTING AND RESETTING OF INDIVIDUAL MEMORY BITS IN PAGE ZERO. HE TWO INSTRUCTION MODES, ET EMORY IT () AND ESET EMORY IT () ARE TWO BYTE INSTRUCTIONS THAT TAKE FIVE CYCLES TO EXECUTE. F EXECUTED IN DECIMAL MODE, THESE INSTRUCTIONS ADD  © x} jŎyz jŎ{|L - a La` 9ŎZ[t hhdLb[Z`0G`8`]`LHJJJJ vŪh)iii:`Oh)NPQhiMhiLXHHHHHlmآhL iȺRx ܭ 8̭N) L,XPLh LL$($$$,$$xmn蟮韍 irs꟮럍pq柭H78h7834VWXoX8ML b ΘM* R$?  . do .݆Y llp 5)x,*** %%,%  ì  ñƭƯƱ ʩ L 8` m. a. a. 'o̥ ϥΤӑ` m. ( m.L()  @`@E@ 0"E3@ @E3@ @E@ "D3ЌD"D3ЌD"D3@ "D3@ bx!YMJ,),#($YX$$#]  W /; p ݘTS ɗ ֗ yLL b i +Rl =,` w E B )Å`t ` ^ #`"[ " [ tL` w ?LƗ ? J )L äĩ  b.ci `bc` ɘ  ɘ)   i@ ʓ(L ɘLͽL L ՚L o f zLɘ E  V)`hh`HHH&&hehe…&he` cHH ɘ ɘh ݗ ɘh : ɘ ޚL ՛ 3 L o OPQ@L ghij ijLx蟮韍X i` tu ^_ kl E W] 问d $] ˒מ L\3\8^ȱ_kȭlmtȱmu 0 闎]  ` Æ` ݗ jH hLHh@ӱ)ѭwS k8ð Ɯ$, ʊ L9 ǒ , QLL ŚL9ɑДА kmÐ Ɯ,! ޝ b ƢL ޝ ȚL ޝ їk8k ǒ -k\\ b], Ę YLۅ x} jyz j{|L - a La` 9Z[t hhdLb[Z`0G`8`]`LHJJJJ vh)iii:`Oh)NPQhiMhiLXHHHHHlmآhL iRx ܭ 8N) L,XPLh#)i#$S#$S[[i$$)|mi)S4i#bZH&bTDThDt(ntJrtttrDh2"&&rr&HDDSS MICROMON 6/27/88 PC IRQ SR AC XR YR SPABCDFGHLMNQRSTWX,:;$#"+-OK%&EPV?7p̑ݙg+t阷C8Pؓ!@'ƛF) JJJ Ȉ`  \Ȑ`מbcc.b*i? Lɘ Ɨ ],LH hIL d -  KLL Θ: Ę ֗ HH yh bh  ʓ L) .L"5 "L Ɨ ] e :wL LΘ LL$($$$,$$xmnϮύ iȭrsϮύϮύpqϭH78h7834VWXoX8ML b ȢM* ǩR$?  . ǩdo .݆Y υυllp d` Q ɘ`Haha`bcL1ä8a¨ a`[ Θ - 闐 $9  d( $aeÅØeą  $ dL[ ݘ K` [d -ҭ[ X' [ ? X t E Z Ƞt XX Z Ȭd -L - ,  K e] H h *â\e ˆe _Ž _` ªȘ ŠZ ǮZ`\ …`8ªe`J J") JyΰJJJJ)΍e)\ L ^ " [ }LJƹ Æ zLJ kLÅą% L3 JJ$P (L뙦 ` JJ `L kЕ (L  ɘ  ݗL Ɨ ҚL Θ.$ ֗ 3  ɘ ޚ ɘ0 f LɘJ&&` = ` eêeĨL -a L +xrsmnX` -dmbbc cbLL Θ  L  ΘLkѦLї m:,$`Y 1hhY$`ohh•h`  = =  =`  = - f8` - f`L V:)(i` EL ` ``ML`TS`MLLɗ[ ɘ ݗ [`[  [`N ɗ`d`H Θh. L , L ֗Lɘ ɘL֗ Θĩì ñƭƯƱʩ L8` m a a ɗo̥ ϥΤӑ` m  mL)  @`@E@ 0"E3@ @E3@ @E@ "D3ЌD"D3ЌD"D3@ "D3@ bx!YMJ,),#($YX$$#]jMgbkZlRX0NXϮRHHL Θ [ p ɘ ] Y  LJUXNlko= SLijkl@X E g b E\ ΘX-x, ܭ꟮ i;܎ܩ,,ܮRxSTLHMHNH5x*؜ì ñƭƯƱʩ L8` m a a ɗo̥ ϥΤӑ` m  mL)  @`@E@ 0"E3@ @E3@ @E@ "D3ЌD"D3ЌD"D3@ "D3@ bx!YMJ,),#($YX$$#]Ɨ ї ELΗ` Ηu = ^0^8?Jnunt E!: V  0ttڎbd[d ˒ec 9מ 9\e0 6eʞ 9О 9 6 6b[LF 闬\cɝ ʊ\dAw e  d` Q¢ `Haha`bcL1ä8a¨ a`[ - ǐ $9  Ȭd( $aeÅØeą  $ dL[ K` ȍ[d -ҭ[ ˢX' [ ? ȍX ȝt E Z Θt XX Z d -L - ,  K e] ݘ ǒH h *\e eʞ _О _` Ș Z ݗZ`\ `8ªe`J J") JyJJJJ)e)\ L L $($$$,$$x//mn// i(//rs////pq//H78h7834VWXoX8ML b( (M* 'R$?  . 'do +.݆/Y //llp  b.ci `bc` * ( + ()   i@ #(L# (LͽL L+ ( *L  + o+ f+ z+L( E(  V%)`hh`HHH&&hehe…&he` +cHH ( (h ' (h :+ ( *L + ( 3+ +L  + o+ +  !W/ /; ( p( (TS ' ' ( y(L L ' b( ' i( ( ( +,Rl =(,` w) E( B) ()Å`t ` ^) )#`"[ +" [ tL ` w) ?)L' ) ?) ' J) )L )äĩ 5x*ì ñƭƯƱʩ L8` m a a o̥ ϥΤӑ` m  mL)  @`@E@ 0"E3@ @E3@ @E@ "D3ЌD"D3ЌD"D3@ "D3@ bx!YMJ,),#($YX$$#]OPQ@L 'ghij 'ijL x//X i(` 'tu '^_ 'kl E( W] 'd $!] ". !L \3\8^ȱ_kȭlmtȱmu (0 # '] ! '` 'Æ` ' j%H hLHĩì ñƭƯƱʩ L8` m a a o̥ ϥΤӑ` m  mL)  @`@E@ 0"E3@ @E3@ @E@ "D3ЌD"D3ЌD"D3@ "D3@ bx!YMJ,),#($YX$$#]! " x} j%yz j%{|L -! a L a` 9%Z[t hhdLb$[Z`0G`8`]`LHJJJJ v%h)iii:`Oh)NPQhiMhiLX/H/HHHHlmآhL i(Rx ܭ 8,N) 'L ,XPLh f LJ&&` = ` eêeĨL   -a  L +xrsmnX`   -dmbbc cbLL   L  LkѦL m:,$`Y 1hhY$`ohh) JJJ Ȉ` " !\Ȑ`.b/cc.b*i? L( ' ]#,L$H (hIL" #d -! # K(LL" (: ( ' HH y(h b#h ! # # (L) .L"5 "L ' ]# e% #:wL$ #L( h@ӱ)ѭwS , ,k8 ð ,$, ʊ " #L9- " ", Q"LL" ( *L9-ɑДА , ,km Ð ,,! - b# #ƢL - *L- - 'k8k " " -!k\\ b#], ( Y"L-ۅd` Q" (`Haha`bcL1!ä8a¨ a`[ ' ( -! ' $!9 ! (d( $!aeÅØeą ! ! $! dL [ ( K(` # ([d -!ҭ[ ( # +X' [ ) ? (X + (t  f+ +L(J&&` =( ` #eêeĨL, # ' -!a " (L +,xrsmnX` # * -!dmbbc (cbL,L (  L   (L kѦL' m.:,$`Y 1.hhY$`ohh (L ^) + " [ ) })LJ)ƹ 'Æ z)LJ) ) k*L Åą% L3 JJ$P (L) ` JJ `L ) k*Е (L) # " ( % 'L ' *L (.$ ' ' 3+ + ( * * (0#)i#$S#$S[[i$$)|mi)S4i#bZH&bTDThDt(ntJrtttrDh2"&&rr&HDDSS MICROMON 6/27/88 PC IRQ SR AC XR YR SPABCDFGHLMNQRSTWX,:;$#"+-OK%&EPV$&?!7"!p&!)g#+'t&()C!&8)P##!)*@++,,*',+F,•h` + ( =( =(  =(` ( =( -( f8` -( f`L V%:)(i` E(L ` ``ML`TS`MLL'[ ( ' ([`[ ( ([`N '`d`H (h. ' L ,  L 'L( (L' (#)i#$S#$S[[i$$)|mi)S4i#bZH&bTDThDt(ntJrtttrDh2"&&rr&HDDSS MICROMON 6/27/88 PC IRQ SR AC XR YR SPABCDFGHLMNQRSTWX,:;$#"+-OK%&EPV?7pg+tC8P!@'FjMgbkZlRX0NXϮR/H/HL& ( ([ ( p( ( ] Y"  'L JUXNlko= 'SL ijkl@X E( g ' b( E(\ (X-x, ܭ// i(;܎ܩ,,ܮRxSTLHMHNHh@ӱ)ѭwS  k8ð $, ʊ  L9  , QLL  L9ɑДА  kmÐ ,!   b ƢL   L  k8k   -k\\ b],  YLۅ' ' E(L'` 'u =( ^0^8?Jnunt E(!: V% ( "0ttڎbd[d "ec/ 9%. 9%\e0 6%e. 9%. 9% 6% 6%b[LF% '\cɝ %ʊ\dAw e%    ĩ ì  ñƭƯƱ ʩ L 8` m. a. a. 'o̥ ϥΤӑ` m. ( m.L()  @`@E@ 0"E3@ @E3@ @E@ "D3ЌD"D3ЌD"D3@ "D3@ bx!YMJ,),#($YX$$#]E( (Z (t XX Z ! (d -!L # -! , ! " K( e%] ( ( "H #h *#\e "e. _%. _%` "Ș "Z 'Z`\ "`8ªe`J J") Jy.JJJJ).e)\  "BOOTMON64.BAS"; MACHINE-LANGUAGE MONITOR BOOTZ PROGRAM FOR OPTIONAL USE`:zd A 0 A 4096Q$(34) " MACHINE-LANGUAGE MONITOR 64 BOOT", "1. MONITOR $1000 - $1FFF SYS 4096" 1 "2. MONITOR $2000 - LL$($$$,$$xmn irspqH78h7834VWXoX8ML b M* R$?  . do .݆Y llp  E Z t XX Z  d -L  - ,   K e]   H h *\e e _ _` Ș Z Z`\ `8ªe`J J") JyJJJJ)e)\ "OTE THAT THIS IS JUST A PLAIN 6502"2a "MONITOR, NOT 6502. T IS HOWEVER"`b "PROVIDED AS A CONVENIENCE TO PREVIOUS"c "SOFTWARE CUSTOMERS, SINCE EARLIER"d "VERSIONS OF ICROMON PROVIDED BY"f "CHNEDLER YSTEMS HAD A SUBROUTINE   EL` u = ^0^8?Jnunt E!: V  0ttڎbd[d ec 9 9\e0 6e 9 9 6 6b[LF \cɝ ʊ\dAw e Z TO USE THE ALK AND UICK TRACE." o 9000# "6502 . :")R "F INTEREST TO ASSEMBLY LANGUAGE"~ "PROGRAMMERS -- DOCUMENTATION TEXT" "FILE LISTING THE ADDITIONAL OP-CODES" "AVAILABLE WITH THE 6502 PROCESSOR IN"jMgbkZlRX0NXϮRHHL  [  p  ] Y  LJUXNlko= SLijkl@X E g  b E\ X-x, ܭ i;܎ܩ,,ܮRxSTLHMHNH . :" " FURTHER FILE OF INTEREST TO ASSEMBLY"K "LANGUAGE PROGRAMMERS -- TEXT FILE"z "DISCUSSING ADDITIONAL ADDRESSING MODES" "AVAILABLE WITH THE 6502 PROCESSOR." 9000 " :"•h`   = =  =`  = - f8` - f`L V:)(i` EL ` ``ML`TS`MLL[   [`[  [`N `d`H h.  L , L L L  L ^  " [  }LJƹ Æ zLJ  kLÅą% L3 JJ$P (L ` JJ `L  kЕ (L     L  L .$   3     0 $2FFF SYS 8192"? 6 "3. MONITOR $8000 - $8FFF SYS 32768"m @ "4. MONITOR $9000 - $9FFF SYS 36864" J "5. MONITOR $C000 - $CFFF SYS 49152"  " CHOOSE ONE"  B$: B$"" 500  B$"1" F$"0:MON64$1000d` Q `Haha`bcL1ä8a¨ a`[   -  $9  d( $aeÅØeą   $  dL[  K`  [d -ҭ[   X' [  ? X  t ) JJJ Ȉ`  \Ȑ`bcc.b*i? L  ],LH hIL d -  KLL :   HH yh bh     L) .L"5 "L   ] e :wL L CALL"g "TO A CASSETTE TAPE ROUTINE AND SO WOULD"Ah "NOT WORK WITH EATURE 1 SELECTED."Giwj "EVERAL MINOR PROBLEMS ARE FIXED. EAD"k "THE . FILE FOR MORE."lm "S A FINAL NOTE, YOU MUST SWITCH TO"n "1   x} jyz j{|L - a La` 9Z[t hhdLb[Z`0G`8`]`LHJJJJ vh)iii:`Oh)NPQhiMhiLXHHHHHlmآhL iRx ܭ 8N) L,XPLh "URBO ASTER , INCLUDING THE"+ "ENTIRELY NEW INSTRUCTIONS AND NEW"Q "ADDRESSING MODES FOR PREVIOUS" "INSTRUCTIONS. DDITIONALLY IDENTIFIES" "SOME SUBTLE MISCELLANEOUS DIFFERENCES" "OF THE 6502." "OPQ@L ghij ijLxX i` tu ^_ kl E W] d $]  L\3\8^ȱ_kȭlmtȱmu 0  ]  ` Æ`  jH hLH  "ASIC , AND DEFAULT". "TO DISK DEVICE 8. HEREFORE THE FORMf " " (34) "0:FILENAME" (34) " IS SUFFICIENT" "RATHER THAN " (34) "0:FILENAME" (34) ",8"  W /;  p TS    yLL  b  i   +Rl =,` w E B )Å`t ` ^ #`"[ " [ tL` w ?L  ?  J )L äĩ b.ci `bc`    )   i@ (L LͽL L  L  o f zL E  V)`hh`HHH&&hehe…&he` cHH  h  h :  L   3 L  o .EXE": A10  B$"2" F$"0:MON64$2000.EXE": A2Z  B$"3" F$"0:MON64$8000.EXE": A8  B$"4" F$"0:MON64$9000.EXE": A9  B$"5" F$"0:MON64$C000.EXE": A12 & F$"" 200 X "LOAD " Q$ F$ Q$  F$,8,1 MONITOR $2000 -  "SPEEDSWITCH DEMO"B SCREEN DISPAY PROGRAMMING BASEDi ON "TRANSACTOR" VOL. 5 ISSUE 02( PAGE 18 (FTOUTSM WITH COLOR)d ""iSP4: SC$(TI$,5,1): INITIAL SPEED AND TENS OF SECONDS j I55296 55301: I,1:: SET CO PROGRAM "RUN ME DOCS"F (14): UPPERCASE/LOWERCASE MODEc (147): SCREEN CLEARd "HIS PROGRAM, WHEN RUN, BRIEFLY"e "DESCRIBES THE VARIOUS FILES ON THE"f "URBO ASTER / DISK," g "REVISED 2/18/92 TO HOUT GOING TO".: "THE TROUBLE OF MAKING A NEW BOOT"W; "DISK. HEY PATCH FOR PROPER"< "SERIAL BUS OPERATION AT THE FAST"= "4.09 Z PROCESSOR SPEED."> 9000@ ". :"AB "OCUMENTATION FILE IN GEORIT d "THE WRITTEN SUPPLEMENT SHEETS THAT"5e "ACCOMPANY ASTER DAPTER";ffg "OR THE CURIOUS, ASSEMBLY-LANGUAGE"h "SOURCE CODE FILES IN GEORITE FORMAT"i "ARE ALSO INCLUDED, WITH THE PERMISSION"j "OF AUL OSACKI. OR URBO, T ASIC PROGRAM FOR DEMONSTRATION"G "PURPOSES. ESCRIBED ON PAGE 3 OF THE"W "MANUAL."] c y " :" "HIS PROGRAM." " AND AKEURBO :" "EPLACEMENTS FOR NOW-OBSOLETE" "OR VIEWING ON THE SCREEN AND"1 "PRINTING OUT THE SEVERAL SEQUENTIAL"` "TEXT FILES ON THIS DISK IF YOU HAVE NO" "OTHER WAY. HE PROGRAM IS QUITE SLOW" "BECAUSE IT USES THE ASIC #" "STATEMENT WHICH IS VERY INEFFICIENT"  "MONITOR COMMANDS." "64. :"%I " SHORT PROGRAM IN ASIC TO"r "CONVENIENTLY OAD AND COLD START" "ICROMON AT A SELECTED ADDRESS." "[ORE ICROMON STUFF ON NEXT SCREEN]" 9000X INCLUDE ASTER"? h "DAPTER FILES HOPEFULLY WITH BUGS FIXED."i i "HILE GOING THROUGH THE FOLLOWING" j "SCREENS, NOTE (ASSUMING YOU ARE" k "SWITCHED TO THE FAST 4.09 Z PROCESSOR" l "SPEED) JUST HOW FAST EACH NEW TEXT" m "SCREEN A TO SET 1 MHZ$  0,(((0) 127) 128)9  1024,14: "N"N  1025,15: "O"c  1026,18: "R"x  1027,13: "M"  1028, 1: "A"  1029,12: "L"   SUBROUTINE TO SET 4 MHZ  0,((0) 127)  1024, 6: "F" E FORMAT"C "FOR AND AKEURBO."D%E@F " :"FGjH " SPECIAL PROGRAM DESCRIBED"I "IN THE MANUAL FOR USE TO MAKE CERTAIN"J "BITMAPPED TEXT SCREENS VISIBLE. NE"K "EXAMPLE IS OCKET RITER 64 IN THLOR MEMORY WHITE FOR MESSAGE= k 400: NORMAL SPEED TO STARTF nC32Z x N41 1 1m 200: C192C{ A0 N B1030A 2024 N B,C 300: POSSIBLE SPEED CHANGE B,A,N 110: DO IT ALL AGAIN X(15(0)) AND ."= "OOT AND READ ., WHICH"^ "IS A GEORITE TEXT FILE."d o 9000 , " 1351 1351() 2 22:" - . "HESE ARE FOUR MOUSE INPUT DRIVERS" / "MODIFIED AS DESCRIBED IN HE"k "RELEVANT FILES ARE CC.HDR,"8l "CC.SRC, AND CC.LNK."em "OR AKE THE FILES ARE OOT.HDR,"n "OOT.SRC, AND OOT.LNK."o 9000 "64 :" " SIMPLE SEQUENTIAL FILE READER" "PROGRAM FPPEARS WHEN YOU PRESS THE"@ n "SPACEBAR. WITCH FOR A MOMENT TO"n o " 1 TO COMPARE TO THE NORMAL"} p "SPEED." q r ": HIS DISK HAS BEEN SET UP AS" s "A DISK AS THERE ARE SEVERAL" t " APPLICATIONS ON IT. "WHEN DOING SERIAL BUS OPERATIONS"= " REGULAR WORDPROCESSOR PROGRAM IS A"e "BETTER WAY TO READ THESE FILES."p 9000 ". : " SEQUENTIAL TEXT FILE LISTING THE" "VARIOUS ICROMON MACHINE-LANGUAGE"E"L "80-COLUMN WORDPROCESSOR MODE."!M 9000L^ " , , URBO AND^_ "AKE :"d`a "HESE PROGRAMS ARE FOR USE IN"b "CONNECTION WITH ASTER DAPTER. HE"c "USE OF THESE PROGRAMS IS DESCRIBED IN" "64$1000., 64$2000.,".Y "64$8000., 64$9000.,"ZZ "64$000. :"`[\ "HESE ARE THE ACTUAL ICROMON PROGRAM"] "FILES IDENTICAL TO EACH OTHER EXCEPT"^ "FOR LOAD ADDRESS."_`THE MANUAL"(0 "TO ALLOW MOUSE OPERATION AT 4Z"H1 "WITHOUT POINTER JITTER."N2T3Z4}5 " AND :"67 " APPLICATIONS WHICH ARE NOW"8 "SUPERSEDED BY AND AKEURBO."9 "AN STILL BE USED WITm 1025, 1: "A"  1026,19: "S"1 & 1027,20: "T"F 0 1028,32: " "[ : 1029,32: " "a DNOT YET ELAPSED 6SC$XX$: SAVE NEW TENS OF SECONDS @ SP4 SP1: 400: : 1 MHZ J SP1 SP4: 500: : 4 MHZ  SUBROUTINE O DO NOT"3 u "VALIDATE THIS DISK USING THE REGULAR"b v "1541 ALIDATE COMMAND, OR YOU WILL" w "RISK DAMAGING THE APPLICATIONS." x "LL OTHER FILE OPERATIONS ARE NORMAL." y 9000 " :"  " SHORT: Y(15(0))# 53280,X: 53281,Y9 I1 100: : w ,XX$(TI$,5,1): SC$XX$ : INTERVAL NOT YET ELAPSED 6SC$XX$: SAVE NEW TENS OF SECONDS @ SP4 SP1: 400: : 1 MHZ J SP1 SP4: 500: : 4 MHZ  SUBROUTINEAa!  PV L Turbo 2/18/92SS2AGEOS format V1.0SPEEDSWITCH DEMORUN ME DOCSBOOTMakeTurbo[0TM 1351 Y TM 1351(A) Y TM 2B Y  TM L2R2L Y  PATCH GEOS[ AUTO PATCH [ MAKETURBO.DOC[ SET BITMAP COLORTEST REUTEST GEORAMMakeREU\TurboREU\  .info_gw\5FILEREADER.BASMICROMON.DOC&BOOTMON64.BASMON64$1000.EXEMON64$2000.EXEMON64$8000.EXEMON64$9000.EXE MON64$C000.EXE65C02 OPS.DOC INSTR MODES.DOC% REUAcc.hdr\  REUAcc.src\ REUAcc.lnk\ TBoot.hdr[ 0 TBoot.src \ " TBoot.lnk\ # PROGRAM "SET BITMAP COLOR"C BASIC WITH M.L. APPENDEDML (45)(46)256045: START OF APPENDED M.L. CODE(XR781: YR782: TO PASS PARAMETERS2 (14) (147): LOWERCASE AND CLR< "IT MAP COLOR FILL UTILITY" F "FOR OR UIT ()"; X$"": X$6 X$"C" X$"" 170I "BORTED": x : "EFAULTS WILL GIVE WHITE CHARACTERS" "ON A BLACK BACKGROUND.": : "IXEL COLOR, RANGE 0 - 15 1"; "";: CX1: CX CX0 CX15 "U]: "ONE! OW ENABLE URBO ASTER ."x) )І X`ULTS WILL GIVE WHITE CHARACTERS" "ON A BLACK BACKGROUND.": : "IXEL COLOR, RANGE 0 - 15 1"; "";: CX1: CX CX0 CX15 "U  "FILEREADER.BAS"> SEQUENTIAL FILE READER PROGRAMfF (14): SCREEN TO LOWERCASE MODEP "EQUENTIAL ILE EADER FOR 64"Z " BAR TO PAUSE.": "NY KEY TO RESUME."d " TO ABORT."nN$"": "FILE NAME TO READ"; N$4,4,7: 230 180D 15,DV,15,"I"DR$: OPEN DISK ERROR CHANNEL] 320: ENSURE O.K. 10,DV,10,DR$":"N$",S,R": DISK CHANNEL FOR READ  320: ENSURE OPEN O.K. #10, X$: SVST 4, X$; " SV0 310 , K$: K$""  OMMANDS ----------------- S A CONVENIENCE, WE ARE PROVIDING ON THIS DISK A VERSION OF THE MACHINE-LANGUAGE MONITOR ORIGINALLY DEVELOPED BY ILL EILER. E HAVE AHE ENTIRE WORK IS THEIR OWN. UR (CHNEDLER YSTEMS) ORIGINAL MODIFICATIONS WERE DONE 1/1/85. HIS REVISION IS DATED 6/27/88, AND INCLUDES THE FOLLOWING "BUG FIXES" COMPARED TO 1/1/85: HE ALK () COMMAND IS FIXED SO THAT IT DOESN'T STUTTER. EFOES THE ASIC COMMANDS 4,4,0: 4. HEN SWITCHING BACK TO CREEN, A CARRIAGE ROUTINE IS SENT TO THE PRINTER TO ENSURE YOU GET THE LAST LINE OUT. INALLY, A SUBROUTINE CALL TO CASSETTE TAPE ROUTINES IS ELIMINATED, SO THE MONITOR SHOULD BE COMPAMakeREU[ 8FILEREADER.BASMON64$8000.EXEMON64$9000.EXEMAKETURBO.DOC[ INSTR MODES.DOC% BY THE CHNEDLER VERSION OF 64. OU CAN PRINT OUT THIS FILE FOR REFERENCE. HILE DOES PROVIDE SOME DEBUGGING CAPABILITIES, THEY ARE SOMEWHAT LIMITED, AND IF YOU ARE INTERESTED IN TESTING AND DEBUGGING YOUR ASSEMBLY LANGUAGE PROGR Ϡ ()": E P "SE WHEN NEEDED TO FILL AT $000"v Z "WITH BIT MAP COLOR DATA. EE MANUAL.": d "UN IN REGULAR 64 MODE (URBO" n "ASTER ), ENABLE" x "URBO ASTER .": "ONTINUE ()T OF RANGE. RY AGAIN.": 190F : "IXEL COLOR, RANGE 0 - 15 0";_ "";: CY0: CY CXCY : "AN'T HAVE SAME COLORS. TART OVER.": 170 CY0 CY15 "UT OF RANGE. RY AGAIN.": 220  XR,CX: YR,CY: ML$ AMS AS QUICKLY AS POSSIBLE, WE STRONGLY RECOMMEND YOU CONSIDER THE -6510 SYMBOLIC DEBUGGER. OR THOSE WHO ARE INTERESTED, THE SOURCE CODE FOR THIS VERSION OF ICROMON IS AVAILABLE IN ASSEMBLER FORMAT DIRECTLY FROM CHNEDLER YSTEMS, 2 xDR$"": "DRIVE 0"; DR$3 DR$"0" 160G DR$"1" 160Q 120j "DEVICE 8"; DV DV8 DV11 160 SP$"": "OUTPUT TO SCREEN (S) OR" "PRINTER (P) S";SP$ SP$"S" 4,3,7: 230 SP$"P" 270 . K$"Q" K$"" 310. 0 K$" " 3088 2 270P 4 K$: K$"" 308Z 5 270u 64: 4: 10: 15: @ SUBROUTINE TO CHECK DISK ERROR CHANNEL J15, A,B$,C,D T A0 ^ 4: 10: 15 h A;B$;C;D r$"P" SSEMBLED IT TO LOAD RUN AT FIVE DIFFERENT ADDRESSES, SO CHOOSE THE ONE MOST CONVENIENT TO YOU. HE ORIGINAL PROGRAM HAS BEEN MODIFIED MANY TIMES BY MANY PEOPLE, AND SOME MODIFICATIONS HAVE EVEN BEEN PUBLISHED BY OTHER PERSONS IMPLYING THAT TRE THE MONITOR DID NOT ALLOW FOR THE POSSIBILITY THAT THE CHIP WOULD STEAL BUS CYCLES. HE RINT WITCHER () COMMAND NOW WORKS PROPERLY, AND TOGGLES OUTPUT BETWEEN THE CREEN AND RINTER EVICE #4. HEN SWITCHING TO RINTER, THE COMMAND EMULAT TIBLE WITH VARIOUS "FEATURE" ERNAL S THAT HAVE THE TAPE ROUTINES REMOVED. NE SUCH EXAMPLE IS ONE OF THE TWO ERNAL VERSIONS IN URBO ASTER , OUR 4 Z ACCELERATOR. O HERE IS A COMPLETE DESCRIPTION OF ALL THE COMMANDS RECOGNIZED5 ASTWOOD OAD, .. OX 5964, SHEVILLE, ORTH AROLINA 28813. ELEPHONE (704) 274-4646. HE COST IS $10.00, WHICH ESSENTIALLY COVERS OUR HANDLING. . 2000 #$12 ICROMON RESPONSE: . 2000 9 12 #$12 . 2002  AND THEN TO ASIC WARM START ADDRESS. IMILIAR TO ILL (.). . 1000 1100 ILL MEMORY FROM $1000 THROUGH $1100 WITH THE BYTE $. . XECUTE BEGINNING WITH THE ADDRESS IN THE REGISTER DISPLAY. HE REGISTERS ARE RE BEFORE ICROMON WAS ENTERED AND EXECUTE A INSTRUCTION. SUALLY LEADS TO ASIC WARM START. . 000 000 ' UNT MEMORY FROM $000 THROUGH $000 FOR THE STRING, AND PRINT ADDRESS WHERE FOUND. AXIMUN 32 CHARACTERS. . 000 ILE HEADER. HE ENDING ADDRESS (PLUS 1) IS REPORTED TO YOU. HE SECOND EXAMPLE LOADS TO STARTING AT $1000, REGARDLESS OF THE FILE HEADER. HE LOAD ADDRESS 1000 IS IN HEX, AND ALL FOUR PLACES MUST BE GIVEN. HE ENDING ADDRESS (PLUS 1) IS REPORT PRECISELY THE SAME AS FOR "" (OAD). LOAD DOES NOT ACTUALLY OCCUR, BUT THE ENDING ADDRESS (PLUS ONE) IS REPORTED AS THOUGH IT HAD. . 3000 3008 .: 3000 30 31 32 33 34 35 36 37 01234567 .: 3008 38 41 42 43 44 45 46 47 8 DS IN THE ADDRESS RANGE $000 THROUGH $, AND ADD $6000 OFFSET TO THOSE OPERANDS. . 25 2 6000 000 EARCH MEMORY $25 THROUGH $2, WHICH YOU HAVE DETERMINED TO BE TWO-BYTE ORD TABLE DATA. IND ORD ADDRESSES IN THE RANGE $000 THMPT DOES NOT APPEAR ON THE SCREEN, BUT YOUR COMMANDS WILL WORK ANYWAY. OR OUTPUT TO A DISK FILE (E.G. FOR LATER WORD PROCESSING) . TO ASIC, ENTER 8,8,8,"0:FILENAME,,": 8: 2. HE 2 DOES A ENTRY TO MONITOR. HEN DONE WITH DIENCE. TOP WITH AND "=" KEYS AT THE SAME TIME. . .; 0000 455 32 02 03 04 . "0:",000,200 AVE TO DISK EVICE 8 MEMORY FROM $000 UP TO, BUT NOT INCLUDING, $200. TWO BYTES OF A PROGRAM FILE, CLOSES THE FILE, AND REPORTS TO YOU IN HEX THE LOAD ADDRESS REPRESENTED BY THAT HEADER. HIS IS THE ADDRESS WHERE THE FILE WOULD LOAD ON ITS OWN IF YOU WERE TO DO A NON-RELOCATING LOAD. HE AND UMMY COM . 1000 00 SED WITH THE UICK RACE COMMAND. HIS EXAMPLE SETS A BREAK AT $1000 ON THE $TH OCCURENCE OF THE INSTRUCTION AT $1000. F NO COUNT SPECIFIED, BREAKS FIRST TIME. . 1000 2000 000 LOCK $1000 THROUGH $1 COYTES FOLLOWING THE ADDRESS CAN BE MODIFIED AND ENTERED TO CHANGE THE INSTRUCTION. ISASSEMBLY SCROLLS UP AND DOWN UNDER CONTROL OF THE UP/DOWN KEY. . ESET AND VECTORS AS THEY WERE BEFORE ICROMON WAS ENTERED PLACED WITH THE DISPLAYED VALUES BEFORE EXECUTION. . 1000 XCUTE BEGINNING AT $1000. SE THIS COMMAND TO TEST YOUR CODE, OR TO ENTER ANOTHER MACHINE LANGUAGE PROGRAM BY COLD OR WARM START. . ESET AND VECTORS AS THEY WERE  000 20 2 UNT FOR SEQUENCE OF BYTES. AXIMUM 32 BYTES. . "" -- HEADER LOAD, NON-RELOCATING . 1000 "" -- RELOCATED LOAD HE FIRST EXAMPLE LOADS STARTING AT THE ADDRESS SPECIFIED BY THE FED TO YOU. DUMMY .(SEE NOTE) "" -- HEADER .(SEE NOTE) 1000 "" -- RELOCATED HE "SEE NOTE" CHARACTER IS A HIFT/, WHICH PRODUCES A OMMODORE GRAPHICS CHARACTER RESEMBLING AN "". THER THAN THAT, THE SYNTAX ISISPLAYS MEMORY IN THE RANGE SPECIFIED IN AND INTREPRETATION. YTES CAN BE MODIFIED AND ENTERED. CROLLS UP AND DOWN . 2000 2100 6000 000 EARCH MEMORY $2000 THROUGH $2100. IND ALL THREE-BYTE INSTRUCTIONS WITH OPERANROUGH $, AND ADD $6000. . 1004 1000 ICROMON RESPONSE: . 1004 1000 RANCH OPCODE AT $1004. ARGET ADDRESS $1000. . OGGLE OUTPUT BETWEEN SCREEN AND PRINTER. URING PRINTER OUTPUT, THE (.) PROSK OUTPUT, . AGAIN TO ASIC, THEN #8: 8. . EGIN AT OF REGISTER DISPLAY. . 1000 EGIN AT $1000 N EITHER CASE, EXECUTE SIMILIAR TO ALK, WITH NO DISASSEMBLY OUTPUT. SE WITH REAK SET COMMAND TO STOP ON THE TH OCCUR . 4000 4 6000 RANSFERS A COPY OF THE DATA FROM MEMORY BLOCK $4000 TO $4 INCLUSIVE TO THE BLOCK BEGINNING AT $6000. N THE EXAMPLE HERE, THE ENDING ADDRESS OF THE COPY IS $. . "" HIS COMMAND READS THE FIRST MANDS TOGETHER ALLOW YOU TO DETERMINE IN ADVANCE WHERE A PROGRAM FILE WILL LOAD, WITHOUT THE RISK OF CLOBBERING SOMETHING ELSE. AUTION IN YOUR CONCLUSIONS: IN MANY COPY-PROTECTION SCHEMES, THE HEADER ADDRESS IS SOMETHING TOTALLY FICTITIOUS, PUT IN  MPARED TO $000 THROUGH $. RINT ADDRESSES IN FIRST BLOCK WHICH DO NOT MATCH THOSE OF SECOND. . 2000 2005 ., 2000 9 12 #$12 ., 2002 9 00 80 $8000, ., 2005 ISASSEMBLES THE RANGE SPECIFIED. HE B . ICROMON OMMAND UMMARY ------------------------ IMPLE SSEMBLE REAK ET OMPARE EMORY IMPLE ISASSEMBLE XIT TO ASIC OCATOR RANCH OFFSET CALCULATE UTPUT SWITCHER UICK TRACE EGISTER DISPLAY AVE TO DISK RANSFER MEMORY IEW DISK FILE HEADER ADDRESS AL HECKSUM RANCH OFFSET CALCULATE UTPUT SWITCHER UICK TRACE EGISTER DISPLAY AVE TO DISK RANSFER MEMORY IEW DISK FILE HEADER ADDRESS AL LL$($$$,$$xmn菮鏍 irsꏮ돍pq揭H78h7834VWXoX8ML b ΈM* R$?  . do .݆Y llp E Z Έt XX Z d -L - ,  K e] ݈ ǂH h *\e eʎ _Ў _` Ș Z ݇Z`\ `8ªe`J J") JyJJJJ)e)\Ƈ ч EL·` ·u = ^0^8?Jnunt E!: V  0ttڎbd[d ˂ec 9׎ 9\e0 6eʎ 9Ў 9 6 6b[LF 釬\cɝ ʊ\dAw e jMgbkZlRX0NXϮRHHL Έ [ p Ɉ ] Y  LJUXNlko= SLijkl@X E g b E\ ΈX-x, ܭꏮ i;܎ܩ,,ܮRxSTLHMHNHTO CONFUSE. . TART WITH DISPLAY ADDRESS . 1000 TART AT $1000 INGLE STEP EXECUTION, AND DISASSEMBLE NEXT INSTRUCTION. KEY STOPS. KEY DOES QUICK EXECUTE OF SUBROUTINE. . ARM START ASIC WITHOUT RESETTEX TO DECIMAL, AND BINARY. AN BE SCROLLED IF YOU LIKE TO SEE COUNTING. .#16706 ICROMON RESPONSE: .#16706 4142 A B 0100 0001 0100 0010 ONVERT DECIMAL TO HEX. AND BINARY. LSO SCROLLS. .%01000IMAL AND BINARY. .+ 1111 2222 3333 1111 AND 2222 WERE ENTERED. UM 3333 DISPLAYED. .- 3333 1111 2222 - .& 000 672 ALCULATES CHECKSUM OF ALL BYTES IN THE MEMORY RANGE $000 $ WITH VECTORS RESTORED ILL MEMORY O EXECUTE UNT MEMORY ILL. ESTORE VECTORS AND BREAK. OAD FROM DISK / UMMY OAD EMORY DISPLAY EW LK CODE XIT TO BASIC. EEP ICROMON VECTORS $ EX CONVERSION # ECIMAL CONVERSION % INARY CONVERSION " CONVERSION + EX ADDITION - EX SUBTRACTION & •h`  = =  =`  = - f8` - f`L V:)(i` EL ` ``ML`TS`MLLɇ[ Ɉ ݇ [`[  [`N ɇ`d`H Έh. L , L ևLɈ ɈLև Έd` Q Ɉ`Haha`bcL1ä8a¨ a`[ Έ - 釐 $9  d( $aeÅØeą  $ dL[ ݈ K` [d -ҭ[ X' [ ? X t ) JJJ Ȉ`  \Ȑ`׎bcc.b*i? LɈ Ƈ ],LH hIL d -  KLL Έ: Ĉ և HH yh bh  ʃ L) .L"5 "L Ƈ ] e :wL LΈ  x} jyz j{|L - a La` 9Z[t hhdLb[Z`0G`8`]`LHJJJJ vh)iii:`Oh)NPQhiMhiLXHHHHHlmآhL iRx ܭ 8N) L,XPLh OPQ@L ghij ijLx菮鏍X i` tu ^_ kl E W] 釮d $] ˂׎ L\3\8^ȱ_kȭlmtȱmu 0 野]  ` Æ` ݇ jH hLHING AND VECTORS. XECUTING ANY REAK INSTRUCTION WILL GET YOU RIGHT BACK TO ICROMON. 2 USUALLY WORKS, SINCE THAT ADDRESS OFTEN HAS A ZERO BYTE. .$4142 ICROMON RESPONSE: .$4142 16706 A B 0100 0001 0100 0010 ONVERT H 00101000010 ICROMON RESPONSE: .%0100000101000010 4142 16706 A B ONVERT BINARY TO HEX, DECIMAL AND . ." ICROMON RESPONSE: ." 41 65 0100 0001 ONVERT , AS WELL AS THE VARIOUS CONTROL CHARACTERS, TO HEX, DEC ILE: "6502 ." HIS DOCUMENTATION TEXT FILE IS BASED ON SEVERAL CHARTS FOUND IN THE 6502 MICROPROCESSOR SECTION OF OCKWELL'S "ONTROLLER RODUCTS ATA OOK". HIS FILE GIVES THE OP-CODES FOR THE NEW INSTRUCTIONS IN THE 6502 PROCE RUCTION SET. HE OCKWELL "6500 ROGRAMMING ANUAL" IN ITS PPENDIX GIVES THE COMPLETE INSTRUCTION SET IN CHARTS BY MNEMONIC IN ALPHABETICAL ORDER, SO REFERENCE MAY BE HAD TO THAT FOR THE COMPLETE STORY. HE "ONTROLLER RODUCTS ATA OO  W /; p ݈TS ɇ և yLL b i +Rl =,` w E B )Å`t ` ^ #`"[ " [ tL` w ?LƇ ? J )L äĩ  b.ci `bc` Ɉ  Ɉ)   i@ ʃ(L ɈLͽL L ՊL o f zLɈ E  V)`hh`HHH&&hehe…&he` cHH Ɉ Ɉh ݇ Ɉh : Ɉ ފL Ջ 3 L o h@ӱ)ѭwS k8ð ƌ$, ʊ L9 ǂ , QLL ŊL9ɑДА kmÐ ƌ,! ލ b ƢL ލ ȊL ލ чk8k ǂ -k\\ b], Ĉ YLۅ#)i#$S#$S[[i$$)|mi)S4i#bZH&bTDThDt(ntJrtttrDh2"&&rr&HDDSS MICROMON 6/27/88 PC IRQ SR AC XR YR SPABCDFGHLMNQRSTWX,:;$#"+-OK%&EPV?7ṕ݉g+t鈷C8P؃!@'ƋF COMPATIBILITY IN SOME CIRCUMSTANCES. OTE THAT THE ASSEMBLER, VERSION 5.0 OR HIGHER, WILL HANDLE THE FULL 6502 INSTRUCTION SET. IS CURRENTLY PUBLISHED BY, SUPPORTED BY, AND AVAILABLE FROM CHNEDLER YSTEMS UNDER AGREEMENT WITH AST USH ON STACK [MPLIED] 5 USH ON STACK [MPLIED] ULL FROM STACK [MPLIED] 7 ULL FROM STACK [MPLIED] 9 TORE ZERO [BSOLUTE] 9 TORE ZERO [,] 64 ULATOR [] 04 EST AND ET MEMORY BITS WITH ACCUMULATOR [] 0-7(1) RANCH ON IT ESET [IT MANIPULATION, , ] 8-(1) RANCH ON IT ET [IT MANIPULATION, , ] 07-77(1) ESET EMORY IT [IT MA------- EX NEMONIC ESCRIPTION --- -------- ----------- 72 DD MEMORY TO ACCUMULATOR WITH CARRY [()] 32 MEMORY WITH ACCUMULATOR [()] 3 EST MEMORY BITS WITH ACCUMULATOR [,] 34SSOR NOT FOUND IN THE PLAIN 6502/6510, AS WELL AS THE OP-CODES FOR THE NEW ADDRESSING MODES GIVEN TO INSTRUCTIONS THAT PREVIOUSLY WERE PRESENT. O ATTEMPT IS MADE HERE TO LIST THE FULL OP-CODE SET, JUST THE ADDITIONS TO THE STANDARD 6502 INSTK" AND THE SEPARATE OCKWELL 6502 DATA SHEET EACH INCLUDEA ONE-PAGE NSTRUCTION ET P ODE ATRIX CHART. HIS TEXT FILE CONCLUDES WITH A CHART OF "6502 PERATIONAL NHANCEMENTS", SOME OF WHICH ARE VERY SUBTLE DIFFERENCES THAT MAY AFFECT  L ^ " [ }LJƹ Æ zLJ kLÅą% L3 JJ$P (L뉦 ` JJ `L kЕ (L  Ɉ  ݇L Ƈ ҊL Έ.$ և 3  Ɉ ފ Ɉ0 f LɈJ&&` = ` eêeĨL -a L +xrsmnX` -dmbbc cbLL Έ  L  ΈLkѦLч m:,$`Y 1hhY$`ohhĩì ñƭƯƱʩ L8` m a a ɇo̥ ϥΤӑ` m  mL)  @`@E@ 0"E3@ @E3@ @E@ "D3ЌD"D3ЌD"D3@ "D3@ bx!YMJ,),#($YX$$#]5x*،ì ñƭƯƱʩ L8` m a a ɇo̥ ϥΤӑ` m  mL)  @`@E@ 0"E3@ @E3@ @E@ "D3ЌD"D3ЌD"D3@ "D3@ bx!YMJ,),#($YX$$#]ERN OUSE OFTWARE. EXADECIMAL ODES OR EW NSTRUCTIONS -------------------------------------- EX NEMONIC ESCRIPTION --- -------- ----------- 80 RANCH RELATIVE ALWAYS [ELATIVE]  TORE ZERO [] 74 TORE ZERO [,] 1 EST AND ESET MEMORY BITS WITH ACCUMULATOR [] 14 EST AND ESET MEMORY BITS WITH ACCUMULATOR [] 0 EST AND ET MEMORY BITS WITH ACCUM NIPULATION, ] 87-7(1) ET EMORY IT [IT MANIPULATION, ] OTE (1): OST SIGNIFICANT DIGIT CHANGE ONLY. EXADECIMAL ODES OR NSTRUCTIONS ITH EW DDRESSING ODES ----------------------------------------------------- EST MEMORY BITS WITH ACCUMULATOR [,] 89 EST MMEDIATE WITH ACCUMULATOR [] 2 OMPARE MEMORY AND ACCUMULATOR [()] 3 ECREMENT ACCUMULATOR [CCUM] 52 XCLUSIVE  UBTRACT MEMORY FROM ACCUMULATOR WITH BORROW [()] 92 TORE ACCUMULATOR IN MEMORY [()] 6502 PERATIONAL NHANCEMENTS ------------------------------ UNCTION 6502/6510  ERMINATE ONLY BY LL ARE S OP CODES RESET. ESULTS ARE (RESERVED FOR FUTURE UNDEFINED. USE). UMP NDIRECT, WHERE AGE ADDRESS DOES NOT AGE ADDRESS OPERAND = XX  CYCLE. ECIMAL FLAG NDETERMINATE AFTER RESET. NITIALIZED TO BINARY MODE (=0) AFTER RESET AND INTERRUPTS. LAGS AFTER DECIMAL 9NTERRUPT IS EXECUTED. IGNORED. R RESET. NITIALIZED TO BINARY MODE (=0) AFTER RESET AND INTERRUPTS. LAGS AFTER DECIMAL  "BOOT",8,1 Р!Щ U P lL