home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / robot-pd / 14400.ZIP / 14400B.DSK / dw-desk.src next >
Text File  |  1998-04-30  |  15KB  |  791 lines

  1.                                          
  2.  
  3.  
  4.               ; DAVID WILD PD DESKTOP RSX LIBRARY
  5.  
  6.  
  7. ; TO USE THESE RSX'S               
  8. ;  MEMORY &6FFF THEN ASSEMBLE ASCII FILE
  9. ; CALL &7000:MODE 2
  10.  
  11. ; |SHOWMOUSE,x%,y% dislays the mouse at the character position x%,y% 
  12.  
  13. ; |MOVEPOINTER,@x%,y% checks cursor keys or mouse movement and moves 
  14. ; pointer in that direction but needs to be in a loop for continuous
  15. ; movement
  16.  
  17. ; |HIDEMOUSE restores the screen as before |SHOWMOUSE X%,Y%
  18.  
  19. ; |DO.ALERT saves a strip in the middle of the screen, draws a box and 
  20. ; defines it as window#7
  21.  
  22. ; |ALERT.OFF restores the screen to before the last |DO.ALERT
  23.  
  24. ; |MBAR.ON is the same as |DO.ALERT without the box and for a strip
  25. ; across the top third of the screen
  26.  
  27. ; |MBAR.OFF is similar to ||ALERT.OFF
  28.  
  29. ; |DESK fills the screen with a windows type background
  30.  
  31. ; |BUTTONS,@x$ prints x$ in a button at the current graphics cursor
  32.  
  33. ; |FONT1 selects font1 which should be at &7554 ( fnt1 as below )
  34.  
  35. ; |FONT2 selects font2 which should be at &7C54 ( fnt2 as below )
  36.  
  37. ; |SMALLTEXT,&x$ print x$ in a previously selected |FONT1 or |FONT2
  38.  
  39. ; |ICON,n% prints the four characters from position n% in the current
  40. ; |FONT, thereby printing a two by two character icon
  41.  
  42. ; |GETDIR,track,type,drive ( changing drive from 0 causes problems)
  43. ; *** dangerous if not used properly jams disc drives *** 
  44.  
  45. ; |PUTDIR,track,type,drive ( changing drive from 0 causes problems)  
  46. ; *** dangerous if not used properly jams disc drives *** 
  47.  
  48. ; |INFO,status,@user,@name$ for file info
  49. ; *** dangerous if not used properly jams disc drives *** 
  50.  
  51. ; |GETHEAD,@file$,@pointer%
  52. ; *** dangerous if not used properly jams disc drives *** 
  53.  
  54. ; |PUTCHAR at &748a  ( prstor )
  55.  
  56. ; |DUMPLINE,line%  ( to dump the screen to a printer run in a loop
  57. ; from 399 TO 0 STEP -12 )
  58.  
  59.  
  60.  
  61.         ORG        &7000
  62.  
  63.       
  64.  
  65.     SCHRPS  EQU   &BC1A    ; SCREEN CHAR POS.    
  66.     SCRNXL  EQU   &BC26    ; MOVE SCREEN ADD 1 LINE    
  67.     TXWNON  EQU   &BB66    ; DETERMINE SIZE OF TXT WINDOW
  68.         TXWSEL  EQU   &BBB4    ; SELECT TEXT WINDOW    
  69.     TXTOUT  EQU   &BB5A    ; DISPLAY OR EXEC.(CONTROL) CHR
  70.         GRMVAB  EQU   &BBC0    ; MOVE TO AN ABSOLUTE POSITION
  71.         GRLNAB  EQU   &BBF6    ; LINE FROM CURRENT TO ABS. POS.
  72.         SCMODE  EQU   &BC0E     ; SET SCREEN MODE
  73.         GRWRCH  EQU   &BBFC     ; GRAPHIC WRITE CHAR
  74.     GRMVRL  EQU   &BBC3     ;    "    MOVE RELATIVE
  75.     EXROM   EQU   &B90F     ; SELECT EXPANSION ROM
  76.     XROMOF  EQU   &B918     ; DESELECT  "       "
  77.     DISC1   EQU   &C666
  78.     DISC2   EQU   &C64E    
  79.         CASINC  EQU   &BC7A    ; CLOSE INPUT FILE REGISTER
  80.     CASINO  EQU   &BC77    ; OPEN    "     "     "
  81.     CHRDEP  EQU   &BB0C     ; DEPOSIT CHAR
  82.     GRTSTA    EQU   &BBF0    ; DOT SET                                          
  83.     PRNBSY  EQU   &BD2E    ; PRINTER BUSY  
  84.     PRNCHR    EQU   &BD31      ; PRINT PRINTER CHAR
  85.     TSTKEY  EQU   &BB1E     ; TEST KEY
  86.     TXSETB  EQU   &BBAB     ; SET TEXT TABLE ADDRESS
  87.     TXTAB   EQU   &8354     ; CURRENT FONT ADDRESS
  88.     FNTP1   EQU   &7554    ; FONT 1 ADDRESS POINTER
  89.     FNTP2    EQU   &7C54    ; FONT 2 ADDRESS POINTER
  90.         GRLNRL  EQU   &BBF9     ; LINE TO REL. POS
  91.  
  92.         DSCST1  EQU   &8A54     ;
  93.     DSCST2  EQU   &8C54 
  94.     DSCST3  EQU   &8E54
  95.     DSCST4  EQU   &9054
  96.  
  97.  
  98.  
  99. buf0    equ   &8354             ; CURRENT FONT ADDRESS 
  100. buf1    equ   &8a54
  101. buf2    equ   &8c54
  102. buf3    equ   &8e54
  103. buf4    equ   &9054
  104. fnt1    equ   &7554             ; font1
  105. fnt2    equ   &7c54             ; font2
  106.  
  107.     LD    BC,jpblk
  108.     LD    HL,wrkspace
  109.     CALL  &BCD1
  110.     RET   
  111.  
  112. wrkspace defs 4
  113.    
  114. jpblk      defw namtab
  115.  
  116. JP    alrton
  117. JP    alrtof
  118. JP    showms
  119. JP    hidems
  120. JP    mbaron
  121. JP    mbarof
  122. JP    desk
  123. JP    smltxt
  124. JP    icon
  125. JP    getdir
  126. JP    putdir
  127. JP    info
  128. JP    gethed
  129. JP    butn
  130. JP    putchr
  131. JP    dmplin
  132. JP    mvpntr
  133. JP    font1
  134. JP    font2
  135. NOP   
  136. namtab     defm "DO.ALER"
  137. defb "T"+128
  138. defm "ALERT.OF"
  139. defb "F"+128
  140. defm "SHOWMOUS"
  141. defb "E"+128
  142. defm "HIDEMOUS"
  143. defb "E"+128
  144. defm "MBAR.O"
  145. defb "N"+128
  146. defm "MBAR.OF"
  147. defb "F"+128
  148. defm "DES"
  149. defb "K"+128
  150. defm "SMALLTEX"
  151. defb "T"+128
  152. defm "ICO"
  153. defb "N"+128
  154. defm "GETDI"
  155. defb "R"+128
  156. defm "PUTDI"
  157. defb "R"+128
  158. defm "INF"
  159. defb "O"+128
  160. defm "GETHEA"
  161. defb "D"+128
  162. defm "BUTTO"
  163. defb "N"+128
  164. defm "PUTCHA"
  165. defb "R"+128
  166. defm "DUMPLIN"
  167. defb "E"+128
  168. defm "MOVEPOINTE"
  169. defb "R"+128
  170. defm "FONT"
  171. defb "1"+128
  172. defm "FONT"
  173. defb "2"+128
  174.  
  175. alrt1     LD    B,A
  176. aloop2     PUSH  BC
  177.     LD    B,&50
  178. aloop1     LD    A,(HL)
  179.     LD    (DE),A
  180.     INC   HL
  181.     INC   DE
  182.     DJNZ  aloop1
  183.     OR    A
  184.     PUSH  DE
  185.     LD    DE,&0050
  186.     SBC   HL,DE
  187.     POP   DE
  188.     CALL  SCRNXL ; MOVE SCREEN ADD 1 LINE
  189.     POP   BC
  190.     DJNZ  aloop2
  191.     RET   
  192. alrt2    LD    B,A
  193. aloop4    PUSH  BC
  194.     LD    B,&50
  195. aloop3    LD    A,(DE)
  196.     LD    (HL),A
  197.     INC   HL
  198.     INC   DE
  199.     DJNZ  aloop3
  200.     OR    A
  201.     PUSH  DE
  202.     LD    DE,&0050
  203.     SBC   HL,DE
  204.     POP   DE
  205.     CALL  SCRNXL ; MOVE SCREEN ADD 1 LINE
  206.     POP   BC
  207.     DJNZ  aloop4
  208.     RET   
  209. alrton    LD    A,&07
  210.     CALL  TXWSEL  ; SELECT TEXT WINDOW 
  211.     LD    HL,&C230
  212.     LD    DE,buf1
  213.     LD    A,&52
  214.     CALL  alrt1
  215.     LD    HL,&1308
  216.     LD    DE,&3B10
  217.     CALL  TXWNON  ; DETERMINE SIZE OF TXT WIN
  218.     LD    A,&0C
  219.     CALL  TXTOUT ; DISP OR EXEC.(CONTROL) CHR
  220.     LD    HL,&1408
  221.     LD    DE,&3A10
  222.     CALL  TXWNON  ; DETERMINE SIZE OF TXT WIN
  223.     LD    DE,&0097
  224.     LD    HL,&0110
  225.     CALL  GRMVAB ; MOVE TO AN ABSOLUTE POS
  226.     LD    DE,&01E1
  227.     LD    HL,&0110
  228.     CALL  GRLNAB ; LINE TO ABS. POS.
  229.     LD    DE,&01E1
  230.     LD    HL,&007E
  231.     CALL  GRLNAB ; LINE TO ABS. POS.
  232.     LD    DE,&0097
  233.     LD    HL,&007E
  234.     CALL  GRLNAB ; LINE TO ABS. POS.
  235.     LD    DE,&0097
  236.     LD    HL,&0110
  237.     CALL  GRLNAB ; LINE TO ABS. POS.
  238.     RET   
  239. alrtof    LD    A,&00
  240.     CALL  TXWSEL  ; SELECT TEXT WINDOW 
  241.     LD    HL,&C230
  242.     LD    DE,buf1
  243.     LD    A,&52
  244.     CALL  alrt2
  245.     RET   
  246. showms    LD    L,(IX+&00)
  247.     LD    H,(IX+&02)
  248.     LD    (storb1),HL
  249. shms2    DEC   H
  250.     LD    A,L
  251.     SRA   A
  252.     DEC   A
  253.     LD    L,A
  254.     CALL  SCHRPS     ; SCREEN CHAR POS.
  255.     LD    A,(IX+&00)
  256.     SRA   A
  257.     JR    NC,aloop31
  258.     LD    B,&04
  259. aloop5    CALL  SCRNXL ; MOVE SCREEN ADD 1 LINE
  260.     DJNZ  aloop5
  261. aloop31    PUSH  HL
  262.     LD    DE,storn1
  263. shms    LD    B,&10
  264. aloop6    LD    A,(HL)
  265.     LD    (DE),A
  266.     INC   DE
  267.     CALL  SCRNXL ; MOVE SCREEN ADD 1 LINE
  268.     DJNZ  aloop6
  269.     POP   HL
  270.     PUSH  HL
  271.     LD    DE,storn2
  272.     LD    B,&10
  273. aloop7    LD    A,(DE)
  274.     AND   (HL)
  275.     LD    (HL),A
  276.     INC   DE
  277.     CALL  SCRNXL ; MOVE SCREEN ADD 1 LINE
  278.     DJNZ  aloop7
  279.     POP   HL
  280.     LD    (storb2),HL
  281.     LD    DE,storn3
  282.     LD    B,&10
  283. aloop8    LD    A,(DE)
  284.     OR    (HL)
  285.     LD    (HL),A
  286.     INC   DE
  287.     CALL  SCRNXL ; MOVE SCREEN ADD 1 LINE
  288.     DJNZ  aloop8
  289.     RET   
  290. hidems    LD    HL,(storb2)
  291.     LD    DE,storn1
  292.     LD    B,&10
  293. aloop9    LD    A,(DE)
  294.     LD    (HL),A
  295.     INC   DE
  296.     CALL  SCRNXL ; MOVE SCREEN ADD 1 LINE
  297.     DJNZ  aloop9
  298.     RET   
  299. storn3    defs  1   
  300.     LD    B,B
  301.     LD    H,B
  302.     LD    (HL),B
  303.     LD    A,B
  304.     LD    A,H
  305.     LD    A,(HL)
  306.     LD    A,H
  307.     LD    A,H
  308.     LD    A,H
  309.     LD    C,(HL)
  310.     LD    B,&06
  311.     NOP   
  312.     NOP   
  313.     NOP   
  314. storn2    RRA   
  315.     RRCA  
  316.     RLCA  
  317.     INC   BC
  318.     LD    BC,&0000
  319.     NOP   
  320.     LD    BC,&0000
  321.     NOP   
  322.     OR    B
  323.     RET   M
  324.     RET   M
  325.     RST   7
  326. storb2    defs  2   
  327. storn1  defs  16
  328. storb1  defs  1
  329. storb4  defs  1  
  330. mbaron    LD    HL,&C000
  331.     LD    DE,buf1
  332.     LD    A,&52
  333.     CALL  alrt1
  334.     RET   
  335. mbarof    LD    HL,&C000
  336.     LD    DE,buf1
  337.     LD    A,&52
  338.     CALL  alrt2
  339.     RET   
  340. desk    LD    A,&02
  341.     CALL  SCMODE ; SET SCREEN MODE
  342.     LD    HL,&C000
  343.     LD    BC,&4000
  344. jmpr1    LD    A,&AA
  345.     LD    (HL),A
  346.     DEC   BC
  347.     INC   HL
  348.     LD    A,B
  349.     OR    C
  350.     JR    NZ,jmpr1
  351.     RET   
  352. smltxt    DEC   A
  353.     RET   NZ
  354.     LD    L,(IX+&00)
  355.     LD    H,(IX+&01)
  356.     LD    B,(HL)
  357.     INC   HL
  358.     LD    E,(HL)
  359.     INC   HL
  360.     LD    D,(HL)
  361.     EX    DE,HL
  362. aloop10    LD    A,(HL)
  363.     ADD   A,&70
  364.     PUSH  HL
  365.     PUSH  BC
  366.     CALL  GRWRCH ; GRAPHIC WRITE CHAR
  367.     LD    DE,&FFFD
  368.     LD    HL,&0000
  369.     CALL  GRMVRL ; GRAPHIC MOVE RELATIVE   
  370.     POP   BC
  371.     POP   HL
  372.     INC   HL
  373.     DJNZ  aloop10
  374. icon    DEC   A
  375.     RET   NZ
  376.     LD    A,(IX+&00)
  377.     CALL  GRWRCH ; GRAPHIC WRITE CHAR
  378.     LD    A,(IX+&00)
  379.     INC   A
  380.     CALL  GRWRCH ; GRAPHIC WRITE CHAR
  381.     LD    DE,&FFF0
  382.     LD    HL,&FFF0
  383.     CALL  GRMVRL ; GRAPHIC MOVE RELATIVE   
  384.     LD    A,(IX+&00)
  385.     INC   A
  386.     INC   A
  387.     CALL  GRWRCH ; GRAPHIC WRITE CHAR
  388.     LD    A,(IX+&00)
  389.     INC   A
  390.     INC   A
  391.     INC   A
  392.     CALL  GRWRCH ; GRAPHIC WRITE CHAR
  393.     RET   
  394. getdir    LD    C,&07
  395.     CALL  EXROM ; SELECT EXPANSION ROM 
  396.     PUSH  BC
  397.     LD    A,(IX+&00)
  398.     LD    (storn5),A  ;<- some confusion as to   -
  399.     LD    A,(IX+&02)  ; - whether this should be -
  400.     LD    (storn8),A  ; - drive or track store   -
  401.     LD    A,(IX+&04)  ; - i.e storn5/storn6      -
  402.     LD    (storn6),A
  403.     LD    A,(storn8)
  404.     LD    C,A
  405.     LD    DE,(storn5)
  406.     LD    HL,buf1
  407.     CALL  DISC1
  408.     LD    A,(storn8)
  409.     ADD   A,&01
  410.     LD    C,A
  411.     LD    HL,buf2
  412.     CALL  DISC1
  413.     LD    A,(storn8)
  414.     ADD   A,&02
  415.     LD    C,A
  416.     LD    HL,buf3
  417.     CALL  DISC1
  418.     LD    A,(storn8)
  419.     ADD   A,&03
  420.     LD    C,A
  421.     LD    HL,buf4
  422.     CALL  DISC1
  423.     POP   BC
  424.     CALL  XROMOF ; DESELECT EXPANSION ROM
  425.     RET   
  426. storn5  defs 1 ; drive  
  427. storn6  defs 1 ; track
  428. storn8  defs 1 ; type
  429. putdir    LD    C,&07
  430.     CALL  EXROM ; SELECT EXPANSION ROM 
  431.     PUSH  BC
  432.     LD    A,(storn8)
  433.     LD    C,A
  434.     LD    DE,(storn5)
  435.     LD    HL,buf1
  436.     CALL  DISC2
  437.     LD    A,(storn8)
  438.     ADD   A,&01
  439.     LD    C,A
  440.     LD    HL,buf2
  441.     CALL  DISC2
  442.     LD    A,(storn8)
  443.     ADD   A,&02
  444.     LD    C,A
  445.     LD    HL,buf3
  446.     CALL  DISC2
  447.     LD    A,(storn8)
  448.     ADD   A,&03
  449.     LD    C,A
  450.     LD    HL,buf4
  451.     CALL  DISC2
  452.     POP   BC
  453.     CALL  XROMOF ; DESELECT EXPANSION ROM
  454.     RET   
  455. info    CP    &03
  456.     RET   NZ
  457.     LD    A,(IX+&04)
  458.     LD    HL,buf1
  459.     CP    &00
  460.     JR    Z,jmpr2
  461.     CP    &3F
  462.     RET   NC
  463.     LD    DE,&0020
  464.     LD    B,A
  465. aloop11    ADD   HL,DE
  466.     DJNZ  aloop11
  467. jmpr2    LD    A,(HL)
  468.     INC   HL
  469.     PUSH  HL
  470.     LD    L,(IX+&02)
  471.     LD    H,(IX+&03)
  472.     LD    (HL),A
  473.     INC   HL
  474.     LD    A,&00
  475.     LD    (HL),A
  476.     LD    L,(IX+&00)
  477.     LD    H,(IX+&01)
  478.     LD    B,(HL)
  479.     LD    A,B
  480.     CP    &0B
  481.     RET   NZ
  482.     INC   HL
  483.     LD    E,(HL)
  484.     INC   HL
  485.     LD    D,(HL)
  486.     POP   HL
  487. aloop12    LD    A,(HL)
  488.     LD    (DE),A
  489.     INC   DE
  490.     INC   HL
  491.     DJNZ  aloop12
  492.     RET   
  493. gethed    CP    &02
  494.     RET   NZ
  495.     LD    B,&0C
  496.     LD    E,(IX+&02)
  497.     LD    D,(IX+&03)
  498.     INC   DE
  499.     EX    DE,HL
  500.     LD    E,(HL)
  501.     INC   HL
  502.     LD    D,(HL)
  503.     EX    DE,HL
  504.     LD    DE,buf1
  505.     CALL  CASINO ; OPEN  INPUT FILE REGISTER 
  506.     RET   NC
  507.     LD    E,(IX+&00)
  508.     LD    D,(IX+&01)
  509.     EX    DE,HL
  510.     LD    (HL),E
  511.     INC   HL
  512.     LD    (HL),D
  513.     CALL  CASINC ; CLOSE INPUT FILE REGISTER 
  514.     RET   
  515.     NOP   
  516. butn    DEC   A
  517.     RET   NZ
  518.     LD    L,(IX+&00)
  519.     LD    H,(IX+&01)
  520.     LD    B,(HL)
  521.     INC   HL
  522.     LD    E,(HL)
  523.     INC   HL
  524.     LD    D,(HL)
  525.     INC   HL
  526.     EX    DE,HL
  527.     PUSH  BC
  528.     PUSH  HL
  529.     LD    A,B
  530.     AND   &1F
  531.     SLA   A
  532.     SLA   A
  533.     SLA   A
  534.     LD    (butst1),A
  535.     NEG   
  536.     LD    (butst2),A
  537.     LD    DE,&0006
  538.     LD    HL,&0000
  539.     CALL  GRMVRL ; GRAPHIC MOVE RELATIVE   
  540.     LD    B,&10
  541.     LD    HL,butst1
  542. aloop13    LD    E,(HL)
  543.     INC   HL
  544.     LD    D,(HL)
  545.     INC   HL
  546.     PUSH  BC
  547.     LD    C,(HL)
  548.     INC   HL
  549.     LD    B,(HL)
  550.     INC   HL
  551.     PUSH  HL
  552.     LD    L,C
  553.     LD    H,B
  554.     CALL  GRLNRL ; LINE TO REL. POS 
  555.     POP   HL
  556.     POP   BC
  557.     DJNZ  aloop13
  558.     LD    DE,&0000
  559.     LD    HL,&FFFA
  560.     CALL  GRMVRL ; GRAPHIC MOVE RELATIVE   
  561.     POP   HL
  562.     POP   BC
  563. aloop30    LD    A,(HL)
  564.     PUSH  HL
  565.     PUSH  BC
  566.     CALL  GRWRCH ; GRAPHIC WRITE CHAR
  567.     POP   BC
  568.     POP   HL
  569.     INC   HL
  570.     DJNZ  aloop30
  571.     RET   
  572. butst1     defs 4   
  573.     INC   B
  574.     NOP   
  575.     CP    &FF
  576.     LD    (BC),A
  577.     NOP   
  578.     CP    &FF
  579.     LD    (BC),A
  580.     NOP   
  581.     CALL  M,&00FF
  582.     NOP   
  583.     CALL  P,&FEFF
  584.     RST   7
  585.     CALL  M,&FEFF
  586.     RST   7
  587.     CP    &FF
  588.     CALL  M,&FEFF
  589.     RST   7
  590. butst2  defs  1   
  591.     RST   7
  592.     NOP   
  593.     NOP   
  594.     CALL  M,&02FF
  595.     NOP   
  596.     CP    &FF
  597.     LD    (BC),A
  598.     NOP   
  599.     CP    &FF
  600.     INC   B
  601.     NOP   
  602.     NOP   
  603.     NOP   
  604.     INC   C
  605.     NOP   
  606.     LD    (BC),A
  607.     NOP   
  608.     INC   B
  609.     NOP   
  610.     LD    (BC),A
  611.     NOP   
  612.     LD    (BC),A
  613.     NOP   
  614.     INC   B
  615.     NOP   
  616.     LD    (BC),A
  617.     NOP   
  618. putchr    LD    A,(IX+&00)
  619.     CALL  CHRDEP ; DEPOSIT CHAR 
  620.     RET   
  621. dmplin    LD    L,(IX+&00)
  622.     LD    H,(IX+&01)
  623.     CALL  ptchr
  624.     LD    DE,&0000
  625.     LD    BC,&0280
  626. jmpr5    PUSH  BC
  627.     LD    A,&00
  628.     LD    (pchst1),A
  629.     LD    A,&40
  630.     LD    (pchst2),A
  631.     LD    B,&06
  632. aloop14    PUSH  BC
  633.     PUSH  DE
  634.     PUSH  HL
  635.     CALL  GRTSTA ; DOT SET
  636.     POP   HL
  637.     POP   DE
  638.     POP   BC
  639.     AND   A
  640.     JR    Z,jmpr4
  641.     LD    A,(pchst2)
  642.     LD    C,A
  643.     LD    A,(pchst1)
  644.     ADD   A,C
  645.     LD    (pchst1),A
  646. jmpr4    LD    A,(pchst2)
  647.     SRA   A
  648.     LD    (pchst2),A
  649.     DEC   HL
  650.     DEC   HL
  651.     DJNZ  aloop14
  652.     LD    A,(pchst1)
  653.     CALL  prntr
  654.     LD    BC,&000B
  655.     ADC   HL,BC
  656.     POP   BC
  657.     INC   DE
  658.     DEC   BC
  659.     LD    A,C
  660.     OR    B
  661.     JR    NZ,jmpr5
  662.     LD    B,&80
  663. aloop32    XOR   A
  664.     CALL  prntr
  665.     DJNZ  aloop32
  666.     RET   
  667. ptchr    LD    A,&0D
  668.     CALL  prntr
  669.     LD    A,&0A
  670.     CALL  prntr
  671.     LD    DE,prstor
  672.     jmpr6 LD    A,(DE)
  673.     CALL  prntr
  674.     INC   DE
  675.     CP    &03
  676.     JR    NZ,jmpr6
  677.     RET   
  678. prntr    PUSH  HL
  679.     PUSH  DE
  680.     PUSH  BC
  681. jmpr7    CALL  PRNBSY ; PRINTER BUSY 
  682.     JR    C,jmpr7
  683.     CALL  PRNCHR ; PRINT PRINTER CHAR  
  684.     POP   BC
  685.     POP   DE
  686.     POP   HL
  687.     RET   
  688. prstor    DEC   DE
  689.     INC   SP
  690.     LD    (DE),A
  691.     DEC   DE
  692.     LD    C,H
  693.     NOP   
  694.     INC   BC
  695. pchst1     defs 1
  696. pchst2    defs 1
  697. mvpntr    CP    &02
  698.     RET   NZ
  699.     LD    A,&00
  700.     LD    (pnstr1),A
  701.     LD    HL,(storb1)
  702.     LD    A,L
  703.     CP    &03
  704.     JR    C,jmpr8
  705.     LD    A,&00   ; &48 for mouse   &0 for cursor keys
  706.     PUSH  HL
  707.     CALL  TSTKEY ; TEST KEY
  708.     POP   HL
  709.     JR    Z,jmpr8
  710.     DEC   L
  711.     LD    A,&FF
  712.     LD    (pnstr1),A
  713. jmpr8    LD    A,L
  714.     CP    &31
  715.     JR    NC,jmpr9
  716.     LD    A,&02    ; &49 for mouse   &2 for cursor keys
  717.     PUSH  HL
  718.     CALL  TSTKEY ; TEST KEY
  719.     POP   HL
  720.     JR    Z,jmpr9
  721.     INC   L
  722.     LD    A,&FF
  723.     LD    (pnstr1),A
  724.     jmpr9    LD    A,H
  725.     CP    &02
  726.     JR    C,jmpr10
  727.     LD    A,&08   ; &4a for mouse  &8 for cursor key
  728.     PUSH  HL
  729.     CALL  TSTKEY ; TEST KEY
  730.     POP   HL
  731.     JR    Z,jmpr10
  732.     DEC   H
  733.     LD    A,&FF
  734.     LD    (pnstr1),A
  735. jmpr10    LD    A,H
  736.     CP    &50
  737.     JR    NC,jmpr11
  738.     LD    A,&01   ; &4b for mouse  &1 for cursor key           
  739.     PUSH  HL
  740.     CALL  TSTKEY ; TEST KEY
  741.     POP   HL
  742.     JR    Z,jmpr11
  743.     INC   H
  744.     LD    A,&FF
  745.     LD    (pnstr1),A
  746. jmpr11    LD    (pnstr2),HL
  747.     LD    A,(pnstr1)
  748.     CP    &00
  749.     RET   Z
  750.     CALL  hidems
  751.     LD    HL,(pnstr2)
  752.     LD    (storb1),HL
  753.     LD    L,(IX+&00)
  754.     LD    H,(IX+&01)
  755.     LD    A,(storb1)
  756.     LD    (HL),A
  757.     INC   HL
  758.     LD    A,&00
  759.     LD    (HL),A
  760.     LD    L,(IX+&02)
  761.     LD    H,(IX+&03)
  762.     LD    A,(storb4)
  763.     LD    (HL),A
  764.     INC   HL
  765.     LD    A,&00
  766.     LD    (HL),A
  767.     LD    HL,(pnstr2)
  768.     LD    A,L
  769.     LD    (IX+&00),A
  770.     CALL  shms2
  771.     RET   
  772. pnstr1     defs 1   
  773. pnstr2  defs 2
  774. font1    LD    DE,&0020
  775.     LD    HL,buf0
  776.     CALL  TXSETB ; SET TEXT TABLE ADDRESS
  777.     LD    HL,fnt1
  778.     LD    DE,buf0
  779.     LD    BC,&0700
  780.     LDIR  
  781.     RET   
  782. font2    LD    DE,&0020
  783.     LD    HL,buf0
  784.     CALL  TXSETB ; SET TEXT TABLE ADDRESS
  785.     LD    HL,fnt2
  786.     LD    DE,buf0
  787.     LD    BC,&0700
  788.     LDIR  
  789.     RET   
  790.  
  791.