Mercurial > hg > Members > kono > nitros9-code
changeset 1654:f62ca34d4419
Level 2: shellplus stand-alone file is no longer copied to CMDS
dirm.asm removed since mdir -e puts out same info.
author | boisy |
---|---|
date | Sat, 17 Jul 2004 13:08:39 +0000 |
parents | f79e64f804a6 |
children | 22c82cfcb1f5 |
files | level1/ChangeLog level2/cmds/dirm.asm level2/cmds/makefile level2/coco3/ChangeLog level2/coco3_6309/ChangeLog rules.mak |
diffstat | 6 files changed, 16 insertions(+), 265 deletions(-) [+] |
line wrap: on
line diff
--- a/level1/ChangeLog Sat Jul 17 12:25:07 2004 +0000 +++ b/level1/ChangeLog Sat Jul 17 13:08:39 2004 +0000 @@ -1,4 +1,5 @@ NitrOS-9/6309 Level 2 V03.02.03: +- dirm has been removed from the commands list. - disasm has a new -s option which is used to specify the start and end addresses to disassemble within a module. - A bug in the clock2_jvemu module has been fixed.
--- a/level2/cmds/dirm.asm Sat Jul 17 12:25:07 2004 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,258 +0,0 @@ -******************************************************************** -* DirM - Show module directory -* -* $Id$ -* -* Changes: -* -* Added internal print buffer, so an I$Write call is not performed for every -* byte printed out. Halves printout time. -* -* Added SS.ScSiz check, and goes to 32-column output if display is 40 columns -* or less. -* -* Edt/Rev YYYY/MM/DD Modified by -* Comment -* ------------------------------------------------------------------ -* ? 1994/11/10 Alan DeKok -* Disassembled at 8:18:38 -* -* 5 ????/??/?? Alan DeKok -* Added internal print buffer, so an I$Write call is not performed for -* every byte printed out. Halves printout time. Added SS.ScSiz check -* and goes to 32-column output if display is 40 columns or less. - - nam DirM - ttl Show module directory - - ifp1 - use defsfile - endc - -tylg set Prgrm+Objct -atrv set ReEnt+rev -rev set $00 -edition set 5 - -Bound equ 40 width at which change is made to 32-col printing - - - mod eom,name,tylg,atrv,start,size - -MD.DAT rmb 2 -MD.Crnt rmb 2 -MD.Strt rmb 2 -MD.End rmb 2 -MD.MPDAT rmb 5 -PntCnt rmb 1 - -*Single rmb 1 single entry/line? -Width rmb 1 width of the output device - -PBuffer rmb 31 internal print buffer -Buffer rmb 40 room for a name buffer -MD.Data rmb 2048 size of the module directory - rmb 200 for the stack -size equ . -name equ * - fcs /DirM/ - fcb edition - -H2 fcc / Bk Ofst Size Ty At Link Name/ - fcb C$CR -H3 fcc / -- ---- ---- -- -- ---- -----/ -H1 fcb C$CR - -* Believe it or not, all this internal crap is still smaller than having -* a different version of the header for 32/80 columns. -Dump ldu #PBuffer output print buffer - lda ,x+ get first character - sta ,u+ move it over - ldb <Width get the width - -D.01 cmpa #C$CR CR? - beq D.Print yup, dump it out - - lda ,x+ grab a character - sta ,u+ save it - cmpa #C$SPAC was it a space? - bne D.01 no, just save it - - cmpb #Bound 40-column screen? - bls D.01 yes, don't add the space - sta ,u+ if a space, save another copy of it - bra D.01 - -D.Print lda #$01 to STDOUT - ldx #PBuffer - ldy #50 max. size of data to print - OS9 I$WritLn dump it out - bcs Exit - rts - -start equ * - stu <MD.DAT u=$0000 always on startup in OS-9 LII - ldd #$0100+SS.ScSiz stdout, get screen size - OS9 I$GetStt - bcs s.01 - tfr x,d - bra s.02 save actual screen size - -s.01 cmpb #E$UnkSvc - bne Exit - ldb #80 default to 80 columns if error -s.02 stb <Width - - leax <H1,pcr print out initial CR - bsr Dump - leax >H2,pcr header of names - bsr Dump - leax <H3,pcr and hyphens - bsr Dump - - ldx #MD.Data - os9 F$GModDr - bcs Exit - stu <MD.Strt save start address of system module dir - - sty <MD.End save end of the module directory - bra L00B5 - -ClnExit clrb -Exit os9 F$Exit - -L00AD ldx <MD.Crnt - leax MD$ESIZE,x go to the next entry - cmpx <MD.End - bcc ClnExit - -L00B5 stx <MD.Crnt - ldu #PBuffer temporary print buffer - ldd MD$MPDAT,x get module DAT image - beq L00AD if zero, skip this entry - pshs d - cmpd <MD.DAT - beq L00CD - std <MD.DAT save the current DAT image - lda #'- start of this block - fcb $8C skip 2 bytes - -L00CD lda #C$SPAC space - sta ,u+ store it in the data buffer -L00D0 puls d restore current DAT image - subd <MD.Strt take out start of the block - ldy #MD.Data point to module directory data - leay d,y to the DAT image within it - tfr y,d - std <MD.MPDAT save pointer to DAT - lda MD$MPtr,x module pointer - lsra - lsra - lsra - lsra turn address into block offset - anda #$0E keep low bits only - inca DAT image is (junk),(block) - lda a,y get the starting block number - bsr L0165 dump it out - ldd MD$MPtr,x get real pointer - anda #$1F get offset inside block - bsr L0159 print it out - ldx MD$MPtr,x and get pointer again - - pshs u save print buffer pointer - ldu #Buffer to a name buffer - ldy #$000A move first 10 bytes of the module? - ldd <MD.MPDAT - os9 F$CpyMem copy it over - puls u restore print buffer ptr - bcs Exit - - ldd <Buffer+M$Size - bsr L0159 print out the size of the module - lda <Buffer+M$Type - bsr L0165 print out the Ty/Lg - lda <Buffer+M$Revs - bsr L0165 print out At/Rv - ldx <MD.Crnt get current module pointer - ldd MD$Link,x link count - bsr L0159 - ldd <Buffer+M$Name - ldx <MD.Crnt - ldx MD$MPtr,x start address of the module - leax d,x point to the name - - pshs u save print buffer ptr - ldu #Buffer to the buffer again - lda <Width - cmpa #Bound - bhi n.01 - leau -6,u discount 6 spaces - -n.01 ldd <MD.MPDAT - ldy #40 copy over 40 bytes of the name - os9 F$CpyMem - tfr u,x save copy of the start of the buffer - puls u restore print buffer ptr - lbcs Exit - - ldb #39 maximum number of characters to check -L013F lda ,x+ get a character - bpl L013F if it's OK - anda #$7F force it to be printable - sta -1,x save it again - lda #C$CR drop a CR after the last character of the name - - sta ,x save it - ldx #PBuffer point to the start of the buffer - ldy #64 64 characters - lda #$01 - os9 I$WritLn print out the name - lbra L00AD start all over again - -* Print out a 2-byte hex number in D -L0159 pshs b save low order character - ldb #3 3 digits to print out - bsr L0171 print out A - puls a restore low byte - bsr L0173 print it, too - bra L0167 and dump out 2 spaces - -* print out a 1-digit hex number in A -L0165 bsr L016F -L0167 lda <Width check the width - cmpa #Bound - bls L016B if 40 columns or smaller, don't print extra space - lda #C$SPAC space - sta ,u+ -L016B lda #C$SPAC and another space - sta ,u+ - rts - -L016F ldb #$01 -L0171 stb <PntCnt -L0173 tfr a,b save a copy of the number in B - lsra - lsra - lsra - lsra move high nibble into the lower nibble - bsr L017D print out lower nibble of A as hex number - tfr b,a restore lower nibble - -L017D anda #$0F make 0-15 - beq L019C if zero, skip printing it out - clr <PntCnt - cmpa #$0A higher than A? - bcs L0189 no, add in ascii zero - adda #$07 yes, add difference between 9 and A -L0189 adda #'0 turn it into an ascii number - -Print sta ,u+ save the character in the buffer - rts - -L019C dec <PntCnt count down of number of characters to print - bmi L0189 if last one, print out a zero - bra L016B otherwise print out a space - - emod -eom equ * - end
--- a/level2/cmds/makefile Sat Jul 17 12:25:07 2004 +0000 +++ b/level2/cmds/makefile Sat Jul 17 13:08:39 2004 +0000 @@ -5,12 +5,12 @@ DEPENDS = ./makefile CMDS = asm attr backup binex build cmp cobbler copy cputype \ - date dcheck debug ded deiniz del deldir devs dir dirm disasm \ + date dcheck debug ded deiniz del deldir devs dir disasm \ display dmem dmode dsave dump echo edit error exbin exmode \ format free grfdrv help ident iniz irqs link list load login \ makdir mdir megaread merge mfree mmap modpatch montype mpi os9gen padrom park \ prompt pmap proc procs pwd pxd reboot rename runb save setime \ - shell_21 shellplus sleep smap tee tmode touch \ + shell_21 sleep smap tee tmode touch \ tsmon tuneport unlink verify wcreate xmode SUBS = gfx2 gfx inkey syscall @@ -18,10 +18,14 @@ UTILPAK1 = attr build copy del deldir dir display list makdir mdir \ merge mfree procs rename tmode -ALLOBJS = $(CMDS) $(SUBS) +# Files not compilable by os9asm: config +all: $(SUBS) $(CMDS) shell utilpak1 $(DEPENDS) -# Files not compilable by os9asm: config -all: $(ALLOBJS) shell utilpak1 $(DEPENDS) +runb: runb.asm + $(AS) $(AFLAGS) $< $(ASOUT)$@ -aPWD=1 + $(MERGE) $@ $(SUBS)>$@.tmp + $(RM) $@ + $(MOVE) $@.tmp $@ pwd: pd.asm $(AS) $(AFLAGS) $< $(ASOUT)$@ -aPWD=1 @@ -42,10 +46,11 @@ @$(ECHO) "" clean: - $(RM) shell utilpak1 $(ALLOBJS) + $(RM) shell utilpak1 $(SUBS) $(SHELLMODS) $(CMDS) +# Only $(CMDS) are shown here showobjs: - @$(ECHO) shell utilpak1 $(ALLOBJS) + @$(ECHO) shell utilpak1 $(CMDS) identify: $(IDENT_SHORT) $(ALLOBJS)
--- a/level2/coco3/ChangeLog Sat Jul 17 12:25:07 2004 +0000 +++ b/level2/coco3/ChangeLog Sat Jul 17 13:08:39 2004 +0000 @@ -1,4 +1,5 @@ NitrOS-9/6309 Level 2 V03.02.03: +- dirm has been removed from the commands list. - disasm has a new -s option which is used to specify the start and end addresses to disassemble within a module. - A bug in the clock2_jvemu module has been fixed.
--- a/level2/coco3_6309/ChangeLog Sat Jul 17 12:25:07 2004 +0000 +++ b/level2/coco3_6309/ChangeLog Sat Jul 17 13:08:39 2004 +0000 @@ -1,4 +1,5 @@ NitrOS-9/6309 Level 2 V03.02.03: +- dirm has been removed from the commands list. - disasm has a new -s option which is used to specify the start and end addresses to disassemble within a module. - A bug in the clock2_jvemu module has been fixed.