view 3rdparty/packages/os9l2bbs/cmds/suser.asm @ 2400:75ba2a80a4e3

OS-9 L2 BBS Commands disassembled
author boisy
date Sun, 24 Jan 2010 17:20:05 +0000
parents
children 04755ee002ba
line wrap: on
line source

         nam   Suser
         ttl   program module       

* Disassembled 2010/01/24 10:51:32 by Disasm v1.5 (C) 1988 by RML

         ifp1
         use   /dd/defs/defsfile
         endc
tylg     set   Prgrm+Objct   
atrv     set   ReEnt+rev
rev      set   $01
         mod   eom,name,tylg,atrv,start,size
u0000    rmb   1
u0001    rmb   1
u0002    rmb   2
u0004    rmb   2
u0006    rmb   2
u0008    rmb   1
u0009    rmb   1
u000A    rmb   1
u000B    rmb   2
u000D    rmb   4
u0011    rmb   15
u0020    rmb   20
u0034    rmb   31
u0053    rmb   17
u0064    rmb   132
u00E8    rmb   119
u015F    rmb   2
u0161    rmb   58
u019B    rmb   1
u019C    rmb   3
u019F    rmb   940
size     equ   .
name     equ   *
         fcs   /Suser/
         fcb   $01 
L0013    fcb   $A6 &
         fcb   $A0 
         fcb   $A7 '
         fcb   $C0 @
         fcb   $30 0
         fcb   $1F 
         fcb   $26 &
         fcb   $F8 x
         fcb   $39 9
start    equ   *
         pshs  y
         pshs  u
         clra  
         clrb  
L0022    sta   ,u+
         decb  
         bne   L0022
         ldx   ,s
         leau  ,x
         leax  >$01CB,x
         pshs  x
         leay  >L0F36,pcr
         ldx   ,y++
         beq   L003D
         bsr   L0013
         ldu   $02,s
L003D    leau  >u0001,u
         ldx   ,y++
         beq   L0048
         bsr   L0013
         clra  
L0048    cmpu  ,s
         beq   L0051
         sta   ,u+
         bra   L0048
L0051    ldu   $02,s
         ldd   ,y++
         beq   L005E
         leax  >L0000,pcr
         lbsr  L0161
L005E    ldd   ,y++
         beq   L0067
         leax  ,u
         lbsr  L0161
L0067    leas  $04,s
         puls  x
         stx   >u019F,u
         sty   >u015F,u
         ldd   #$0001
         std   >u019B,u
         leay  >u0161,u
         leax  ,s
         lda   ,x+
L0083    ldb   >u019C,u
         cmpb  #$1D
         beq   L00DF
L008B    cmpa  #$0D
         beq   L00DF
         cmpa  #$20
         beq   L0097
         cmpa  #$2C
         bne   L009B
L0097    lda   ,x+
         bra   L008B
L009B    cmpa  #$22
         beq   L00A3
         cmpa  #$27
         bne   L00C1
L00A3    stx   ,y++
         inc   >u019C,u
         pshs  a
L00AB    lda   ,x+
         cmpa  #$0D
         beq   L00B5
         cmpa  ,s
         bne   L00AB
L00B5    puls  b
         clr   -$01,x
         cmpa  #$0D
         beq   L00DF
         lda   ,x+
         bra   L0083
L00C1    leax  -$01,x
         stx   ,y++
         leax  $01,x
         inc   >u019C,u
L00CB    cmpa  #$0D
         beq   L00DB
         cmpa  #$20
         beq   L00DB
         cmpa  #$2C
         beq   L00DB
         lda   ,x+
         bra   L00CB
L00DB    clr   -$01,x
         bra   L0083
L00DF    leax  >u015F,u
         pshs  x
         ldd   >u019B,u
         pshs  b,a
         leay  ,u
         bsr   L00F9
         lbsr  L017B
         clr   ,-s
         clr   ,-s
         lbsr  L0F2A
L00F9    leax  >$01CB,y
         stx   >$01A9,y
         sts   >$019D,y
         sts   >$01AB,y
         ldd   #$FF82
L010E    leax  d,s
         cmpx  >$01AB,y
         bcc   L0120
         cmpx  >$01A9,y
         bcs   L013A
         stx   >$01AB,y
L0120    rts   
L0121    bpl   L014D
         bpl   L014F
         bra   L017A
         lsrb  
         fcb   $41 A
         coma  
         fcb   $4B K
         bra   L017C
         rorb  
         fcb   $45 E
         fcb   $52 R
         rora  
         inca  
         clra  
         asrb  
         bra   L0160
         bpl   L0162
         bpl   L0147
L013A    leax  <L0121,pcr
         ldb   #$CF
         pshs  b
         lda   #$02
         ldy   #$0064
L0147    os9   I$WritLn 
         clr   ,-s
         lbsr  L0F30
L014F    ldd   >$019D,y
         subd  >$01AB,y
         rts   
         ldd   >$01AB,y
         subd  >$01A9,y
L0160    rts   
L0161    pshs  x
         leax  d,y
         leax  d,x
         pshs  x
L0169    ldd   ,y++
         leax  d,u
         ldd   ,x
         addd  $02,s
         std   ,x
         cmpy  ,s
         bne   L0169
         leas  $04,s
L017A    rts   
L017B    pshs  u
         ldd   #$FEE4
         lbsr  L010E
         leas  >-$00CC,s
         clra  
         clrb  
         stb   ,s
         ldd   >$00D0,s
         cmpd  #$0001
         bne   L01A4
         clra  
         clrb  
         pshs  b,a
         leax  >L0274,pcr
         pshs  x
         lbsr  L0252
         leas  $04,s
L01A4    ldx   >$00D2,s
         ldd   $02,x
         pshs  b,a
         lbsr  L0B4F
         leas  $02,s
         std   >$00CA,s
         pshs  b,a
         lbsr  L0EF8
         leas  $02,s
         cmpd  #$FFFF
         bne   L01D3
         ldd   >$01AD,y
         pshs  b,a
         leax  >L0298,pcr
         pshs  x
         lbsr  L0252
         leas  $04,s
