Mercurial > hg > Members > kono > nitros9-code
view level1/cmds/dcheck.asm @ 2286:d3c1d1258b42
Updated from Aaron's sources
author | boisy |
---|---|
date | Tue, 29 Dec 2009 02:34:05 +0000 |
parents | c61efe434615 |
children |
line wrap: on
line source
******************************************************************** * dcheck - Check Disk File Structure * * $Id$ * * Edt/Rev YYYY/MM/DD Modified by * Comment * ------------------------------------------------------------------ * 4 ????/??/?? * From Tandy OS-9 Level One VR 02.00.00. * * 5 2002/07/21 Boisy G. Pitre * Changed /D0 references to /DD. * * 2003/03/31 JB * Completly disasembly to be more readable. * * 6 2008/05/24 Gene Hesketti ed 6 * Cleaning up the universal use of long branches when not required * * 7 2008/05/30 Gene heskett ed 7 * Trying to add a few comments and an optimization or 2. * 2008/05/31 Gene heskett adding comments nam dcheck ttl Check Disk File Structure * Disassembled 03/03/27 00:00:24 by Disasm v1.5 (C) 1988 by RML ifp1 use defsfile endc tylg set Prgrm+Objct atrv set ReEnt+rev rev set $00 edition set $07 mod eom,name,tylg,atrv,start,size u0000 rmb 1 num of cli args u0001 rmb 1 copy of num of cli args u0002 rmb 2 pointer to 1st cli arg? u0004 rmb 2 pointer to 2nd cli arg? u0006 rmb 2 pointer to 3rd cli arg? u0008 rmb 2 u000A rmb 1 u000B rmb 1 u000C rmb 2 u000E rmb 2 u0010 rmb 6 u0016 rmb 1 u0017 rmb 1 u0018 rmb 3 u001B rmb 5 u0020 rmb 1 u0021 rmb 1 u0022 rmb 1 u0023 rmb 1 u0024 rmb 1 u0025 rmb 1 u0026 rmb 4 u002A rmb 2 u002C rmb 1 u002D rmb 1 u002E rmb 1 u002F rmb 2 u0031 rmb 18 u0043 rmb 18 u0055 rmb 15 u0064 rmb 15 u0073 rmb 138 u00FD rmb 2693 size equ . ;--------------------------------------------- ; ;--------------------------------------------- L0014 pshs b,a leas <-$22,s clr <$1F,s clrb stb <$1E,s stb <$1D,s clrb clra std <$30,y std <$2C,y std <$2A,y std <$28,y std <$26,y ldd #$0001 std <$12,y leax >L13E2,pcr '/DD' pshs x leax <$70,y tfr x,d lbsr L248E saves long branch leas $02,s leax >L13E6,pcr '/DD' pshs x leax >$00AC,y tfr x,d lbsr L248E saves long branch leas $02,s L005B ldd <$22,s subd #$0001 std <$22,s cmpd #$0000 lble L015F ldx <$26,s leax $02,x stx <$26,s ldx ,x ldb ,x cmpb #$2D lbne L015F ldd [<$26,s] addd #$0001 std ,s L0086 ldb [,s] beq L005B ldb [,s] clra lbsr L245B saves long branch stb $02,s cmpb #$62 beq L010F cmpb #$64 lbeq L012F cmpb #$6D beq L0106 cmpb #$6F beq L0127 cmpb #$70 beq L011F cmpb #$73 beq L0117 cmpb #$77 beq L00BD bra L0136 L00BD ldx ,s ldb $01,x cmpb #$3D bne L00F1 ldx ,s ldb $02,x beq L00F1 ldd ,s addd #$0002 pshs b,a leax <$70,y tfr x,d lbsr L248E saves long branch leas $02,s ldd ,s addd #$0002 pshs b,a leax >$00AC,y tfr x,d lbsr L248E saves long branch leas $02,s bra L014D L00F1 leax >L13EA,pcr -w= error msg pshs x ldd <u000E lbsr L1B5F leas $02,s clrb clra lbsr L1B2D saves long branch bra L014D L0106 ldd #$0001 std <$14,y bra L014D L010F clrb clra std <$12,y bra L014D L0117 ldd #$0001 std <$16,y bra L014D L011F ldd #$0001 std <$10,y bra L014D L0127 lbsr L0705 clrb clra lbsr L1B2D saves long branch L012F ldd #$0001 std $0E,y bra L014D L0136 ldb [,s] clra pshs b,a leax >L1412,pcr illegal option msg pshs x ldd <u000E lbsr L1B5F leas $04,s clrb clra std <$22,s L014D ldb $02,s cmpb #$77 lbeq L005B ldd ,s addd #$0001 std ,s lbra L0086 L015F ldd <$22,s cmpd #$0001 beq L0170 lbsr L0705 clrb clra lbsr L1B2D saves long branch L0170 ldd <$16,y beq L017F clrb clra std $0E,y std <$14,y std <$10,y L017F ldd #$000B std <$36,y ldd <$16,y bne L0193 ldd <$36,y subd #$0001 std <$36,y L0193 ldd <$10,y beq L01A1 ldd <$36,y subd #$0001 std <$36,y L01A1 ldd [<$26,s] lbsr L24AA saves long branch cmpd #$0000 bne L01BF leax >L142F,pcr no device msg pshs x ldd <u000E lbsr L1B5F leas $02,s clrb clra lbsr L1B2D saves long branch L01BF clrb clra std <$19,s std <$17,s ldd [<$26,s] ldx <$17,s ldb d,x cmpb #$2F beq L01E7 ldd <$19,s addd #$0001 std <$19,s subd #$0001 leax $03,s leax d,x ldb #$2F stb ,x L01E7 ldd <$17,s addd #$0001 std <$17,s subd #$0001 ldx [<$26,s] ldb d,x stb $02,s tstb beq L0213 ldd <$19,s addd #$0001 std <$19,s subd #$0001 leax $03,s leax d,x ldb $02,s stb ,x bra L01E7 L0213 ldd <$19,s leax $02,s ldb d,x cmpb #$40 beq L0238 ldd <$19,s std <$20,s ldd <$19,s addd #$0001 std <$19,s subd #$0001 leax $03,s leax d,x ldb #$40 stb ,x L0238 ldd <$19,s addd #$0001 std <$19,s subd #$0001 leax $03,s leax d,x clr ,x ldd #$0001 pshs b,a leax $05,s tfr x,d lbsr L26BD saves long branch leas $02,s std ,y cmpd #$FFFF bne L0276 leax $03,s pshs x leax >L144C,pcr pshs x ldd <u000E lbsr L1B5F leas $04,s ldd <u0002 lbsr L1B2D saves long branch L0276 clrb clra pshs b,a pshs b,a pshs b,a ldd ,y lbsr L276D saves long branch leas $06,s leax >$0178,y tfr x,d lbsr L0749 leax >$0178,y ldb $05,x clra pshs b,a leax >$0178,y ldb $04,x clra tfr b,a clrb addd ,s++ std $0A,y ldd $0A,y tfr a,b clra std <$32,y ldd $0A,y anda #$00 andb #$FF std <$34,y leax >$0178,y ldb $07,x clra pshs b,a leax >$0178,y ldb $06,x clra tfr b,a clrb addd ,s++ std $06,y ldd $06,y addd #$FFFF std $08,y leax >$0178,y ldb $02,x clra pshs b,a leax >$0178,y ldb $01,x clra tfr b,a clrb addd ,s++ std $0C,y ldd $0C,y pshs b,a ldd $06,y lbsr L2531 std $0C,y leax >$0178,y tfr x,d addd #$001F pshs b,a leax <$4F,y tfr x,d lbsr L0B8D leas $02,s clrb clra std <$17,s L0314 ldd <$17,s cmpd #$0002 bgt L033D ldd <$17,s leax <$4C,y leax d,x pshs x ldd <$19,s leax >$0178,y ldb d,x stb [,s++] ldd <$17,s addd #$0001 std <$17,s bra L0314 L033D ldd <$20,s leax $03,s leax d,x clr ,x ldd <$16,y lbne L03D4 leax $03,s pshs x leax <$4F,y pshs x leax >L1464,pcr tfr x,d lbsr L1B94 saves long branch leas $04,s ldd $0A,y pshs b,a leax >L1480,pcr tfr x,d lbsr L1B94 saves long branch leas $02,s ldd $06,y cmpd #$0001 bne L0383 leax >L149F,pcr tfr x,d lbsr L1B94 saves long branch bra L0392 L0383 ldd $06,y pshs b,a leax >L14B5,pcr msg if DD.BIT != 1 tfr x,d lbsr L1B94 saves long branch leas $02,s L0392 leax <$38,y pshs x leax <$4C,y tfr x,d lbsr L0720 leas $02,s leax <$38,y pshs x leax >L14CD,pcr tfr x,d lbsr L1B94 saves long branch leas $02,s leax <$38,y pshs x leax >$0178,y tfr x,d addd #$0008 lbsr L0720 leas $02,s leax <$38,y pshs x leax >L14E8,pcr tfr x,d lbsr L1B94 saves long branch leas $02,s L03D4 leax $03,s tfr x,d lbsr L25D1 cmpd #$FFFF bne L03F3 leax >L1511,pcr pshs x ldd <u000E lbsr L1B5F leas $02,s ldd <u0002 lbsr L1B2D saves long branch L03F3 ldd <$16,y bne L0469 ldd #$1000 lbsr L22BB std >$0278,y cmpd #$0000 beq L041F ldd <$10,y beq L0436 ldd #$1000 lbsr L22BB std >$027A,y cmpd #$0000 bne L0436 L041F ldd #$0004 pshs b,a leax >L1536,pcr pshs x ldd <u000E lbsr L1B5F leas $04,s clrb clra lbsr L1B2D saves long branch L0436 clrb clra pshs b,a leax $02,y pshs x leax <$70,y pshs x ldd >$0278,y lbsr L10EB leas $06,s ldd <$10,y beq L0469 ldd #$0001 pshs b,a leax $04,y pshs x leax >$00AC,y pshs x ldd >$027A,y lbsr L10EB leas $06,s L0469 leax >$0178,y ldb $04,x clra addd #$0002 std <$1B,s leax >$0178,y ldb $05,x beq L0487 ldd <$1B,s addd #$0001 std <$1B,s L0487 clrb clra pshs b,a ldd #$0013 pshs b,a leax >$0178,y tfr x,d addd #$0008 pshs b,a ldd ,y lbsr L275C leas $06,s ldd #$0002 pshs b,a leax <$19,s pshs x ldd ,y lbsr L26D4 leas $04,s cmpd #$FFFF bne L04BE ldd <u0002 lbsr L1B2D saves long branch L04BE ldd <$1B,s addd <$17,s std <$1B,s ldd <$16,y bne L04DC ldd <$1B,s pshs b,a leax >L1568,pcr tfr x,d lbsr L1B94 saves long branch leas $02,s L04DC clrb clra std <$2E,y leax $03,s stx >$0108,y ldd <$16,y bne L0510 ldd <$1B,s pshs b,a leax <$1F,s pshs x clrb clra pshs b,a ldd $02,y pshs b,a ldd >$0278,y lbsr L0BB1 leas $08,s leax >L15A6,pcr tfr x,d lbsr L1B94 saves long branch L0510 leax $03,s tfr x,d lbsr L0779 ldd <$16,y lbne L05E8 leax >L15CC,pcr tfr x,d lbsr L1B94 saves long branch lbsr L0FA3 ldd <$10,y beq L054F ldd <$2A,y bne L0539 ldd <$26,y beq L054F L0539 ldd #$0001 std <$2E,y leax >L15ED,pcr tfr x,d lbsr L1B94 saves long branch leax $03,s tfr x,d lbsr L0779 L054F leax >L1614,pcr tfr x,d lbsr L1B94 saves long branch ldd <$2A,y beq L0588 ldd <$2A,y pshs b,a leax >L1616,pcr tfr x,d lbsr L1B94 saves long branch leas $02,s ldd <$2A,y cmpd #$0001 beq L057F leax >L163D,pcr tfr x,d lbsr L1B94 saves long branch L057F leax >L163F,pcr tfr x,d lbsr L1B94 saves long branch L0588 ldd <$26,y beq L05B8 ldd <$26,y pshs b,a leax >L1641,pcr tfr x,d lbsr L1B94 saves long branch leas $02,s ldd <$26,y cmpd #$0001 beq L05AF leax >L164C,pcr tfr x,d lbsr L1B94 saves long branch L05AF leax >L164E,pcr in file, not map msg tfr x,d lbsr L1B94 saves long branch L05B8 ldd <$28,y beq L05E8 ldd <$28,y pshs b,a leax >L167C,pcr tfr x,d lbsr L1B94 saves long branch leas $02,s ldd <$28,y cmpd #$0001 beq L05DF leax >L1687,pcr tfr x,d lbsr L1B94 saves long branch L05DF leax >L1689,pcr in map, not file msg tfr x,d lbsr L1B94 saves long branch L05E8 ldd <$2C,y beq L0618 ldd <$2C,y pshs b,a leax >L16B7,pcr tfr x,d lbsr L1B94 saves long branch leas $02,s ldd <$2C,y cmpd #$0001 beq L060F leax >L16D5,pcr tfr x,d lbsr L1B94 saves long branch L060F leax >L16D7,pcr tfr x,d lbsr L1B94 saves long branch L0618 ldd <$16,y bne L064E leax <$4F,y pshs x leax >L16D9,pcr tfr x,d lbsr L1B94 saves long branch leas $02,s ldd <$2C,y bne L063C ldd <$2A,y bne L063C ldd <$26,y beq L0645 L063C leax >L16F2,pcr tfr x,d lbsr L1B94 saves long branch L0645 leax >L16F7,pcr tfr x,d lbsr L1B94 saves long branch L064E ldd <$24,y cmpd #$0001 bne L0662 leax >L16FF,pcr tfr x,d lbsr L1B94 saves long branch bra L0672 L0662 ldd <$24,y pshs b,a leax >L170C,pcr tfr x,d lbsr L1B94 saves long branch leas $02,s L0672 ldd <$22,y cmpd #$0001 bne L0686 leax >L171C,pcr tfr x,d lbsr L1B94 saves long branch bra L0696 L0686 ldd <$22,y pshs b,a leax >L1724,pcr tfr x,d lbsr L1B94 saves long branch leas $02,s L0696 ldd <$16,y bne L06FC clrb clra pshs b,a ldd #$FFFF pshs b,a clrb clra pshs b,a ldd $02,y pshs b,a ldd >$0278,y lbsr L1232 leas $08,s ldd $02,y lbsr L26CA ldd <$14,y bne L06C9 leax <$70,y tfr x,d lbsr L27A1 L06C9 ldd <$10,y beq L06FC clrb clra pshs b,a ldd #$FFFF pshs b,a ldd #$0001 pshs b,a ldd $04,y pshs b,a ldd >$027A,y lbsr L1232 leas $08,s ldd $04,y lbsr L26CA ldd <$14,y bne L06FC leax >$00AC,y tfr x,d lbsr L27A1 L06FC clrb clra lbsr L1B2D saves long branch leas <$24,s rts ;--------------------------------------------- ; ;--------------------------------------------- L0705 leax >L172E,pcr usage msg pshs x ldd <u000E lbsr L1B5F leas $02,s leax >L1800,pcr pshs x ldd <u000E lbsr L1B5F leas $02,s rts ;--------------------------------------------- ; ;--------------------------------------------- L0720 pshs b,a ldx ,s ldb $02,x clra pshs b,a ldx $02,s ldb $01,x all out of order clra too complex tfr b,a an lda would have worked fine clrb addd ,s++ pshs b,a ldb [<$02,s] clra pshs b,a leax >L1834,pcr pshs x ldd $0A,s lbsr L1B48 leas $08,s rts ;--------------------------------------------- ; ;--------------------------------------------- L0749 pshs b,a ldd #$0100 pshs b,a ldd $02,s pshs b,a ldd ,y lbsr L26D4 leas $04,s cmpd #$0100 beq L0773 leax >L183E,pcr pshs x ldd <u000E lbsr L1B5F leas $02,s ldd <u0002 lbsr L1B2D saves long branch L0773 ldd #$0100 leas $02,s rts ;--------------------------------------------- ; ;--------------------------------------------- L0779 pshs b,a leas <-$2A,s ldd <$18,y cmpd #$0027 blt L079E ldd #$0027 pshs b,a leax >L1858,pcr pshs x ldd <u000E lbsr L1B5F leas $04,s clrb clra lbsr L1B2D saves long branch L079E ldd <$18,y addd #$0001 std <$18,y ldd $0E,y beq L07DD ldd #$0001 std ,s L07B0 ldd <$18,y addd #$FFFF cmpd ,s ble L07CD leax >L1882,pcr tfr x,d lbsr L1B94 saves long branch ldd ,s addd #$0001 std ,s bra L07B0 L07CD ldd <$2A,s pshs b,a leax >L1885,pcr tfr x,d lbsr L1B94 saves long branch leas $02,s L07DD ldd <$2E,y bne L07EB ldd <$24,y addd #$0001 std <$24,y L07EB ldd <$2A,s lbsr L25D1 cmpd #$FFFF bne L0811 ldd <$2A,s pshs b,a leax >L1888,pcr pshs x ldd <u000E lbsr L1B5F leas $04,s lbsr L1338 ldd <u0002 lbsr L1B2D saves long branch L0811 lbsr L13A1 std $04,s ldd <$36,y subd #$0001 std <$36,y ldd #$0001 pshs b,a ldd #$0040 pshs b,a clrb clra pshs b,a ldd $0A,s lbsr L276D saves long branch leas $06,s L0834 ldd #$0020 pshs b,a leax >$00E8,y pshs x ldd $08,s lbsr L26D4 leas $04,s std ,s cmpd #$FFFF lbeq L0974 ldb >$00E8,y beq L0834 ldd <$22,y addd #$0001 std <$22,y leax >$00E8,y pshs x leax >$0158,y tfr x,d lbsr L0B8D leas $02,s ldd $0E,y beq L0877 lbsr L1338 L0877 ldd <$16,y bne L08D0 ldd <$2E,y cmpd #$0001 bne L08AA ldd $06,y pshs b,a leax >$00E8,y tfr x,d addd #$001D pshs b,a ldd #$0001 pshs b,a ldd $04,y pshs b,a ldd >$027A,y lbsr L0BB1 leas $08,s bra L08D0 L08AA ldd $06,y pshs b,a leax >$00E8,y tfr x,d addd #$001D pshs b,a clrb clra pshs b,a ldd $02,y pshs b,a ldd >$0278,y lbsr L0BB1 leas $08,s std -$02,s lbne L0834 L08D0 clrb clra pshs b,a clrb clra pshs b,a leax >$00E8,y tfr x,d addd #$001D pshs b,a ldd ,y lbsr L275C leas $06,s leax >$0178,y tfr x,d lbsr L0749 leax >$0178,y tfr x,d lbsr L09AE std -$02,s lbeq L0834 leax >$00E8,y pshs x leax $08,s tfr x,d lbsr L0B8D leas $02,s ldd <$18,y lslb rola leax >$0108,y leax d,x leau $06,s stu ,x ldd <$36,y bne L096A leax <$28,s pshs x leax <$28,s pshs x ldd $08,s lbsr L26A2 leas $04,s ldd $04,s lbsr L26CA ldd <$36,y addd #$0001 std <$36,y leax $06,s tfr x,d lbsr L0779 lbsr L13A1 std $04,s clrb clra pshs b,a ldd <$2A,s pshs b,a ldd <$2A,s pshs b,a ldd $0A,s lbsr L276D saves long branch leas $06,s lbra L0834 L096A leax $06,s tfr x,d lbsr L0779 lbra L0834 L0974 ldd $04,s lbsr L26CA cmpd #$FFFF bne L0984 ldd <u0002 lbsr L1B2D saves long branch L0984 ldd <$36,y addd #$0001 std <$36,y leax >L18A7,pcr tfr x,d lbsr L25D1 cmpd #$FFFF bne L09A1 ldd <u0002 lbsr L1B2D saves long branch L09A1 ldd <$18,y subd #$0001 std <$18,y leas <$2C,s rts ;--------------------------------------------- ; ;--------------------------------------------- L09AE pshs b,a leas -$07,s clrb clra std $02,s ldd #$0010 std ,s L09BB ldd $07,s addd ,s ldx #$0002 leax d,x ldb ,x tstb bne L09E5 ldd $07,s addd ,s ldx #$0001 leax d,x ldb ,x tstb bne L09E5 ldd $07,s ldx ,s ldb d,x lbeq L0A93 L09E5 ldd ,s cmpd #$0100 lbge L0A93 ldd $07,s addd ,s ldx #$0004 leax d,x ldb ,x clra pshs b,a ldd $09,s addd $02,s ldx #$0003 leax d,x ldb ,x clra tfr b,a clrb addd ,s++ pshs b,a leax $06,s pshs x ldd $0B,s addd $04,s lbsr L266D leas $04,s leax <$4C,y pshs x ldd $09,s addd $02,s lbsr L2682 leas $02,s cmpd #$0000 bgt L0A49 leax <$4C,y pshs x leax $06,s tfr x,d lbsr L2682 leas $02,s cmpd #$0000 ble L0A89 L0A49 ldd <$2E,y bne L0A82 leax <$38,y pshs x ldd $09,s addd $02,s lbsr L0720 leas $02,s leax <$42,y pshs x leax $06,s tfr x,d lbsr L0720 leas $02,s leax <$42,y pshs x leax <$38,y pshs x leax >L18AA,pcr tfr x,d lbsr L1B94 saves long branch leas $04,s lbsr L1338 L0A82 ldd #$FFFF std $02,s bra L0A93 L0A89 ldd ,s addd #$0005 std ,s lbra L09BB L0A93 ldd $02,s beq L0AAA ldd <$2E,y bne L0AA5 ldd <$2C,y addd #$0001 std <$2C,y L0AA5 clrb clra leas $09,s rts ;--------------------------------------------- ; ;--------------------------------------------- L0AAA ldd <$16,y lbne L0B75 ldd #$0010 std ,s L0AB6 ldd $07,s addd ,s ldx #$0002 leax d,x ldb ,x tstb bne L0AE0 ldd $07,s addd ,s ldx #$0001 leax d,x ldb ,x tstb bne L0AE0 ldd $07,s ldx ,s ldb d,x lbeq L0B75 L0AE0 ldd ,s cmpd #$0100 lbge L0B75 ldd <$2E,y bne L0B32 ldd $07,s addd ,s ldx #$0004 leax d,x ldb ,x clra pshs b,a ldd $09,s addd $02,s ldx #$0003 leax d,x ldb ,x clra tfr b,a clrb addd ,s++ pshs b,a ldd $09,s addd $02,s pshs b,a clrb clra pshs b,a ldd $02,y pshs b,a ldd >$0278,y lbsr L0BB1 leas $08,s std -$02,s beq L0B6B ldd #$FFFF std $02,s bra L0B6B L0B32 ldd $07,s addd ,s ldx #$0004 leax d,x ldb ,x clra pshs b,a ldd $09,s addd $02,s ldx #$0003 leax d,x ldb ,x clra tfr b,a clrb addd ,s++ pshs b,a ldd $09,s addd $02,s pshs b,a ldd #$0001 pshs b,a ldd $04,y pshs b,a ldd >$027A,y bsr L0BB1 leas $08,s L0B6B ldd ,s addd #$0005 std ,s lbra L0AB6 L0B75 ldd $02,s beq L0B7E clrb clra leas $09,s rts ;--------------------------------------------- ; ;--------------------------------------------- L0B7E ldb [<$07,s] andb #$80 subb #$00 beq L0B89 ldb #$01 L0B89 clra leas $09,s rts ;--------------------------------------------- ; ;--------------------------------------------- L0B8D pshs b,a L0B8F ldx $04,s ldb ,x+ stx $04,s ldx ,s stb ,x+ stx ,s cmpb #$80 bcs L0B8F clr [,s] ldd ,s subd #$0001 std ,s ldb [,s] andb #$7F stb [,s] leas $02,s rts ;--------------------------------------------- ; ;--------------------------------------------- L0BB1 pshs b,a leas <-$1C,s ldd <$26,s anda $08,y andb $09,y std -$02,s beq L0BDB ldd $08,y pshs b,a leax $0C,s pshs x ldd <$28,s lbsr L266D leas $04,s ldd <$26,s subd $08,y std <$26,s bra L0BEB L0BDB clrb clra pshs b,a leax $0C,s pshs x ldd <$28,s lbsr L266D leas $04,s L0BEB leax ,s pshs x leax $0C,s tfr x,d lbsr L0720 leas $02,s leax <$11,s pshs x leax <$11,s pshs x leax <$11,s pshs x ldd $06,y pshs b,a leax <$2E,s pshs x leax <$14,s tfr x,d lbsr L25E3 leas $0A,s ldd $0E,y beq L0C59 leax ,s pshs x leax $0C,s tfr x,d lbsr L0720 leas $02,s ldd <$26,s pshs b,a leax $02,s pshs x leax >L18D0,pcr I've never seen this string printed tfr x,d lbsr L1B94 saves long branch leas $04,s ldd <$11,s pshs b,a ldd <$11,s pshs b,a ldd <$11,s pshs b,a leax >L18F2,pcr sector, byte, bit printout, never seen it either tfr x,d lbsr L1B94 saves long branch leas $06,s L0C59 ldd $0F,s pshs b,a ldd $0F,s pshs b,a ldd <$26,s pshs b,a ldd <$26,s pshs b,a ldd <$24,s lbsr L1232 leas $08,s std -$02,s beq L0C7E ldd #$FFFF leas <$1E,s rts ;--------------------------------------------- ; ;--------------------------------------------- L0C7E ldd #$0080 ldx <$11,s beq L0C8C L0C86 asra rorb leax -$01,x bne L0C86 L0C8C stb <$1B,s ldb <$1B,s cmpb #$80 lbeq L0D31 L0C98 ldb <$1B,s beq L0D17 ldd <$26,s beq L0D17 ldd <$22,s lslb rola leax <$1E,y ldb [d,x] andb <$1B,s tstb beq L0CD8 ldd #$0031 pshs b,a ldd <$24,s lslb rola leax <$1E,y ldb [d,x] andb <$1D,s clra pshs b,a ldd <$13,s pshs b,a ldd <$13,s lbsr L0E86 leas $06,s L0CD8 ldd <$2E,y bne L0CFA ldd <$22,s lslb rola leax <$1E,y leax d,x pshs x ldd <$24,s lslb rola leax <$1E,y ldb [d,x] orb <$1D,s ldx [,s++] stb ,x L0CFA ldb <$1B,s lda #$01 beq L0D05 L0D01 lsrb deca bne L0D01 L0D05 stb <$1B,s ldd <$26,s subd #$0001 std <$26,s addd #$0001 bra L0C98 L0D17 ldd $0F,s addd #$0001 std $0F,s ldd <$22,s lslb rola leax <$1E,y leax d,x tfr x,u ldd ,u addd #$0001 std ,u L0D31 ldd <$26,s cmpd #$0008 lbcs L0DD7 ldd $0F,s cmpd #$00FF ble L0D72 clrb clra std $0F,s ldd $0F,s pshs b,a ldd $0F,s addd #$0001 std $0F,s pshs b,a ldd <$26,s pshs b,a ldd <$26,s pshs b,a ldd <$24,s lbsr L1232 leas $08,s std -$02,s beq L0D72 ldd #$FFFF leas <$1E,s rts ;--------------------------------------------- ; ;--------------------------------------------- L0D72 ldd <$22,s lslb rola leax <$1E,y ldb [d,x] tstb beq L0D9E ldd #$0031 pshs b,a ldd <$24,s lslb rola leax <$1E,y ldb [d,x] clra pshs b,a ldd <$13,s pshs b,a ldd <$13,s lbsr L0E86 leas $06,s L0D9E ldd <$2E,y bne L0DB1 ldd <$22,s lslb rola leax <$1E,y leax d,x ldb #$FF stb [,x] L0DB1 ldd <$22,s lslb rola leax <$1E,y leax d,x tfr x,u ldd ,u addd #$0001 std ,u ldd $0F,s addd #$0001 std $0F,s ldd <$26,s subd #$0008 std <$26,s lbra L0D31 L0DD7 ldd <$26,s lbeq L0E80 ldd #$0008 subd <$26,s pshs b,a ldd #$00FF ldx ,s++ beq L0DF3 L0DED lslb rola leax -$01,x bne L0DED L0DF3 stb <$1B,s ldd $0F,s cmpd #$00FF ble L0E2C clrb clra std $0F,s ldd $0F,s pshs b,a ldd $0F,s addd #$0001 std $0F,s pshs b,a ldd <$26,s pshs b,a ldd <$26,s pshs b,a ldd <$24,s lbsr L1232 leas $08,s std -$02,s beq L0E2C ldd #$FFFF leas <$1E,s rts ;--------------------------------------------- ; ;--------------------------------------------- L0E2C ldd <$22,s lslb rola leax <$1E,y ldb [d,x] andb <$1B,s tstb beq L0E5E ldd #$0031 pshs b,a ldd <$24,s lslb rola leax <$1E,y ldb [d,x] andb <$1D,s clra pshs b,a ldd <$13,s pshs b,a ldd <$13,s bsr L0E86 leas $06,s L0E5E ldd <$2E,y bne L0E80 ldd <$22,s lslb rola leax <$1E,y leax d,x pshs x ldd <$24,s lslb rola leax <$1E,y ldb [d,x] orb <$1D,s ldx [,s++] stb ,x L0E80 clrb clra leas <$1E,s rts ;--------------------------------------------- ; ;--------------------------------------------- L0E86 pshs b,a leas -$08,s ldb $0F,s stb $04,s clrb clra std ,s L0E92 ldb $04,s lbeq L0FA0 ldb $04,s andb #$80 tstb lbeq L0F8A ldd ,s pshs b,a ldd $0E,s pshs b,a ldd $0C,s pshs b,a ldd $06,y pshs b,a leax $0D,s tfr x,d lbsr L2634 leas $08,s leax <$38,y pshs x leax $07,s tfr x,d lbsr L0720 leas $02,s ldd <$2E,y bne L0F41 ldd <$10,s cmpd #$0031 bne L0EF4 leax <$38,y pshs x leax >L1916,pcr tfr x,d lbsr L1B94 saves long branch leas $02,s ldd <$2A,y addd #$0001 std <$2A,y bra L0F51 L0EF4 ldd <$10,s cmpd #$0032 bne L0F18 leax <$38,y pshs x leax >L193B,pcr tfr x,d lbsr L1B94 saves long branch leas $02,s ldd <$26,y addd #$0001 std <$26,y bra L0F51 L0F18 ldd <$10,s cmpd #$0033 bne L0F51 ldd <$12,y beq L0F36 leax <$38,y pshs x leax >L1973,pcr tfr x,d lbsr L1B94 saves long branch leas $02,s L0F36 ldd <$28,y addd #$0001 std <$28,y bra L0F51 L0F41 leax <$38,y pshs x leax >L19AB,pcr tfr x,d lbsr L1B94 saves long branch leas $02,s L0F51 ldd <$10,y beq L0F8A ldd <$2E,y bne L0F87 ldd <$30,y bne L0F8A ldd #$0001 std <$30,y ldd $06,y pshs b,a leax $07,s pshs x ldd #$0001 pshs b,a ldd $04,y pshs b,a ldd >$027A,y lbsr L0BB1 leas $08,s clrb clra std <$30,y bra L0F8A L0F87 lbsr L1338 L0F8A ldd ,s addd #$0001 std ,s ldb $04,s lda #$01 beq L0F9B L0F97 lslb deca bne L0F97 L0F9B stb $04,s lbra L0E92 L0FA0 leas $0A,s rts ;--------------------------------------------- ; ;--------------------------------------------- L0FA3 leas -$0A,s clrb clra pshs b,a ldd #$0100 pshs b,a clrb clra pshs b,a ldd ,y lbsr L276D saves long branch leas $06,s clrb clra pshs b,a clrb clra pshs b,a clrb clra pshs b,a ldd $02,y pshs b,a ldd >$0278,y lbsr L1232 leas $08,s leax >$0178,y tfr x,d lbsr L0749 clrb clra std $04,s std $06,s clrb clra std ,s L0FE5 ldd ,s cmpd $0A,y lbcc L10E8 ldd $06,s leax >$0178,y ldb d,x eorb [<$1E,y] stb $08,s tstb lbeq L108D ldd ,s addd #$0001 cmpd $0A,y bne L102E ldd $0C,y anda #$00 andb #$07 pshs b,a ldd #$0008 subd ,s++ pshs b,a ldd #$00FF ldx ,s++ beq L1026 L1020 lslb rola leax -$01,x bne L1020 L1026 pshs b ldb $09,s andb ,s+ stb $08,s L102E ldd $06,s leax >$0178,y ldb d,x andb $08,s stb $09,s tstb beq L1060 ldd #$0033 pshs b,a ldb $0B,s clra pshs b,a ldd $08,s pshs b,a ldd #$0100 lbsr L2509 pshs b,a ldd $0A,s tfr a,b sex addd <$1A,y lbsr L0E86 leas $06,s L1060 ldb $08,s andb [<$1E,y] stb $09,s tstb beq L108D ldd #$0032 pshs b,a ldb $0B,s clra pshs b,a ldd $08,s pshs b,a ldd #$0100 lbsr L2509 pshs b,a ldd $0A,s tfr a,b sex addd <$1A,y lbsr L0E86 leas $06,s L108D ldd <$1E,y addd #$0001 std <$1E,y ldd $04,s addd #$0001 std $04,s cmpd #$1000 blt L10C4 clrb clra std $04,s ldd $04,s pshs b,a ldd <$1A,y addd #$0010 pshs b,a clrb clra pshs b,a ldd $02,y pshs b,a ldd >$0278,y lbsr L1232 leas $08,s L10C4 ldd $06,s addd #$0001 std $06,s cmpd #$0100 blt L10DE clrb clra std $06,s leax >$0178,y tfr x,d lbsr L0749 L10DE ldd ,s addd #$0001 std ,s lbra L0FE5 L10E8 leas $0A,s rts ;--------------------------------------------- ; ;--------------------------------------------- L10EB pshs b,a leas <-$18,s ldd <$20,s pshs b,a lbsr L27AE pshs b,a leax >L19C0,pcr pshs x leax $0A,s tfr x,d lbsr L1B48 leas $06,s leax $04,s pshs x ldd <$1E,s lbsr L1378 leas $02,s ldb [<$1C,s] cmpb #$2F bne L1132 ldd #$0003 pshs b,a ldd <$1E,s lbsr L272F leas $02,s std [<$1E,s] cmpd #$FFFF bne L1149 L1132 ldd <$1C,s pshs b,a leax >L19CE,pcr pshs x ldd <u000E lbsr L1B5F leas $04,s ldd <u0002 lbsr L1B2D saves long branch L1149 clrb clra std ,s L114D ldd ,s cmpd #$1000 bge L1168 ldd ,s addd #$0001 std ,s subd #$0001 ldx <$18,s leax d,x clr ,x bra L114D L1168 ldd $0A,y tfr a,b clra lsra rorb lsra rorb lsra rorb lsra rorb std $02,s ldd $0A,y pshs b,a ldd #$1000 lbsr L2515 std -$02,s beq L118C ldd $02,s addd #$0001 std $02,s L118C clrb clra pshs b,a ldd $04,s lslb rola lslb rola lslb rola lslb rola tfr b,a clrb addd #$FFFF pshs b,a clrb clra pshs b,a ldd [<$24,s] lbsr L276D saves long branch leas $06,s ldd #$0001 pshs b,a ldd <$1A,s pshs b,a ldd [<$22,s] lbsr L26E9 leas $04,s cmpd #$FFFF bne L11CB ldd <u0002 lbsr L1B2D saves long branch L11CB clrb clra pshs b,a clrb clra pshs b,a clrb clra pshs b,a ldd [<$24,s] lbsr L276D saves long branch leas $06,s ldd #$0001 std ,s L11E4 ldd ,s cmpd $02,s bgt L1211 ldd #$1000 pshs b,a ldd <$1A,s pshs b,a ldd [<$22,s] lbsr L26E9 leas $04,s cmpd #$FFFF bne L1208 ldd <u0002 lbsr L1B2D saves long branch L1208 ldd ,s addd #$0001 std ,s bra L11E4 L1211 ldd <$20,s lslb rola leax <$1A,y leax d,x clrb clra std ,x ldd <$20,s lslb rola leax <$1E,y leax d,x ldd <$18,s std ,x leas <$1A,s rts ;--------------------------------------------- ; ;--------------------------------------------- L1232 pshs b,a ldd $08,s cmpd <$32,y blt L125B ldd $0A,s cmpd <$34,y blt L125B ldd <$2E,y bne L1255 leax >L19F1,pcr tfr x,d lbsr L1B94 saves long branch lbsr L1338 L1255 ldd #$FFFF leas $02,s rts ;--------------------------------------------- ; ;--------------------------------------------- L125B ldd $06,s lslb rola leax <$1A,y ldd d,x cmpd $08,s bgt L127E ldd $06,s lslb rola leax <$1A,y ldd d,x addd #$000F cmpd $08,s lbge L1315 L127E clrb clra pshs b,a ldd $08,s lslb rola leax <$1A,y ldd d,x tfr b,a clrb pshs b,a clrb clra pshs b,a ldd $0A,s lbsr L276D saves long branch leas $06,s ldd #$1000 pshs b,a ldd $02,s pshs b,a ldd $08,s lbsr L26E9 leas $04,s cmpd #$FFFF bne L12B6 ldd <u0002 lbsr L1B2D saves long branch L12B6 ldd $06,s lslb rola leax <$1A,y leax d,x pshs x ldd $0A,s andb #$F0 std [,s++] ldd $08,s cmpd #$FFFF beq L1315 clrb clra pshs b,a ldd $08,s lslb rola leax <$1A,y ldd d,x tfr b,a clrb pshs b,a clrb clra pshs b,a ldd $0A,s lbsr L276D saves long branch leas $06,s ldd #$1000 pshs b,a ldd $02,s pshs b,a ldd $08,s lbsr L26D4 leas $04,s cmpd #$FFFF bne L1315 ldd <u0002 lbsr L1B2D saves long branch L1315 ldd $06,s lslb rola leax <$1E,y leax d,x pshs x ldd $0A,s pshs b,a ldd #$0010 lbsr L2509 tfr b,a clrb addd $02,s addd $0C,s std [,s++] clrb clra leas $02,s rts ;--------------------------------------------- ; ;--------------------------------------------- L1338 leas -$02,s clrb clra std ,s L133E ldd ,s cmpd <$18,y bge L1366 ldd ,s lslb rola leax >$0108,y ldd d,x pshs b,a leax >L1A14,pcr tfr x,d lbsr L1B94 saves long branch leas $02,s ldd ,s addd #$0001 std ,s bra L133E L1366 leax >$0158,y pshs x leax >L1A18,pcr tfr x,d lbsr L1B94 saves long branch leas $04,s rts ;--------------------------------------------- ; ;--------------------------------------------- L1378 pshs b,a leas -$04,s L137C ldx $04,s ldb ,x+ stx $04,s tstb bne L137C ldd $04,s subd #$0001 std $04,s L138C ldb [<$08,s] ldx $04,s stb ,x+ stx $04,s ldx $08,s ldb ,x+ stx $08,s tstb bne L138C leas $06,s rts ;--------------------------------------------- ; ;--------------------------------------------- L13A1 leas -$02,s ldd #$0081 pshs b,a leax >L1A1C,pcr tfr x,d lbsr L26BD saves long branch leas $02,s std ,s cmpd #$FFFF bne L13DD leax >L1A1E,pcr pshs x ldd <u000E lbsr L1B5F leas $02,s leax >L1A41,pcr pshs x ldd <u000E lbsr L1B5F leas $02,s lbsr L1338 ldd <u0002 lbsr L1B2D saves long branch L13DD ldd ,s leas $02,s rts ;-------------------------------------------------------------- ; STRINGS DEFINITION ;-------------------------------------------------------------- L13E2 fcc "/DD" fcb 0 L13E6 fcc "/DD" fcb 0 L13EA fcc "dcheck: -w= requires pathlist argument" fcb $0a,$00 L1412 fcc "dcheck: illegal option '%c'" fcb $0a,$00 L142F fcc "dcheck: no device specified" fcb $0a,$00 L144C fcc "dcheck: cannot open %s" fcb $0a,$00 L1464 fcc "Volume - '%s' on device %s" fcb $0a,$00 L1480 fcc "$%04x bytes in allocation map" fcb $0a,$00 L149F fcc "1 sector per cluster" fcb $0a,$00 L14B5 fcc "%d sectors per cluster" fcb $0a,$00 L14CD fcc "%s total sectors on media" fcb $0a,$00 L14E8 fcc "Sector %s is start of root directory FD" fcb $0a,$00 L1511 fcc "dcheck: cannot chd to root directory" fcb $00 L1536 fcc "No memory available for bitmap buffer (%dK req.)" fcb $0a,$00 L1568 fcc "$%04x sectors used for id, allocation map and root directory" fcb $0a,$00 L15A6 fcc "Building allocation map work file..." fcb $0a,$00 L15CC fcc "Checking allocation map file..." fcb $0a,$00 L15ED fcb $0a L15EE fcc "Pathlists for questionable clusters:" fcb $0a,$00 L1614 fcb $0a,$00 L1616 fcc "%d previously allocated clusters found" fcb $00 L163D fcc 's' fcb $00 L163F fcb $0a,$00 L1641 fcc "%d cluster" fcb $00 L164C fcb $73,$00 L164E fcc " in file structure but not in allocation map" fcb $0a,$00 L167C fcc "%d cluster" fcb $00 L1687 fcb $73,$00 L1689 fcc " in allocation map but not in file structure" L16B5 fcb $0A,00 L16B7 fcc "%d bad file descriptor sector" fcb $00 L16D5 fcb $73,$00 L16D7 fcb $0a,$00 L16D9 fcb $0a L16DA fcc "'%s' file structure is " fcb 0 L16F2 fcc "not " fcb 0 L16F7 fcc "intact" fcb $0a,$00 L16FF fcc "1 directory" fcb $0a,$00 L170C fcc "%d directories" fcb $0a,$00 L171C fcc "1 file" fcb $0a,$00 L1724 fcc "%d files" fcb $0a,$00 L172E fcc "Usage: dcheck [-opts] device_name " fcb $0a fcc " -w = pathlist to directory for work files" fcb $0a fcc " -p = print pathlists for questionable clusters" fcb $0a fcc " -m = save allocation map work files" fcb $0a fcc " -b = suppress listing of unused clusters" fcb $0a,$00 L1800 fcc " -s = display count of files and directories only" fcb $0a,$00 L1834 fcc "$%02x%04x" fcb $00 L183E fcc "dcheck: fatal read error" fcb $0a,$00 L1858 fcc "dcheck: directories nested too deep (%d)" fcb $0a,$00 L1882 fcb $20,$20,$00 L1885 fcc "%s" fcb $00 L1888 fcc "dcheck: cannot chgdir to '%s'" fcb $0a,$00 L18A7 fcc ".." fcb $00 L18AA fcc "*** Bad FD segment (%s-%s) for file: " fcb $00 L18D0 fcc "--> setbits: Start=%s Count=$%04x" fcb $00 L18F2 fcc " Sector=%02x Byte=%02x Bit=%1x <--" fcb $0a,$00 L1916 fcc "Cluster %s was previously allocated" fcb $0a,$00 L193B fcc "Cluster %s in file structure but not in allocation map" fcb $0a,$00 L1973 fcc "Cluster %s in allocation map but not in file structure" fcb $0a,$00 L19Ab fcc "Cluster %s in path: " fcb $00 L19C0 fcc "/dcheck%02x%d" fcb $00 L19CE fcc "dcheck: cannot open workfile '%s'" fcb $0a,$00 L19F1 fcc "*** Segment out of range in file: " fcb $00 L1A14 fcc "%s/" fcb $00 L1A18 fcc "%s" fcb $0a,$00 L1A1C fcb $2E,$00 L1A1E fcc "dcheck: cannot open '.' directory" fcb $0a,$00 L1A41 fcc "Pathlist is: " fcb $00 ;--------------------------------- ; we got here from a F$Fork, so... ; Y=top of parameter area ; X,SP Highest address of data area ; U,DP lowest address ; D= size of parameter area ; U,Y always are at page boundaries ;--------------------------------- start equ * clrb make even page boundary stb ,u++ U+2, 4 a 1 byte write? rdarg lda ,x+ get first char of cli cmpa #$0D end of line? beq L1ABE we have end of cli opts bsr isspace else check for space? beq rdarg was, get next char leax -$01,x else 1 to many read stx ,u++ save addr of arg in u0002(4,6,8,A,etc) inc <u0000 tally we have one L1AB0 lda ,x+ get cli char cmpa #$0D end of line? beq L1ABE yes, go bsr isspace no, chkspace bne L1AB0 not a space, back for more clr -$01,x bra rdarg go back again L1ABE clr ,-x end of cli options found lda <u0000 sta <u0001 copy arg count clra clrb pshs b,a clear 2 bytes on stack L1AC8 tst <u0000 do we have arguments? beq L1AD4 no, go dec <u0000 else dec count ldd ,--u get from u, and reset u-2 pshs b,a put arg pointer on stack bra L1AC8 repeat till u0000=00 L1AD4 pshs x save x leax ,s get stack pointer pshs x stack it leax -$02,s push stack down 2 more pshs x now its 6 bytes leax ,u L1AE0 clr ,x+ cmpx ,s bcs L1AE0 puls x leau -u0002,u leax <u0010,u stx <u000A stx <u0008 leax <u001B,u stx <u000C stx <u0018 leax <u0026,u stx <u000E stx <u0023 lda #$05 sta <u0016 lda #$06 sta <u0021 sta <u002C clra sta <u0017 inca sta <u0022 inca sta <u002D ldd ,u addd #$0001 sty <u0000 leay >u00FD,u lbsr L0014 bra L1B2D isspace cmpa #$20 space char? beq L1B2C yes, go cmpa #$09 whats a #$09? L1B2C rts L1B2D pshs b,a L1B2F ldd <u0008 beq L1B3A ldd <u0008 lbsr L1E93 bra L1B2F L1B3A ldd ,s lbsr L27AB leas $02,s rts ;--------------------------------------------- ; ;--------------------------------------------- L1B48 pshs b,a leax $06,s pshs x ldd $06,s pshs b,a ldd $04,s bsr L1BC1 leas $04,s leas $02,s rts ;--------------------------------------------- ; entry to screen output print function ;--------------------------------------------- L1B5F pshs b,a leas >-$0100,s leax >$0106,s pshs x ldd >$0106,s pshs b,a leax $04,s tfr x,d bsr L1BC1 leas $04,s ldd >$0100,s pshs b,a leax $02,s tfr x,d lbsr L1FEC leas $02,s leas >$0102,s rts L1B94 pshs b,a leas >-$0100,s leax >$0104,s pshs x ldd >$0102,s pshs b,a leax $04,s tfr x,d bsr L1BC1 leas $04,s leax ,s tfr x,d lbsr L1F87 leas >$0102,s rts L1BC1 pshs b,a leas >-$010D,s L1BC7 ldx >$0111,s ldb ,x+ stx >$0111,s stb ,s tstb lbeq L1DF4 ldb ,s cmpb #'% ; $25 beq L1BF4 ldd >$010D,s addd #$0001 std >$010D,s subd #$0001 pshs b,a ldb $02,s stb [,s++] bra L1BC7 L1BF4 leax $0D,s stx $09,s ldd #$0006 std $04,s clr $07,s ldb #$20 stb $08,s clr $06,s ldb [>$0111,s] cmpb #'- ; $2D bne L1C1C ldd >$0111,s addd #$0001 std >$0111,s ldb #$01 stb $07,s L1C1C ldb [>$0111,s] clra lbsr L2444 addd #$0000 beq L1C42 ldb [>$0111,s] cmpb #$30 bne L1C35 ldb #$30 stb $08,s L1C35 leax >$0111,s tfr x,d lbsr L1F48 std $02,s bra L1C46 L1C42 clrb clra std $02,s L1C46 ldb [>$0111,s] cmpb #'. ; $2E bne L1C68 ldd >$0111,s addd #$0001 std >$0111,s leax >$0111,s tfr x,d lbsr L1F48 std $04,s ldb #$01 stb $06,s L1C68 ldx >$0111,s ldb ,x+ stx >$0111,s stb ,s ldb ,s clra lbsr L245B saves long branch cmpb #'d ; $64 beq L1C9D cmpb #'u ; $75 beq L1CCA cmpb #'x ; $78 beq L1CD0 cmpb #'o ; $6F beq L1CD6 cmpb #'c ; $63 beq L1D00 cmpb #'s ; $73 lbeq L1D22 lbra L1DDD ;------------------ ; Treat printf %d ;------------------ L1C9D ldd [>$0113,s] cmpd #$0000 bge L1CCA ldd $09,s addd #$0001 std $09,s subd #$0001 pshs b,a ldb #$2D stb [,s++] ldd [>$0113,s] nega negb sbca #$00 std [>$0113,s] ldd $02,s subd #$0001 std $02,s ;------------------- ; Treat printf %u ;------------------- L1CCA ldb #$0A stb $01,s bra L1CDA ;------------------ ; Treat printf %x ;------------------ L1CD0 ldb #$10 stb $01,s bra L1CDA ;------------------- ; Treat printf %o ;------------------- L1CD6 ldb #$08 stb $01,s L1CDA ldb $01,s clra pshs b,a ldx >$0115,s ldd ,x++ stx >$0115,s pshs b,a leax $0D,s tfr x,d lbsr L1DFD leas $04,s clra pshs b,a ldd $04,s subd ,s++ std $02,s bra L1D64 ;------------------ ; Treat printf %c ;------------------ L1D00 ldd $09,s addd #$0001 std $09,s subd #$0001 pshs b,a ldx >$0115,s ldd ,x++ stx >$0115,s stb [,s++] ldd $02,s subd #$0001 std $02,s bra L1D64 ;---------------- ; Treat printf %s ;---------------- L1D22 ldb $06,s bne L1D2B ldd #$0100 std $04,s L1D2B ldx >$0113,s ldd ,x++ stx >$0113,s std $0B,s L1D37 ldb [<$0B,s] beq L1D64 ldd $04,s beq L1D64 ldd $09,s addd #$0001 std $09,s subd #$0001 pshs b,a ldx $0D,s ldb ,x+ stx $0D,s stb [,s++] ldd $04,s subd #$0001 std $04,s ldd $02,s subd #$0001 std $02,s bra L1D37 L1D64 clr [<$09,s] leax $0D,s stx $09,s ldb $07,s bne L1D95 L1D6F ldd $02,s subd #$0001 std $02,s addd #$0001 cmpd #$0000 ble L1D95 ldd >$010D,s addd #$0001 std >$010D,s subd #$0001 pshs b,a ldb $0A,s stb [,s++] bra L1D6F L1D95 ldx $09,s ldb ,x+ stx $09,s stb [>$010D,s] tstb beq L1DAF ldd >$010D,s addd #$0001 std >$010D,s bra L1D95 L1DAF ldb $07,s lbeq L1BC7 L1DB5 ldd $02,s subd #$0001 std $02,s addd #$0001 cmpd #$0000 lble L1BC7 ldd >$010D,s addd #$0001 std >$010D,s subd #$0001 pshs b,a ldb $0A,s stb [,s++] bra L1DB5 L1DDD ldd >$010D,s addd #$0001 std >$010D,s subd #$0001 pshs b,a ldb $02,s stb [,s++] lbra L1BC7 L1DF4 clr [>$010D,s] leas >$010F,s rts L1DFD pshs b,a leas -$03,s ldd [<$03,s] std ,s ldd $07,s pshs b,a ldd $0B,s lbsr L2515 stb $02,s ldd [<$03,s] addd #$0001 std [<$03,s] subd #$0001 pshs b,a ldb $04,s cmpb #$0A bcc L1E2B ldb $04,s addb #$30 bra L1E2F L1E2B ldb $04,s addb #$37 L1E2F stb [,s++] L1E31 ldd $07,s pshs b,a ldd $0B,s lbsr L2531 std $07,s addd #$0000 beq L1E6E ldd $07,s pshs b,a ldd $0B,s lbsr L2515 stb $02,s ldd [<$03,s] addd #$0001 std [<$03,s] subd #$0001 pshs b,a ldb $04,s cmpb #$0A bcc L1E66 ldb $04,s addb #$30 bra L1E6A L1E66 ldb $04,s addb #$37 L1E6A stb [,s++] bra L1E31 L1E6E ldx [<$03,s] clr ,x ldd ,s lbsr L1F9A ldd [<$03,s] subd ,s clra leas $05,s rts L1E93 pshs b,a leas -$05,s clrb clra std $02,s ldd <u0008 std ,s L1E9F ldd ,s beq L1F02 ldd ,s cmpd $05,s bne L1EF5 ldd $02,s beq L1EC1 ldd $02,s addd #$0008 pshs b,a ldx $02,s ldd $08,x std [,s++] bra L1EC7 L1EC1 ldx ,s ldd $08,x std <u0008 L1EC7 clr $04,s ldd $05,s lbsr L22A1 ldx $05,s ldb $07,x clra lbsr L26CA cmpd #$FFFF bne L1EE0 ldb #$01 stb $04,s L1EE0 ldd $05,s bsr L1F08 ldb $04,s beq L1EEF ldd #$FFFF leas $07,s rts L1EEF ldd #$0001 leas $07,s rts L1EF5 ldd ,s std $02,s ldx ,s ldd $08,x std ,s bra L1E9F L1F02 ldd #$FFFF leas $07,s rts L1F08 pshs b,a ldd ,s addd #$0006 tfr d,x ldb ,x andb #$08 tstb beq L1F1F ldx ,s ldd $04,x lbsr L238D L1F1F ldd ,s cmpd <u000A beq L1F34 ldd ,s cmpd <u000C beq L1F34 ldd ,s cmpd <u000E bne L1F37 L1F34 leas $02,s rts L1F37 ldd ,s lbsr L238D leas $02,s rts L1F48 pshs b,a leas -$02,s clrb clra std ,s L1F50 ldx [<$02,s] ldb ,x clra lbsr L2444 addd #$0000 beq L1F7C ldx [<$02,s] ldb ,x+ stx [<$02,s] clra pshs b,a ldd $02,s pshs b,a ldd #$000A lbsr L24C6 addd ,s++ subd #$0030 std ,s bra L1F50 L1F7C ldd ,s leas $04,s rts L1F87 pshs b,a ldd <u000C pshs b,a ldd $02,s bsr L1FEC leas $02,s leas $02,s rts L1F9A pshs b,a leas -$05,s clrb clra std ,s ldd $05,s lbsr L24AA switches to lb still saves subd #$0001 std $02,s L1FAC ldd ,s cmpd $02,s bge L1FE6 ldd ,s ldx $05,s ldb d,x stb $04,s ldd $05,s addd ,s pshs b,a ldd $04,s ldx $07,s ldb d,x stb [,s++] ldd $05,s addd $02,s pshs b,a ldb $06,s stb [,s++] ldd ,s addd #$0001 std ,s ldd $02,s subd #$0001 std $02,s bra L1FAC L1FE6 leas $07,s rts L1FEC pshs b,a leas >-$0107,s ldd >$010B,s lbsr L22A1 ldd >$0107,s std $01,s leax $07,s stx $03,s L2003 ldb [<$01,s] lbeq L209A ldb [<$01,s] cmpb #$0A bne L2042 ldb #$0D stb [<$03,s] ldd #$0100 pshs b,a leax $09,s pshs x ldx >$010F,s ldb $07,x clra lbsr L2713 leas $04,s cmpd #$FFFF bne L203B ldd #$FFFF leas >$0109,s rts L203B leax $07,s stx $03,s bra L2090 L2042 ldb [<$01,s] cmpb #$09 bne L207F ldd $03,s leax $07,s pshs x subd ,s++ pshs b,a ldd #$0008 lbsr L2509 pshs b,a ldd #$0008 subd ,s++ std $05,s L2062 ldd $05,s beq L2090 ldd $03,s addd #$0001 std $03,s subd #$0001 pshs b,a ldb #$20 stb [,s++] ldd $05,s subd #$0001 std $05,s bra L2062 L207F ldd $03,s addd #$0001 std $03,s subd #$0001 pshs b,a ldb [<$03,s] stb [,s++] L2090 ldd $01,s addd #$0001 std $01,s lbra L2003 L209A clr [<$03,s] ldd $03,s leax $07,s pshs x cmpd ,s++ beq L20D1 leax $07,s tfr x,d lbsr L24AA pshs b,a leax $09,s pshs x ldx >$010F,s ldb $07,x clra lbsr L26E9 leas $04,s cmpd #$FFFF bne L20D1 ldd #$FFFF leas >$0109,s rts L20D1 ldd >$0107,s leas >$0109,s rts L20F9 pshs b,a ldd $04,s addd #$0002 tfr d,x ldd ,x subd #$0001 std ,x cmpd #$0000 blt L2124 ldd [<$04,s] addd #$0001 std [<$04,s] subd #$0001 pshs b,a ldb $03,s stb [,s++] clra bra L2135 L2124 ldd #$0001 pshs b,a ldd $06,s pshs b,a ldb $05,s clra bsr L2148 leas $04,s L2135 leas $02,s rts L2148 pshs b,a leas -$03,s ldb $04,s stb $02,s ldd $07,s addd #$0006 tfr d,x ldb ,x andb #$02 cmpb #$00 beq L216E ldd $07,s addd #$0006 tfr d,x ldb ,x andb #$30 cmpb #$00 beq L2174 L216E ldd #$FFFF leas $05,s rts L2174 ldb $0A,s beq L217D ldd #$0001 bra L217F L217D clrb clra L217F pshs b,a ldd $09,s addd #$0002 pshs b,a ldd #$0100 subd [,s++] subd ,s++ std ,s ldd $07,s addd #$0006 tfr d,x ldb ,x andb #$04 cmpb #$00 bne L21D0 ldx $07,s ldd $04,x bne L21D0 ldd $07,s addd #$0004 pshs b,a ldd #$0100 lbsr L22BB std [,s++] cmpd #$0000 bne L21CC ldd $07,s addd #$0006 tfr d,u ldb ,u orb #$04 stb ,u bra L21D0 L21CC clrb clra std ,s L21D0 ldd $07,s addd #$0006 tfr d,x ldb ,x andb #$04 tstb beq L2214 ldb $0A,s beq L2245 ldd #$0001 pshs b,a leax $04,s pshs x ldx $0B,s ldb $07,x clra lbsr L26E9 leas $04,s cmpd #$FFFF bne L2245 ldd $07,s addd #$0006 tfr d,u ldb ,u orb #$20 stb ,u ldd #$FFFF leas $05,s rts L2214 ldd ,s beq L2245 ldd ,s pshs b,a ldx $09,s ldd $04,x pshs b,a ldx $0B,s ldb $07,x clra lbsr L26E9 leas $04,s cmpd #$FFFF bne L2245 ldd $07,s addd #$0006 tfr d,u ldb ,u orb #$20 stb ,u ldd #$FFFF leas $05,s rts L2245 ldd $07,s addd #$0002 pshs b,a ldd $09,s addd #$0006 tfr d,x ldb ,x andb #$04 tstb beq L225E clrb clra bra L2261 L225E ldd #$0100 L2261 std [,s++] ldx $07,s ldd $04,x std [<$07,s] ldb $0A,s beq L229B ldd $07,s addd #$0006 tfr d,x ldb ,x andb #$04 cmpb #$00 bne L229B ldd [<$07,s] addd #$0001 std [<$07,s] subd #$0001 pshs b,a ldb $06,s stb [,s++] ldd $07,s addd #$0002 pshs b,a ldd #$00FF std [,s++] L229B ldb $04,s clra leas $05,s rts L22A1 pshs b,a clrb clra pshs b,a ldd $02,s pshs b,a clrb clra lbsr L2148 leas $04,s leas $02,s rts L22BB pshs b,a leas -$08,s ldd $08,s addd #$0003 lsra rorb lsra rorb addd #$0001 std $06,s ldd >$0280,y std $02,s cmpd #$0000 bne L22ED leax >$027C,y stx $02,s stx >$0280,y stx >$027C,y clrb clra std >$027E,y L22ED ldd [<$02,s] std ,s L22F2 ldx ,s ldd $02,x cmpd $06,s bcs L2348 ldx ,s ldd $02,x cmpd $06,s bne L230D ldd [,s] std [<$02,s] bra L233A L230D ldd ,s addd #$0002 tfr d,u ldd ,u subd $06,s std ,u ldd ,s addd #$0002 tfr d,x ldd ,x lslb rola lslb rola pshs b,a ldd $02,s addd ,s++ std ,s ldd ,s addd #$0002 pshs b,a ldd $08,s std [,s++] L233A ldd $02,s std >$0280,y ldd ,s addd #$0004 leas $0A,s rts L2348 ldd ,s cmpd >$0280,y bne L2382 ldd $06,s lslb rola lslb rola lbsr L25A8 std $04,s cmpd #$FFFF bne L2369 clrb clra leas $0A,s rts L2369 ldd $04,s addd #$0002 pshs b,a ldd $08,s std [,s++] ldd $04,s addd #$0004 bsr L238D ldd >$0280,y std ,s L2382 ldd ,s std $02,s ldd [,s] std ,s lbra L22F2 L238D pshs b,a leas -$04,s ldd $04,s subd #$0004 std ,s ldd >$0280,y std $02,s L239E ldd ,s cmpd $02,s bls L23AD ldd ,s cmpd [<$02,s] bcs L23CC L23AD ldd $02,s cmpd [<$02,s] bcs L23C4 ldd ,s cmpd $02,s bhi L23CC ldd ,s cmpd [<$02,s] bcs L23CC L23C4 ldd [<$02,s] std $02,s bra L239E L23CC ldd ,s addd #$0002 tfr d,x ldd ,x lslb rola lslb rola addd ,s cmpd [<$02,s] bne L23FF ldd [<$02,s] addd #$0002 pshs b,a ldd $02,s addd #$0002 tfr d,u ldd ,u addd [,s++] std ,u ldx [<$02,s] ldd ,x std [,s] bra L2404 L23FF ldd [<$02,s] std [,s] L2404 ldd $02,s addd #$0002 tfr d,x ldd ,x lslb rola lslb rola addd $02,s cmpd ,s bne L2433 ldd ,s addd #$0002 pshs b,a ldd $04,s addd #$0002 tfr d,u ldd ,u addd [,s++] std ,u ldd [,s] std [<$02,s] bra L2438 L2433 ldd ,s std [<$02,s] L2438 ldd $02,s std >$0280,y leas $06,s rts L2444 pshs b,a ldb $01,s cmpb #$30 bcs L2456 ldb $01,s cmpb #$39 bhi L2456 ldb #$01 bra L2457 L2456 clrb L2457 clra leas $02,s rts L245B pshs b,a ldb $01,s clra bsr L2477 addd #$0000 beq L246E ldb $01,s addb #$20 bra L2470 L246E ldb $01,s L2470 clra leas $02,s rts L2477 pshs b,a ldb $01,s cmpb #$41 bcs L2489 ldb $01,s cmpb #$5A bhi L2489 ldb #$01 bra L248A L2489 clrb L248A clra leas $02,s rts *************************** * an often called subroutine *************************** L248E pshs b,a L2490 ldd ,s addd #$0001 std ,s subd #$0001 pshs b,a ldx $06,s ldb ,x+ stx $06,s stb [,s++] tstb bne L2490 leas $02,s rts L24AA pshs b,a leas -$02,s ldd $02,s std ,s L24B2 ldb [,s] beq L24BF ldd ,s addd #$0001 std ,s bra L24B2 L24BF ldd ,s subd $02,s leas $04,s rts L24C6 leas -$05,s clr ,s bsr L24FF std $01,s ldd $07,s bsr L24FF std $07,s lda $02,s ldb $08,s mul std $03,s lda $01,s ldb $08,s mul tfr b,a clrb addd $03,s std $03,s lda $02,s ldb $07,s mul tfr b,a clrb addd $03,s tst ,s bpl L24F9 nega negb sbca #$00 L24F9 ldx $05,s leas $09,s jmp ,x this one jmp could screw it all up L24FF tsta bpl L2508 com $02,s nega negb sbca #$00 L2508 rts L2509 ldx $02,s bsr L2588 pshs cc stx $03,s puls cc bra L2517 L2515 andcc #$F7 L2517 orcc #$01 pshs cc ldx #$0000 puls cc bra L2536 L2531 ldx #$FFFF andcc #$F6 L2536 leas -$03,s pshs cc std $02,s bne L2544 puls cc tfr x,d bra L2582 L2544 lda #$01 sta $01,s L2548 tst $02,s bmi L2554 lsl $03,s rol $02,s inc $01,s bra L2548 L2554 ldd $06,s clr $06,s clr $07,s L255A subd $02,s bcc L2564 addd $02,s andcc #$FE bra L2566 L2564 orcc #$01 L2566 rol $07,s rol $06,s lsr $02,s ror $03,s dec $01,s bne L255A puls cc bcs L257C pshs cc ldd $06,s puls cc L257C bpl L2582 nega negb sbca #$00 L2582 ldx $03,s leas $07,s jmp ,x L2588 pshs u tfr d,u pshs x eora ,s++ andcc #$FE pshs cc tfr x,d bsr L25A0 tfr d,x tfr u,d bsr L25A0 puls pc,u,cc L25A0 tsta bpl L25A7 nega negb sbca #$00 L25A7 rts ****************************** * memory for what purpose? ****************************** L25A8 pshs b,a leax >-$00FD,y tfr x,d nega negb sbca #$00 addd <u0000 addd ,s pshs y * ENTRY * D= size of new memory in bytes * if 0, get current size and upper bound os9 F$Mem * Y= address of memory upper bound * D= actual size of memory in bytes puls y throws Y away? puls x bcs L25CA error, go ldd <u0000 overwrites size from F$Mem? leax d,x no error, assume success stx <u0000 and store new memory in bytes rts L25CA clra std <u0002 ldd #$FFFF rts **************************** * search new dir? **************************** L25D1 tfr d,x lda #$01 os9 I$ChgDir if success, its a dir bcc L25E0 go std <u0002 else file, save ldd #$FFFF -1 failure rts L25E0 clra clrb rts L25E3 leas -$04,s ldu $06,s tfr d,x ldd ,x std ,s lda $02,x sta $02,s ldd $08,s bra L260B L25F5 lsr ,s ror $01,s ror $02,s bcc L2607 inc $02,s bne L2607 inc $01,s bne L2607 inc ,s L2607 lsr ,u ror u0001,u L260B lsra rorb bcc L25F5 clra ldb $02,s andb #$07 ldu $0E,s std ,u ldd $01,s lsra rorb lsra rorb lsra rorb clra ldu $0C,s std ,u ldd ,s lsra rorb lsra rorb lsra rorb ldu $0A,s std ,u leas $04,s rts L2634 tfr d,x clra clrb std ,x stb $02,x ldd $04,s lslb rola lslb rola lslb rola std ,x ldd $06,s lslb rola lslb rola lslb rola addd $01,x std $01,x bcc L2656 inc ,x L2656 addd $08,s std $01,x bcc L265E inc ,x L265E ldd $02,s bra L2668 L2662 lsl $02,x rol $01,x rol ,x L2668 asra rorb bne L2662 rts L266D tfr d,x ldu $02,s ldb ,x stb ,u ldd $01,x addd $04,s std u0001,u bcc L267F inc ,u L267F clra clrb rts ;--------------------------------------------- ; 24 bits comparison ; IN : *(d) first 24 bits value to compare ; *(2+s) Seconds value to compare ; OUT: D = -1 : 1st < 2nd ; 0 : 1st = 2nd ; 1 : 1st > 2nd ;--------------------------------------------- L2682 tfr d,x ldu $02,s ldb ,x cmpb ,u bhi L269E bcs L269A ldd $01,x cmpd 1,u bhi L269E bcs L269A clra clrb rts L269A ldd #$FFFF rts L269E ldd #$0001 rts ;--------------------------------------------- ; ; OUT: D = -1 : error ; 0 : No error occured ;--------------------------------------------- L26A2 tfr b,a ldb #$05 os9 I$GetStt bcs L26B9 tfr x,d ldx $04,s stu ,x ldx $02,s std ,x clra clrb bra L26BC L26B9 ldd #$FFFF L26BC rts ;--------------------------------------------- ; ;--------------------------------------------- L26BD tfr d,x lda $03,s os9 I$Open bcs L2728 tfr a,b clra rts ;--------------------------------------------- ; ;--------------------------------------------- L26CA tfr b,a os9 I$Close bcs L2728 clra clrb rts ;--------------------------------------------- ; ;--------------------------------------------- L26D4 pshs y tfr b,a ldx $04,s ldy $06,s os9 I$Read puls x exg x,y bcs L2728 tfr x,d rts ;--------------------------------------------- ; ;--------------------------------------------- L26E9 pshs y tfr b,a ldx $04,s ldy $06,s os9 I$Write puls x exg x,y bcs L2728 tfr x,d rts ;--------------------------------------------- ; ;--------------------------------------------- pshs y tfr b,a ldx $04,s ldy $06,s os9 I$ReadLn puls x exg x,y bcs L2728 tfr x,d rts ;--------------------------------------------- ; ;--------------------------------------------- L2713 pshs y tfr b,a ldx $04,s ldy $06,s os9 I$WritLn puls x exg x,y bcs L2728 tfr x,d rts ;--------------------------------------------- ; ;--------------------------------------------- L2728 clra std <u0002 ldd #$FFFF rts ;--------------------------------------------- ; ;--------------------------------------------- L272F tfr d,x lda #$02 ldb $03,s bmi L273B tfr b,a anda #$03 L273B orb #$01 pshs x,b,a os9 I$Create puls u,x exg x,u bcc L2758 pshs x os9 I$Delete puls x bcs L2728 tfr u,d os9 I$Create bcs L2728 L2758 tfr a,b clra rts ;--------------------------------------------- ; ;--------------------------------------------- L275C pshs b,a ldx $04,s ldd ,x std $04,s clrb lda $02,x addd $06,s std $06,s puls b,a L276D tfr b,a ldb $07,s ldx $02,s ldu $04,s decb bne L2781 ldb #$05 os9 I$GetStt bcs L2728 bra L278B L2781 decb bne L2799 ldb #$02 os9 I$GetStt bcs L2728 L278B exg d,u addd $04,s exg d,u exg d,x adcb $03,s adca $02,s exg d,x L2799 os9 I$Seek bcs L2728 clra clrb rts ;--------------------------------------------- ; ;--------------------------------------------- L27A1 tfr d,x os9 I$Delete bcs L2728 clra clrb rts ;--------------------------------------------- ; ;--------------------------------------------- L27AB os9 F$Exit L27AE bsr L27B9 tfr a,b clra rts ;--------------------------------------------- ; ;--------------------------------------------- L27B9 pshs y os9 F$ID tfr y,x puls y rts name equ * fcs /dcheck/ fcb edition emod eom equ * end