# HG changeset patch # User boisy # Date 1089933404 0 # Node ID 090b97749dc1d3c0489482a4d5f6d5967cf6b6db # Parent a1490f6b905ffc504ab8408447469b4051fd684c We're rolling on to V03.02.03 Pre! diff -r a1490f6b905f -r 090b97749dc1 defs/releasedefs --- a/defs/releasedefs Thu Jul 15 16:01:49 2004 +0000 +++ b/defs/releasedefs Thu Jul 15 23:16:44 2004 +0000 @@ -4,5 +4,5 @@ * NitrOS-9 Version equates NOS9Vrsn equ 3 NOS9Major equ 2 -NOS9Minor equ 2 -TEST equ 0 +NOS9Minor equ 3 +TEST equ 1 diff -r a1490f6b905f -r 090b97749dc1 level1/ChangeLog --- a/level1/ChangeLog Thu Jul 15 16:01:49 2004 +0000 +++ b/level1/ChangeLog Thu Jul 15 23:16:44 2004 +0000 @@ -1,3 +1,6 @@ +NitrOS-9/6309 Level 2 V03.02.03: +- disasm has been updated. + NitrOS-9/6809 Level 1 V03.02.02: - Two new clocks have been added for Jeff Vavasour's CoCo emulator and MESS: clock2_jvemu and clock2_messemu, respectively. diff -r a1490f6b905f -r 090b97749dc1 level1/cmds/disasm.asm --- a/level1/cmds/disasm.asm Thu Jul 15 16:01:49 2004 +0000 +++ b/level1/cmds/disasm.asm Thu Jul 15 23:16:44 2004 +0000 @@ -1,3728 +1,3782 @@ -******************************************************************** -* Disasm - 6809/6309 disassembler -* -* $Id$ -* -* Disasm v1.5 (c) 1988 by Ron Lammardo -* 6309 additions by L. Curtis Boyle Jan. 1993 -* -* Edt/Rev YYYY/MM/DD Modified by -* Comment -* ------------------------------------------------------------------ -* 2 1987/03/12 Ron Lammardo -* Added code for line,address,obj display added options 'o' and 'x'. -* -* 3 1987/04/02 Ron Lammardo -* Added code to provide commented disassembly of device descriptors. -* -* 4 1987/11/16 Ron Lammardo -* Fixed restart link failure, added code to display direct page addresses. -* -* 5 1988/02/22 Ron Lammardo -* Added code to display dp/u offsets; added code to display fcb bytes -* preceding eom; added code for z option (hex input disassembly); -* added code to display date/time run -* -* 1993/01/23 L. Curtis Boyle -* Added code to handle 6309 instruction set additions -* -* 2003/04/22 Rodney V. Hamilton -* Added 4-digit year output. -* -* 2003/07/09 Rodney V. Hamilton -* Changed output format of 6309 Bit commands. -* -* 2003/08/14 Rodney V. Hamilton -* Added code to output "end" line -* -* 2004/03/11 Rodney V. hamilton -* Updated TFM register selection - - nam Disasm - ttl 6809/6309 disassembler - - ifp1 - use defsfile - endc - -typ set Prgrm+Objct -attrev set ReEnt+revision -revision set $00 -edtn set 5 edition -edition equ $30+edtn ascii edition - - mod eom,mname,typ,attrev,start,datend - -pcrzero equ *-$0D module start - -mname fcs /Disasm/ - fcb edtn - -dfltdrv fcc /dd/ -cr set C$CR -**** start of data area **** -stackhld rmb 2 -ureghold rmb 2 -xreghold rmb 2 -xsave rmb 2 -dsave rmb 2 -startadr rmb 2 -modadr rmb 2 -address rmb 2 -addrsave rmb 2 -lineadr rmb 2 -objadr rmb 2 -crntadr rmb 2 -modend rmb 2 -nameadr rmb 2 -size rmb 2 -temp rmb 2 -readpos rmb 2 -readcnt rmb 1 -readclr rmb 1 -byte rmb 1 -TFMFlag rmb 1 Flag to indicate processing TFM -bitcom rmb 1 Flag to indicate processing bit instruction -indirct rmb 1 -hexstrng rmb 4 -decstrng rmb 5 -testbyte rmb 1 -register rmb 1 -labladr rmb 2 -highadr rmb 2 -utabend rmb 2 -pass rmb 1 -path rmb 1 -diskio rmb 1 -objcnt rmb 1 -tylghold rmb 1 -atrvhold rmb 1 -revshold rmb 1 -m.opt rmb 1 -o.opt rmb 1 -x.opt rmb 1 -z.opt rmb 1 -u.opt rmb 1 -op.cnt rmb 1 -descript rmb 1 -mgradr rmb 2 -drvadr rmb 2 -desctype rmb 1 -printadr rmb 2 -initsize rmb 2 -counter rmb 1 -countdec rmb 2 -numline rmb 2 -runtime rmb 6 -* start of output line -linenum rmb 8 -holdadr rmb 5 -holdobj rmb 11 -holdline rmb 56 -* end of output line -holdname rmb 32 -namehold rmb 32 -hldtylg rmb 40 -hldatrv rmb 40 -hldrev rmb 40 -hldttl rmb 40 -pathlist rmb 80 -readbuff rmb 20 -labeltab rmb 6742 -lbtblend rmb 1 - rmb 255 -datend equ . - -***************************************** -** os9 call tables ** -** (sequence = $10,$3f,..) ** -***************************************** -os9f$tab equ * - fcc /F$Link / - fcc /F$Load / - fcc /F$UnLink/ - fcc /F$Fork / - fcc /F$Wait / - fcc /F$Chain / - fcc /F$Exit / - fcc /F$Mem / - fcc /F$Send / - fcc /F$Icpt / - fcc /F$Sleep / - fcc /F$SSpd / - fcc /F$ID / - fcc /F$SPrior/ - fcc /F$SSWI / - fcc /F$PErr / - fcc /F$PrsNam/ - fcc /F$CmpNam/ - fcc /F$SchBit/ - fcc /F$AllBit/ - fcc /F$DelBit/ - fcc /F$Time / - fcc /F$STime / - fcc /F$CRC / - fcc /F$GPrDsc/ - fcc /F$GBlkMp/ - fcc /F$GModDr/ - fcc /F$CpyMem/ - fcc /F$SUser / - fcc /F$UnLoad/ - fcc /F$Alarm / - fcc /????????/ - fcc /????????/ - fcc /F$NMLink/ - fcc /F$NMLoad/ - fcc /????????/ - fcc /????????/ -* Rodney pointed this out as a bug -* fcc /????????/ - fcc /F$TPS / - fcc /F$TimAlm/ - fcc /F$VIRQ / - fcc /F$SRqMem/ - fcc /F$SRtMem/ - fcc /F$IRQ / - fcc /F$IOQu / - fcc /F$AProc / - fcc /F$NProc / - fcc /F$VModul/ - fcc /F$Find64/ - fcc /F$All64 / - fcc /F$Ret64 / - fcc /F$SSvc / - fcc /F$IODel / - fcc /F$SLink / - fcc /F$Boot / - fcc /F$BtMem / - fcc /F$GProcP/ - fcc /F$Move / - fcc /F$AllRAM/ - fcc /F$AllImg/ - fcc /F$DelImg/ - fcc /F$SetImg/ - fcc /F$FreeLB/ - fcc /F$FreeHB/ - fcc /F$AllTsk/ - fcc /F$DelTsk/ - fcc /F$SetTsk/ - fcc /F$ResTsk/ - fcc /F$RelTsk/ - fcc /F$DATLog/ - fcc /F$DATTmp/ - fcc /F$LDAXY / - fcc /F$LDAXYP/ - fcc /F$LDDDXY/ - fcc /F$LDABX / - fcc /F$STABX / - fcc /F$AllPrc/ - fcc /F$DelPrc/ - fcc /F$ELink / - fcc /F$FModul/ - fcc /F$MapBlk/ - fcc /F$ClrBlk/ - fcc /F$DelRAM/ - fcc /F$GCMDir/ - fcc /F$AlHRAM/ - -os9i$tab equ * - fcc /I$Attach/ - fcc /I$Detach/ - fcc /I$Dup / - fcc /I$Create/ - fcc /I$Open / - fcc /I$MakDir/ - fcc /I$ChgDir/ - fcc /I$Delete/ - fcc /I$Seek / - fcc /I$Read / - fcc /I$Write / - fcc /I$ReadLn/ - fcc /I$WritLn/ - fcc /I$GetStt/ - fcc /I$SetStt/ - fcc /I$Close / - fcc /I$DeletX/ -bados9op fcc /????????/ - -* Mnemonic table: 1st byte =Opcode -* 2nd byte =Flags to indicate mode type of opcode -* Bytes 3-7 =Mnemonic name of opcode -***************************************** -** 2 byte table - ** -** $10 is first byte of op code ** -***************************************** -get10tab equ * - fcb $21 - fcb $fc - fcc /lbrn / - fcb $22 - fcb $fc - fcc /lbhi / - fcb $23 - fcb $fc - fcc /lbls / - fcb $24 - fcb $fc - fcc /lbcc / - fcb $25 - fcb $fc - fcc /lbcs / - fcb $26 - fcb $fc - fcc /lbne / - fcb $27 - fcb $fc - fcc /lbeq / - fcb $28 - fcb $fc - fcc /lbvc / - fcb $29 - fcb $fc - fcc /lbvs / - fcb $2a - fcb $fc - fcc /lbpl / - fcb $2b - fcb $fc - fcc /lbmi / - fcb $2c - fcb $fc - fcc /lbge / - fcb $2d - fcb $fc - fcc /lblt / - fcb $2e - fcb $fc - fcc /lbgt / - fcb $2f - fcb $fc - fcc /lble / -* Test of 6309 codes - fcb $30 - fcb $fa - fcc /addr / - fcb $31 - fcb $fa - fcc /adcr / - fcb $32 - fcb $fa - fcc /subr / - fcb $33 - fcb $fa - fcc /sbcr / - fcb $34 - fcb $fa - fcc /andr / - fcb $35 - fcb $fa - fcc /orr / - fcb $36 - fcb $fa - fcc /eorr / - fcb $37 - fcb $fa - fcc /cmpr / - fcb $38 - fcb $fd - fcc /pshsw/ - fcb $39 - fcb $fd - fcc /pulsw/ - fcb $3a - fcb $fd - fcc /pshuw/ - fcb $3b - fcb $fd - fcc /puluw/ - fcb $40 - fcb $fd - fcc /negd / - fcb $43 - fcb $fd - fcc /comd / - fcb $44 - fcb $fd - fcc /lsrd / - fcb $46 - fcb $fd - fcc /rord / - fcb $47 - fcb $fd - fcc /asrd / - fcb $48 - fcb $fd - fcc /asld / - fcb $49 - fcb $fd - fcc /rold / - fcb $4a - fcb $fd - fcc /decd / - fcb $4c - fcb $fd - fcc /incd / - fcb $4d - fcb $fd - fcc /tstd / - fcb $4f - fcb $fd - fcc /clrd / - fcb $53 - fcb $fd - fcc /comw / - fcb $54 - fcb $fd - fcc /lsrw / - fcb $56 - fcb $fd - fcc /rorw / - fcb $59 - fcb $fd - fcc /rolw / - fcb $5a - fcb $fd - fcc /decw / - fcb $5c - fcb $fd - fcc /incw / - fcb $5d - fcb $fd - fcc /tstw / - fcb $5f - fcb $fd - fcc /clrw / - fcb $80 - fcb $f3 - fcc /subw / - fcb $81 - fcb $f3 - fcc /cmpw / - fcb $82 - fcb $f3 - fcc /sbcd / - fcb $83 - fcb $f3 - fcc /cmpd / - fcb $84 - fcb $f3 - fcc /andd / - fcb $85 - fcb $f3 - fcc /bitd / - fcb $86 - fcb $f3 - fcc /ldw / - fcb $88 - fcb $f3 - fcc /eord / - fcb $89 - fcb $f3 - fcc /adcd / - fcb $8a - fcb $f3 - fcc /ord / - fcb $8b - fcb $f3 - fcc /addw / - fcb $8c - fcb $f3 - fcc /cmpy / - fcb $8e - fcb $f3 - fcc /ldy / - fcb $90 - fcb $ff - fcc /subw / - fcb $91 - fcb $ff - fcc /cmpw / - fcb $92 - fcb $ff - fcc /sbcd / - fcb $93 - fcb $ff - fcc /cmpd / - fcb $94 - fcb $ff - fcc /andd / - fcb $95 - fcb $ff - fcc /bitd / - fcb $96 - fcb $ff - fcc /ldw / - fcb $97 - fcb $ff - fcc /stw / - fcb $98 - fcb $ff - fcc /eord / - fcb $99 - fcb $ff - fcc /adcd / - fcb $9a - fcb $ff - fcc /ord / - fcb $9b - fcb $ff - fcc /addw / - fcb $9c - fcb $ff - fcc /cmpy / - fcb $9e - fcb $ff - fcc /ldy / - fcb $9f - fcb $ff - fcc /sty / - fcb $a0 - fcb $f8 - fcc /subw / - fcb $a1 - fcb $f8 - fcc /cmpw / - fcb $a2 - fcb $f8 - fcc /sbcd / - fcb $a3 - fcb $f8 - fcc /cmpd / - fcb $a4 - fcb $f8 - fcc /andd / - fcb $a5 - fcb $f8 - fcc /bitd / - fcb $a6 - fcb $f8 - fcc /ldw / - fcb $a7 - fcb $f8 - fcc /stw / - fcb $a8 - fcb $f8 - fcc /eord / - fcb $a9 - fcb $f8 - fcc /adcd / - fcb $aa - fcb $f8 - fcc /ord / - fcb $ab - fcb $f8 - fcc /addw / - fcb $ac - fcb $f8 - fcc /cmpy / - fcb $ae - fcb $f8 - fcc /ldy / - fcb $af - fcb $f8 - fcc /sty / - fcb $b0 - fcb $f4 - fcc /subw / - fcb $b1 - fcb $f4 - fcc /cmpw / - fcb $b2 - fcb $f4 - fcc /sbcd / - fcb $b3 - fcb $f4 - fcc /cmpd / - fcb $b4 - fcb $f4 - fcc /andd / - fcb $b5 - fcb $f4 - fcc /bitd / - fcb $b6 - fcb $f4 - fcc /ldw / - fcb $b7 - fcb $f4 - fcc /stw / - fcb $b8 - fcb $f4 - fcc /eord / - fcb $b9 - fcb $f4 - fcc /adcd / - fcb $ba - fcb $f4 - fcc /ord / - fcb $bb - fcb $f4 - fcc /addw / - fcb $bc - fcb $f4 - fcc /cmpy / - fcb $be - fcb $f4 - fcc /ldy / - fcb $bf - fcb $f4 - fcc /sty / - fcb $ce - fcb $f3 - fcc /lds / - fcb $dc - fcb $ff - fcc /ldq / - fcb $dd - fcb $ff - fcc /stq / - fcb $de - fcb $ff - fcc /lds / - fcb $df - fcb $ff - fcc /sts / - fcb $ec - fcb $f8 - fcc /ldq / - fcb $ed - fcb $f8 - fcc /stq / - fcb $ee - fcb $f8 - fcc /lds / - fcb $ef - fcb $f8 - fcc /sts / - fcb $fc - fcb $f4 - fcc /ldq / - fcb $fd - fcb $f4 - fcc /stq / - fcb $fe - fcb $f4 - fcc /lds / - fcb $ff - fcb $f4 - fcc /sts / - fcb $00 - fcb $fe - fcc /fcb / - pag -***************************************** -** 2 byte table - ** -** $11 is first byte of op code ** -***************************************** -get11tab equ * - fcb $30 - fcb $f0 - fcc /band / - fcb $31 - fcb $f0 - fcc /biand/ - fcb $32 - fcb $f0 - fcc /bor / - fcb $33 - fcb $f0 - fcc /bior / - fcb $34 - fcb $f0 - fcc /beor / - fcb $35 - fcb $f0 - fcc /bieor/ - fcb $36 - fcb $f0 - fcc /ldbt / - fcb $37 - fcb $f0 - fcc /stbt / - fcb $38 - fcb $fa - fcc /tfm / - fcb $39 - fcb $fa - fcc /tfm / - fcb $3a - fcb $fa - fcc /tfm / - fcb $3b - fcb $fa - fcc /tfm / - fcb $3c - fcb $fb - fcc /bitmd/ - fcb $3d - fcb $fb - fcc /ldmd / - fcb $3f - fcb $fd - fcc /swi3 / - fcb $43 - fcb $fd - fcc /come / - fcb $4a - fcb $fd - fcc /dece / - fcb $4c - fcb $fd - fcc /ince / - fcb $4d - fcb $fd - fcc /tste / - fcb $4f - fcb $fd - fcc /clre / - fcb $53 - fcb $fd - fcc /comf / - fcb $5a - fcb $fd - fcc /decf / - fcb $5c - fcb $fd - fcc /incf / - fcb $5d - fcb $fd - fcc /tstf / - fcb $5f - fcb $fd - fcc /clrf / - fcb $80 - fcb $fb - fcc /sube / - fcb $81 - fcb $fb - fcc /cmpe / - fcb $83 - fcb $f3 - fcc /cmpu / - fcb $86 - fcb $fb - fcc /lde / - fcb $8b - fcb $fb - fcc /adde / - fcb $8c - fcb $f3 - fcc /cmps / - fcb $8d - fcb $fb - fcc /divd / - fcb $8e - fcb $f3 - fcc /divq / - fcb $8f - fcb $f3 - fcc /muld / - fcb $90 - fcb $ff - fcc /sube / - fcb $91 - fcb $ff - fcc /cmpe / - fcb $93 - fcb $ff - fcc /cmpu / - fcb $96 - fcb $ff - fcc /lde / - fcb $97 - fcb $ff - fcc /ste / - fcb $9b - fcb $ff - fcc /adde / - fcb $9c - fcb $ff - fcc /cmps / - fcb $9d - fcb $ff - fcc /divd / - fcb $9e - fcb $ff - fcc /divq / - fcb $9f - fcb $ff - fcc /muld / - fcb $a0 - fcb $f8 - fcc /sube / - fcb $a1 - fcb $f8 - fcc /cmpe / - fcb $a3 - fcb $f8 - fcc /cmpu / - fcb $a6 - fcb $f8 - fcc /lde / - fcb $a7 - fcb $f8 - fcc /ste / - fcb $ab - fcb $f8 - fcc /adde / - fcb $ac - fcb $f8 - fcc /cmps / - fcb $ad - fcb $f8 - fcc /divd / - fcb $ae - fcb $f8 - fcc /divq / - fcb $af - fcb $f8 - fcc /muld / - fcb $b0 - fcb $f4 - fcc /sube / - fcb $b1 - fcb $f4 - fcc /cmpe / - fcb $b3 - fcb $f4 - fcc /cmpu / - fcb $b6 - fcb $f4 - fcc /lde / - fcb $b7 - fcb $f4 - fcc /ste / - fcb $bb - fcb $f4 - fcc /adde / - fcb $bc - fcb $f4 - fcc /cmps / - fcb $bd - fcb $f4 - fcc /divd / - fcb $be - fcb $f4 - fcc /divq / - fcb $bf - fcb $f4 - fcc /muld / - fcb $c0 - fcb $fb - fcc /subf / - fcb $c1 - fcb $fb - fcc /cmpf / - fcb $c6 - fcb $fb - fcc /ldf / - fcb $cb - fcb $fb - fcc /addf / - fcb $d0 - fcb $ff - fcc /subf / - fcb $d1 - fcb $ff - fcc /cmpf / - fcb $d6 - fcb $ff - fcc /ldf / - fcb $d7 - fcb $ff - fcc /stf / - fcb $db - fcb $ff - fcc /addf / - fcb $e0 - fcb $f8 - fcc /subf / - fcb $e1 - fcb $f8 - fcc /cmpf / - fcb $e6 - fcb $f8 - fcc /ldf / - fcb $e7 - fcb $f8 - fcc /stf / - fcb $eb - fcb $f8 - fcc /addf / - fcb $f0 - fcb $f4 - fcc /subf / - fcb $f1 - fcb $f4 - fcc /cmpf / - fcb $f6 - fcb $f4 - fcc /ldf / - fcb $f7 - fcb $f4 - fcc /stf / - fcb $fb - fcb $f4 - fcc /addf / - fcb $00 Unknown gets FCB's - fcb $fe - fcc /fcb / - pag -***************************************** -** 1 byte op code table ** -***************************************** -* Position in table is opcode, byte stored there is how to interpret it -* Interpreter bytes are: -* $FF: Direct page mode (1 byte address) -* $FE: FCB (unknown single byte) -* $FD: Implied (single byte by itself) -* $FC: 2 byte relative -* $FB: 1 byte immediate -* $FA: Dual register (EXG/TFR) -* $F9: 1 byte relative -* $F8: Indexed (1 or more post bytes) -* $F7: Stack (PSH/PUL) register post-byte -* $F6: ??? (internal use?) -* $F5: SWI??? -* $F4: Extended (2 byte address) -* $F3: 2 byte immediate -* $F2: 4 byte immediate -* $F1: In memory (AIM, etc.) -* $F0: Bit commands (LDBT, etc.) -optable fcb $00 -tab0x equ * - fcb $ff =00 - fcc /neg / - fcb $f1 =01 - fcc /oim / - fcb $f1 =02 - fcc /aim / - fcb $ff =03 - fcc /com / - fcb $ff =04 - fcc /lsr / - fcb $f1 =05 - fcc /eim / - fcb $ff =06 - fcc /ror / - fcb $ff =07 - fcc /asr / - fcb $ff =08 - fcc /lsl / - fcb $ff =09 - fcc /rol / - fcb $ff =0a - fcc /dec / - fcb $f1 =0b - fcc /tim / - fcb $ff =0c - fcc /inc / - fcb $ff =0d - fcc /tst / - fcb $ff =0e - fcc /jmp / - fcb $ff =0f - fcc /clr / -tab1x equ * - fcb $fe =10 Unused entry; pre-byte - fcc /fcb / - fcb $fe =11 Unused entry; pre-byte - fcc /fcb / - fcb $fd =12 - fcc /nop / - fcb $fd =13 - fcc /sync / - fcb $fd =14 - fcc /sexw / - fcb $fe =15 - fcc /fcb / - fcb $fc =16 - fcc /lbra / - fcb $fc =17 - fcc /lbsr / - fcb $fe =18 - fcc /fcb / - fcb $fd =19 - fcc /daa / - fcb $fb =1a - fcc /orcc / - fcb $fe =1b - fcc /fcb / - fcb $fb =1c - fcc /andcc/ - fcb $fd =1d - fcc /sex / - fcb $fa =1e - fcc /exg / - fcb $fa =1f - fcc /tfr / -tab2x equ * - fcb $f9 =20 - fcc /bra / - fcb $f9 =21 - fcc /brn / - fcb $f9 =22 - fcc /bhi / - fcb $f9 =23 - fcc /bls / - fcb $f9 =24 - fcc /bcc / - fcb $f9 =25 - fcc /bcs / - fcb $f9 =26 - fcc /bne / - fcb $f9 =27 - fcc /beq / - fcb $f9 =28 - fcc /bvc / - fcb $f9 =29 - fcc /bvs / - fcb $f9 =2a - fcc /bpl / - fcb $f9 =2b - fcc /bmi / - fcb $f9 =2c - fcc /bge / - fcb $f9 =2d - fcc /blt / - fcb $f9 =2e - fcc /bgt / - fcb $f9 =2f - fcc /ble / -tab3x equ * - fcb $f8 =30 - fcc /leax / - fcb $f8 =31 - fcc /leay / - fcb $f8 =32 - fcc /leas / - fcb $f8 =33 - fcc /leau / - fcb $f7 =34 - fcc /pshs / - fcb $f7 =35 - fcc /puls / - fcb $f7 =36 - fcc /pshu / - fcb $f7 =37 - fcc /pulu / - fcb $fe =38 - fcc /fcb / - fcb $fd =39 - fcc /rts / - fcb $fd =3a - fcc /abx / - fcb $fd =3b - fcc /rti / - fcb $fb =3c - fcc /cwai / - fcb $fd =3d - fcc /mul / - fcb $fe =3e - fcc /fcb / - fcb $f5 =3f - fcc /swi / -tab4x equ * - fcb $fd =40 - fcc /nega / - fcb $fe =41 - fcc /fcb / - fcb $fe =42 - fcc /fcb / - fcb $fd =43 - fcc /coma / - fcb $fd =44 - fcc /lsra / - fcb $fe =45 - fcc /fcb / - fcb $fd =46 - fcc /rora / - fcb $fd =47 - fcc /asra / - fcb $fd =48 - fcc /lsla / - fcb $fd =49 - fcc /rola / - fcb $fd =4a - fcc /deca / - fcb $fe =4b - fcc /fcb / - fcb $fd =4c - fcc /inca / - fcb $fd =4d - fcc /tsta / - fcb $fe =4e - fcc /fcb / - fcb $fd =4f - fcc /clra / -tab5x equ * - fcb $fd =50 - fcc /negb / - fcb $fe =51 - fcc /fcb / - fcb $fe =52 - fcc /fcb / - fcb $fd =53 - fcc /comb / - fcb $fd =54 - fcc /lsrb / - fcb $fe =55 - fcc /fcb / - fcb $fd =56 - fcc /rorb / - fcb $fd =57 - fcc /asrb / - fcb $fd =58 - fcc /lslb / - fcb $fd =59 - fcc /rolb / - fcb $fd =5a - fcc /decb / - fcb $fe =5b - fcc /fcb / - fcb $fd =5c - fcc /incb / - fcb $fd =5d - fcc /tstb / - fcb $fe =5e - fcc /fcb / - fcb $fd =5f - fcc /clrb / -tab6x equ * - fcb $f8 =60 - fcc /neg / - fcb $f1 =61 - fcc /oim / - fcb $f1 =62 - fcc /aim / - fcb $f8 =63 - fcc /com / - fcb $f8 =64 - fcc /lsr / - fcb $f1 =65 - fcc /eim / - fcb $f8 =66 - fcc /ror / - fcb $f8 =67 - fcc /asr / - fcb $f8 =68 - fcc /lsl / - fcb $f8 =69 - fcc /rol / - fcb $f8 =6a - fcc /dec / - fcb $f1 =6b - fcc /tim / - fcb $f8 =6c - fcc /inc / - fcb $f8 =6d - fcc /tst / - fcb $f8 =6e - fcc /jmp / - fcb $f8 =6f - fcc /clr / -tab7x equ * - fcb $f4 =70 - fcc /neg / - fcb $f1 =71 - fcc /oim / - fcb $f1 =72 - fcc /aim / - fcb $f4 =73 - fcc /com / - fcb $f4 =74 - fcc /lsr / - fcb $f1 =75 - fcc /eim / - fcb $f4 =76 - fcc /ror / - fcb $f4 =77 - fcc /asr / - fcb $f4 =78 - fcc /lsl / - fcb $f4 =79 - fcc /rol / - fcb $f4 =7a - fcc /dec / - fcb $f1 =7b - fcc /tim / - fcb $f4 =7c - fcc /inc / - fcb $f4 =7d - fcc /tst / - fcb $f4 =7e - fcc /jmp / - fcb $f4 =7f - fcc /clr / -tab8x equ * - fcb $fb =80 - fcc /suba / - fcb $fb =81 - fcc /cmpa / - fcb $fb =82 - fcc /sbca / - fcb $f3 =83 - fcc /subd / - fcb $fb =84 - fcc /anda / - fcb $fb =85 - fcc /bita / - fcb $fb =86 - fcc /lda / - fcb $fe =87 - fcc /fcb / - fcb $fb =88 - fcc /eora / - fcb $fb =89 - fcc /adca / - fcb $fb =8a - fcc /ora / - fcb $fb =8b - fcc /adda / - fcb $f3 =8c - fcc /cmpx / - fcb $f9 =8d - fcc /bsr / - fcb $f3 =8e - fcc /ldx / - fcb $fe =8f - fcc /fcb / -tab9x equ * - fcb $ff =90 - fcc /suba / - fcb $ff =91 - fcc /cmpa / - fcb $ff =92 - fcc /sbca / - fcb $ff =93 - fcc /subd / - fcb $ff =94 - fcc /anda / - fcb $ff =95 - fcc /bita / - fcb $ff =96 - fcc /lda / - fcb $ff =97 - fcc /sta / - fcb $ff =98 - fcc /eora / - fcb $ff =99 - fcc /adca / - fcb $ff =9a - fcc /ora / - fcb $ff =9b - fcc /adda / - fcb $ff =9c - fcc /cmpx / - fcb $ff =9d - fcc /jsr / - fcb $ff =9e - fcc /ldx / - fcb $ff =9f - fcc /stx / -tabax equ * - fcb $f8 =a0 - fcc /suba / - fcb $f8 =a1 - fcc /cmpa / - fcb $f8 =a2 - fcc /sbca / - fcb $f8 =a3 - fcc /subd / - fcb $f8 =a4 - fcc /anda / - fcb $f8 =a5 - fcc /bita / - fcb $f8 =a6 - fcc /lda / - fcb $f8 =a7 - fcc /sta / - fcb $f8 =a8 - fcc /eora / - fcb $f8 =a9 - fcc /adca / - fcb $f8 =aa - fcc /ora / - fcb $f8 =ab - fcc /adda / - fcb $f8 =ac - fcc /cmpx / - fcb $f8 =ad - fcc /jsr / - fcb $f8 =ae - fcc /ldx / - fcb $f8 =af - fcc /stx / -tabbx equ * - fcb $f4 =b0 - fcc /suba / - fcb $f4 =b1 - fcc /cmpa / - fcb $f4 =b2 - fcc /sbca / - fcb $f4 =b3 - fcc /subd / - fcb $f4 =b4 - fcc /anda / - fcb $f4 =b5 - fcc /bita / - fcb $f4 =b6 - fcc /lda / - fcb $f4 =b7 - fcc /sta / - fcb $f4 =b8 - fcc /eora / - fcb $f4 =b9 - fcc /adca / - fcb $f4 =ba - fcc /ora / - fcb $f4 =bb - fcc /adda / - fcb $f4 =bc - fcc /cmpx / - fcb $f4 =bd - fcc /jsr / - fcb $f4 =be - fcc /ldx / - fcb $f4 =bf - fcc /stx / -tabcx equ * - fcb $fb =c0 - fcc /subb / - fcb $fb =c1 - fcc /cmpb / - fcb $fb =c2 - fcc /sbcb / - fcb $f3 =c3 - fcc /addd / - fcb $fb =c4 - fcc /andb / - fcb $fb =c5 - fcc /bitb / - fcb $fb =c6 - fcc /ldb / - fcb $fe =c7 - fcc /fcb / - fcb $fb =c8 - fcc /eorb / - fcb $fb =c9 - fcc /adcb / - fcb $fb =ca - fcc /orb / - fcb $fb =cb - fcc /addb / - fcb $f3 =cc - fcc /ldd / - fcb $f2 =cd - fcc /ldq / - fcb $f3 =ce - fcc /ldu / - fcb $fe =cf - fcc /fcb / -tabdx equ * - fcb $ff =d0 - fcc /subb / - fcb $ff =d1 - fcc /cmpb / - fcb $ff =d2 - fcc /sbcb / - fcb $ff =d3 - fcc /addd / - fcb $ff =d4 - fcc /andb / - fcb $ff =d5 - fcc /bitb / - fcb $ff =d6 - fcc /ldb / - fcb $ff =d7 - fcc /stb / - fcb $ff =d8 - fcc /eorb / - fcb $ff =d9 - fcc /adcb / - fcb $ff =da - fcc /orb / - fcb $ff =db - fcc /addb / - fcb $ff =dc - fcc /ldd / - fcb $ff =dd - fcc /std / - fcb $ff =de - fcc /ldu / - fcb $ff =df - fcc /stu / -tabex equ * - fcb $f8 =e0 - fcc /subb / - fcb $f8 =e1 - fcc /cmpb / - fcb $f8 =e2 - fcc /sbcb / - fcb $f8 =e3 - fcc /addd / - fcb $f8 =e4 - fcc /andb / - fcb $f8 =e5 - fcc /bitb / - fcb $f8 =e6 - fcc /ldb / - fcb $f8 =e7 - fcc /stb / - fcb $f8 =e8 - fcc /eorb / - fcb $f8 =e9 - fcc /adcb / - fcb $f8 =ea - fcc /orb / - fcb $f8 =eb - fcc /addb / - fcb $f8 =ec - fcc /ldd / - fcb $f8 =ed - fcc /std / - fcb $f8 =ee - fcc /ldu / - fcb $f8 =ef - fcc /stu / -tabfx equ * - fcb $f4 =f0 - fcc /subb / - fcb $f4 =f1 - fcc /cmpb / - fcb $f4 =f2 - fcc /sbcb / - fcb $f4 =f3 - fcc /addd / - fcb $f4 =f4 - fcc /andb / - fcb $f4 =f5 - fcc /bitb / - fcb $f4 =f6 - fcc /ldb / - fcb $f4 =f7 - fcc /stb / - fcb $f4 =f8 - fcc /eorb / - fcb $f4 =f9 - fcc /adcb / - fcb $f4 =fa - fcc /orb / - fcb $f4 =fb - fcc /addb / - fcb $f4 =fc - fcc /ldd / - fcb $f4 =fd - fcc /std / - fcb $f4 =fe - fcc /ldu / - fcb $f4 =ff - fcc /stu / - pag - - -testing equ 0 (0=no,1=yes) -regtab fcc /d x y u s pcw v a b ccdp0 0 e f / -stackreg fcc /pcu y x dpb a cc/ -timesplt fcc '// :: ' -title equ * - fcc /program module / - fcc /subroutine module / - fcc /multi-module / - fcc /data module / - fcc /os9 system module / - fcc /os9 file manager / - fcc /os9 device driver / - fcc /os9 device descriptor/ -badindx fcc /?????????????????????/ -devtype equ * - fcc /Prgrm/ - fcc /Sbrtn/ - fcc /Multi/ - fcc /Data / - fcc /Systm/ - fcc /FlMgr/ - fcc /Drivr/ - fcc /Devic/ - fcc /?????/ -language equ * - fcc /Objct / - fcc /ICode / - fcc /PCode / - fcc /CCode / - fcc /CblCode / - fcc /FrtnCode/ - fcc /???????? / -reent. fcc /ReEnt / -modprot. fcc /Modprot / -line010 fcc / ifp1/ -line011 fcb $0d -ln010sz equ *-line010 -line020 fcc % use /% -ln020sz equ *-line020 -line025 fcc %/defs/os9defs% - fcb $0d -ln025sz equ *-line025 -line030 fcc / endc/ - fcb $0d -ln030sz equ *-line030 -line040 fcc / / - fcc / / - fcc / / - fcc / / - -line050 fcc / mod / - fcc /eom,name,tylg,/ - fcc /atrv,start,size/ - fcb $0d -ln050sz equ *-line050 -line060 fcc %fcs /% -ln060sz equ *-line060 -line070 fcc /u0000 rmb / -ln070sz equ *-line070 -line080 fcc /) - andb #%10011111 Mask out register bits (mode bits for W) - cmpb #%10001111 W base (non-indirect)? - beq isw Yes, set register name - cmpb #%10010000 W base (indirect)? - beq isw Yes, set register name - ldb ' - lbsr getbyte2 Get 2 byte offset - pshs d Preserve it - cmpd #$7fff Is it negative? - bls indx4.1 No, skip ahead - puls d Get back value - std ' - lbsr getbyte2 Get next 2 bytes - lbsr reladr.2 Calculate relative address label - bra indx030 Add ',pcr' - -* Extended indirect -indx.14 lbsr mvchr007 Add '>' - lbsr mvchr005 Add '$' - lbsr getbyte2 Get next 2 bytes - lbsr merghex2 Append hex version of 16 bit # - bra indx040 Continue -* W modes ( total data size ??? - bhi indx090 yes..skip this stuff - leax holdline+15,u start of mnemonic -* Calculating 'uxxxx' info -indx042 lda ,x+ - cmpa #'u done?? - beq indx090 yes..go send line as is - cmpa #'$ - bne indx042 - lda #'u - sta -1,x - lda 2,x - cmpa #', - bne indx046 - stx ,go loop - leax -2,x this is where to insert it - stx ' - lbsr mvchr005 Add '$' -f4.010 lbsr getbyte2 Get 2 bytes - lbsr merghex2 Print 4 digit hex value - lbra chk.fd continue - -* immediate addr - 2 bytes -chk.f3 lbsr mvchr004 Add '#' - lbsr mvchr005 Add '$' - bra f4.010 Add 4 digit hex value & leave - -* immediate mode - 4 bytes -chk.f2 lbsr mvchr004 Add '#' - lbsr mvchr005 Add '$' - lbsr getbyte2 Get 2 bytes - lbsr merghex2 Print 4 hex digits - bra f4.010 Print next 4 digits & continue - -* in memory mode (AIM, etc.) (opcode s/b in 9 - bls hexin100 no...its good - cmpb #$31 was it 'a' - blo hexin090 if less than that..skip next - subb #$20 else make it upper case -hexin090 subb #$07 back off so 'A' = $0a - cmpb #$0F check if it was a 'F' - bhi hexin110 if >...error - cmpb #$0A was it a 'A' - bcs hexin110 if <...error -hexin100 andcc #$FE clear carry bit of cc - leay $01,y bump up pointer for next char - rts return -hexin110 comb set carry flag - rts return - - -* -* convert bytes in d to hex, output to hexstrng -* -gethex std - bra movechar -mvchr008 lda #'+ - bra movechar -mvchr009 lda #'- - bra movechar -mvchr010 lda #'? -* bra movechar fall thru - -* -* merge the char in 'a' with the output line -* -movechar ldx ) + andb #%10011111 Mask out register bits (mode bits for W) + cmpb #%10001111 W base (non-indirect)? + beq isw Yes, set register name + cmpb #%10010000 W base (indirect)? + beq isw Yes, set register name + ldb ' + lbsr getbyte2 Get 2 byte offset + pshs d Preserve it + cmpd #$7fff Is it negative? + bls indx4.1 No, skip ahead + puls d Get back value + std ' + lbsr getbyte2 Get next 2 bytes + lbsr reladr.2 Calculate relative address label + bra indx030 Add ',pcr' + +* Extended indirect +indx.14 lbsr mvchr007 Add '>' + lbsr mvchr005 Add '$' + lbsr getbyte2 Get next 2 bytes + lbsr merghex2 Append hex version of 16 bit # + bra indx040 Continue +* W modes ( total data size ??? + bhi indx090 yes..skip this stuff + leax holdline+15,u start of mnemonic +* Calculating 'uxxxx' info +indx042 lda ,x+ + cmpa #'u done?? + beq indx090 yes..go send line as is + cmpa #'$ + bne indx042 + lda #'u + sta -1,x + lda 2,x + cmpa #', + bne indx046 + stx ,go loop + leax -2,x this is where to insert it + stx ' + lbsr mvchr005 Add '$' +f4.010 lbsr getbyte2 Get 2 bytes + lbsr merghex2 Print 4 digit hex value + lbra chk.fd continue + +* immediate addr - 2 bytes +chk.f3 lbsr mvchr004 Add '#' + lbsr mvchr005 Add '$' + bra f4.010 Add 4 digit hex value & leave + +* immediate mode - 4 bytes +chk.f2 lbsr mvchr004 Add '#' + lbsr mvchr005 Add '$' + lbsr getbyte2 Get 2 bytes + lbsr merghex2 Print 4 hex digits + bra f4.010 Print next 4 digits & continue + +* in memory mode (AIM, etc.) (opcode s/b in 9 + bls hexin100 no...its good + cmpb #$31 was it 'a' + blo hexin090 if less than that..skip next + subb #$20 else make it upper case +hexin090 subb #$07 back off so 'A' = $0a + cmpb #$0F check if it was a 'F' + bhi hexin110 if >...error + cmpb #$0A was it a 'A' + bcs hexin110 if <...error +hexin100 andcc #$FE clear carry bit of cc + leay $01,y bump up pointer for next char + rts return +hexin110 comb set carry flag + rts return + + +* +* convert bytes in d to hex, output to hexstrng +* +gethex std + bra movechar +mvchr008 lda #'+ + bra movechar +mvchr009 lda #'- + bra movechar +mvchr010 lda #'? +* bra movechar fall thru + +* +* merge the char in 'a' with the output line +* +movechar ldx