L01D3    ldd   #$0002
         bra   L0207
L01D8    ldd   >$00C8,s
         lslb  
         rola  
         ldx   >$00D2,s
         leax  d,x
         ldd   ,x
         pshs  b,a
         leax  $02,s
         pshs  x
         lbsr  L0AF1
         leas  $04,s
         leax  >L02C1,pcr
         pshs  x
         leax  $02,s
         pshs  x
         lbsr  L0AF1
         leas  $04,s
         ldd   >$00C8,s
         addd  #$0001
L0207    std   >$00C8,s
         ldd   >$00C8,s
         cmpd  >$00D0,s
         blt   L01D8
         leax  >L02C3,pcr
         pshs  x
         leax  $02,s
         pshs  x
         lbsr  L0AF1
         leas  $04,s
         ldd   #$0003
         pshs  b,a
         ldd   #$0001
         pshs  b,a
         ldd   #$0010
         pshs  b,a
         leax  $06,s
         pshs  x
         leax  $08,s
         pshs  x
         lbsr  L0AC8
         std   ,s
         leax  >L02C5,pcr
         pshs  x
         lbsr  L0E9D
         leas  $0C,s
         leas  >$00CC,s
         puls  pc,u
L0252    pshs  u
         ldd   #$FFB8
         lbsr  L010E
         ldd   $04,s
         pshs  b,a
         leax  >L02CC,pcr
         pshs  x
         lbsr  L02D0
         leas  $04,s
         ldd   $06,s
         pshs  b,a
         lbsr  L0F2A
         leas  $02,s
         puls  pc,u
L0274    fcb   $55 U
         com   >$6167
         eim   #$20,$09,s
         com   >$3A20
         comb  
         eim   #$73,>$6572
         bra   L02C1
         jmp   -$0B,s
         tst   $02,s
         eim   #$72,-$02,y
         bra   L02E9
         neg   >$726F
         asr   $0E,s
         oim   #$6D,$05,s
         tstb  
         neg   <u0053
         clr   -$0E,s
         aim   #$79,>$2C20
         rol   >$6F75
         bra   L0307
         oim   #$6E,$0E,s
         clr   -$0C,s
         bra   L030E
         lsl   $01,s
         jmp   $07,s
         eim   #$20,-$0C,s
         lsl   $05,s
         bra   L032B
         com   >$6572
         bra   L0329
         eim   #$6D,>$6265
         aim   #$00,>$2000
L02C3    tst   <u0000
L02C5    comb  
         lsl   $05,s
         inc   $0C,s
         tst   <u0000
L02CC    bcs   L0341
         tst   <u0000
L02D0    pshs  u
         leax  >$001B,y
         stx   >$01AF,y
         leax  $06,s
         pshs  x
         ldd   $06,s
         bra   L02F0
         pshs  u
         ldd   $04,s
         std   >$01AF,y
         leax  $08,s
         pshs  x
         ldd   $08,s
L02F0    pshs  b,a
         leax  >L07A8,pcr
         pshs  x
         bsr   L0322
         leas  $06,s
         puls  pc,u
         pshs  u
         ldd   $04,s
         std   >$01AF,y
         leax  $08,s
         pshs  x
         ldd   $08,s
         pshs  b,a
L030E    leax  >L07BB,pcr
         pshs  x
         bsr   L0322
         leas  $06,s
         clra  
         clrb  
         stb   [>$01AF,y]
         ldd   $04,s
         puls  pc,u
L0322    pshs  u
         ldu   $06,s
         leas  -$0B,s
         bra   L033A
L032A    ldb   $08,s
         lbeq  L056B
         ldb   $08,s
         sex   
         pshs  b,a
         jsr   [<$11,s]
         leas  $02,s
L033A    ldb   ,u+
         stb   $08,s
         cmpb  #$25
         bne   L032A
         ldb   ,u+
         stb   $08,s
         clra  
         clrb  
         std   $02,s
         std   $06,s
         ldb   $08,s
         cmpb  #$2D
         bne   L035F
         ldd   #$0001
         std   >$01C5,y
         ldb   ,u+
         stb   $08,s
         bra   L0365
L035F    clra  
         clrb  
         std   >$01C5,y
L0365    ldb   $08,s
         cmpb  #$30
         bne   L0370
         ldd   #$0030
         bra   L0373
L0370    ldd   #$0020
L0373    std   >$01C7,y
         bra   L0393
L0379    ldd   $06,s
         pshs  b,a
         ldd   #$000A
         lbsr  L0BC2
         pshs  b,a
         ldb   $0A,s
         sex   
         addd  #$FFD0
         addd  ,s++
         std   $06,s
         ldb   ,u+
         stb   $08,s
L0393    ldb   $08,s
         sex   
         leax  >$00DF,y
         leax  d,x
         ldb   ,x
         clra  
         andb  #$08
         bne   L0379
         ldb   $08,s
         cmpb  #$2E
         bne   L03DC
         ldd   #$0001
         std   $04,s
         bra   L03C6
L03B0    ldd   $02,s
         pshs  b,a
         ldd   #$000A
         lbsr  L0BC2
         pshs  b,a
         ldb   $0A,s
         sex   
         addd  #$FFD0
         addd  ,s++
         std   $02,s
L03C6    ldb   ,u+
         stb   $08,s
         ldb   $08,s
         sex   
         leax  >$00DF,y
         leax  d,x
         ldb   ,x
         clra  
         andb  #$08
         bne   L03B0
         bra   L03E0
L03DC    clra  
         clrb  
         std   $04,s
L03E0    ldb   $08,s
         sex   
         tfr   d,x
         lbra  L050E
L03E8    ldd   $06,s
         pshs  b,a
         ldx   <$15,s
         leax  $02,x
         stx   <$15,s
         ldd   -$02,x
         pshs  b,a
         lbsr  L056F
         bra   L0410
