# HG changeset patch # User boisy # Date 1027224536 0 # Node ID 03af31c2d39db82619a9b72d39c6d20e21412d98 # Parent 4b547814b192c8b7111b99deb0801020fb414d2e Migrated OS-9 Level Two version over to OS-9 Level One with modifications to boot track write code diff -r 4b547814b192 -r 03af31c2d39d level1/cmds/os9gen.asm --- a/level1/cmds/os9gen.asm Sun Jul 21 03:01:36 2002 +0000 +++ b/level1/cmds/os9gen.asm Sun Jul 21 04:08:56 2002 +0000 @@ -1,20 +1,16 @@ ******************************************************************** -* OS9gen - Build and Link a Bootstrap File +* OS9Gen - OS-9 bootfile generator * * $Id$ * * Ed. Comments Who YY/MM/DD * ------------------------------------------------------------------ -* 7 From Tandy OS-9 Level One VR 02.00.00 -* 8 Incorporated fix from Rainbow Magazine in the BGP 02/07/20 -* January 1987 issue, page 203 -* -* OS9gen is hardware dependent. On COCO the track to write is 34 +* 9 From OS-9 Level Two Vr. 2.00.01 nam OS9gen - ttl Build and Link a Bootstrap File + ttl OS-9 bootfile generator -* Disassembled 02/07/06 22:40:22 by Disasm v1.6 (C) 1988 by RML +* Disassembled 02/07/06 13:11:11 by Disasm v1.6 (C) 1988 by RML ifp1 use defsfile @@ -23,16 +19,16 @@ tylg set Prgrm+Objct atrv set ReEnt+rev rev set $01 -edition set 8 +edition set 9 -os9start equ $EF00 -os9size equ $0F80 +os9l1start equ $EF00 +os9l1size equ $0F80 mod eom,name,tylg,atrv,start,size u0000 rmb 2 u0002 rmb 1 -DevFd rmb 1 +u0003 rmb 1 u0004 rmb 1 u0005 rmb 1 u0006 rmb 2 @@ -42,24 +38,33 @@ u000D rmb 2 u000F rmb 2 u0011 rmb 2 -u0013 rmb 7 -u001A rmb 3 -u001D rmb 17 -u002E rmb 2 -u0030 rmb 10 -u003A rmb 2 -u003C rmb 1 -u003D rmb 451 -u0200 rmb 16 -u0210 rmb 1 -u0211 rmb 7 -u0218 rmb 1000 +u0013 rmb 2 +u0015 rmb 2 +u0017 rmb 7 +u001E rmb 3 +u0021 rmb 17 +u0032 rmb 2 +u0034 rmb 10 +u003E rmb 2 +u0040 rmb 1 +u0041 rmb 32 +u0061 rmb 3 +u0064 rmb 1 +u0065 rmb 12 +u0071 rmb 10 +u007B rmb 2 +u007D rmb 1 +u007E rmb 1024 +u047E rmb 16 +u048E rmb 1 +u048F rmb 7 +u0496 rmb 7018 size equ . name fcs /OS9gen/ fcb edition -L0014 fcb C$LF +Help fcb C$LF fcc "Use (CAUTION): OS9GEN [-s]" fcb C$LF fcc " ..reads (std input) pathnames until EOF," @@ -67,411 +72,619 @@ fcc " merging paths into New OS9Boot file." fcb C$LF fcc " -s = single drive operation" - fcb C$LF - fcb C$CR + fcb C$LF,C$CR fcc "Can't find: " -L00B7 fcb C$LF +ErrWrit fcb C$LF fcc "Error writing kernel track" fcb C$CR -L00D3 fcb C$LF +HDGen fcb C$LF fcc "Error - cannot gen to hard disk" fcb C$CR -L00F4 fcb C$CR -L00F5 fcb $07 -L00F6 fcb C$LF + ifgt Level-1 +CantRel fcb C$LF + fcc "Error - can't link to Rel module" + fcb C$CR + endc +CarRet fcb C$CR +TheBell fcb C$BELL +TWarn fcb C$LF fcc "Warning - file(s) present" fcb C$LF fcc "on track 34 - this track" fcb C$LF fcc "not rewritten." fcb C$CR -L0139 fcb C$LF +BootFrag fcb C$LF fcc "Error - OS9boot file fragmented" fcb C$CR -L015A fcc "Ready SOURCE, hit C to continue: " -L017B fcc "Ready DESTINATION, hit C to continue: " -L01A1 fcc "RENAME " -L01A8 fcc "TempBoot " +Source fcc "Ready SOURCE, hit C to continue: " +Destin fcc "Ready DESTINATION, hit C to continue: " +Rename fcc "RENAME " +TempBoot fcc "TempBoot " fcb $FF -L01B2 fcc "OS9Boot" +OS9Boot fcc "OS9Boot" fcb C$CR fcb $FF +TheRel fcc "Rel" + fcb $FF -start equ * - clrb +start clrb stb u0200,u + leas >u047E,u pshs u tfr y,d subd ,s++ - subd #$0200 + subd #$047E clrb std L00D3,pcr - lbra L0507 -L024D ldx L01A8,pcr - lda #$2F -L0255 sta ,x+ + leax >HDGen,pcr + lbra L06A0 +L0276 ldx TempBoot,pcr + lda #PDELIM +L027E sta ,x+ lda ,y+ - bpl L0255 - leay >L01B2,pcr -L025F lda ,y+ + bpl L027E + leay >OS9Boot,pcr +L0288 lda ,y+ sta ,x+ - bpl L025F + bpl L0288 tfr x,d - leax u0200,u - ldy #$0400 + bsr L032F +L02BB leax u047E,u + stx u0200,u - ldy #$0100 - os9 I$Read - lbcs L0514 -L02DD lda #$00 - lbsr L0517 -L02E2 lda u0200,u - ldy u047E,u + ldy u0200,u - ldy #$0100 - lda #$02 - os9 I$WritLn -L031F lbra L0514 -L0322 cmpb #$D3 - bne L031F - lda #$01 - lbsr L0517 - leax u0200,u - ldy #$0100 + lbcs Bye + leax >u047E,u + ldy #256 os9 I$Read - lbcs L0514 - ldd >u0218,u - lbne L0577 - lda u0496,u + lbne L0716 + lda L01B2,pcr - lda #$2F -L03A7 sta ,x+ + beq L040D + ldx OS9Boot,pcr + lda #PDELIM +L03F3 sta ,x+ lda ,y+ - bpl L03A7 - leax L01A8,pcr - lda #$2F -L03BB sta ,x+ + ldx TempBoot,pcr + lda #PDELIM +L0407 sta ,x+ lda ,y+ - bpl L03BB -L03C1 tst L01A1,pcr + leax >Rename,pcr + os9 F$Link + bcc L0428 + lbsr L06B0 os9 F$Load - lbcs L0514 - tfr u,d + lbcs Bye + lbsr L06B5 +L0428 tfr u,d ldu L01A1,pcr + leax >Rename,pcr ldy u0210,u + lbcs Bye +L045F ldu u048E,u stb u0211,u + ldd >u048F,u std u0200,u - ldy #$0100 - os9 I$Read - lbcs L0507 - leax >u0200,u - lda <$4C,x - bita #$0F - beq L04AE - lda u0200,u cmpa #$12 - beq L049C - lda <$4E,x - bita #$1C - lbne L058D -L049C lda <$4C,x - ora #$0F - sta <$4C,x - lda #$FF - sta <$4D,x - lda <$4E,x - bra L04C6 -L04AE ora #$0F - sta <$4C,x - tst <$4D,x - lbne L058D - com <$4D,x - lda <$4E,x - bita #$FC - lbne L058D -L04C6 ora #$FC - sta <$4E,x -L04CB lbsr L057E - leax >u0200,u - ldy #$0064 + beq L0512 + lda #$22 + ldb #$0F + ldy #$0003 + lbsr L05C7 + lbcs L071E +L0512 clra + ldb TheRel,pcr + os9 F$Link + lbcs L0724 + tfr u,d + puls u + subd #$0006 + std L00B7,pcr + lbcs Bye clrb - bra L0507 -L0503 leax >L0014,pcr -L0507 pshs b + lbra Bye +L058F pshs b + ldb ErrWrit,pcr + bra L06A0 +L069A ldb #$D7 +L069C leax >Help,pcr +L06A0 pshs b lda #$02 - ldy #$0100 + ldy #256 os9 I$WritLn puls b -L0514 os9 F$Exit -L0517 tst L015A,pcr - ldy #$0021 - bra L0534 -L052C leax >L017B,pcr + bne L06CC + leax >Source,pcr ldy #$0026 -L0534 bsr L0560 + bra L06D4 +L06CC leax >Destin,pcr + ldy #$0026 +L06D4 bsr L06FF leax ,-s ldy #$0001 lda #$02 os9 I$Read lda ,s+ - eora #$43 + eora #'C anda #$DF - beq L0559 - leax >L00F5,pcr + beq L06F9 + leax >TheBell,pcr ldy #$0001 - bsr L0560 - bsr L0566 + bsr L06FF + bsr L0705 puls a - bne L051D -L0559 bsr L0566 + bne L06BD +L06F9 bsr L0705 puls a - puls y,x -L055F rts -L0560 lda #$01 +L06FD puls pc,u,y,x,b,a +L06FF lda #$01 os9 I$WritLn rts -L0566 pshs y,x,a +L0705 pshs y,x,a lda #$01 - leax >L00F4,pcr - ldy #$0050 + leax >CarRet,pcr + ldy #80 os9 I$WritLn puls pc,y,x,a -L0577 leax >L0139,pcr - clrb - bra L0507 -L057E pshs u - lda BootFrag,pcr +L071A ldb #$01 + bra L06A0 +L071E leax >TWarn,pcr + bra L071A -L058D leax >L00F6,pcr - clrb - lbra L0507 + ifgt Level-1 +L0724 leax >CantRel,pcr + lbra L06A0 + endc + emod eom equ * + end