Mercurial > hg > Members > kono > nitros9-code
view level1/cmds/os9gen_d64.asm @ 2758:e4a0f58a5f9b
Found that people who do not have the envirornment variable NITROS9DIR set before building the project get a error missing file "/rules.mak". Found this is caused do to the fact that the code to set this envirornment variable is in the rules.mak which can't get loaded.
To fix this the code needed to set the envirornment variable that is in the rules.mak is now in the makefile(s) right before the include for the rules.mak file. This should fix the problem for those who do not have the NITROS9DIR envirornment variable preset.
author | drencor-xeen |
---|---|
date | Mon, 14 Jan 2013 14:37:46 -0600 |
parents | 636cabe76c6e |
children |
line wrap: on
line source
******************************************************************** * OS9gen - Build and Link a Bootstrap File * * $Id$ * * Ed. Comments Who YY/MM/DD * ------------------------------------------------------------------ * 7 From Dragon OS-9 Level One VR 01.02.00 * 8 New os9gen saves from address $EF00 instead of $F000 * DragonDOS BOOT loads sectors (numbered from 0) 2-17 (4096 bytes) into * RAM at location 9728. The first two bytes of sector 2 must be ASCII 'OS' * for this to work. It then jumps to 9730 and begins execution. * * The boot code switches into RAM mode, and copies the entire section to * $EF00 and jumps to $EF4F. * The 4096 bytes contain a few bytes to do the RAM mode switch, then * immediately after comes the kernel modules; OS9, OS9p2, Init and Boot * The rest of the bootstrap is in the OS9Boot file. The disk head at LSN0 * contains the LSN of the bootstrap file in field DD.BT. nam OS9gen ttl Build and Link a Bootstrap File * Disassembled 02/04/03 23:17:45 by Disasm v1.6 (C) 1988 by RML ifp1 use defsfile endc tylg set Prgrm+Objct atrv set ReEnt+rev rev set $01 edition set 8 mod eom,name,tylg,atrv,start,size org 0 u0000 rmb 2 u0002 rmb 1 devfd rmb 1 u0004 rmb 1 u0005 rmb 1 u0006 rmb 2 u0008 rmb 1 u0009 rmb 2 u000B rmb 2 u000D rmb 2 u000F rmb 20 u0023 rmb 2 u0025 rmb 10 u002F rmb 2 u0031 rmb 32 u0051 rmb 16 u0061 rmb 1 u0062 rmb 7 u0069 rmb 4522 size equ . name fcs /OS9gen/ fcb edition L0014 fcb C$LF fcc "Use (caution): os9gen </devname>" fcb C$LF fcc " ..reads (std input) pathnames until eof," fcb C$LF fcc " merging paths into new OS9Boot file." fcb C$CR fcc "Can't find: " L0094 fcb C$LF fcc "Error writing kernel track" fcb C$CR L00B0 fcb C$LF fcc "Warning - Kernel track has" fcb C$LF fcc "not been allocated properly." fcb C$LF fcc "Track not written." fcb C$CR L00FC fcb C$LF fcc "Error - OS9boot file fragmented" fcb C$LF fcc " This disk will not bootstrap." fcb C$CR L013C fcc "RENAME " L0143 fcc "TempBoot " fcb $FF L014D fcc "OS9Boot" fcb C$CR fcb $FF start equ * clrb stb <u0005 stu <u0000 lda #$2F cmpa ,x lbne L035B os9 F$PrsNam lbcs L035B lda #$2F cmpa ,y lbeq L035B leay <u0031,u L0175 sta ,y+ lda ,x+ decb bpl L0175 sty <u002F lda #'@ ldb #$20 std ,y++ leax <u0031,u lda #$03 os9 I$Open sta <devfd lbcs L035B ldx <u002F leay >L0143,pcr lda #$2F L019B sta ,x+ lda ,y+ bpl L019B leay >L014D,pcr L01A5 lda ,y+ sta ,x+ bpl L01A5 tfr x,d leax <u0031,u pshs x subd ,s++ std <u000D lda #$02 ldb #$03 os9 I$Create sta <u0002 lbcs L036C ldx #$0000 stx <u0006 ldu #$4000 ldb #SS.Size os9 I$SetStt lbcs L036C ldu <u0000 L01D6 clra leax <u0051,u ldy #$1000 os9 I$ReadLn bcs L022E lda ,x ldb #$D3 cmpa #C$CR beq L022E lda #$01 os9 I$Open bcs L021D sta <u0004 L01F4 lda <u0004 leax <u0051,u ldy #$1000 os9 I$Read bcs L0212 tfr y,d addd <u0006 std <u0006 lda <u0002 os9 I$Write bcc L01F4 lbra L036C L0212 cmpb #$D3 lbne L036C os9 I$Close bra L01D6 L021D pshs b leax <u0051,u ldy #$0100 lda #$02 os9 I$WritLn L022B lbra L036C L022E cmpb #$D3 bne L022B leax u000F,u ldb #$00 lda <u0002 os9 I$GetStt lbcs L036C lda <u0002 ldx #$0000 ldu <u0006 ldb #SS.Size os9 I$SetStt lbcs L036C ldu <u0000 os9 I$Close lbcs L035B ldx <u0023,u lda <u0025,u clrb tfr d,u lda <devfd os9 I$Seek ldu <u0000 lbcs L036C leax <u0051,u ldy #$0100 os9 I$Read lbcs L036C ldd <u0069,u lbne L036F lda <devfd ldx #$0000 ldu #$0015 os9 I$Seek ldu <u0000 lbcs L036C leax u0008,u ldy #$0005 os9 I$Read lbcs L036C ldd <u000B beq L02C5 ldx <u002F leay >L014D,pcr lda #$2F L02AB sta ,x+ lda ,y+ bpl L02AB leax <u0031,u os9 I$Delete ldx <u002F leay >L0143,pcr lda #$2F L02BF sta ,x+ lda ,y+ bpl L02BF L02C5 lda #$01 clrb leax >L013C,pcr ldy <u000D leau <u0031,u os9 F$Fork lbcs L036C os9 F$Wait lbcs L036C tstb lbne L036C ldu <u0000 ldb <u0061,u stb <u0008 ldd <u0062,u std <u0009 ldd <u0006 std <u000B ldx #$0000 ldu #$0015 lda <devfd os9 I$Seek ldu <u0000 lbcs L036C leax u0008,u ldy #$0005 os9 I$Write lbcs L036C lbsr SkLSN1 leax <u0051,u ldy #$0100 os9 I$Read bcs L035F lda ,x anda #$3F eora #$3F lbne L0385 lda $01,x eora #$FF lbne L0385 lda $02,x anda #$90 eora #$90 lbne L0385 ldx #Bt.Start Address of kernel in RAM ldy #Bt.Size Amount to write lda <devfd os9 I$Write bcs L0354 os9 I$Close bcs L036C clrb bra L036C L0354 leax >L0094,pcr clrb bra L035F L035B leax >L0014,pcr L035F pshs b lda #$02 ldy #$0100 os9 I$WritLn puls b L036C os9 F$Exit L036F leax >L00FC,pcr clrb bra L035F SkLSN1 pshs u lda <devfd ldx #$0000 ldu #$0100 os9 I$Seek Seek to allocation map at LSN 1 puls pc,u L0385 leax >L00B0,pcr clrb bra L035F emod eom equ *