L03FD    ldd   $06,s
         pshs  b,a
         ldx   <$15,s
         leax  $02,x
         stx   <$15,s
         ldd   -$02,x
         pshs  b,a
         lbsr  L062C
L0410    std   ,s
         lbra  L04F4
L0415    ldd   $06,s
         pshs  b,a
         ldb   $0A,s
         sex   
         leax  >$00DF,y
         leax  d,x
         ldb   ,x
         clra  
         andb  #$02
         pshs  b,a
         ldx   <$17,s
         leax  $02,x
         stx   <$17,s
         ldd   -$02,x
         pshs  b,a
         lbsr  L0674
         lbra  L04F0
L043B    ldd   $06,s
         pshs  b,a
         ldx   <$15,s
         leax  $02,x
         stx   <$15,s
         ldd   -$02,x
         pshs  b,a
         leax  >$01B1,y
         pshs  x
         lbsr  L05B3
         lbra  L04F0
L0457    ldd   $04,s
         bne   L0460
         ldd   #$0006
         std   $02,s
L0460    ldd   $06,s
         pshs  b,a
         leax  <$15,s
         pshs  x
         ldd   $06,s
         pshs  b,a
         ldb   $0E,s
         sex   
         pshs  b,a
         lbsr  L0ABD
         leas  $06,s
         lbra  L04F2
L047A    ldx   <$13,s
         leax  $02,x
         stx   <$13,s
         ldd   -$02,x
         lbra  L0504
L0487    ldx   <$13,s
         leax  $02,x
         stx   <$13,s
         ldd   -$02,x
         std   $09,s
         ldd   $04,s
         beq   L04CF
         ldd   $09,s
         std   $04,s
         bra   L04A9
L049D    ldb   [<$09,s]
         beq   L04B5
         ldd   $09,s
         addd  #$0001
         std   $09,s
L04A9    ldd   $02,s
         addd  #$FFFF
         std   $02,s
         subd  #$FFFF
         bne   L049D
L04B5    ldd   $06,s
         pshs  b,a
         ldd   $0B,s
         subd  $06,s
         pshs  b,a
         ldd   $08,s
         pshs  b,a
         ldd   <$15,s
         pshs  b,a
         lbsr  L06DF
         leas  $08,s
         bra   L04FE
L04CF    ldd   $06,s
         pshs  b,a
         ldd   $0B,s
         bra   L04F2
L04D7    ldb   ,u+
         stb   $08,s
         bra   L04DF
         leas  -$0B,x
L04DF    ldd   $06,s
         pshs  b,a
         leax  <$15,s
         pshs  x
         ldb   $0C,s
         sex   
         pshs  b,a
         lbsr  L0A7F
L04F0    leas  $04,s
L04F2    pshs  b,a
L04F4    ldd   <$13,s
         pshs  b,a
         lbsr  L0741
         leas  $06,s
L04FE    lbra  L033A
L0501    ldb   $08,s
         sex   
L0504    pshs  b,a
         jsr   [<$11,s]
         leas  $02,s
         lbra  L033A
L050E    cmpx  #$0064
         lbeq  L03E8
         cmpx  #$006F
         lbeq  L03FD
         cmpx  #$0078
         lbeq  L0415
         cmpx  #$0058
         lbeq  L0415
         cmpx  #$0075
         lbeq  L043B
         cmpx  #$0066
         lbeq  L0457
         cmpx  #$0065
         lbeq  L0457
         cmpx  #$0067
         lbeq  L0457
         cmpx  #$0045
         lbeq  L0457
         cmpx  #$0047
         lbeq  L0457
         cmpx  #$0063
         lbeq  L047A
         cmpx  #$0073
         lbeq  L0487
         cmpx  #$006C
         lbeq  L04D7
         bra   L0501
L056B    leas  $0B,s
         puls  pc,u
L056F    pshs  u,b,a
         leax  >$01B1,y
         stx   ,s
         ldd   $06,s
         bge   L05A4
         ldd   $06,s
         nega  
         negb  
         sbca  #$00
         std   $06,s
         bge   L0599
         leax  >L07CD,pcr
         pshs  x
         leax  >$01B1,y
         pshs  x
         lbsr  L0AD9
         leas  $04,s
         lbra  L0670
L0599    ldd   #$002D
         ldx   ,s
         leax  $01,x
         stx   ,s
         stb   -$01,x
L05A4    ldd   $06,s
         pshs  b,a
         ldd   $02,s
         pshs  b,a
         bsr   L05B3
         leas  $04,s
         lbra  L066A
L05B3    pshs  u,y,x,b,a
         ldu   $0A,s
         clra  
         clrb  
         std   $02,s
         clra  
         clrb  
         std   ,s
         bra   L05D0
L05C1    ldd   ,s
         addd  #$0001
         std   ,s
         ldd   $0C,s
         subd  >$0001,y
         std   $0C,s
L05D0    ldd   $0C,s
         blt   L05C1
         leax  >$0001,y
         stx   $04,s
         bra   L0612
L05DC    ldd   ,s
         addd  #$0001
         std   ,s
L05E3    ldd   $0C,s
         subd  [<$04,s]
         std   $0C,s
         bge   L05DC
         ldd   $0C,s
         addd  [<$04,s]
         std   $0C,s
         ldd   ,s
         beq   L05FC
         ldd   #$0001
         std   $02,s
L05FC    ldd   $02,s
         beq   L0607
         ldd   ,s
         addd  #$0030
         stb   ,u+
L0607    clra  
         clrb  
         std   ,s
         ldd   $04,s
         addd  #$0002
         std   $04,s
L0612    ldd   $04,s
         cmpd  >$0009,y
         bne   L05E3
         ldd   $0C,s
         addd  #$0030
         stb   ,u+
         clra  
         clrb  
         stb   ,u
         ldd   $0A,s
         leas  $06,s
         puls  pc,u
L062C    pshs  u,b,a
         leax  >$01B1,y
         stx   ,s
         leau  >$01BB,y
