Advertisement
Guest User

Untitled

a guest
Jul 31st, 2018
223
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ;    *******************************************
  2. ;    * SYSTEM MONITOR, VERSION I.1 REV A       *
  3. ;    * R=IRES SBC880 CPU BOARD                 *
  4. ;    * SW1-1=OFF, 2=ON, 3=OFF, 4=ON, 5=ON      *
  5. ;    * SW2-1 THRU 6 = ON                       *
  6. ;    * SW3-1 THRU 5 = OFF, 6=ON                *
  7. ;    * WRITTEN BY R. D. CATILLER               *
  8. ;    * COPYRIGHT 1981 (C) COMPUTIME            *
  9. ;    *******************************************
  10. ;
  11. ;
  12. .PABS
  13. ;
  14. ;Memory Used by Monitor
  15. ;
  16. BASE    = 0F800H      ;MONITOR BASE ADDRESS
  17. STACK   = 00FFH       ;MONITOR STACK
  18. REGSTR  = 0010H       ;CPU REGISTER STORAGE
  19. OLDOP   = REGSTR+16
  20. BRKSTR  = REGSTR+17
  21. HLSTR   = REGSTR+19
  22. RST7    = 38H         ;RST7 (LOCATION FOR TRAP)
  23. ;
  24. ;Constants for Monitor
  25. ;
  26. CR      = 0DH         ;ASCII CARRIAGE RET
  27. LF  = 0AH         ;ASCII LINE FEED
  28. ;
  29. ;I/O Ports on CPU Board
  30. ;
  31. T0  = 28H
  32. T1  = 29H
  33. T2  = 2AH
  34. TCTL    = 2BH
  35. INOUT   = 2CH
  36. CONDTA  = 2EH
  37. CONCTL  = 2FH
  38. CONSTS  = CONCTL
  39. ;
  40. ;PROGRAM CODE BEGINS:
  41. ;
  42. .LOC    BASE
  43. ;
  44. ;LET US BEGIN
  45. ;
  46.     JMP   BEGIN   ;RESET JUMP LATCH
  47. BEGIN:  MVI   A,0     ;CLEAR REGISTER STORE
  48.     LXI   H,REGSTR
  49.     MOV   M,A
  50.     LXI   D,REGSTR+1
  51.     LXI   B,18
  52.     LDIR
  53.     MVI   A,0C3H      ;SET BREAKPOINT TRAP
  54.     STA   RST7
  55.     LXI   H,BREAK
  56. ;************PAGE 2************
  57.     SHLD  RST7+1
  58.     SHLD  REGSTR+14   ;SET INITIAL PC
  59.     LXI   SP,STACK    ;SET UP STACK
  60.     SSPD  REGSTR+8
  61.     MVI   A,80H   ;SET UP PRINTER
  62.     OUT   INOUT
  63.     MVI   A,0FAH      ;SET USART MODE
  64.     OUT   CONCTL
  65.     MVI   A,36H   ;SET TIMER MODE
  66.     OUT   TCTL
  67.     MVI   A,13    ;SET BAUD RATE TO 9600
  68.     OUT   T0
  69.     XRA   A
  70.     OUT   T0
  71.     MVI   A,37H   ;ENABLE XMT & REC
  72.     OUT   CONCTL
  73. HELLO:  MVI   B,MSGL      ;SAY HELLO
  74.     CALL  MESG
  75. START:  LXI   SP,STACK    ;RESTORE STACK
  76.     CALL  CRLF
  77.     MVI   C,'/'
  78.     CALL  CO
  79.     CALL  MAININ      ;GET INPUT
  80.     CPI   'D'
  81.     JZ    DISP    ;D = DISPLAY MEMORY
  82.     CPI   'F'
  83.     JZ    FILL    ;F = FILL MEMORY
  84.     CPI   'G'
  85.     JZ    GOTO    ;G = GOTO USER PROGRAM
  86.     CPI   'H'
  87.     JZ    HEXN    ;H = HEX MATH
  88.     CPI   'I'          
  89.     JZ    INPUT   ;I = INPUT FROM PORT
  90.     CPI   'J'      
  91.     JZ    TEST    ;J = RAM TEST
  92.     CPI   'M'
  93.     JZ    MOVE    ;M = MEMORY MOVE
  94.     CPI   'O'
  95.     JZ    OUTPUT      ;O = OUTPUT TO PORT
  96.     CPI   'S'  
  97.     JZ    SUBS    ;S = SUBSTITUTE/EXAMINE
  98.     CPI   'V'
  99.     JZ    VERIFY      ;V = VERIFY MEMORY
  100.     CPI   'X'
  101.     JZ    XAM     ;X = EXAMINE REGISTERS
  102. ERROR:  LXI   SP,STACK    ;RESTORE STACK
  103.     MVI   C,'*'   ;DISPLAY ASTERISK
  104.     CALL  CO
  105.     JMP   START   ;GO GET INPUT
  106. ;
  107. ;MESSAGE OUTPUT ROUTINE
  108. ;
  109. MESG:   LXI   H,MSG
  110. MESG1:  MOV   C,M     ;GET A CHARACTER
  111.     INX   H       ;MOVE POINTER
  112. ;************PAGE 3************
  113.     CALL  CO      ;OUTPUT IT
  114.     DJNZ  MESG1   ;KEEP GOING TILL B=0
  115.     RET
  116. ;
  117. ;CRLF BEFORE HLBLK ROUTINE
  118. ;
  119. CRLFHL: CALL  CRLF
  120. ;
  121. ;PRINT THE CURRENT VALUE OF H&L
  122. ;AND A SPACE
  123. ;
  124. HLBLK:  CALL  DISPHL
  125. ;
  126. ;PRINT A SPACE ON THE CONSOLE
  127. ;
  128. SPACE:  MVI   C,' '
  129. ;
  130. ;THIS IS THE MAIN CONSOLE
  131. ;OUTPUT ROUTINE
  132. ;
  133. CO: IN    CONCTL
  134.     ANI   01H
  135.     JZ    CO
  136.     MOV   A,C
  137.     OUT   CONDTA
  138.     RET
  139. ;
  140. ;CONVERT HEX TO ASCII
  141. ;
  142. HTA:    ANI   0FH     ;LOW NIBBLE ONLY
  143.     ADI   90H
  144.     DAA
  145.     ACI   40H
  146.     DAA
  147.     MOV   C,A
  148.     RET
  149. ;
  150. ;CONSOLE CARRIAGE RETURN &
  151. ;LINE FEED ROUTINE
  152. ;
  153. CRLF:   PUSH  H       ;SAVE HL
  154.     MVI   B,2     ;CRLF LENGTH
  155.     CALL  MESG    ;SEND CRLF
  156.     POP   H
  157.     RET
  158. ;
  159. ;CONSOLE STATUS TEST ROUTINE
  160. ;
  161. CSTS:   IN    CONCTL
  162.     ANI   02H
  163.     MVI   A,0FFH
  164.     RNZ
  165.     CMA
  166.     RET
  167. ;
  168. ;************PAGE 4************    
  169. ;PRINT H&L ON CONSOLE
  170. ;
  171. DISPHL: MOV   A,H
  172.     CALL  DISPB
  173.     MOV   A,L
  174. DISPB:  PUSH  PSW
  175.     RRC
  176.     RRC
  177.     RRC
  178.     RRC
  179.     CALL  HTA2
  180.     POP   PSW
  181. HTA2:   CALL  HTA
  182.     JMP   CO
  183. ;
  184. ;MAIN KEYBOARD ROUTINE
  185. ;
  186. MAININ: CALL  CI      ;GET INPUT
  187.     MOV   C,A     ;ECHO IT
  188.     JMP   CO
  189. ;
  190. ;MAIN PARAMETER GETTING ROUTINE
  191. ;
  192. GPARAM: LXI   H,0     ;CLEAR HL
  193. GPNEXT: CALL  MAININ      ;GET INPUT
  194. GP1:    MOV   B,A     ;SAVE IT
  195.     CPI   ' '     ;TEST FOR SPACE
  196.     RZ        ;RETURN IF SPACE
  197.     CPI   ','     ;TEST FOR COMMA
  198.     RZ        ;RETURN IF COMMA
  199.     CPI   CR      ;TEST FOR CR
  200.     RZ        ;RETURN IF CR
  201.     SUI   '0'     ;TEST < 0
  202.     JC    ERROR   ;INPUT ERROR
  203.     CPI   'G'-'0'     ;TEST IF > F
  204.     JNC   ERROR   ;INPUT ERROR
  205.     CPI   10      ;TEST FOR NUMBER
  206.     JC    DONE    ;GO SAVE NUMBER
  207.     SUI   'A'-'9'-1   ;ADJUST LETTER
  208.     CPI   0AH     ;TEST FOR . THRU @
  209.     JC    ERROR   ;INPUT ERROR
  210. DONE:   DAD   H       ;SHIFT HL 1 DIGIT
  211.     DAD   H
  212.     DAD   H
  213.     DAD   H
  214.     ORA   L       ;OR L WITH DIGIT
  215.     MOV   L,A
  216.     JMP   GPNEXT      ;GET MORE INPUT
  217. ;
  218. ;GETS START & END ADDRESS AND DETERMINES LENGTH
  219. ;
  220. RANGE:  CALL  GPARAM      ;GET START ADDRESS
  221.     CPI   CR      ;TEST FOR CR
  222.     JZ    ERROR   ;INPUT ERROR
  223.     MOV   D,H     ;PUT HL IN DE
  224. ;************PAGE 5************        
  225.     MOV   E,L
  226.     CALL  GPARAM      ;GET END ADDRESS
  227.     PUSH  H       ;SAVE IT
  228.     ORA   A       ;END - START
  229.     DSBC  D
  230.     MOV   B,H     ;PUT LENGTH IN BC
  231.     MOV   C,L
  232.     MOV   H,D     ;PUT START IN HL
  233.     MOV   L,E
  234.     POP   D       ;PUT END IN DE
  235.     RET
  236. ;
  237. RANGE2: CALL  RANGE   ;GET 2 PARAMETERS
  238.     CPI   CR      ;TEST FOR CR
  239.     JNZ   ERROR   ;INPUT ERROR
  240.     RET
  241. ;
  242. RANGE3: CALL  RANGE   ;GET 2 PARAMETERS
  243.     CPI   CR      ;TEST FOR CR
  244.     JZ    ERROR   ;INPUT ERROR
  245.     SHLD  HLSTR   ;SAVE START
  246. PARAM1: PUSH  B       ;SAVE BC
  247.     CALL  GPARAM      ;GET 3RD PARAMETER
  248.     POP   B       ;RESTORE BC
  249.     CPI   CR      ;TEST FOR CR
  250.     JNZ   ERROR   ;INPUT ERROR
  251.     RET
  252. ;
  253. ENDTST: PUSH  H       ;SAVE HL
  254.     ORA   A       ;HL - DE
  255.     DSBC  D
  256.     POP   H       ;RESTORE HL
  257.     RET       ;RETURN FLAGS
  258. ;
  259. SDL CALL  RANGE3      ;GET 3 PARAMETERS
  260.     MOV   D,H     ;DEST TO DE
  261.     MOV   E,L
  262.     LHLD  HLSTR   ;SOURCE TO HL
  263.     RET       ;BC = LENGTH
  264. ;
  265. ;MAIN CONSOLE INPUT ROUTINE
  266. ;
  267. CI: IN    CONCTL
  268.     ANI   02H
  269.     JZ    CI
  270.     IN    CONDTA
  271.     ANI   7FH
  272.     RET
  273. ;
  274. ;PRINTER OUTPUT ROUTINE
  275. ;
  276. PRINT:  IN    INOUT
  277.     ANI   1
  278.     JNZ   PRINT
  279.     MOV   A,C
  280. ;************PAGE 6************    
  281.     ORI   80H
  282.     OUT   INOUT
  283.     ANI   7FH
  284.     OUT   INOUT
  285.     ORI   80H
  286.     OUT   INOUT
  287.     RET
  288. ;
  289. ;DISPLAYS CONTENTS OF MEMORY IN HEX & ASCII
  290. ;
  291. DISP:   CALL  RANGE2      ;GET PARAMETERS
  292.     MOV   A,L     ;ADJUST START ADDRESS
  293.     ANI   0F0H
  294.     MOV   L,A
  295. DISP1:  MOV   A,E     ;ADJUST END ADDRESS
  296.     ANI   0FH
  297.     JZ    DISP2
  298.     INX   D
  299.     JMP   DISP1
  300. DISP2:  CALL  CRLFHL      ;DISPLAY CRLF & ADR
  301. DISP3:  CALL  SPACE   ;DISPLACE SPACE
  302.     MOV   A,M     ;GET DATA
  303.     CALL  DISPB   ;DISPLAY IT
  304.     MOV   A,L     ;TEST FOR END OF LINE
  305.     ANI   0FH
  306.     CPI   0FH
  307.     JZ    DISP4   ;DISPLAY ASCII
  308.     INX   H       ;NEXT
  309.     JMP   DISP3        
  310. DISP4:  CALL  SPACE   ;DISPLAY A SPACE
  311.     CALL  SPACE   ;DISPLAY A SPACE
  312.     MOV   A,L     ;BACK UP ADR
  313.     ANI   0F0H
  314.     MOV   L,A
  315. NEXTA:  MOV   A,M     ;GET DATA
  316.     ANI   7FH     ;KILL PARITY
  317.     CPI   ' '     ;TEST IF = SPACE
  318.     JNC   DISP6   ;TEST FURTHER
  319. DISP5:  MVI   A,'.'   ;REPLACE WITH PERIOD
  320. DISP6:  CPI   7CH     ;> LOWER CASE Z
  321.     JNC   DISP5   ;REPLACE IT
  322.     MOV   C,A     ;DISPLAY IT
  323.     CALL  CO
  324.     INX   H       ;STEP TO NEXT
  325.     MOV   A,L     ;TEST FOR END OF LINE
  326.     ANI   0FH
  327.     JNZ   NEXTA   ;DO NEXT
  328.     CALL  ENDTST      ;TEST FOR END
  329.     JNZ   DISP2   ;NEXT LINE
  330.     JMP   START
  331. ;
  332. ;FILL MEMORY WITH A CONSTANT
  333. ;
  334. FILL:   CALL  RANGE3      ;GET 2 PARAMETERS
  335.     MOV   A,L     ;PUT DATA IN A
  336. ;************PAGE 7************    
  337.     LHLD  HLSTR   ;START ADR TO HL
  338.     MOV   M,A     ;WRITE DATA AT START
  339.     MOV   D,H     ;COPY HL TO DE
  340.     MOV   E,L
  341.     INX   D       ;DEST = SOURCE + 1
  342.     DCX   B       ;ADJUST LENGTH
  343.     LDIR          ;WRITE DATA
  344.     JMP   START
  345. ;
  346. ;GOTO USER PROGRAM WITH OPTIONAL BREAKPOINT
  347. ;
  348. GOTO:   CALL  CI      ;GET INPUT
  349.     CPI   CR      ;TEST FOR CR
  350.     JZ    GOTO1   ;USE OLD PC VALUE
  351.     MOV   C,A     ;ECHO INPUT
  352.     CALL  CO
  353.     CPI   ' '     ;TEST FOR SPACE
  354.     JZ    GOTO2   ;OLD PC, NEW BRKPOINT
  355.     CPI   ','     ;TEST FOR COMMA
  356.     JZ    GOTO2   ;OLD PC, NEW BRKPOINT
  357.     LXI   H,0     ;CLEAR HL
  358.     CALL  GP1     ;GET PARAMETER
  359.     SHLD  REGSTR+14   ;SET NEW PC
  360.     CPI   CR      ;TEST FOR CR
  361.     JZ    GOTO1       ;JUMP TO NEW PC
  362. GOTO2:  CALL  GPARAM      ;GET BREAKPOINT ADR
  363.     CPI   CR      ;TEST FOR CR
  364.     JNZ   ERROR   ;INPUT ERROR
  365.     MOV   A,M     ;GET OLD OP
  366.     STA   OLDOP       ;SAVE IT
  367.     SHLD  BRKSTR      ;SAVE BREAKPOINT ADR
  368.     MVI   A,0FFH      ;STORE A BREAKPOINT
  369.     MOV   M,A
  370. GOTO1:  LHLD  REGSTR      ;PSW
  371.     PUSH  H
  372.     POP   PSW
  373.     LBCD  REGSTR+2    ;GET BC
  374.     LDED  REGSTR+4    ;GET DE
  375.     LSPD  REGSTR+8    ;GET SP
  376.     LHLD  REGSTR+14   ;GET PC
  377.     PUSH  H
  378.     LHLD  REGSTR+6    ;GET HL
  379.     LIXD  REGSTR+10   ;GET IX
  380.     LIYD  REGSTR+12   ;GET IY
  381.     RET       ;GOTO USER PROGRAM
  382. ;
  383. ;HEXADECIMAL MATH ROUTINE
  384. ;
  385. HEXN:   CALL  RANGE2      ;GET PARAMETERS
  386.     DAD   D       ;ADD PARAMETERS
  387.     PUSH  B       ;SAVE DIFFERENCE
  388.     CALL  CRLFHL      ;DISPLAY IT
  389.     JMP   START
  390. ;************PAGE 8************
  391. ;
  392. ;EXTENDED MEMORY TEST
  393. ;
  394. TEST:   CALL  RANGE2      ;GET 2 PARAMETERS
  395.     MOV   B,H     ;SAVE START IN BC
  396.     MOV   C,L
  397.     MVI   A,0     ;CLEAR I
  398. LOOP:   STAI
  399. FILLIT: LDAI          ;BUILD DATA
  400.     XRA   L
  401.     XRA   H
  402.     MOV   M,A     ;WRITE DATA
  403.     INX   H       ;NEXT DATA
  404.     MOV   A,H     ;TEST FOR END
  405.     CMP   D
  406.     JNZ   FILLIT      ;CONTINUE WRITING
  407.     MOV   A,L     ;TEST FOR END
  408.     CMP   B
  409.     JNZ   FILLIT      ;CONTINUE WRITING
  410.     MOV   H,B     ;RESTORE START
  411.     MOV   L,C
  412. TEST1:  LDAI          ;BUILD DATA
  413.     XRA   L
  414.     XRA   H
  415.     CMP   M       ;COMPARE IT
  416.     CNZ   MERR    ;DISPLAY ERRORS
  417.     INX   H
  418.     MOV   A,H     ;TEST FOR END
  419.     CMP   D
  420.     JNZ   TEST1   ;CONTINUE TEST
  421.     MOV   A,L     ;TEST FOR END
  422.     CMP   E
  423.     JNZ   TEST1   ;CONTINUE TEST
  424.     MOV   H,B     ;RESTORE START
  425.     MOV   L,C
  426.     IN    CONCTL      ;TEST KEYBOARD
  427.     ANI   02H
  428.     JNZ   START   ;ABORT IF KEY PRESSED
  429.     LDAI          ;INCREMENT TALLY
  430.     INR   A
  431.     JMP   LOOP    ;ANOTHER PASS
  432. ;
  433. MERR:   PUSH  B       ;SAVE BC
  434.     PUSH  PSW     ;SAVE DATA
  435.     CALL  CRLFHL      ;DISPLAY ADDRESS
  436.     POP   PSW     ;DISPLAY DATA
  437.     CALL  DISPB
  438.     CALL  SPACE   ;DISPLAY A SPACE
  439.     MOV   A,M     ;GET MEM DATA
  440.     CALL  DISPB   ;DISPLAY IT
  441.     POP   B       ;RESTORE BC
  442.     RET       ;CONTINUE TESTING
  443. ;
  444. ;MOVE BLOCK OF MEMORY
  445. ;************PAGE 9************
  446. ;
  447. MOVE:   CALL  SDL     ;SRC,DEST,LENGTH
  448.     LDIR          ;DO MOVE
  449.     JMP   START
  450. ;
  451. ;INPUT DATA FROM AN I/O PORT
  452. ;
  453. INPUT:  CALL  PARAM1      ;GET PARAMETER
  454.     MOV   C,L     ;PUT IO ADR IN C
  455.     INP   A       ;INPUT DATA TO A
  456.     PUSH  PSW     ;SAVE IT
  457.     CALL  CRLF    ;DISPLAY CRLF
  458.     POP   PSW     ;GET DATA
  459.     CALL  DISPB   ;DISPLAY IT
  460.     JMP   START
  461. ;
  462. ;OUTPUT DATA TO AN I/O PORT
  463. ;
  464. OUTPUT: CALL  RANGE2      ;GET 2 PARAMETERS
  465.     MOV   C,L     ;OUTPUT DATA
  466.     OUTP  E
  467.     JMP   START
  468. ;
  469. ;SUBSTITUE AND EXAMINE MEMORY
  470. ;
  471. SUBS:   CALL  GPARAM      ;GET PARAMETER
  472. SUBS1:  CALL  CRLFHL      ;DISPLAY ADDRESS
  473.     MOV   A,M     ;GET DATA
  474.     CALL  DISPB   ;DISPLAY IT
  475.     CALL  SPACE   ;DISPLAY A SPACE
  476.     CALL  CI      ;GET INPUT
  477.     CPI   CR      ;TEST FOR CR
  478.     JZ    START   ;DONE
  479.     CPI   ' '     ;TEST FOR SPACE
  480.     JNZ   SUBS2   ;TEST FURTHER
  481. SUBS4:  INX   H       ;ADDRESS + 1
  482.     JMP   SUBS1   ;CONTINUE DISPLAY
  483. SUBS2:  CPI   7FH     ;TEST FOR RUBOUT
  484.     JNZ   SUBS3   ;LOOK FOR PARAMETER
  485.     DCX   H       ;ADDRESS - 1
  486.     JMP   SUBS1   ;CONTINUE DISPLAY
  487. SUBS3:  MOV   C,A     ;ECHO CHARACTER
  488.     CALL  CO
  489.     PUSH  H       ;SAVE ADR
  490.     LXI   H,0     ;CLEAR HL
  491.     CALL  GP1     ;GET PARAMETER
  492.     MOV   B,A     ;SAVE DELIMITER
  493.     MOV   A,L     ;PUT DATA IN A
  494.     POP   H       ;GET ADR
  495.     MOV   M,A     ;STORE DATA
  496.     MOV   A,B     ;TEST FOR CR
  497.     CPI   CR
  498.     JZ    START   ;DONE
  499.     JMP   SUBS4   ;CONTINUE
  500. ;
  501. ;VERIFY BLOCK OF MEMORY AGAINST MEMORY
  502. ;      
  503. ;************PAGE 10************   
  504. VERIFY: CALL  SDL     ;SRC,DEST,LENGTH
  505. VER1:   LDAX  D       ;GET DEST DATA
  506.     CCI       ;COMPARE TO SOURCE
  507.     JPO   START   ;DONE
  508.     DCX   H       ;ADJUST ADDRESS
  509.     CNZ   MERR    ;DISPLAY ERRORS
  510.     INX   H       ;RESTORE ADDRESS
  511.     INX   D       ;DEST + 1
  512.     JMP   VER1    ;CONTINUE
  513. ;
  514. ;RETURN FROM BREAKPOINT HERE
  515. ;
  516. BREAK:  PUSH  PSW     ;SAVE PSW
  517.     SBCD  REGSTR+2    ;STORE BC
  518.     SDED  REGSTR+4    ;STORE DE
  519.     SHLD  REGSTR+6    ;STORE HL
  520.     POP   H       ;GET PSW
  521.     SHLD  REGSTR      ;STORE PSW
  522.     POP   H       ;GET PC
  523.     DCX   H       ;PC-1
  524.     SHLD  REGSTR+14   ;STORE PC
  525.     LHLD  BRKSTR      ;GET BREAKPOINT ADR
  526.     LDA   OLDOP   ;RESTORE OLD OP
  527.     MOV   M,A
  528.     SSPD  REGSTR+8    ;STORE SP
  529.     SIXD  REGSTR+10   ;STORE IX
  530.     SIYD  REGSTR+12   ;STORE IY
  531.     LXI   SP,STACK    ;RESTORE STACK
  532. ;
  533. ;EXAMINE AND DISPLAY CPU REGISTERS
  534. ;
  535. XAM:    LXI   H,XAMM      ;POINT TO MESSAGE
  536.     LXI   D,REGSTR    ;POINT TO REGISTERS
  537.     CALL  CRLF    ;DISPLAY CRLF
  538.     MVI   C,8     ;SET TALLY
  539. XAM1:   MVI   B,2
  540.     PUSH  B       ;SAVE BC
  541.     CALL  MESG1   ;DISPLAY REG NAME
  542.     CALL  SPACE   ;DISPLAY SPACE
  543.     PUSH  H       ;SAVE HL
  544.     LDAX  D       ;GET REGISTER DATA
  545.     MOV   L,A
  546.     INX   D
  547.     LDAX  D
  548.     MOV   H,A
  549.     INX   D       ;DEST+1
  550.     CALL  HLBLK   ;DISPLAY REG DATA
  551.     CALL  SPACE   ;DISPLAY SPACE
  552.     POP   H       ;GET HL
  553.     POP   B       ;GET BC
  554.     DCR   C       ;TALLY - 1
  555.     JZ    START   ;DONE
  556.     JMP   XAM1    ;CONTINUE
  557. ;************PAGE 11************
  558. XAMM:
  559. .ASCII  'AFBCDEHLSPIXIYPC'
  560. ;
  561. ;       MONITOR SIGN-ON MESSAGE
  562. ;
  563. MSG:    .BYTE  CR,LF
  564.     .ASCII 'SYSTEM MONITOR I.1 REV A'
  565. MSGL    =     .-MSG
  566. ;
  567. ;END OF PROGRAM
  568. .END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement