[Coco] NitrOS9 Sources

Bill Pierce ooogalapasooo at aol.com
Mon Mar 11 11:26:45 EDT 2013


Bill,
The answer your question on why all the NitrOS-9 code is in assembler is a simple one. There is no OS-9 C cross compler. There's been several attempts at it, but the best was (I think) a flaky RSDOS (read non-OS-9, non-position independant). Also, another reason is that most of the original OS-9 modules were written in asm. These were disassembled to get the sources as the original sources are assumed to be non-existant. Disassembling a program written in C is a nightmare. I will personall testify to that.
I too would love to see some of this code in C. But in the long run, using assembly makes for the fastest, most efficiant code anyway. If you notice, any program included in the NitrOS-9 repository that was originally written in C is either copied directly to the disk (compiled) or broken down into "FCB"s and "FDB"s of the binary program dump and assembled as a module like a BASIC program pokes data into memroy to make a machine language program.

Bill P

Music from the Tandy/Radio Shack Color Computer 2 & 3
https://sites.google.com/site/dabarnstudio/
Bill Pierce
ooogalapasooo at aol.com




-----Original Message-----
From: Bill Gunshannon <billg999 at cs.uofs.edu>
To: CoCoList for Color Computer Enthusiasts <coco at maltedmedia.com>
Sent: Mon, Mar 11, 2013 11:04 am
Subject: Re: [Coco] NitrOS9 Sources



Got it.  I just used find to search for files with names that matched
the drivers and descriptors I was using.  Have to dig a little deeper
I see.  Thanks.

bill