L0638    ldd   $06,s
         clra  
         andb  #$07
         addd  #$0030
         stb   ,u+
         ldd   $06,s
         lsra  
         rorb  
         lsra  
         rorb  
         lsra  
         rorb  
         std   $06,s
         bne   L0638
         bra   L065A
L0650    ldb   ,u
         ldx   ,s
         leax  $01,x
         stx   ,s
         stb   -$01,x
L065A    leau  -u0001,u
         pshs  u
         leax  >$01BB,y
         cmpx  ,s++
         bls   L0650
         clra  
         clrb  
         stb   [,s]
L066A    leax  >$01B1,y
         tfr   x,d
L0670    leas  $02,s
         puls  pc,u
L0674    pshs  u,x,b,a
         leax  >$01B1,y
         stx   $02,s
         leau  >$01BB,y
L0680    ldd   $08,s
         clra  
         andb  #$0F
         std   ,s
         pshs  b,a
         ldd   $02,s
         cmpd  #$0009
         ble   L06A2
         ldd   $0C,s
         beq   L069A
         ldd   #$0041
         bra   L069D
L069A    ldd   #$0061
L069D    addd  #$FFF6
         bra   L06A5
L06A2    ldd   #$0030
L06A5    addd  ,s++
         stb   ,u+
         ldd   $08,s
         lsra  
         rorb  
         lsra  
         rorb  
         lsra  
         rorb  
         lsra  
         rorb  
         anda  #$0F
         std   $08,s
         bne   L0680
         bra   L06C5
L06BB    ldb   ,u
         ldx   $02,s
         leax  $01,x
         stx   $02,s
         stb   -$01,x
L06C5    leau  -u0001,u
         pshs  u
         leax  >$01BB,y
         cmpx  ,s++
         bls   L06BB
         clra  
         clrb  
         stb   [<$02,s]
         leax  >$01B1,y
         tfr   x,d
         lbra  L07B7
L06DF    pshs  u
         ldu   $06,s
         ldd   $0A,s
         subd  $08,s
         std   $0A,s
         ldd   >$01C5,y
         bne   L0714
         bra   L06FC
L06F1    ldd   >$01C7,y
         pshs  b,a
         jsr   [<$06,s]
         leas  $02,s
L06FC    ldd   $0A,s
         addd  #$FFFF
         std   $0A,s
         subd  #$FFFF
         bgt   L06F1
         bra   L0714
L070A    ldb   ,u+
         sex   
         pshs  b,a
         jsr   [<$06,s]
         leas  $02,s
L0714    ldd   $08,s
         addd  #$FFFF
         std   $08,s
         subd  #$FFFF
         bne   L070A
         ldd   >$01C5,y
         beq   L073F
         bra   L0733
L0728    ldd   >$01C7,y
         pshs  b,a
         jsr   [<$06,s]
         leas  $02,s
L0733    ldd   $0A,s
         addd  #$FFFF
         std   $0A,s
         subd  #$FFFF
         bgt   L0728
L073F    puls  pc,u
L0741    pshs  u
         ldu   $06,s
         ldd   $08,s
         pshs  b,a
         pshs  u
         lbsr  L0AC8
         leas  $02,s
         nega  
         negb  
         sbca  #$00
         addd  ,s++
         std   $08,s
         ldd   >$01C5,y
         bne   L0783
         bra   L076B
L0760    ldd   >$01C7,y
         pshs  b,a
         jsr   [<$06,s]
         leas  $02,s
L076B    ldd   $08,s
         addd  #$FFFF
         std   $08,s
         subd  #$FFFF
         bgt   L0760
         bra   L0783
L0779    ldb   ,u+
         sex   
         pshs  b,a
         jsr   [<$06,s]
         leas  $02,s
L0783    ldb   ,u
         bne   L0779
         ldd   >$01C5,y
         beq   L07A6
         bra   L079A
L078F    ldd   >$01C7,y
         pshs  b,a
         jsr   [<$06,s]
         leas  $02,s
L079A    ldd   $08,s
         addd  #$FFFF
         std   $08,s
         subd  #$FFFF
         bgt   L078F
L07A6    puls  pc,u
L07A8    pshs  u
         ldd   >$01AF,y
         pshs  b,a
         ldd   $06,s
         pshs  b,a
         lbsr  L07D4
L07B7    leas  $04,s
         puls  pc,u
L07BB    pshs  u
         ldd   $04,s
         ldx   >$01AF,y
         leax  $01,x
         stx   >$01AF,y
         stb   -$01,x
         puls  pc,u
L07CD    blt   L0802
         leas  -$09,y
         pshu  y,x,dp
         neg   <u0034
         nega  
         ldu   $06,s
         ldd   u0006,u
         anda  #$80
         andb  #$22
         cmpd  #$8002
         beq   L07F8
         ldd   u0006,u
         clra  
         andb  #$22
         cmpd  #$0002
         lbne  L0910
         pshs  u
         lbsr  L09EF
         leas  $02,s
L07F8    ldd   u0006,u
         clra  
         andb  #$04
         beq   L0834
         ldd   #$0001
L0802    pshs  b,a
         leax  $07,s
         pshs  x
         ldd   u0008,u
         pshs  b,a
         ldd   u0006,u
         clra  
         andb  #$40
         beq   L0819
         leax  >L0D79,pcr
         bra   L081D
L0819    leax  >L0D60,pcr
L081D    tfr   x,d
         tfr   d,x
         jsr   ,x
         leas  $06,s
         cmpd  #$FFFF
         bne   L0875
         ldd   u0006,u
         orb   #$20
         std   u0006,u
         lbra  L0910
L0834    ldd   u0006,u
         anda  #$01
         clrb  
         std   -$02,s
         bne   L0844
         pshs  u
         lbsr  L092D
         leas  $02,s
L0844    ldd   ,u
         addd  #$0001
         std   ,u
         subd  #$0001
         tfr   d,x
         ldd   $04,s
         stb   ,x
         ldd   ,u
         cmpd  u0004,u
         bcc   L086A
         ldd   u0006,u
         clra  
         andb  #$40
         beq   L0875
         ldd   $04,s
         cmpd  #$000D
         bne   L0875
