Mercurial > hg > Members > kono > nitros9-code
changeset 123:9c16042bc382
Disassembled the COCO version of os9gen
author | roug |
---|---|
date | Sat, 06 Jul 2002 20:59:08 +0000 |
parents | b381d07d9b78 |
children | 31e9f483c687 |
files | level1/cmds/os9gen_cc.asm |
diffstat | 1 files changed, 467 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/level1/cmds/os9gen_cc.asm Sat Jul 06 20:59:08 2002 +0000 @@ -0,0 +1,467 @@ +******************************************************************** +* OS9gen - Build and Link a Bootstrap File +* +* $Id$ +* +* Ed. Comments Who YY/MM/DD +* ------------------------------------------------------------------ +* 7 Original Tandy distribution version +* +* OS9gen is hardware dependent. On COCO the track to write is 34 + + nam OS9gen + ttl Build and Link a Bootstrap File + +* Disassembled 02/07/06 22:40:22 by Disasm v1.6 (C) 1988 by RML + + ifp1 + use defsfile + endc +tylg set Prgrm+Objct +atrv set ReEnt+rev +rev set $01 + mod eom,name,tylg,atrv,start,size +u0000 rmb 2 +u0002 rmb 1 +u0003 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 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 +size equ . +name equ * + fcs /OS9gen/ + fcb $07 +L0014 fcb C$LF + fcc "Use (CAUTION): OS9GEN </devname> [-s]" + fcb C$LF + fcc " ..reads (std input) pathnames until EOF," + fcb C$LF + fcc " merging paths into New OS9Boot file." + fcb C$LF + fcc " -s = single drive operation" + fcb C$LF + fcb C$CR + fcc "Can't find: " +L00B7 fcb C$LF + fcc "Error writing kernel track" + fcb C$CR +L00D3 fcb C$LF + fcc "Error - cannot gen to hard disk" + fcb C$CR +L00F4 fcb C$CR +L00F5 fcb $07 +L00F6 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 + 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 " + fcb $FF +L01B2 fcc "OS9Boot" + fcb C$CR + fcb $FF + +start equ * + clrb + stb <u0005 + stb <u003C + stu <u0000 + leas >u0200,u + pshs u + tfr y,d + subd ,s++ + subd #$0200 + clrb + std <u0011 + lda #$2F + cmpa ,x + lbne L0503 + os9 F$PrsNam + lbcs L0503 + lda #$2F + cmpa ,y + lbeq L0503 + pshs b,a +L01EB lda ,y+ + cmpa #$2D + beq L01F7 + cmpa #$0D + beq L0209 + bra L01EB +L01F7 ldd ,y+ + eora #$53 + anda #$DF + lbne L0503 + cmpb #$30 + lbcc L0503 + inc <u003C +L0209 puls b,a + leay <u003D,u +L020E sta ,y+ + lda ,x+ + decb + bpl L020E + sty <u003A + lda #$40 + ldb #$20 + std ,y++ + lda #$01 + lbsr L0517 + leax <u003D,u + lda #$03 + os9 I$Open + sta <u0003 + lbcs L0503 + leax <u001A,u + ldb #$00 + os9 I$GetStt + lbcs L0514 + leax <u001A,u + lda <u001D,u + bpl L024D + clrb + leax >L00D3,pcr + lbra L0507 +L024D ldx <u003A + leay >L01A8,pcr + lda #$2F +L0255 sta ,x+ + lda ,y+ + bpl L0255 + leay >L01B2,pcr +L025F lda ,y+ + sta ,x+ + bpl L025F + tfr x,d + leax <u003D,u + pshs x + subd ,s++ + std <u000D + lda #$02 + ldb #$03 + os9 I$Create + sta <u0002 + lbcs L0514 + ldx #$0000 + stx <u0006 + ldu #$3000 + ldb #$02 + os9 I$SetStt + lbcs L0514 + ldu <u0000 + lda #$00 + lbsr L0517 +L0295 clra + leax >u0200,u + ldy #$0400 + os9 I$ReadLn + bcs L0322 + lda ,x + ldb #$D3 + cmpa #$0D + beq L0322 + lda #$01 + os9 I$Open + bcs L0310 + sta <u0004 + tst <u003C + beq L02E2 + lda #$01 + lbsr L0517 + lda <u0003 + ldx #$0000 + ldu #$0000 + os9 I$Seek + lbcs L0514 + ldu <u0000 + leax >u0200,u + ldy #$0100 + os9 I$Read + lbcs L0514 +L02DD lda #$00 + lbsr L0517 +L02E2 lda <u0004 + leax >u0200,u + ldy <u0011 + os9 I$Read + bcs L0305 + tfr y,d + addd <u0006 + std <u0006 + lda #$01 + lbsr L0517 + lda <u0002 + os9 I$Write + bcc L02DD + lbra L0514 +L0305 cmpb #$D3 + lbne L0514 + os9 I$Close + bra L0295 +L0310 pshs b + leax >u0200,u + ldy #$0100 + lda #$02 + os9 I$WritLn +L031F lbra L0514 +L0322 cmpb #$D3 + bne L031F + lda #$01 + lbsr L0517 + leax <u001A,u + ldb #$00 + lda <u0002 + os9 I$GetStt + lbcs L0514 + lda <u0002 + ldx #$0000 + ldu <u0006 + ldb #$02 + os9 I$SetStt + lbcs L0514 + ldu <u0000 + os9 I$Close + lbcs L0503 + ldx <u002E,u + lda <u0030,u + clrb + tfr d,u + lda <u0003 + os9 I$Seek + ldu <u0000 + lbcs L0514 + leax >u0200,u + ldy #$0100 + os9 I$Read + lbcs L0514 + ldd >u0218,u + lbne L0577 + lda <u0003 + ldx #$0000 + ldu #$0015 + os9 I$Seek + ldu <u0000 + lbcs L0514 + leax u0008,u + ldy #$0005 + os9 I$Read + lbcs L0514 + ldd <u000B + beq L03C1 + ldx <u003A + leay >L01B2,pcr + lda #$2F +L03A7 sta ,x+ + lda ,y+ + bpl L03A7 + leax <u003D,u + os9 I$Delete + ldx <u003A + leay >L01A8,pcr + lda #$2F +L03BB sta ,x+ + lda ,y+ + bpl L03BB +L03C1 tst <u003C + beq L03E1 + lda #$00 + lbsr L0517 + clra + leax >L01A1,pcr + os9 F$Load + lbcs L0514 + tfr u,d + ldu <u0000 + std u000F,u + lda #$01 + lbsr L0517 +L03E1 lda #$01 + clrb + leax >L01A1,pcr + ldy <u000D + leau <u003D,u + os9 F$Fork + lbcs L0514 + os9 F$Wait + lbcs L0514 + tstb + lbne L0514 + tst <u003C + beq L0412 + ldu <u0000 + ldd u000F,u + tfr d,u + os9 F$UnLink + lbcs L0514 +L0412 ldu <u0000 + ldb >u0210,u + stb <u0008 + ldd >u0211,u + std <u0009 + ldd <u0006 + std <u000B + ldx #$0000 + ldu #$0015 + lda <u0003 + os9 I$Seek + ldu <u0000 + lbcs L0514 + leax u0008,u + ldy #$0005 + os9 I$Write + lbcs L0514 + lbsr L057E + leax >u0200,u + ldy #$0100 + os9 I$Read + lbcs L0507 + leax >u0200,u + lda <$4C,x + bita #$0F + beq L04AE + lda <u0003 + pshs u + ldx #$0002 + ldu #$6400 + os9 I$Seek + puls u + leax <u0013,u + ldy #$0007 + os9 I$Read + lbcs L058D + leax <u0013,u + ldd ,x + cmpa #$4F + lbne L058D + cmpb #$53 + lbne L058D + lda $04,x + 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 + sta <$4E,x + bra L04CB +L04AE ora #$0F + sta <$4C,x + tst <$4D,x + lbne L058D + com <$4D,x + lda <$4E,x + bita #$FC + lbne L058D + ora #$FC + sta <$4E,x +L04CB lbsr L057E + leax >u0200,u + ldy #$0064 + os9 I$Write + bcs L0507 + pshs u + ldx #$0002 + ldu #$6400 + os9 I$Seek + puls u + ldx #$EF00 + ldy #$0F80 + os9 I$Write + bcs L04FC + os9 I$Close + bcs L0503 + clrb + bra L0514 +L04FC leax >L00B7,pcr + clrb + bra L0507 +L0503 leax >L0014,pcr +L0507 pshs b + lda #$02 + ldy #$0100 + os9 I$WritLn + puls b +L0514 os9 F$Exit +L0517 tst <u003C + beq L055F + pshs y,x +L051D pshs a + tsta + bne L052C + leax >L015A,pcr + ldy #$0021 + bra L0534 +L052C leax >L017B,pcr + ldy #$0026 +L0534 bsr L0560 + leax ,-s + ldy #$0001 + lda #$02 + os9 I$Read + lda ,s+ + eora #$43 + anda #$DF + beq L0559 + leax >L00F5,pcr + ldy #$0001 + bsr L0560 + bsr L0566 + puls a + bne L051D +L0559 bsr L0566 + puls a + puls y,x +L055F rts +L0560 lda #$01 + os9 I$WritLn + rts +L0566 pshs y,x,a + lda #$01 + leax >L00F4,pcr + ldy #$0050 + os9 I$WritLn + puls pc,y,x,a +L0577 leax >L0139,pcr + clrb + bra L0507 +L057E pshs u + lda <u0003 + ldx #$0000 + ldu #$0100 + os9 I$Seek + puls pc,u +L058D leax >L00F6,pcr + clrb + lbra L0507 + emod +eom equ *