home *** CD-ROM | disk | FTP | other *** search
/ c64.rulez.org / 2014.05.c64.rulez.org.tar / c64.rulez.org / pub / c64 / other-OS / Dos / 1541v100.arj / I1541.INT < prev    next >
Text File  |  1996-01-06  |  7KB  |  174 lines

  1. --------T-144000-----------------------------
  2.  
  3. int 14 - i1541 - installation check
  4.  
  5.         ax = 4000H
  6.  
  7. rETURN: ax = 1541H
  8.  
  9.         bh = i1541 MAJOR VERSION (bcd)
  10.  
  11.         bl = i1541 MINOR VERSION (bcd)
  12.  
  13.         cx = 0000H
  14.  
  15. --------T-144001-----------------------------
  16.  
  17. int 14 - i1541 - test if 1541 cable connected
  18.  
  19.         ax = 4001H
  20.  
  21. rETURN: cf CLEAR IF CONNECTED
  22.  
  23.            bl = lpt NUMBER WHERE 1541 CABLE IS CONNECTED (1..3)
  24.  
  25.         cf SET IF CABLE NOT CONNECTED
  26.  
  27. nOTE:   THIS PROCEDURE SCANS ALL THE lpt PORTS SEARCHING THE ADAPTER CABLE
  28.  
  29. --------T-144002-----------------------------
  30.  
  31. int 14 - i1541 - select lpt port for output
  32.  
  33.         ax = 4002H
  34.  
  35.         bl = lpt NUMBER (1..3)
  36.  
  37. rETURN: cf CLEAR IF SUCCESSFUL
  38.  
  39.         cf SET OTHERWISE
  40.  
  41. nOTE:   FORCE THE INPUT OUTPUT ROUTINES TO WORK ON THE CABLE PLACED ON lpt bl
  42.  
  43. sEEaLSO: ax=4001H
  44.  
  45. --------T-144003-----------------------------
  46.  
  47. int 14 - i1541 - reset all devices
  48.  
  49.         ax = 4003H
  50.  
  51. nOTE:   tHIS ROUTINE SENDS A RESET PULSE OF 100MS TO ALL cbm DEVICES.
  52.  
  53.         iT'S NECESSARY TO WAIT {$7e}2S AFTER RESET BEFORE EXECUTING OTHER
  54.  
  55.         INSTRUCTIONS.
  56.  
  57. --------T-144004-----------------------------
  58.  
  59. int 14 - i1541 - send listen signal
  60.  
  61.         ax = 4004H
  62.  
  63.         bh = DEVICE NUMBER (0..15)
  64.  
  65. rETURN: cf CLEAR IF SUCCESSFUL
  66.  
  67.         cf SET IF ERROR
  68.  
  69.            al = ERROR NUMBER
  70.  
  71.                00H : DEVICE NOT PRESENT ERROR
  72.  
  73.                01H : LISTENER NOT READY ERROR
  74.  
  75.                02H : MISSING EOI TIME-OUT
  76.  
  77.                03H : EOI NOT COMPLETED
  78.  
  79.                04H : DATA NOT RELEASED
  80.  
  81.                05H : FRAME ERROR
  82.  
  83. sEEaLSO: ax=4005H/4006H
  84.  
  85. --------T-144005-----------------------------
  86.  
  87. int 14 - i1541 - send secondary address for listen
  88.  
  89.         ax = 4005H
  90.  
  91.         bl = CHANNEL NUMBER 0..15 (BITS 0-3)
  92.  
  93.              MODE (BITS 4-7)
  94.  
  95.                6H : READ AND WRITE
  96.  
  97.                eH : CLOSE CHANNEL
  98.  
  99.                fH : OPEN CHANNEL
  100.  
  101. rETURN: cf CLEAR IF SUCCESSFUL
  102.  
  103.         cf SET IF ERROR
  104.  
  105.            al = ERROR NUMBER
  106.  
  107.                00H : DEVICE NOT PRESENT ERROR
  108.  
  109.                01H : LISTENER NOT READY ERROR
  110.  
  111.                02H : MISSING EOI TIME-OUT
  112.  
  113.                03H : EOI NOT COMPLETED
  114.  
  115.                04H : DATA NOT RELEASED
  116.  
  117.                05H : FRAME ERROR
  118.  
  119. sEEaLSO: ax=4004H/4006H
  120.  
  121. --------T-144006-----------------------------
  122.  
  123. int 14 - i1541 - send unlisten signal
  124.  
  125.         ax = 4006H
  126.  
  127. rETURN: cf CLEAR IF SUCCESSFUL
  128.  
  129.         cf SET IF ERROR
  130.  
  131.            al = ERROR NUMBER
  132.  
  133.                00H : DEVICE NOT PRESENT ERROR
  134.  
  135.                01H : LISTENER NOT READY ERROR
  136.  
  137.                02H : MISSING EOI TIME-OUT
  138.  
  139.                03H : EOI NOT COMPLETED
  140.  
  141.                04H : DATA NOT RELEASED
  142.  
  143.                05H : FRAME ERROR
  144.  
  145. sEEaLSO: ax=4004H/4005H
  146.  
  147. --------T-144007-----------------------------
  148.  
  149. int 14 - i1541 - send talk signal
  150.  
  151.         ax = 4007H
  152.  
  153.         bh = DEVICE NUMBER (0..15)
  154.  
  155. rETURN: cf CLEAR IF SUCCESSFUL
  156.  
  157.         cf SET IF ERROR
  158.  
  159.            al = ERROR NUMBER
  160.  
  161.                00H : DEVICE NOT PRESENT ERROR
  162.  
  163.                01H : LISTENER NOT READY ERROR
  164.  
  165.                02H : MISSING EOI TIME-OUT
  166.  
  167.                03H : EOI NOT COMPLETED
  168.  
  169.                04H : DATA NOT RELEASED
  170.  
  171.                05H : FRAME ERROR
  172.  
  173. sEEaLSO: ax=4008H/4009H
  174.  
  175. --------T-144008-----------------------------
  176.  
  177. int 14 - i1541 - send secondary address for talk
  178.  
  179.         ax = 4008H
  180.  
  181.         bl = CHANNEL NUMBER 0..15 (BITS 0-3)
  182.  
  183.              MODE (BITS 4-7)
  184.  
  185.                6H : READ AND WRITE
  186.  
  187.                eH : CLOSE CHANNEL
  188.  
  189.                fH : OPEN CHANNEL
  190.  
  191. rETURN: cf CLEAR IF SUCCESSFUL
  192.  
  193.         cf SET IF ERROR
  194.  
  195.            al = ERROR NUMBER
  196.  
  197.                00H : DEVICE NOT PRESENT ERROR
  198.  
  199.                01H : LISTENER NOT READY ERROR
  200.  
  201.                02H : MISSING EOI TIME-OUT
  202.  
  203.                03H : EOI NOT COMPLETED
  204.  
  205.                04H : DATA NOT RELEASED
  206.  
  207.                05H : FRAME ERROR
  208.  
  209.                40H : TURN AROUND TIME-OUT
  210.  
  211. sEEaLSO: ax=4007H/4009H
  212.  
  213. --------T-144009-----------------------------
  214.  
  215. int 14 - i1541 - send untalk signal
  216.  
  217.         ax = 4009H
  218.  
  219. rETURN: cf CLEAR IF SUCCESSFUL
  220.  
  221.         cf SET IF ERROR
  222.  
  223.            al = ERROR NUMBER
  224.  
  225.                00H : DEVICE NOT PRESENT ERROR
  226.  
  227.                01H : LISTENER NOT READY ERROR
  228.  
  229.                02H : MISSING EOI TIME-OUT
  230.  
  231.                03H : EOI NOT COMPLETED
  232.  
  233.                04H : DATA NOT RELEASED
  234.  
  235.                05H : FRAME ERROR
  236.  
  237. sEEaLSO: ax=4007H/4008H
  238.  
  239. --------T-14400a-----------------------------
  240.  
  241. int 14 - i1541 - send a byte to a device
  242.  
  243.         ax = 400aH
  244.  
  245.         bl = BYTE TO SEND
  246.  
  247.         cl = IS THE LAST BYTE
  248.  
  249.              00H : IF THE BYTE TO SEND IS NOT THE LAST
  250.  
  251.              01H : IF THE BYTE TO SEND IS THE LAST
  252.  
  253. rETURN: cf CLEAR IF SUCCESSFUL
  254.  
  255.         cf SET IF ERROR
  256.  
  257.            al = ERROR NUMBER
  258.  
  259.                00H : DEVICE NOT PRESENT ERROR
  260.  
  261.                01H : LISTENER NOT READY ERROR
  262.  
  263.                02H : MISSING EOI TIME-OUT
  264.  
  265.                03H : EOI NOT COMPLETED
  266.  
  267.                04H : DATA NOT RELEASED
  268.  
  269.                05H : FRAME ERROR
  270.  
  271. sEEaLSO: ax=400bH
  272.  
  273. --------T-14400b-----------------------------
  274.  
  275. int 14 - i1541 - receive a byte from a device
  276.  
  277.         ax = 400bH
  278.  
  279. rETURN: cf CLEAR IF SUCCESSFUL
  280.  
  281.            al = BYTE RECEIVED
  282.  
  283.            cl = IS THE LAST BYTE
  284.  
  285.                 00H : IF THE RECEIVED BYTE IS NOT THE LAST
  286.  
  287.                 01H : IF THE RECEIVED BYTE IS THE LAST
  288.  
  289.         cf SET IF ERROR
  290.  
  291.            al = ERROR NUMBER
  292.  
  293.                80H : EOI RESPONSE REQUIRED ERROR
  294.  
  295.                81H : TALKER NOT READY
  296.  
  297.                82H : CLOCK NOT SET
  298.  
  299.                83H : CLOCK NOT RELEASED
  300.  
  301.            cl = 00H
  302.  
  303. sEEaLSO: ax=400aH
  304.  
  305. --------T-14400c-----------------------------
  306.  
  307. int 14 - i1541 - wait
  308.  
  309.         ax = 400cH
  310.  
  311.         cx = NUMBER OF 838NS TICKS (1/1.193180mhZ) TO WAIT
  312.  
  313.              (0 MEANS 65536 ({$7e}55MS))
  314.  
  315. eXAMPLE: tO WAIT 10US YOU MUST SET cx=(10US/838NS)=12
  316.  
  317. --------T-14400d-----------------------------
  318.  
  319. int 14 - i1541 - longwait
  320.  
  321.         ax = 400dH
  322.  
  323.         dx:cx = NUMBER OF 838NS TICKS (1/1.193180mhZ) TO WAIT
  324.  
  325.                 (0 MEANS 4294967296 ({$7e}1hOUR))
  326.  
  327. eXAMPLE: tO WAIT 1S YOU MUST SET dx:cx=(1S/838NS)=1193180
  328.  
  329. --------T-14400e-----------------------------
  330.  
  331. int 14 - i1541 - get info
  332.  
  333.         ax = 400eH
  334.  
  335. rETURN: ax = lpt PORT I/O ADDRESS IN USE (0 IF NO CABLE IN USE)
  336.  
  337.         bl = lpt NUMBER (1..3) IN USE (0 IF NO CABLE IN USE)
  338.  
  339.         cf SET IF THE CABLE IS AUTO DETECTABLE
  340.  
  341.         cf CLEAR IF CABLE NOT AUTO DETECTABLE OR NOT PRESENT
  342.  
  343. nOTE:   tHE cf SET MEANS THAT THE AUTO DETECT ROUTINE CAN RECOGNISE THE
  344.  
  345.         PRESENCE OF A CABLE ON THE lpt PORT IN USE.
  346.  
  347.