L086A    pshs  u
         lbsr  L092D
         std   ,s++
         lbne  L0910
L0875    ldd   $04,s
         puls  pc,u
         pshs  u
         ldu   $04,s
         ldd   $06,s
         pshs  b,a
         pshs  u
         ldd   #$0008
         lbsr  L0C21
         pshs  b,a
         lbsr  L07D4
         leas  $04,s
         ldd   $06,s
         pshs  b,a
         pshs  u
         lbsr  L07D4
         lbra  L09E7
L089C    pshs  u,b,a
         leau  >$000E,y
         clra  
         clrb  
         std   ,s
         bra   L08B2
L08A8    tfr   u,d
         leau  u000D,u
         pshs  b,a
         bsr   L08C5
         leas  $02,s
L08B2    ldd   ,s
         addd  #$0001
         std   ,s
         subd  #$0001
         cmpd  #$0010
         blt   L08A8
         lbra  L0929
L08C5    pshs  u
         ldu   $04,s
         leas  -$02,s
         cmpu  #$0000
         beq   L08D5
         ldd   u0006,u
         bne   L08DB
L08D5    ldd   #$FFFF
         lbra  L0929
L08DB    ldd   u0006,u
         clra  
         andb  #$02
         beq   L08EA
         pshs  u
         bsr   L08FF
         leas  $02,s
         bra   L08EC
L08EA    clra  
         clrb  
L08EC    std   ,s
         ldd   u0008,u
         pshs  b,a
         lbsr  L0CC2
         leas  $02,s
         clra  
         clrb  
         std   u0006,u
         ldd   ,s
         bra   L0929
L08FF    pshs  u
         ldu   $04,s
         beq   L0910
         ldd   u0006,u
         clra  
         andb  #$22
         cmpd  #$0002
         beq   L0915
L0910    ldd   #$FFFF
         puls  pc,u
L0915    ldd   u0006,u
         anda  #$80
         clrb  
         std   -$02,s
         bne   L0925
         pshs  u
         lbsr  L09EF
         leas  $02,s
L0925    pshs  u
         bsr   L092D
L0929    leas  $02,s
         puls  pc,u
L092D    pshs  u
         ldu   $04,s
         leas  -$04,s
         ldd   u0006,u
         anda  #$01
         clrb  
         std   -$02,s
         bne   L095F
         ldd   ,u
         cmpd  u0004,u
         beq   L095F
         clra  
         clrb  
         pshs  b,a
         pshs  u
         lbsr  L09EB
         leas  $02,s
         ldd   $02,x
         pshs  b,a
         ldd   ,x
         pshs  b,a
         ldd   u0008,u
         pshs  b,a
         lbsr  L0D89
         leas  $08,s
L095F    ldd   ,u
         subd  u0002,u
         std   $02,s
         lbeq  L09D7
         ldd   u0006,u
         anda  #$01
         clrb  
         std   -$02,s
         lbeq  L09D7
         ldd   u0006,u
         clra  
         andb  #$40
         beq   L09AE
         ldd   u0002,u
         bra   L09A6
L097F    ldd   $02,s
         pshs  b,a
         ldd   ,u
         pshs  b,a
         ldd   u0008,u
         pshs  b,a
         lbsr  L0D79
         leas  $06,s
         std   ,s
         cmpd  #$FFFF
         bne   L099C
         leax  $04,s
         bra   L09C6
L099C    ldd   $02,s
         subd  ,s
         std   $02,s
         ldd   ,u
         addd  ,s
L09A6    std   ,u
         ldd   $02,s
         bne   L097F
         bra   L09D7
L09AE    ldd   $02,s
         pshs  b,a
         ldd   u0002,u
         pshs  b,a
         ldd   u0008,u
         pshs  b,a
         lbsr  L0D60
         leas  $06,s
         cmpd  $02,s
         beq   L09D7
         bra   L09C8
L09C6    leas  -$04,x
L09C8    ldd   u0006,u
         orb   #$20
         std   u0006,u
         ldd   u0004,u
         std   ,u
         ldd   #$FFFF
         bra   L09E7
L09D7    ldd   u0006,u
         ora   #$01
         std   u0006,u
         ldd   u0002,u
         std   ,u
         addd  u000B,u
         std   u0004,u
         clra  
         clrb  
L09E7    leas  $04,s
         puls  pc,u
L09EB    pshs  u
         puls  pc,u
L09EF    pshs  u
         ldu   $04,s
         ldd   u0006,u
         clra  
         andb  #$C0
         bne   L0A27
         leas  <-$20,s
         leax  ,s
         pshs  x
         ldd   u0008,u
         pshs  b,a
         clra  
         clrb  
         pshs  b,a
         lbsr  L0C44
         leas  $06,s
         ldd   u0006,u
         pshs  b,a
         ldb   $02,s
         bne   L0A1B
         ldd   #$0040
         bra   L0A1E
L0A1B    ldd   #$0080
L0A1E    ora   ,s+
         orb   ,s+
         std   u0006,u
         leas  <$20,s
L0A27    ldd   u0006,u
         ora   #$80
         std   u0006,u
         clra  
         andb  #$0C
         beq   L0A34
         puls  pc,u
L0A34    ldd   u000B,u
         bne   L0A49
         ldd   u0006,u
         clra  
         andb  #$40
         beq   L0A44
         ldd   #$0080
         bra   L0A47
L0A44    ldd   #$0100
L0A47    std   u000B,u
L0A49    ldd   u0002,u
         bne   L0A5E
         ldd   u000B,u
         pshs  b,a
         lbsr  L0E47
         leas  $02,s
         std   u0002,u
         cmpd  #$FFFF
         beq   L0A66
L0A5E    ldd   u0006,u
         orb   #$08
         std   u0006,u
         bra   L0A75
L0A66    ldd   u0006,u
         orb   #$04
         std   u0006,u
         leax  u000A,u
         stx   u0002,u
         ldd   #$0001
         std   u000B,u
L0A75    ldd   u0002,u
         addd  u000B,u
         std   u0004,u
         std   ,u
         puls  pc,u
