10 REM > Notify/s
   20 REM Source for SJ Research *Notify comman
   30 REM This version assumes it was run from NFS and NFS is the current filing
   40 REM system as it directly access vaious bits of NFS workspace.
   50 :
   60 OS_CLI=&FFF7:OSBYTE=&FFF4:OSWORD=&FFF1:OSWRCH=&FFEE
   70 OSWRCR=&FFEC:OSNEWL=&FFE7:OSASCI=&FFE3:OSRDCH=&FFE0
   80 :
   90 load%=&FFFF0E23
  100 DIM mcode% &13E
  110 FOR P=0 TO 1
  120   P%=load%:O%=mcode%
  130   [OPT P*3+4
  140   .exec%
  150   \ Parse command line for (net.)stn or user
  160   LDY #&FF:LDX #&07:JSR L0F3F:BCC L0E6F :\ net.stn
  170   .L0E2C
  180   LDA (&BE),Y:STA &0F4F,X               :\ Copy user name to buffer
  190   INX:INY:CMP #&0D:BEQ L0E3D            :\ <cr> end of line
  200   EOR #&2D:CMP #&0D:BNE L0E2C           :\ <spc> end of user name
  210   .L0E3D
  220   STA &0F4E,X:DEY:TYA:PHA               :\ Store terminating <cr>
  230   LDY #&03
  240   .L0E45
  250   LDA L0F49,Y:STA &0F4F,Y:DEY:BPL L0E45 :\ Copy NetFS_Op control block
  260   STX &0F50                             :\ Store length
  270   LDX #L0F4F AND 255
  280   LDY #L0F4F DIV 256
  290   LDA #&14:JSR OSWORD
  300   LDA &0F52:BEQ L0E67                   :\ Ok
  310   LDA #&00:STA &0F60:JMP &0F51          :\ Error
  320   .L0E67
  330   PLA:TAY             :\ Y=>message to send
  340   LDA &0F54:LDX &0F55 :\ X=net, A=stn
  350   :
  360   \ Send message at Y to net.stn in X.A
  370   .L0E6F
  380   STA &0F50:STX &0F51 :\ Store net.stn
  390   LDX #&0B            :\ Offset into Tx buffer
  400   .L0E77
  410   LDA (&BE),Y:STA &0F4F,X     :\ Copy into Tx buffer
  420   INY:INX:CMP #&0D:BNE L0E77  :\ Loop until <cr>
  430   TXA:ADC #&06:TAX            :\ X=X+7, X=length of Tx buffer
  440   LDY #&08
  450   .L0E88
  460   LDA L0EA9,Y:STA &0F4F,X     :\ Copy message header
  470   LDA L0EAD,Y:STA &0F52,Y     :\ Copy message header
  480   DEX:DEY:BPL L0E88
  490   LDA #&01:STA &0F4F
  500   JSR L0EF8                   :\ Store my net.stn in message
  510   LDX #L0F4F AND 255
  520   LDY #L0F4F DIV 256
  530   LDA #&14:JMP OSWORD         :\ Send message
  540   :
  550   .L0EA9
  560   EQUS " ___ "+CHR$0
  570   .L0EAD
  580   EQUS "*|"+CHR$7+"    : "
  590   :
  600   .L0EB6
  610   LDA (&BE),Y     :\ 0EC6= B1 BE       1>
  620   INY             :\ 0EB8= C8          H
  630   CMP #&20        :\ 0EB9= C9 20       I
  640   BEQ L0EB6       :\ 0EBB= F0 F9       py
  650   DEY             :\ 0EBD= 88          .
  660   CMP #&41        :\ 0EBE= C9 41       IA
  670   RTS             :\ 0EC0= 60          `
  680   
  690   .L0EC1
  700   TAX             :\ 0EC1= AA          *
  710   LDA #&00        :\ 0EC2= A9 00       ).
  720   STA &B2         :\ 0EC4= 85 B2       .2
  730   .L0EC6
  740   LDA (&BE),Y     :\ 0EC6= B1 BE       1>
  750   CMP #&40        :\ 0EC8= C9 40       I@
  760   BCS L0EE5       :\ 0ECA= B0 19       0.
  770   CMP #&2E        :\ 0ECC= C9 2E       I.
  780   BEQ L0EE6       :\ 0ECE= F0 16       p.
  790   BMI L0EE5       :\ 0ED0= 30 13       0.
  800   AND #&0F        :\ 0ED2= 29 0F       ).
  810   STA &B3         :\ 0ED4= 85 B3       .3
  820   ASL &B2         :\ 0ED6= 06 B2       .2
  830   LDA &B2         :\ 0ED8= A5 B2       %2
  840   ASL A           :\ 0EDA= 0A          .
  850   ASL A           :\ 0EDB= 0A          .
  860   ADC &B2         :\ 0EDC= 65 B2       e2
  870   ADC &B3         :\ 0EDE= 65 B3       e3
  880   STA &B2         :\ 0EE0= 85 B2       .2
  890   INY             :\ 0EE2= C8          H
  900   BNE L0EC6       :\ 0EE3= D0 E1       Pa
  910   .L0EE5
  920   CLC             :\ 0EE5= 18          .
  930   .L0EE6
  940   LDA &B2         :\ 0EE6= A5 B2       %2
  950   .L0EE8
  960   RTS             :\ 0EE8= 60          `
  970   
  980   .L0EE9
  990   JSR L0EB6       :\ 0EE9= 20 B6 0E     6.
 1000   BCS L0EE8       :\ 0EEC= B0 FA       0z
 1010   LDA #&00        :\ 0EEE= A9 00       ).
 1020   JSR L0EC1       :\ 0EF0= 20 C1 0E     A.
 1030   BCC L0EE8       :\ 0EF3= 90 F3       .s
 1040   INY             :\ 0EF5= C8          H
 1050   BCS L0EC1       :\ 0EF6= B0 C9       0I
 1060   .L0EF8
 1070   LDA #&08        :\ 0EF8= A9 08       ).
 1080   STA &0F4D       :\ 0EFA= 8D 4D 0F    .M.
 1090   LDA #&13        :\ 0EFD= A9 13       ).
 1100   BNE L0F0D       :\ 0EFF= D0 0C       P.
 1110   BRK             :\ 0F01= 00          .
 1120   BRK             :\ 0F02= 00          .
 1130   BRK             :\ 0F03= 00          .
 1140   BRK             :\ 0F04= 00          .
 1150   BRK             :\ 0F05= 00          .
 1160   BRK             :\ 0F06= 00          .
 1170   BRK             :\ 0F07= 00          .
 1180   BRK             :\ 0F08= 00          .
 1190   EQUB &23        :\ 0F09= 23          #
 1200   ASL &FFFF       :\ 0F0A= 0E FF FF    ...
 1210   .L0F0D
 1220   LDX #&4D        :\ 0F0D= A2 4D       "M
 1230   LDY #&0F        :\ 0F0F= A0 0F        .
 1240   JSR OSWORD      :\ 0F11= 20 F1 FF     q.
 1250   LDA &0F4E       :\ 0F14= AD 4E 0F    -N.
 1260   LDX #&07        :\ 0F17= A2 07       ".
 1270   STX &B2         :\ 0F19= 86 B2       .2
 1280   TAY             :\ 0F1B= A8          (
 1290   LDA #&64        :\ 0F1C= A9 64       )d
 1300   JSR L0F28       :\ 0F1E= 20 28 0F     (.
 1310   LDA #&0A        :\ 0F21= A9 0A       ).
 1320   JSR L0F28       :\ 0F23= 20 28 0F     (.
 1330   LDA #&01        :\ 0F26= A9 01       ).
 1340   .L0F28
 1350   STA &B8         :\ 0F28= 85 B8       .8
 1360   TYA             :\ 0F2A= 98          .
 1370   LDX #&2F        :\ 0F2B= A2 2F       "/
 1380   SEC             :\ 0F2D= 38          8
 1390   .L0F2E
 1400   INX             :\ 0F2E= E8          h
 1410   SBC &B8         :\ 0F2F= E5 B8       e8
 1420   BCS L0F2E       :\ 0F31= B0 FB       0{
 1430   ADC &B8         :\ 0F33= 65 B8       e8
 1440   TAY             :\ 0F35= A8          (
 1450   TXA             :\ 0F36= 8A          .
 1460   LDX &B2         :\ 0F37= A6 B2       &2
 1470   INC &B2         :\ 0F39= E6 B2       f2
 1480   STA &0F4F,X     :\ 0F3B= 9D 4F 0F    .O.
 1490   RTS             :\ 0F3E= 60          `
 1500   
 1510   .L0F3F
 1520   INY             :\ 0F3F= C8          H
 1530   LDA (&BE),Y     :\ 0F40= B1 BE       1>
 1540   CMP #&20        :\ 0F42= C9 20       I
 1550   BNE L0F3F       :\ 0F44= D0 F9       Py
 1560   JMP L0EE9       :\ 0F46= 4C E9 0E    Li.
 1570   
 1580   .L0F49
 1590   BRK             :\ 0F49= 00          .
 1600   BRK             :\ 0F4A= 00          .
 1610   BRK             :\ 0F4B= 00          .
 1620   CLC             :\ 0F4C= 18          .
 1630   AND &3276,X     :\ 0F4D= 3D 76 32    =v2
 1640 ]NEXT
 1650 PRINT "*SAVE NOTIFY ";~mcode%;" ";~O%;" ";~exec%;" ";~load%