Mercurial > hg > Members > kono > nitros9-code
view 3rdparty/utils/sleuth3/cssoutcd3.asm @ 3210:6353bb024571
Created makefile and defsfile for NoCan RAMMER module driver and descriptor
Updated rammer.asm in the NoCan driver folder to build the NoCan version of the Driver
Updated r0.asm file to create the 6MB version of the descriptor.
The makefile creates a disk image with two sets of the required drivers for
the 6309 and 6809's in their respective module folders.
/NITROS9/6309_L2/MODULES/RBF
for the 6309 files
and
/NITROS9/6809_L2/MODULES/RBF
for the 6809 files.
This will make it easier for doing a dsave from this disk image into a
normal distro disk image so people have these drivers ready for when
new memory upgrades allow compatible usage of the NoCan registers.
author | David Ladd <drencor-xeen@users.sourceforge.net> |
---|---|
date | Wed, 20 Dec 2017 15:15:49 -0600 |
parents | afd0f7d9b514 |
children |
line wrap: on
line source
*************************************** ** outpt lda instx,u output instr cmpa #$4b chk ign bne outor sta dorgs,u set org flag rts outor lda instx,u chk type bmi outfc cmpa #$48 h bne outnh outfc leax fcbxx,u gen fcb stmt lbsr xpdat leax inst1,u ldb fllth,u outhw beq outhx lbsr xot2h xx lda #$2c , lbsr xoute lda #$24 $ lbsr xoute decb bra outhw outhx lbsr xot2h xx tst instx,u bpl outhy lbra outi7 outhy lbra xcrlf outnh cmpa #$41 bne outnb leax fdbxx,u gen fdb stmt lbsr xpdat lda zlabel,u prefix z tst pmode,u chk for 6809 bpl outzx tst os9flx,u chk for OS/9 beq outzx lda xlabel,u prefix x outzx lbsr xoute z/x leax raddr,u lbsr xot4h xxxx bra outhy outnb cmpa #$43 c bne outna leax fccxx,u gen fcc stmt lbsr xpdat lda fccxx+3,u fcs->fcc anda #$ef sta fccxx+3,u bra outhy outna cmpa #$52 r bne outnr leax rmbes,pcr gen rmb stmt lbsr xpdat leax rmblth,u xxxx lbsr xot4h bra outhy outnr lda #$03 gen instruction lbsr xoute tst posfl,u chk pos-ind switch beq outad tst flabl,u chk labelled beq outad lda pmode,u chk cpu mode cmpa #$05 beq outad cmpa #$02 beq outad ldd raddr,u chk addr for within range cmpd eaddr,u outab bhi outad cmpd faddr,u outac bls outag outad lbra outgi not pos-ind outag lda flmod,u addr mode cmpa #$02 blt outad cmpa #$04 bgt outad beq outaj outai inc flpos,u set pos-ind flag bra outad outaj ldb inam4,u chk suffix cmpb #$73 for s,u,x,y blt outad lda inam1,u chk name cmpa #$63 for 'c' beq outam cmpa #$6c for 'l' bne outad ldx #$6561 ld? #addr -> lea? addr,pcr stx inam2,u (cc affected) bra outai outam cmpb #$73 chk for suffix 's' beq outas leax lposr,pcr suffix u,x,y bra outat outas leax lposs,pcr suffix s outat lda ,x gen pos-ind code for imm beq outaz null=quit stx baddr,u save place cmpa #$2a *=reg beq outau cmpa #$21 !=zxxxx beq outav cmpa #$25 %=crlf beq outaw cmpa #$5b [=$03 bne outan lda #$03 bra outax outan cmpa #$5d ]=$05 bne outax lda #$05 outax lbsr xoute output outay ldx baddr,u remember place leax $01,x bra outat outau tfr b,a reg name bra outax outav lda zulabe,u z/u lbsr xoute leax raddr,u xxxx lbsr xot4h bra outay outaw lbsr xcrlf crlf bra outay outaz lbra outi6 exit outgi leax insxx,u instr name lbsr xpdat lda #$05 tab lbsr xoute tst svcflg,u check for OS/9 call bpl ousw3 leax svcend,pcr check for table overflow cmpx flinx,u bhi ousb3 ousa3 lda #$24 $ invalid leax inst3,u second byte lbsr xot2h xx bra ousd3 ousb3 ldx flinx,u point to name table lda ,x cmpa #$20 check validity beq ousa3 ldb #(4+(2*2)) ousc3 lda ,x+ cmpa #$20 bls ousd3 lbsr xoute decb bne ousc3 ousd3 lda svcflg,u reset flag anda #$0f sta svcflg,u lbra outi6 exit ousw3 lda flmod,u addr mode ldb flinx,u instr variant byte cmpa #$01 chk inh lbne outb1 outa1 tst flspc,u chk special beq outj1 lda flopc,u instr cmpa #$20 chk exg/tfr bpl outf1 pshs b andb #$f0 source reg lsrb lsrb lsrb clra pshs u leau tfrexc,pcr pshs u addd ,s++ puls u tfr d,x ldx ,x stx inam1,u puls b andb #$0f dest reg aslb clra pshs u leau tfrexc,pcr pshs u addd ,s++ puls u tfr d,x ldx ,x stx inam4,u lda #$2c , sta inam3,u leax inam1,u output source,dest lbsr xpdat bra outh1 outj1 lda pmode,u chk cpu mode cmpa #$02 bne outh1 exit if not 6502 lda inst1,u chk instr anda #$9f cmpa #$0a bne outh1 for $0a,$2a,$4a,$6a lda #$61 accum instr lbsr xoute outh1 lbra outi6 exit outf1 cmpa #$3c chk cwai bne outk1 clr inam4,u fake 8-bit imm stb raddr,u lbra outd4 outk1 lda inam4,u psh/pul eora #$06 exg s and u leax pshpul,u sta $02,x fix table outl1 aslb carry=sign bit bcc outm1 stx raddr,u ldx ,x stx inam4,u reg name leax inam4,u lbsr xpdat output name ldx raddr,u tstb beq outx1 lda #$2c , lbsr xoute outm1 leax $02,x chk for more tstb bne outl1 outx1 lbra outi6 exit outb1 cmpa #$02 chk dir bne outb2 outa2 tst flpos,u chk pos-ind flag bne outd2 lda #$3c force dir with < outc2 ldb pmode,u chk cpu mode orb crofl,u and x-asmb flag bpl outd2 lbsr xoute force mode outd2 lda zulabe,u z/u lbsr xoute leax raddr,u xxxx lbsr xot4h tst flpos,u chk pos-ind flag beq outx2 leax lcpcr,pcr ,pcr lbsr xpdat bra outz2 outx2 lda pmode,u chk cpu mode cmpa #$02 bne outz2 outw2 ldb flmod,u chk mode cmpb #$08 bne outy2 lda #$29 ) lbsr xoute outy2 tst inam5,u chk x/y beq outz2 lda #$2c , lbsr xoute lda inam5,u x/y lbsr xoute cmpb #$07 bne outz2 lda #$29 ) lbsr xoute outz2 lbra outi6 exit outb2 cmpa #$03 chk ext bne outb3 tst posfl,u chk pos-ind switch bne outd3 lda #$3e force ext with > outc3 bra outc2 outd3 bra outd2 outb3 cmpa #$04 chk imm bne outb4 outa4 tst flpos,u chk pos-ind flag bne outd3 outd4 lda #$23 # lbsr xoute ldb inam4,u chk suffix cmpb #$73 for 's' bge outd3 lda #$24 $ lbsr xoute leax raddr,u lbsr xot2h xx cmpb #$64 chk for 'd' bne outf4 lbsr xot2h xx outf4 lbra outi6 exit outb4 cmpa #$05 chk inx lbne outb5 outa5 tst pmode,u chk cpu mode bpl outc5 tstb lbmi outd5 chk inx type andb #$1f r+-5bits bitb #$10 chk neg bne outg5 tst os9flx,u chk for OS/9 beq outc5 tst pmode,u chk for 6809 bpl outc5 lda flreg,u chk for u-reg cmpa #$04 bne outc5 lda #$3c < lbra oux3v outg5 lda #$2d - lbsr xoute orb #$f0 negb andb #$0f bne outc5 chk $10 ldb #$10 outc5 stb raddr,u clr flind,u lda pmode,u chk cpu mode cmpa #$05 bne oupt0 tst crofl,u chk x-asmb flag beq outf5 lda #$3c < lbsr xoute outf5 lda zulabe,u z/u lbsr xoute lda #$30 0 lbsr xoute bra oupta oupt0 lda #$24 $ oupta lbsr xoute leax raddr,u xx lbsr xot2h oupt1 lda #$2c , lbsr xoute tst flmin,u chk auto-decr beq oupt3 oupt2 lda #$2d - lbsr xoute dec flmin,u bne oupt2 oupt3 ldb flreg,u reg name clra pshs u leau tfrexc,pcr pshs u addd ,s++ puls u tfr d,x ldx $02,x stx inam4,u oupt4 leax inam4,u lbsr xpdat output reg name tst flpls,u chk auto-incr beq oupt6 oupt5 lda #$2b + lbsr xoute dec flpls,u bne oupt5 oupt6 tst flind,u chk indir beq oupt9 lda #$5d ] lbsr xoute oupt9 lbra outi6 exit outd5 tst flind,u chk indir beq oute5 lda #$5b [ lbsr xoute oute5 andb #$0f addr mode field bne oux0z ,r+ oux0a inc flpls,u bra oupt1 oux0z cmpb #$01 bne oux1z ,r++ oux1a inc flpls,u bra oux0a oux1z cmpb #$02 bne oux2z ,-r oux2a inc flmin,u bra oupt1 oux2z cmpb #$03 bne oux3z ,--r oux3a inc flmin,u bra oux2a oux3z cmpb #$04 bne oux4z ,r ldx #$0000 stx raddr,u lda #$3c < oux3u tst os9flx,u chk for OS/9 beq oux3y tst pmode,u chk for 6809 bpl oux3y ldb flreg,u chk for u-reg cmpb #$04 bne oux3y oux3v tst crofl,u chk x-asmb flag beq oux3x tst os9flx,u chk for OS/9 beq oux3x tst pmode,u chk for 6809 bpl oux3x ldb flreg,u chk for u-reg cmpb #$04 beq oux3x tst flind,u chk for [ and </> bne oux3x lbsr xoute < or > oux3x lda zulabe,u z/u lbsr xoute leax raddr,u lbsr xot4h xxxx oux3y lbra oupt1 oux4z cmpb #$05 bne oux5z b,r oux5a lda #$62 oux5b lbsr xoute lbra oupt1 oux5z cmpb #$06 bne oux6z a,r oux6a lda #$61 bra oux5b oux6z cmpb #$08 bne oux8z r+-8bits oux8a tst raddr,u chk neg bpl oux8c lda #$2d - lbsr xoute neg raddr,u oux8b lbra oupt0 oux8c tst os9flx,u chk for OS/9 beq oux8b tst pmode,u chk for 6809 bpl oux8b lda flreg,u chk for u-reg cmpa #$04 bne oux8b lda #$3c < bra oux3v oux8z cmpb #$09 bne oux9z r+-16bits oux9c tst os9flx,u chk for os/9 beq oux9a tst pmode,u chk for 6809 bpl oux9a lda flreg,u chk for u-reg cmpa #$04 bne oux9a lda #$3e > lbra oux3v oux9a lda #$24 $ oux9b lbsr xoute leax raddr,u xxxx lbsr xot4h lbra oupt1 oux9z cmpb #$0b bne ouxbz d,r ouxba lda #$64 d bra oux5b ouxbz cmpb #$0c bne ouxcz pcr+-8bits lda #$3c < ouxca tst crofl,u chk x-asmb flag beq ouxcb tst posfl,u chk pos-ind flag bne ouxcb lbsr xoute ouxcb lda zulabe,u z/u lbsr xoute leax raddr,u xxxx lbsr xot4h leax lcpcr,pcr ,pcr lbsr xpdat lbra oupt6 ouxcz cmpb #$0d bne ouxdz pcr+-16bits lda #$3e > bra ouxca ouxdz cmpb #$0f bne ouxfz ext ind ouxfa lda zulabe,u z/u lbsr xoute leax raddr,u xxxx lbsr xot4h lbra oupt6 ouxfz bra outi6 exit outb5 cmpa #$06 chk rel lbeq outd2 outb6 ldb pmode,u chk cpu mode cmpb #$02 bne outc6 lda #$28 ( lbsr xoute lbra outd2 outc6 cmpa #$07 chk ix0 lbeq oupt1 outb7 cmpa #$08 chk ix2 bne outb8 tst crofl,u chk x-asmb flag beq outf7 lda #$3e > lbsr xoute outf7 lda zulabe,u z/u lbra oux9b outb8 cmpa #$0b chk btb,bsc bpl outi6 tfr a,b lda flopc,u get bit number anda #$0f lsra adda #$30 add ascii 0 lbsr xoute lda #$2c , lbsr xoute lda zulabe,u z/u lbsr xoute lda #$30 00 lbsr xoute lbsr xoute leax inst2,u xx lbsr xot2h lda flmod,u chk mode cmpa #$0a beq outi6 lda #$2c , lbsr xoute lda zulabe,u z/u lbsr xoute leax zaddr,u xxxx lbsr xot4h outi6 lda instx,u chk print ascii cmpa #$4a bne outi9 outi7 lda #$06 print characters lbsr xoute leax inst1,u ldb fllth,u outi8 lda ,x+ print printables anda #$7f cmpa #$1f bls pral1 cmpa #maxprn bls pral2 pral1 lda #$2e . pral2 lbsr xoute decb bpl outi8 outi9 lbra xcrlf