L0A7F    pshs  u
         ldb   $05,s
         sex   
         tfr   d,x
         bra   L0AA5
L0A88    ldd   [<$06,s]
         addd  #$0004
         std   [<$06,s]
         leax  >L0ABC,pcr
         bra   L0AA1
L0A97    ldb   $05,s
         stb   >$000C,y
         leax  >$000B,y
L0AA1    tfr   x,d
         puls  pc,u
L0AA5    cmpx  #$0064
         beq   L0A88
         cmpx  #$006F
         lbeq  L0A88
         cmpx  #$0078
         lbeq  L0A88
         bra   L0A97
         puls  pc,u
L0ABC    neg   <u0034
         nega  
         leax  >L0AC7,pcr
         tfr   x,d
         puls  pc,u
L0AC7    neg   <u0034
         nega  
         ldu   $04,s
L0ACC    ldb   ,u+
         bne   L0ACC
         tfr   u,d
         subd  $04,s
         addd  #$FFFF
         puls  pc,u
L0AD9    pshs  u
         ldu   $06,s
         leas  -$02,s
         ldd   $06,s
         std   ,s
L0AE3    ldb   ,u+
         ldx   ,s
         leax  $01,x
         stx   ,s
         stb   -$01,x
         bne   L0AE3
         bra   L0B18
L0AF1    pshs  u
         ldu   $06,s
         leas  -$02,s
         ldd   $06,s
         std   ,s
L0AFB    ldx   ,s
         leax  $01,x
         stx   ,s
         ldb   -$01,x
         bne   L0AFB
         ldd   ,s
         addd  #$FFFF
         std   ,s
L0B0C    ldb   ,u+
         ldx   ,s
         leax  $01,x
         stx   ,s
         stb   -$01,x
         bne   L0B0C
L0B18    ldd   $06,s
         leas  $02,s
         puls  pc,u
         pshs  u
         ldu   $04,s
         bra   L0B34
L0B24    ldx   $06,s
         leax  $01,x
         stx   $06,s
         ldb   -$01,x
         bne   L0B32
         clra  
         clrb  
         puls  pc,u
L0B32    leau  u0001,u
L0B34    ldb   ,u
         sex   
         pshs  b,a
         ldb   [<$08,s]
         sex   
         cmpd  ,s++
         beq   L0B24
         ldb   [<$06,s]
         sex   
         pshs  b,a
         ldb   ,u
         sex   
         subd  ,s++
         puls  pc,u
L0B4F    pshs  u
         ldu   $04,s
         leas  -$05,s
         clra  
         clrb  
         std   $01,s
L0B59    ldb   ,u+
         stb   ,s
         cmpb  #$20
         beq   L0B59
         ldb   ,s
         cmpb  #$09
         lbeq  L0B59
         ldb   ,s
         cmpb  #$2D
         bne   L0B74
         ldd   #$0001
         bra   L0B76
L0B74    clra  
         clrb  
L0B76    std   $03,s
         ldb   ,s
         cmpb  #$2D
         beq   L0B9C
         ldb   ,s
         cmpb  #$2B
         bne   L0BA0
         bra   L0B9C
L0B86    ldd   $01,s
         pshs  b,a
         ldd   #$000A
         lbsr  L0BC2
         pshs  b,a
         ldb   $02,s
         sex   
         addd  ,s++
         addd  #$FFD0
         std   $01,s
L0B9C    ldb   ,u+
         stb   ,s
L0BA0    ldb   ,s
         sex   
         leax  >$00DF,y
         leax  d,x
         ldb   ,x
         clra  
         andb  #$08
         bne   L0B86
         ldd   $03,s
         beq   L0BBC
         ldd   $01,s
         nega  
         negb  
         sbca  #$00
         bra   L0BBE
L0BBC    ldd   $01,s
L0BBE    leas  $05,s
         puls  pc,u
L0BC2    tsta  
         bne   L0BD7
         tst   $02,s
         bne   L0BD7
         lda   $03,s
         mul   
         ldx   ,s
         stx   $02,s
         ldx   #$0000
         std   ,s
         puls  pc,b,a
L0BD7    pshs  b,a
         ldd   #$0000
         pshs  b,a
         pshs  b,a
         lda   $05,s
         ldb   $09,s
         mul   
         std   $02,s
         lda   $05,s
         ldb   $08,s
         mul   
         addd  $01,s
         std   $01,s
         bcc   L0BF4
         inc   ,s
L0BF4    lda   $04,s
         ldb   $09,s
         mul   
         addd  $01,s
         std   $01,s
         bcc   L0C01
         inc   ,s
L0C01    lda   $04,s
         ldb   $08,s
         mul   
         addd  ,s
         std   ,s
         ldx   $06,s
         stx   $08,s
         ldx   ,s
         ldd   $02,s
         leas  $08,s
         rts   
         tstb  
         beq   L0C2B
L0C18    asr   $02,s
         ror   $03,s
         decb  
         bne   L0C18
         bra   L0C2B
L0C21    tstb  
         beq   L0C2B
L0C24    lsr   $02,s
         ror   $03,s
         decb  
         bne   L0C24
L0C2B    ldd   $02,s
         pshs  b,a
         ldd   $02,s
         std   $04,s
         ldd   ,s
         leas  $04,s
         rts   
         tstb  
         beq   L0C2B
L0C3B    lsl   $03,s
         rol   $02,s
         decb  
         bne   L0C3B
         bra   L0C2B
L0C44    lda   $05,s
         ldb   $03,s
         beq   L0C77
         cmpb  #$01
         beq   L0C79
         cmpb  #$06
         beq   L0C79
         cmpb  #$02
         beq   L0C5F
         cmpb  #$05
         beq   L0C5F
         ldb   #$D0
         lbra  L0F1C
L0C5F    pshs  u
         os9   I$GetStt 
         bcc   L0C6B
         puls  u
         lbra  L0F1C