> You should check the makefiles, your answer is there. But basically they
> are:
>
> rbsuper.asm
> superdesc.asm
> boot_ide.asm
> boot_scsi.asm
> clock2_ds1315.asm
>
>
> All cloud9 device descriptors and drivers are made of them:
>
>     80
> <http://nitros9.hg.sourceforge.net/hgweb/nitros9/nitros9/file/8babf9987e22/level1/coco1/modules/makefile#l80>
> # TC^3 SCSI Booter
>
>     81
> <http://nitros9.hg.sourceforge.net/hgweb/nitros9/nitros9/file/8babf9987e22/level1/coco1/modules/makefile#l81>
> boot_tc3: boot_scsi.asm
>
>     82
> <http://nitros9.hg.sourceforge.net/hgweb/nitros9/nitros9/file/8babf9987e22/level1/coco1/modules/makefile#l82>
> 	$(AS) $(ASOUT)$@ $< $(TC3FLAGS)
>
>     83
> <http://nitros9.hg.sourceforge.net/hgweb/nitros9/nitros9/file/8babf9987e22/level1/coco1/modules/makefile#l83>
>
>     84
> <http://nitros9.hg.sourceforge.net/hgweb/nitros9/nitros9/file/8babf9987e22/level1/coco1/modules/makefile#l84>
> # SuperIDE/Glenside IDE Booter
>
>     85
> <http://nitros9.hg.sourceforge.net/hgweb/nitros9/nitros9/file/8babf9987e22/level1/coco1/modules/makefile#l85>
> boot_ide: boot_ide.asm
>
>     86
> <http://nitros9.hg.sourceforge.net/hgweb/nitros9/nitros9/file/8babf9987e22/level1/coco1/modules/makefile#l86>
> 	$(AS) $(ASOUT)$@ $< $(IDEFLAGS)
>
>
>    125
> <http://nitros9.hg.sourceforge.net/hgweb/nitros9/nitros9/file/8babf9987e22/level1/coco1/modules/makefile#l125>
> # TC^3 SCSI Driver
>
>    126
> <http://nitros9.hg.sourceforge.net/hgweb/nitros9/nitros9/file/8babf9987e22/level1/coco1/modules/makefile#l126>
> lltc3.dr: llscsi.asm
>
>    127
> <http://nitros9.hg.sourceforge.net/hgweb/nitros9/nitros9/file/8babf9987e22/level1/coco1/modules/makefile#l127>
> 	$(AS) $(ASOUT)$@ $< $(TC3FLAGS)
>
>    128
> <http://nitros9.hg.sourceforge.net/hgweb/nitros9/nitros9/file/8babf9987e22/level1/coco1/modules/makefile#l128>
>
>    129
> <http://nitros9.hg.sourceforge.net/hgweb/nitros9/nitros9/file/8babf9987e22/level1/coco1/modules/makefile#l129>
> # IDE Driver
>
>    130
> <http://nitros9.hg.sourceforge.net/hgweb/nitros9/nitros9/file/8babf9987e22/level1/coco1/modules/makefile#l130>
> llide.dr: llide.asm
>
>    131
> <http://nitros9.hg.sourceforge.net/hgweb/nitros9/nitros9/file/8babf9987e22/level1/coco1/modules/makefile#l131>
> 	$(AS) $(ASOUT)$@ $< $(IDEFLAGS)
>
>
>    272
> <http://nitros9.hg.sourceforge.net/hgweb/nitros9/nitros9/file/8babf9987e22/level1/coco1/modules/makefile#l272>
> # TC^3 SCSI Descriptors
>
>    273
> <http://nitros9.hg.sourceforge.net/hgweb/nitros9/nitros9/file/8babf9987e22/level1/coco1/modules/makefile#l273>
> dds0_tc3.dd: superdesc.asm
>
>    274
> <http://nitros9.hg.sourceforge.net/hgweb/nitros9/nitros9/file/8babf9987e22/level1/coco1/modules/makefile#l274>
> 	$(AS) $(ASOUT)$@ $< $(TC3FLAGS) $(ID0) -DDD=1
>
>    275
> <http://nitros9.hg.sourceforge.net/hgweb/nitros9/nitros9/file/8babf9987e22/level1/coco1/modules/makefile#l275>
>
>    276
> <http://nitros9.hg.sourceforge.net/hgweb/nitros9/nitros9/file/8babf9987e22/level1/coco1/modules/makefile#l276>
> s0_tc3.dd: superdesc.asm
>
>    277
> <http://nitros9.hg.sourceforge.net/hgweb/nitros9/nitros9/file/8babf9987e22/level1/coco1/modules/makefile#l277>
> 	$(AS) $(ASOUT)$@ $< $(TC3FLAGS) $(ID0) $(SCSI_HD)
>
>    278
> <http://nitros9.hg.sourceforge.net/hgweb/nitros9/nitros9/file/8babf9987e22/level1/coco1/modules/makefile#l278>
>
>    279
> <http://nitros9.hg.sourceforge.net/hgweb/nitros9/nitros9/file/8babf9987e22/level1/coco1/modules/makefile#l279>
> s1_tc3.dd: superdesc.asm
>
>    280
> <http://nitros9.hg.sourceforge.net/hgweb/nitros9/nitros9/file/8babf9987e22/level1/coco1/modules/makefile#l280>
> 	$(AS) $(ASOUT)$@ $< $(TC3FLAGS) $(ID1) $(SCSI_HD)
>
>    281
> <http://nitros9.hg.sourceforge.net/hgweb/nitros9/nitros9/file/8babf9987e22/level1/coco1/modules/makefile#l281>
>
>    282
> <http://nitros9.hg.sourceforge.net/hgweb/nitros9/nitros9/file/8babf9987e22/level1/coco1/modules/makefile#l282>
> s2_tc3.dd: superdesc.asm
>
>    283
> <http://nitros9.hg.sourceforge.net/hgweb/nitros9/nitros9/file/8babf9987e22/level1/coco1/modules/makefile#l283>
> 	$(AS) $(ASOUT)$@ $< $(TC3FLAGS) $(ID2) $(SCSI_HD)
>
>    284
> <http://nitros9.hg.sourceforge.net/hgweb/nitros9/nitros9/file/8babf9987e22/level1/coco1/modules/makefile#l284>
>
>    285
> <http://nitros9.hg.sourceforge.net/hgweb/nitros9/nitros9/file/8babf9987e22/level1/coco1/modules/makefile#l285>
> s3_tc3.dd: superdesc.asm
>
>    286
> <http://nitros9.hg.sourceforge.net/hgweb/nitros9/nitros9/file/8babf9987e22/level1/coco1/modules/makefile#l286>
> 	$(AS) $(ASOUT)$@ $< $(TC3FLAGS) $(ID3) $(SCSI_HD)
>
>    287
> <http://nitros9.hg.sourceforge.net/hgweb/nitros9/nitros9/file/8babf9987e22/level1/coco1/modules/makefile#l287>
>
>    288
> <http://nitros9.hg.sourceforge.net/hgweb/nitros9/nitros9/file/8babf9987e22/level1/coco1/modules/makefile#l288>
> s4_tc3.dd: superdesc.asm
>
>    289
> <http://nitros9.hg.sourceforge.net/hgweb/nitros9/nitros9/file/8babf9987e22/level1/coco1/modules/makefile#l289>
> 	$(AS) $(ASOUT)$@ $< $(TC3FLAGS) $(ID4) $(SCSI_HD)
>
>    290
> <http://nitros9.hg.sourceforge.net/hgweb/nitros9/nitros9/file/8babf9987e22/level1/coco1/modules/makefile#l290>
>
>    291
> <http://nitros9.hg.sourceforge.net/hgweb/nitros9/nitros9/file/8babf9987e22/level1/coco1/modules/makefile#l291>
> s5_tc3.dd: superdesc.asm
>
>    292
> <http://nitros9.hg.sourceforge.net/hgweb/nitros9/nitros9/file/8babf9987e22/level1/coco1/modules/makefile#l292>
> 	$(AS) $(ASOUT)$@ $< $(TC3FLAGS) $(ID5) $(SCSI_HD)
>
>    293
> <http://nitros9.hg.sourceforge.net/hgweb/nitros9/nitros9/file/8babf9987e22/level1/coco1/modules/makefile#l293>
>
>    294
> <http://nitros9.hg.sourceforge.net/hgweb/nitros9/nitros9/file/8babf9987e22/level1/coco1/modules/makefile#l294>
> s6_tc3.dd: superdesc.asm
>
>    295
> <http://nitros9.hg.sourceforge.net/hgweb/nitros9/nitros9/file/8babf9987e22/level1/coco1/modules/makefile#l295>
> 	$(AS) $(ASOUT)$@ $< $(TC3FLAGS) $(ID6) $(SCSI_HD)
>
>    296
> <http://nitros9.hg.sourceforge.net/hgweb/nitros9/nitros9/file/8babf9987e22/level1/coco1/modules/makefile#l296>
>
>    297
> <http://nitros9.hg.sourceforge.net/hgweb/nitros9/nitros9/file/8babf9987e22/level1/coco1/modules/makefile#l297>
> sh_tc3.dd: superdesc.asm
>
>
>    301
> <http://nitros9.hg.sourceforge.net/hgweb/nitros9/nitros9/file/8babf9987e22/level1/coco1/modules/makefile#l301>
> ddi0_ide.dd: superdesc.asm
>
>    302
> <http://nitros9.hg.sourceforge.net/hgweb/nitros9/nitros9/file/8babf9987e22/level1/coco1/modules/makefile#l302>
> 	$(AS) $(ASOUT)$@ $< $(IDEFLAGS) $(MASTER) -DDD=1
>
>    303
> <http://nitros9.hg.sourceforge.net/hgweb/nitros9/nitros9/file/8babf9987e22/level1/coco1/modules/makefile#l303>
>
>    304
> <http://nitros9.hg.sourceforge.net/hgweb/nitros9/nitros9/file/8babf9987e22/level1/coco1/modules/makefile#l304>
> i0_ide.dd: superdesc.asm
>
>    305
> <http://nitros9.hg.sourceforge.net/hgweb/nitros9/nitros9/file/8babf9987e22/level1/coco1/modules/makefile#l305>
> 	$(AS) $(ASOUT)$@ $< $(IDEFLAGS) $(MASTER)
>
>    306
> <http://nitros9.hg.sourceforge.net/hgweb/nitros9/nitros9/file/8babf9987e22/level1/coco1/modules/makefile#l306>
>
>    307
> <http://nitros9.hg.sourceforge.net/hgweb/nitros9/nitros9/file/8babf9987e22/level1/coco1/modules/makefile#l307>
> i1_ide.dd: superdesc.asm
>
>    308
> <http://nitros9.hg.sourceforge.net/hgweb/nitros9/nitros9/file/8babf9987e22/level1/coco1/modules/makefile#l308>
> 	$(AS) $(ASOUT)$@ $< $(IDEFLAGS) $(SLAVE)
>
>    309
> <http://nitros9.hg.sourceforge.net/hgweb/nitros9/nitros9/file/8babf9987e22/level1/coco1/modules/makefile#l309>
>
>    310
> <http://nitros9.hg.sourceforge.net/hgweb/nitros9/nitros9/file/8babf9987e22/level1/coco1/modules/makefile#l310>
> ih_ide.dd: superdesc.asm
>
>    311
> <http://nitros9.hg.sourceforge.net/hgweb/nitros9/nitros9/file/8babf9987e22/level1/coco1/modules/makefile#l311>
> 	$(AS) $(ASOUT)$@ $< $(IDEFLAGS) $(HDBDOS)
>
>
>    348
> <http://nitros9.hg.sourceforge.net/hgweb/nitros9/nitros9/file/8babf9987e22/level1/coco1/modules/makefile#l348>
> clock2_cloud9: clock2_ds1315.asm
>
>    349
> <http://nitros9.hg.sourceforge.net/hgweb/nitros9/nitros9/file/8babf9987e22/level1/coco1/modules/makefile#l349>
> 	$(AS) $(AFLAGS) $(ASOUT)$@ $< -DCLOUD9=1
>
>
> Am I missing something ?
>
> I just recompiled a nitros-9 from scratch and it worked flawless in my
> superIDE
>
> --
> Coco mailing list
> Coco at maltedmedia.com
> http://five.pairlist.net/mailman/listinfo/coco
>


-- 
Bill Gunshannon          |  de-moc-ra-cy (di mok' ra see) n.  Three wolves
billg999 at cs.scranton.edu |  and a sheep voting on what's for dinner.
University of Scranton   |
Scranton, Pennsylvania   |         #include <std.disclaimer.h>



--
Coco mailing list
Coco at maltedmedia.com
http://five.pairlist.net/mailman/listinfo/coco

 



More information about the Coco mailing list