home *** CD-ROM | disk | FTP | other *** search
/ Hacker Chronicles 2 / HACKER2.BIN / 529.L2S.C < prev    next >
Text File  |  1988-05-14  |  20KB  |  624 lines

  1. /**************************************************************************\
  2. *                                                                          *
  3. *                                                                          *
  4. *    *****                      *****                                      *
  5. *      *****                  *****                                        *
  6. *        *****              *****                                          *
  7. *          *****          *****                                            *
  8. *            *****      *****                                              *
  9. *              *****  *****                                                *
  10. *            *****      *****                                              *
  11. *          *****          *****          The Firmware. The Net.            *
  12. *        *****              *****        Portable. Compatible.             *
  13. *      *****                  *****      Public Domain.                    *
  14. *    *****                      *****    By NORD><LINK.                    *
  15. *                                                                          *
  16. *                                                                          *
  17. *                                                                          *
  18. *    L2S.C   -   Level 2 Statetable                                        *
  19. *                                                                          *
  20. *    angelegt:      DC4OX                                                  *
  21. *    modifiziert:                                                          *
  22. *                                                                          *
  23. \**************************************************************************/
  24.  
  25.  
  26.  
  27.  
  28.  
  29. /*                                                             Includes   */
  30. /**************************************************************************/
  31.  
  32. #include "all.h"         /* allgemeine Festlegungen                       */
  33. #include "l2.h"          /* Festlegungen/Datenstrukturen fuer den Level 2 */
  34.  
  35.  
  36.  
  37.  
  38.  
  39. /*                                                              Defines   */
  40. /**************************************************************************/
  41.  
  42. #define NUMSTATS 16           /* Anzahl States AX.25 Level 2              */
  43.  
  44.  
  45.  
  46. /*
  47.  *    0 L2SDSCED  -  disconnected
  48.  *    1 L2SLKSUP  -  link setup
  49.  *    2 L2SFRREJ  -  frame reject
  50.  *    3 LS2DSCRQ  -  disconnect request
  51.  *    4 L2SIXFER  -  information transfer
  52.  *    5 L2SRS     -  REJ sent
  53.  *    6 L2SWA     -  waiting acknowledge
  54.  *    7 L2SDBS    -  device busy
  55.  *    8 L2SRBS    -  remote busy
  56.  *    9 L2SBBS    -  both busy
  57.  *   10 L2SWADBS  -  waiting ack and device busy
  58.  *   11 L2SWARBS  -  waiting ack and remote busy
  59.  *   12 L2SWABBS  -  waiting ack and both busy
  60.  *   13 L2SRSDBS  -  REJ sent and device busy
  61.  *   14 L2SRSRBS  -  REJ sent and remote busy
  62.  *   15 L2SRSBBS  -  REJ sent and both busy
  63.  */
  64.  
  65.  
  66.  
  67.  
  68.  
  69. /*                                                            Externals   */
  70. /**************************************************************************/
  71.  
  72. extern xdm();
  73. extern xnull();
  74. extern xfrmr();
  75. extern xrrr();
  76. extern xrnrr();
  77. extern t2rrr();
  78. extern t2rnrr();
  79. extern xua();
  80. extern xsabm();
  81. extern xdisc();
  82. extern xrrc();
  83. extern xrnrc();
  84. extern t2rejr();
  85. extern xrejr();
  86.  
  87.  
  88.  
  89.  
  90.  
  91. /**************************************************************************\
  92. *                                                                          *
  93. *   I WITH POLL (COMMAND)                                                  *
  94. *                                                                          *
  95. \**************************************************************************/
  96.  
  97. STENTRY stbl00[NUMSTATS] =
  98.   {
  99.     { xdm    , L2SDSCED },
  100.     { xnull  , L2SLKSUP },
  101.     { xfrmr  , L2SFRREJ },
  102.     { xdm    , L2SDSCRQ },
  103.     { xrrr   , L2SIXFER },
  104.     { xrrr   , L2SIXFER },
  105.     { xrrr   , L2SWA    },
  106.     { xrnrr  , L2SDBS   },
  107.     { xrrr   , L2SRBS   },
  108.     { xrnrr  , L2SBBS   },
  109.     { xrnrr  , L2SWADBS },
  110.     { xrrr   , L2SWARBS },
  111.     { xrnrr  , L2SWABBS },
  112.     { xrnrr  , L2SRSDBS },
  113.     { xrrr   , L2SRBS   },
  114.     { xrnrr  , L2SRSBBS }
  115.   };
  116.  
  117.  
  118.  
  119. /**************************************************************************\
  120. *                                                                          *
  121. * I WITHOUT POLL (COMMAND)                                                 *
  122. *                                                                          *
  123. \**************************************************************************/
  124.  
  125. STENTRY stbl01[NUMSTATS] =
  126.   {
  127.     { xnull  , L2SDSCED },
  128.     { xnull  , L2SLKSUP },
  129.     { xnull  , L2SFRREJ },
  130.     { xnull  , L2SDSCRQ },
  131.     { t2rrr  , L2SIXFER },
  132.     { t2rrr  , L2SIXFER },
  133.     { t2rrr  , L2SWA    },
  134.     { t2rnrr , L2SDBS   },
  135.     { t2rrr  , L2SRBS   },
  136.     { t2rnrr , L2SBBS   },
  137.     { t2rnrr , L2SWADBS },
  138.     { t2rrr  , L2SWARBS },
  139.     { t2rnrr , L2SWABBS },
  140.     { t2rnrr , L2SRSDBS },
  141.     { t2rrr  , L2SRBS   },
  142.     { t2rnrr , L2SRSBBS }
  143.   };
  144.  
  145.  
  146.  
  147. /**************************************************************************\
  148. *                                                                          *
  149. * RR WITH POLL (COMMAND)                                                   *
  150. *                                                                          *
  151. \**************************************************************************/
  152.  
  153. STENTRY stbl02[NUMSTATS] =
  154.   {
  155.     { xdm    , L2SDSCED },
  156.     { xnull  , L2SLKSUP },
  157.     { xfrmr  , L2SFRREJ },
  158.     { xdm    , L2SDSCRQ },
  159.     { xrrr   , L2SIXFER },
  160.     { xrrr   , L2SRS    },
  161.     { xrrr   , L2SWA    },
  162.     { xrnrr  , L2SDBS   },
  163.     { xrrr   , L2SIXFER },
  164.     { xrnrr  , L2SDBS   },
  165.     { xrnrr  , L2SWADBS },
  166.     { xrrr   , L2SWA    },
  167.     { xrnrr  , L2SWADBS },
  168.     { xrnrr  , L2SRSDBS },
  169.     { xrrr   , L2SRS    },
  170.     { xrnrr  , L2SRSDBS }
  171.   };
  172.  
  173.  
  174.  
  175. /**************************************************************************\
  176. *                                                                          *
  177. *   RR WITHOUT POLL (COMMAND)                                              *
  178. *                                                                          *
  179. \**************************************************************************/
  180.  
  181. STENTRY stbl03[NUMSTATS] =
  182.   {
  183.     { xnull  , L2SDSCED },
  184.     { xnull  , L2SLKSUP },
  185.     { xnull  , L2SFRREJ },
  186.     { xnull  , L2SDSCRQ },
  187.     { xnull  , L2SIXFER },
  188.     { xnull  , L2SRS    },
  189.     { xnull  , L2SWA    },
  190.     { xnull  , L2SDBS   },
  191.     { xnull  , L2SIXFER },
  192.     { xnull  , L2SDBS   },
  193.     { xnull  , L2SWADBS },
  194.     { xnull  , L2SWA    },
  195.     { xnull  , L2SWADBS },
  196.     { xnull  , L2SRSDBS },
  197.     { xnull  , L2SRS    },
  198.     { xnull  , L2SRSDBS }
  199.   };
  200.  
  201.  
  202.  
  203. /**************************************************************************\
  204. *                                                                          *
  205. *   RNR WITH POLL (COMMAND)                                                *
  206. *                                                                          *
  207. \**************************************************************************/
  208.  
  209. STENTRY stbl06[NUMSTATS] =
  210.   {
  211.     { xdm    , L2SDSCED },
  212.     { xnull  , L2SLKSUP },
  213.     { xfrmr  , L2SFRREJ },
  214.     { xdm    , L2SDSCRQ },
  215.     { xrrr   , L2SRBS   },
  216.     { xrrr   , L2SRSRBS },
  217.     { xrrr   , L2SWARBS },
  218.     { xrnrr  , L2SBBS   },
  219.     { xrrr   , L2SRBS   },
  220.     { xrnrr  , L2SBBS   },
  221.     { xrnrr  , L2SWABBS },
  222.     { xrrr   , L2SWARBS },
  223.     { xrnrr  , L2SWABBS },
  224.     { xrnrr  , L2SRSBBS },
  225.     { xrrr   , L2SRSRBS },
  226.     { xrnrr  , L2SRSBBS }
  227.   };
  228.  
  229.  
  230.  
  231. /**************************************************************************\
  232. *                                                                          *
  233. *   RNR WITHOUT POLL (COMMAND)                                             *
  234. *                                                                          *
  235. \**************************************************************************/
  236.  
  237. STENTRY stbl07[NUMSTATS] =
  238.   {
  239.     { xnull  , L2SDSCED },
  240.     { xnull  , L2SLKSUP },
  241.     { xnull  , L2SFRREJ },
  242.     { xnull  , L2SDSCRQ },
  243.     { xnull  , L2SRBS   },
  244.     { xnull  , L2SRSRBS }, 
  245.     { xnull  , L2SWARBS },
  246.     { xnull  , L2SBBS   },
  247.     { xnull  , L2SRBS   },
  248.     { xnull  , L2SBBS   },
  249.     { xnull  , L2SWABBS },
  250.     { xnull  , L2SWARBS },
  251.     { xnull  , L2SWABBS },
  252.     { xnull  , L2SRSBBS },
  253.     { xnull  , L2SRSRBS },
  254.     { xnull  , L2SRSBBS }
  255.   };
  256.  
  257.  
  258.  
  259. /**************************************************************************\
  260. *                                                                          *
  261. *   SABM EITHER (COMMAND)                                                  *
  262. *                                                                          *
  263. \**************************************************************************/
  264.  
  265. STENTRY stbl08[NUMSTATS] =
  266.   {
  267.     { xua    , L2SIXFER },
  268.     { xua    , L2SIXFER },
  269.     { xua    , L2SIXFER },
  270.     { xua    , L2SDSCED },
  271.     { xua    , L2SIXFER },
  272.     { xua    , L2SIXFER },
  273.     { xua    , L2SIXFER },
  274.     { xua    , L2SDBS   },
  275.     { xua    , L2SIXFER },
  276.     { xua    , L2SDBS   },
  277.     { xua    , L2SDBS   },
  278.     { xua    , L2SIXFER },
  279.     { xua    , L2SDBS   },
  280.     { xua    , L2SDBS   },
  281.     { xua    , L2SIXFER },
  282.     { xua    , L2SIXFER }
  283.   };
  284.  
  285.  
  286.  
  287. /**************************************************************************\
  288. *                                                                          *
  289. *   DISC EITHER (COMMAND)                                                  *
  290. *                                                                          *
  291. \**************************************************************************/
  292.  
  293. STENTRY stbl09[NUMSTATS] =
  294.   {
  295.     { xdm    , L2SDSCED },
  296.     { xdm    , L2SDSCED },
  297.     { xua    , L2SDSCED },
  298.     { xua    , L2SDSCED },
  299.     { xua    , L2SDSCED },
  300.     { xua    , L2SDSCED },
  301.     { xua    , L2SDSCED },
  302.     { xua    , L2SDSCED },
  303.     { xua    , L2SDSCED },
  304.     { xua    , L2SDSCED },
  305.     { xua    , L2SDSCED },
  306.     { xua    , L2SDSCED },
  307.     { xua    , L2SDSCED },
  308.     { xua    , L2SDSCED },
  309.     { xua    , L2SDSCED },
  310.     { xua    , L2SDSCED }
  311.   };
  312.  
  313.  
  314.  
  315. /**************************************************************************\
  316. *                                                                          *
  317. *   RR WITH FINAL (RESPONSE)                                               *
  318. *                                                                          *
  319. \**************************************************************************/
  320.  
  321. STENTRY stbl10[NUMSTATS] =
  322.   {
  323.     { xnull  , L2SDSCED },
  324.     { xnull  , L2SLKSUP },
  325.     { xnull  , L2SFRREJ },
  326.     { xnull  , L2SDSCRQ },
  327.     { xnull  , L2SIXFER },
  328.     { xnull  , L2SRS    },
  329.     { xnull  , L2SIXFER },
  330.     { xnull  , L2SDBS   },
  331.     { xnull  , L2SIXFER },
  332.     { xnull  , L2SDBS   },
  333.     { xnull  , L2SDBS   },
  334.     { xnull  , L2SIXFER },
  335.     { xnull  , L2SDBS   },
  336.     { xnull  , L2SRSDBS },
  337.     { xnull  , L2SRS    },
  338.     { xnull  , L2SRSDBS }
  339.   };
  340.  
  341.  
  342.  
  343. /**************************************************************************\
  344. *                                                                          *
  345. *   RNR WITH FINAL (RESPONSE)                                              *
  346. *                                                                          *
  347. \**************************************************************************/
  348.  
  349. STENTRY stbl14[NUMSTATS] =
  350.   {
  351.     { xnull  , L2SDSCED },
  352.     { xnull  , L2SLKSUP },
  353.     { xnull  , L2SFRREJ },
  354.     { xnull  , L2SDSCRQ },
  355.     { xnull  , L2SRBS   },
  356.     { xnull  , L2SRSRBS },
  357.     { xnull  , L2SRBS   },
  358.     { xnull  , L2SBBS   },
  359.     { xnull  , L2SRBS   },
  360.     { xnull  , L2SBBS   },
  361.     { xnull  , L2SBBS   },
  362.     { xnull  , L2SRBS   },
  363.     { xnull  , L2SBBS   },
  364.     { xnull  , L2SRSBBS },
  365.     { xnull  , L2SRSRBS },
  366.     { xnull  , L2SRSBBS }
  367.   };
  368.  
  369.  
  370.  
  371. /**************************************************************************\
  372. *                                                                          *
  373. * UA EITHER (RESPONSE)                                                     *
  374. *                                                                          *
  375. \**************************************************************************/
  376.  
  377. STENTRY stbl16[NUMSTATS] =
  378.   {
  379.     { xnull  , L2SDSCED },
  380.     { xnull  , L2SIXFER },
  381.     { xnull  , L2SFRREJ },
  382.     { xnull  , L2SDSCED },
  383.     { xnull  , L2SIXFER },
  384.     { xsabm  , L2SLKSUP },
  385.     { xsabm  , L2SLKSUP },
  386.     { xsabm  , L2SLKSUP },
  387.     { xsabm  , L2SLKSUP },
  388.     { xsabm  , L2SLKSUP },
  389.     { xsabm  , L2SLKSUP },
  390.     { xsabm  , L2SLKSUP },
  391.     { xsabm  , L2SLKSUP },
  392.     { xsabm  , L2SLKSUP },
  393.     { xsabm  , L2SLKSUP },
  394.     { xsabm  , L2SLKSUP }
  395.   };
  396.  
  397.  
  398.  
  399. /**************************************************************************\
  400. *                                                                          *
  401. * DM EITHER (RESPONSE)                                                     *
  402. *                                                                          *
  403. \**************************************************************************/
  404.  
  405. STENTRY stbl17[NUMSTATS] =
  406.   {
  407.     { xnull  , L2SDSCED },
  408.     { xnull  , L2SDSCED },
  409.     { xnull  , L2SDSCED },
  410.     { xnull  , L2SDSCED },
  411.     { xnull  , L2SDSCED },
  412.     { xnull  , L2SDSCED },
  413.     { xnull  , L2SDSCED },
  414.     { xnull  , L2SDSCED },
  415.     { xnull  , L2SDSCED },
  416.     { xnull  , L2SDSCED },
  417.     { xnull  , L2SDSCED },
  418.     { xnull  , L2SDSCED },
  419.     { xnull  , L2SDSCED },
  420.     { xnull  , L2SDSCED },
  421.     { xnull  , L2SDSCED },
  422.     { xnull  , L2SDSCED }
  423.   };
  424.  
  425.  
  426.  
  427. /**************************************************************************\
  428. *                                                                          *
  429. *   FRMR EITHER (RESPONSE)                                                 *
  430. *                                                                          *
  431. \**************************************************************************/
  432.  
  433. STENTRY stbl18[NUMSTATS] =
  434.   {
  435.     { xnull  , L2SDSCED },
  436.     { xnull  , L2SLKSUP },
  437.     { xsabm  , L2SLKSUP },
  438.     { xnull  , L2SDSCRQ },
  439.     { xsabm  , L2SLKSUP },
  440.     { xsabm  , L2SLKSUP },
  441.     { xsabm  , L2SLKSUP },
  442.     { xsabm  , L2SLKSUP },
  443.     { xsabm  , L2SLKSUP },
  444.     { xsabm  , L2SLKSUP },
  445.     { xsabm  , L2SLKSUP },
  446.     { xsabm  , L2SLKSUP },
  447.     { xsabm  , L2SLKSUP },
  448.     { xsabm  , L2SLKSUP },
  449.     { xsabm  , L2SLKSUP },
  450.     { xsabm  , L2SLKSUP }
  451.   };
  452.  
  453.  
  454.  
  455. /**************************************************************************\
  456. *                                                                          *
  457. * STATION BECOMES BUSY                                                     *
  458. *                                                                          *
  459. \**************************************************************************/
  460.  
  461. STENTRY stbl21[NUMSTATS] =
  462.   {
  463.     { xnull  , L2SDSCED },
  464.     { xnull  , L2SLKSUP },
  465.     { xnull  , L2SFRREJ },
  466.     { xnull  , L2SDSCRQ },
  467.     { t2rnrr , L2SDBS   },
  468.     { t2rnrr , L2SRSDBS },
  469.     { t2rnrr , L2SWADBS },
  470.     { xnull  , L2SDBS   },
  471.     { t2rnrr , L2SBBS   },
  472.     { xnull  , L2SBBS   },
  473.     { xnull  , L2SWADBS },
  474.     { t2rnrr , L2SWABBS },
  475.     { xnull  , L2SWABBS },
  476.     { xnull  , L2SRSDBS },
  477.     { t2rnrr , L2SRSBBS },
  478.     { xnull  , L2SRSBBS }
  479.   };
  480.  
  481.  
  482.  
  483. /**************************************************************************\
  484. *                                                                          *
  485. * BUSY CONDITION CLEARS                                                    *
  486. *                                                                          *
  487. \**************************************************************************/
  488.  
  489. STENTRY stbl22[NUMSTATS] =
  490.   {
  491.     { xnull  , L2SDSCED },
  492.     { xnull  , L2SLKSUP },
  493.     { xnull  , L2SFRREJ },
  494.     { xnull  , L2SDSCRQ },
  495.     { xnull  , L2SIXFER },
  496.     { xnull  , L2SRS    },
  497.     { xnull  , L2SWA    },
  498.     { t2rrr  , L2SIXFER },
  499.     { xnull  , L2SRBS   },
  500.     { t2rrr  , L2SRBS   },
  501.     { t2rrr  , L2SWA    },
  502.     { xnull  , L2SWARBS },
  503.     { t2rrr  , L2SWARBS },
  504.     { t2rrr  , L2SRS    },
  505.     { xnull  , L2SRSRBS },
  506.     { t2rrr  , L2SRSRBS }
  507.   };
  508.  
  509.  
  510.  
  511. /**************************************************************************\
  512. *                                                                          *
  513. * T1 EXPIRES (VERSION 2)                                                   *
  514. *                                                                          *
  515. \**************************************************************************/
  516.  
  517. STENTRY stbl23[NUMSTATS] =
  518.   {
  519.     { xnull  , L2SDSCED },
  520.     { xsabm  , L2SLKSUP },
  521.     { xfrmr  , L2SFRREJ },
  522.     { xdisc  , L2SDSCRQ },
  523.     { xrrc   , L2SWA    },
  524.     { xrrc   , L2SWA    },
  525.     { xrrc   , L2SWA    },
  526.     { xrnrc  , L2SWADBS },
  527.     { xrrc   , L2SWARBS },
  528.     { xrnrc  , L2SWABBS },
  529.     { xrnrc  , L2SWADBS },
  530.     { xrrc   , L2SWARBS },
  531.     { xrnrc  , L2SWABBS },
  532.     { xrnrc  , L2SWADBS },
  533.     { xrrc   , L2SWARBS },
  534.     { xrnrc  , L2SWADBS }
  535.   };
  536.  
  537.  
  538.  
  539. /**************************************************************************\
  540. *                                                                          *
  541. *   T3 EXPIRES                                                             *
  542. *                                                                          *
  543. \**************************************************************************/
  544.  
  545. STENTRY stbl24[NUMSTATS] =
  546.   {
  547.     { xnull  , L2SDSCED },
  548.     { xsabm  , L2SLKSUP },
  549.     { xfrmr  , L2SFRREJ },
  550.     { xdisc  , L2SDSCRQ },
  551.     { xrrc   , L2SWA    },
  552.     { xrrc   , L2SWA    },
  553.     { xnull  , L2SWA    },
  554.     { xrnrc  , L2SWADBS },
  555.     { xrrc   , L2SWARBS },
  556.     { xrnrc  , L2SWABBS },
  557.     { xnull  , L2SWADBS },
  558.     { xnull  , L2SWARBS },
  559.     { xnull  , L2SWABBS },
  560.     { xrnrc  , L2SWADBS },
  561.     { xrrc   , L2SWARBS },
  562.     { xrnrc  , L2SWADBS }
  563.   };
  564.  
  565.  
  566.  
  567. /**************************************************************************\
  568. *                                                                          *
  569. *   INVALID N(S) RECEIVED WITHOUT POLL                                     *
  570. *                                                                          *
  571. \**************************************************************************/
  572.  
  573. STENTRY stbl26[NUMSTATS] =
  574.   {
  575.     { xnull  , L2SDSCED },
  576.     { xnull  , L2SLKSUP },
  577.     { xnull  , L2SFRREJ },
  578.     { xnull  , L2SDSCRQ },
  579.     { t2rejr , L2SRS    },
  580.     { xnull  , L2SRS    },
  581.     { xnull  , L2SWA    },
  582.     { t2rnrr , L2SDBS   },
  583.     { t2rejr , L2SRSRBS },
  584.     { t2rnrr , L2SBBS   },
  585.     { xnull  , L2SWADBS },
  586.     { xnull  , L2SWARBS },
  587.     { xnull  , L2SWABBS },
  588.     { t2rnrr , L2SRSDBS },
  589.     { xnull  , L2SRSRBS },
  590.     { t2rnrr , L2SRSBBS }
  591.   };
  592.  
  593.  
  594.  
  595. /**************************************************************************\
  596. *                                                                          *
  597. *   INVALID N(S) RECEIVED WITH POLL                                        *
  598. *                                                                          *
  599. \**************************************************************************/
  600.  
  601. STENTRY stb26b[NUMSTATS] =
  602.   {
  603.     { xdm    , L2SDSCED },
  604.     { xnull  , L2SLKSUP },
  605.     { xfrmr  , L2SFRREJ },
  606.     { xdm    , L2SDSCRQ },
  607.     { xrejr  , L2SRS    },
  608.     { xrejr  , L2SRS    },
  609.     { xrejr  , L2SWA    },
  610.     { xrnrr  , L2SDBS   },
  611.     { xrejr  , L2SRSRBS },
  612.     { xrnrr  , L2SBBS   },
  613.     { xrnrr  , L2SWADBS },
  614.     { xrejr  , L2SWARBS },
  615.     { xrnrr  , L2SWABBS },
  616.     { xrnrr  , L2SRSDBS },
  617.     { xrejr  , L2SRSRBS },
  618.     { xrnrr  , L2SRSBBS }
  619.   };
  620.  
  621.  
  622.  
  623. /* Ende von L2S.C */
  624.