L0C6B    stx   [<$08,s]
         ldx   $08,s
         stu   $02,x
         puls  u
         clra  
         clrb  
         rts   
L0C77    ldx   $06,s
L0C79    os9   I$GetStt 
         lbra  L0F25
         lda   $05,s
         ldb   $03,s
         beq   L0C8E
         cmpb  #$02
         beq   L0C96
         ldb   #$D0
         lbra  L0F1C
L0C8E    ldx   $06,s
         os9   I$SetStt 
         lbra  L0F25
L0C96    pshs  u
         ldx   $08,s
         ldu   $0A,s
         os9   I$SetStt 
         puls  u
         lbra  L0F25
         ldx   $02,s
         lda   $05,s
         os9   I$Open   
         bcs   L0CB0
         os9   I$Close  
L0CB0    lbra  L0F25
         ldx   $02,s
         lda   $05,s
         os9   I$Open   
         lbcs  L0F1C
         tfr   a,b
         clra  
         rts   
L0CC2    lda   $03,s
         os9   I$Close  
         lbra  L0F25
         ldx   $02,s
         ldb   $05,s
         os9   I$MakDir 
         lbra  L0F25
         ldx   $02,s
         lda   $05,s
         tfr   a,b
         andb  #$24
         orb   #$0B
         os9   I$Create 
         bcs   L0CE7
L0CE3    tfr   a,b
         clra  
         rts   
L0CE7    cmpb  #$DA
         lbne  L0F1C
         lda   $05,s
         bita  #$80
         lbne  L0F1C
         anda  #$07
         ldx   $02,s
         os9   I$Open   
         lbcs  L0F1C
         pshs  u,a
         ldx   #$0000
         leau  ,x
         ldb   #$02
         os9   I$SetStt 
         puls  u,a
         bcc   L0CE3
         pshs  b
         os9   I$Close  
         puls  b
         lbra  L0F1C
         ldx   $02,s
         os9   I$Delete 
         lbra  L0F25
         lda   $03,s
         os9   I$Dup    
         lbcs  L0F1C
         tfr   a,b
         clra  
         rts   
         pshs  y
         ldx   $06,s
         lda   $05,s
         ldy   $08,s
         pshs  y
         os9   I$Read   
L0D3D    bcc   L0D4C
         cmpb  #$D3
         bne   L0D47
         clra  
         clrb  
         puls  pc,y,x
L0D47    puls  y,x
         lbra  L0F1C
L0D4C    tfr   y,d
         puls  pc,y,x
         pshs  y
         lda   $05,s
         ldx   $06,s
         ldy   $08,s
         pshs  y
         os9   I$ReadLn 
         bra   L0D3D
L0D60    pshs  y
         ldy   $08,s
         beq   L0D75
         lda   $05,s
         ldx   $06,s
         os9   I$Write  
L0D6E    bcc   L0D75
         puls  y
         lbra  L0F1C
L0D75    tfr   y,d
         puls  pc,y
L0D79    pshs  y
         ldy   $08,s
         beq   L0D75
         lda   $05,s
         ldx   $06,s
         os9   I$WritLn 
         bra   L0D6E
L0D89    pshs  u
         ldd   $0A,s
         bne   L0D97
         ldu   #$0000
         ldx   #$0000
         bra   L0DCB
L0D97    cmpd  #$0001
         beq   L0DC2
         cmpd  #$0002
         beq   L0DB7
         ldb   #$F7
L0DA5    clra  
         std   >$01AD,y
         ldd   #$FFFF
         leax  >$01A1,y
         std   ,x
         std   $02,x
         puls  pc,u
L0DB7    lda   $05,s
         ldb   #$02
         os9   I$GetStt 
         bcs   L0DA5
         bra   L0DCB
L0DC2    lda   $05,s
         ldb   #$05
         os9   I$GetStt 
         bcs   L0DA5
L0DCB    tfr   u,d
         addd  $08,s
         std   >$01A3,y
         tfr   d,u
         tfr   x,d
         adcb  $07,s
         adca  $06,s
         bmi   L0DA5
         tfr   d,x
         std   >$01A1,y
         lda   $05,s
         os9   I$Seek   
         bcs   L0DA5
         leax  >$01A1,y
         puls  pc,u
         ldd   >$019F,y
         pshs  b,a
         ldd   $04,s
         cmpd  >$01C9,y
         bcs   L0E24
         addd  >$019F,y
         pshs  y
         subd  ,s
         os9   F$Mem    
         tfr   y,d
         puls  y
         bcc   L0E16
         ldd   #$FFFF
         leas  $02,s
         rts   
L0E16    std   >$019F,y
         addd  >$01C9,y
         subd  ,s
         std   >$01C9,y
L0E24    leas  $02,s
         ldd   >$01C9,y
         pshs  b,a
         subd  $04,s
         std   >$01C9,y
         ldd   >$019F,y
         subd  ,s++
         pshs  b,a
         clra  
         ldx   ,s
L0E3D    sta   ,x+
         cmpx  >$019F,y
         bcs   L0E3D
         puls  pc,b,a
L0E47    ldd   $02,s
         addd  >$01A9,y
         bcs   L0E70
         cmpd  >$01AB,y
         bcc   L0E70
         pshs  b,a
         ldx   >$01A9,y
         clra  
L0E5D    cmpx  ,s
         bcc   L0E65
         sta   ,x+
         bra   L0E5D
L0E65    ldd   >$01A9,y
         puls  x
         stx   >$01A9,y
         rts   
L0E70    ldd   #$FFFF
         rts   
         lda   $03,s
         ldb   $05,s
         os9   F$Send   
         lbra  L0F25
         clra  
         clrb  
         os9   F$Wait   
         lbcs  L0F1C
         ldx   $02,s
         beq   L0E8F
         stb   $01,x
         clr   ,x
L0E8F    tfr   a,b
         clra  
         rts   
         lda   $03,s
         ldb   $05,s
         os9   F$SPrior 
         lbra  L0F25
L0E9D    leau  ,s
         leas  >$00FF,y
         ldx   u0002,u
         ldy   u0004,u
         lda   u0009,u
         lsla  
         lsla  
         lsla  
         lsla  
         ora   u000B,u
         ldb   u000D,u
         ldu   u0006,u
         os9   F$Chain  
         os9   F$Exit   
         pshs  u,y
         ldx   $06,s
         ldy   $08,s
         ldu   $0A,s
         lda   $0D,s
         ora   $0F,s
         ldb   <$11,s
         os9   F$Fork   
         puls  u,y
         lbcs  L0F1C
         tfr   a,b
         clra  
         rts   
         pshs  y
         os9   F$ID     
         puls  y
         bcc   L0EE4
         lbcs  L0F1C
L0EE4    tfr   a,b
         clra  
         rts   
L0EE8    pshs  y
         os9   F$ID     
         bcc   L0EF4
L0EEF    puls  y
         lbra  L0F1C
L0EF4    tfr   y,d
         puls  pc,y
L0EF8    pshs  y
         bsr   L0EE8
         std   -$02,s
         beq   L0F04
         ldb   #$D6
         bra   L0EEF
L0F04    ldy   $04,s
         os9   F$SUser  
         bcc   L0F18
         cmpb  #$D0
         bne   L0EEF
         tfr   y,d
         ldy   >$004B
         std   $09,y
L0F18    clra  
         clrb  
         puls  pc,y
L0F1C    clra  
         std   >$01AD,y
         ldd   #$FFFF
         rts   
L0F25    bcs   L0F1C
         clra  
         clrb  
         rts   
L0F2A    lbsr  L0F35
         lbsr  L089C
L0F30    ldd   $02,s
         os9   F$Exit   
L0F35    rts   
L0F36    neg   <u0001
         neg   <u0001
         fcb   $5E ^
         beq   L0F4D
         com   <u00E8
         neg   <u0064
         neg   <u000A
         neg   <u0009
         inc   -$08,s
         neg   <u0000
         neg   <u0000
         neg   <u0000
L0F4D    neg   <u0000
         oim   #$00,<u0000
         neg   <u0000
         neg   <u0000
         neg   <u0000
         neg   <u0000
         neg   <u0000
         aim   #$00,<u0001
         neg   <u0000
         neg   <u0000
         neg   <u0000
         neg   <u0000
         neg   <u0000
         fcb   $42 B
         neg   <u0002
         neg   <u0000
         neg   <u0000
         neg   <u0000
         neg   <u0000
         neg   <u0000
         neg   <u0000
         neg   <u0000
         neg   <u0000
         neg   <u0000
         neg   <u0000
         neg   <u0000
         neg   <u0000
         neg   <u0000
         neg   <u0000
         neg   <u0000
         neg   <u0000
         neg   <u0000
         neg   <u0000
         neg   <u0000
         neg   <u0000
         neg   <u0000
         neg   <u0000
         neg   <u0000
         neg   <u0000
         neg   <u0000
         neg   <u0000
         neg   <u0000
         neg   <u0000
         neg   <u0000
         neg   <u0000
         neg   <u0000
         neg   <u0000
         neg   <u0000
         neg   <u0000
         neg   <u0000
         neg   <u0000
         neg   <u0000
         neg   <u0000
         neg   <u0000
         neg   <u0000
         neg   <u0000
         neg   <u0000
         neg   <u0000
         neg   <u0000
         neg   <u0000
         neg   <u0000
         neg   <u0000
         neg   <u0000
         neg   <u0000
         neg   <u0000
         neg   <u0000
         neg   <u0000
         neg   <u0000
         neg   <u0000
         neg   <u0000
         neg   <u0000
         neg   <u0000
         neg   <u0000
         neg   <u0000
         neg   <u0000
         neg   <u0000
         neg   <u0000
         neg   <u0000
         neg   <u0000
         neg   <u0000
         neg   <u0000
         neg   <u0000
         neg   <u0000
         neg   <u0000
         neg   <u0000
         neg   <u0000
         neg   <u0000
         neg   <u0000
         neg   <u0000
         neg   <u0000
         neg   <u0000
         neg   <u0000
         neg   <u0000
         neg   <u0000
         neg   <u0000
         neg   <u0000
         neg   <u0000
         neg   <u0000
         neg   <u0000
         neg   <u0000
         neg   <u0000
         neg   <u0001
         oim   #$01,<u0001
         oim   #$01,<u0001
         oim   #$01,<u0011
         fcb   $11 
         oim   #$11,<u0011
         oim   #$01,<u0001
         oim   #$01,<u0001
         oim   #$01,<u0001
         oim   #$01,<u0001
         oim   #$01,<u0001
         oim   #$01,<u0001
         leax  $00,y
         bra   L105D
         bra   L105F
         bra   L1061
         bra   L1063
         bra   L1065
         bra   L1067
         bra   L1069
         lsla  
         lsla  
         lsla  
         lsla  
         lsla  
         lsla  
         lsla  
         lsla  
         lsla  
         lsla  
         bra   L1075
         bra   L1077
         bra   L1079
         bra   L109D
         fcb   $42 B
         fcb   $42 B
L105D    fcb   $42 B
         fcb   $42 B
L105F    fcb   $42 B
         aim   #$02,<u0002
L1063    aim   #$02,<u0002
         aim   #$02,<u0002
L1069    aim   #$02,<u0002
         aim   #$02,<u0002
         aim   #$02,<u0002
         aim   #$02,<u0020
L1075    bra   L1097
L1077    bra   L1099
L1079    bra   L10BF
         lsra  
         lsra  
         lsra  
         lsra  
         lsra  
         lsr   <u0004
         lsr   <u0004
         lsr   <u0004
         lsr   <u0004
         lsr   <u0004
         lsr   <u0004
         lsr   <u0004
         lsr   <u0004
         lsr   <u0004
         lsr   <u0004
         bra   L10B6
         bra   L10B8
         oim   #$00,<u0000
         neg   <u0001
L109D    neg   <u0009
         comb  
         eim   #$73,>$6572
         fcb   $00 
         emod
eom      equ   *
         end