;***************************************************************************;
;                                                                           ;
;                                                                           ;
;                                  MONMAP                                   ;
;                            Display Monitor Map                            ;
;                                                                           ;
;                                                                           ;
;***************************************************************************;
;1.0 29-Oct-84 DFP written by D. Pallmann for AMOS/L 1.X monitors.
; 1.1 - 04/10/86 - REFORMATTED SO THAT MORE IS AVAILABLE ON SCREEN
;                       AT ONE TIME.  Dale Eichbauer - MBS Data Systems


       VMAJOR=1
       VMINOR=1                        ; 04/10/86  DAE

       SEARCH  SYS
       SEARCH  SYSSYM

       .OFINI
       .OFDEF  BUFFER,8.
       .OFSIZ  IMPSIZ

START:  GETIMP  IMPSIZ,A5               ;allocate impure area

;
;  Dislay monitor version
;

VERSON: TTYI
       ASCIZ   "AMOS/L version "
       EVEN
       MOV     #2,A0
       VCVT    @A0,OT$TRM!OT$TSP
       TYPECR  Monitor Map

;
;  Display SVCA calls and addresses
;

SVCA:   MOV     #3132,A0                ;assume EM1010 table starts at 3132
       LEA     A1,TABLE                ;point to name table
       TYPECR  <SVCA   Call    Address      SVCA   Call    Address      SVCA   Call    Address>
       TYPECR  <----   ----    -------      ----   ----    -------      ----   ----    ------->

LOOP:   CTRLC   EXIT                    ;branch on ^C
       TSTW    @A1                     ;end of table?
       JEQ     EXIT1                   ; yes - branch
       CLR     D1                      ; [1.1]
       MOVW    4(A1),D1                ;print  [1.1]
       OCVT    4,OT$TRM!OT$ZER         ; SVCA number
       CALL    THREE                   ; [1.1]
       MOV     A5,A2                   ;index buffer
       UNPACK                          ;convert SVCA name
       UNPACK                          ; to ASCII
       CLRB    @A2                     ;terminate buffer
       TTYL    @A5                     ;print buffer
       CALL    THREE                   ; [1.1]
       MOVW    (A0)+,D1                ;determine vector
       OCVT    6,OT$TRM!OT$ZER         ;print vector address
       ADD     #2.,A1                  ; POINT PAST THE SVCA # [1.1]
       CALL    SIX                     ; [1.1]
       CLR     D1                      ; [1.1]
       MOVW    4(A1),D1                ;print  [1.1]
       OCVT    4,OT$TRM!OT$ZER         ; SVCA number   [1.1]
       CALL    THREE                   ; [1.1]
       MOV     A5,A2                   ;index buffer   [1.1]
       UNPACK                          ;convert SVCA name      [1.1]
       UNPACK                          ; to ASCII      [1.1]
       CLRB    @A2                     ;terminate buffer       [1.1]
       TTYL    @A5                     ;print buffer   [1.1]
       CALL    THREE                   ; [1.1]
       MOVW    54(A0),D1               ;determine vector       [1.1]
       OCVT    6,OT$TRM!OT$ZER         ;print vector address   [1.1]
       ADD     #2.,A1                  ; POINT PAST THE SVCA # [1.1]
       CALL    SIX                     ; [1.1]
       PUSH    A1                      ; [1.1]
       CMMW    2(A1),#177              ; [1.1]
       BLE     NL                      ; [1.1]
       CLR     D1                      ; [1.1]
       MOVW    4(A1),D1                ;print  [1.1]
       OCVT    4,OT$TRM!OT$ZER         ; SVCA number   [1.1]
       CALL    THREE                   ; [1.1]
       MOV     A5,A2                   ;index buffer   [1.1]
       UNPACK                          ;convert SVCA name      [1.1]
       UNPACK                          ; to ASCII      [1.1]
       CLRB    @A2                     ;terminate buffer       [1.1]
       TTYL    @A5                     ;print buffer   [1.1]
       CALL    THREE                   ; [1.1]
       MOVW    130(A0),D1              ;determine vector       [1.1]
       OCVT    6,OT$TRM!OT$ZER         ;print vector address   [1.1]
NL:     CRLF                            ;newline        [1.1]
       POP     A1                      ; [1.1]
       ADD     #6.,A1                  ; POINT PAST THE SVCA # [1.1]
       JMP     LOOP                    ;loop

EXIT:   CRLF                            ;newline
EXIT1:  EXIT                            ;exit

SIX:    CALL    THREE                   ; [1.1]
THREE:  PUSH    A1                      ; [1.1]
       TTYI                            ; [1.1]
       ASCII   /   /                   ; [1.1]
       BYTE    0                       ; [1.1]
       EVEN                            ; [1.1]
       POP     A1                      ; [1.1]
       RTN                             ; [1.1]

;
;       FOLLOWING TABLE REARRANGED IN [1.1]
;

TABLE:  RAD50   /LNKCMD/                ;SVCA 0
       WORD    0
       RAD50   /GTPPN /                ;26
       WORD    26
       RAD50   /TTYL  /                ;54
       WORD    54
       RAD50   /LNKSVC/                ;1
       WORD    1
       RAD50   /TRMICP/                ;27
       WORD    27
       RAD50   /PFILE /                ;55
       WORD    55
       RAD50   /TIN   /                ;2
       WORD    2
       RAD50   /TRMOCP/                ;30
       WORD    30
       RAD50   /PRNAM /                ;56
       WORD    56
       RAD50   /TOUT  /                ;3
       WORD    3
       RAD50   /TRMBFQ/                ;31
       WORD    31
       RAD50   /PRPPN /                ;57
       WORD    57
       RAD50   /KBD   /                ;4
       WORD    4
       RAD50   /QGET  /                ;32
       WORD    32
       RAD50   /GETMEM/                ;60
       WORD    60
       RAD50   /TTY   /                ;5
       WORD    5
       RAD50   /QRET  /                ;33
       WORD    33
       RAD50   /CHGMEM/                ;61
       WORD    61
       RAD50   /TTYI  /                ;6
       WORD    6
       RAD50   /QADD  /                ;34
       WORD    34
       RAD50   /DELMEM/                ;62
       WORD    62
       RAD50   /TAB   /                ;7
       WORD    7
       RAD50   /QINS  /                ;35
       WORD    35
       RAD50   /FILNAM/                ;63
       WORD    63
       RAD50   /CRLF  /                ;10
       WORD    10
       RAD50   /JRUN  /                ;36
       WORD    36
       RAD50   /FSPEC /                ;64
       WORD    64
       RAD50   /EXIT  /                ;11
       WORD    11
       RAD50   /JWAIT /                ;37
       WORD    37
       RAD50   /JOBIDX/                ;65
       WORD    65
       RAD50   /DCVT  /                ;12
       WORD    12
       RAD50   /JWAITC/                ;40
       WORD    40
       RAD50   /FETCH /                ;66
       WORD    66
       RAD50   /PACK  /                ;13
       WORD    13
       RAD50   /TBUF  /                ;41
       WORD    41
       RAD50   /RQST  /                ;67
       WORD    67
       RAD50   /UNPACK/                ;14
       WORD    14
       RAD50   /TIMER /                ;42
       WORD    42
       RAD50   /RLSE  /                ;70
       WORD    70
       RAD50   /WAKE  /                ;15
       WORD    15
       RAD50   /SLEEP /                ;43
       WORD    43
       RAD50   /TTYIN /                ;71
       WORD    71
       RAD50   /CTRLC /                ;16
       WORD    16
       RAD50   /TCRT  /                ;44
       WORD    44
       RAD50   /TTYOUT/                ;72
       WORD    72
       RAD50   /LIN   /                ;17
       WORD    17
       RAD50   /TCKI  /                ;45
       WORD    45
       RAD50   /GETSYS/                ;73
       WORD    73
       RAD50   /BYP   /                ;20
       WORD    20
       RAD50   /JLOCK /                ;46
       WORD    46
       RAD50   /DELSYS/                ;74
       WORD    74
       RAD50   /ALF   /                ;21
       WORD    21
       RAD50   /JUNLOK/                ;47
       WORD    47
       RAD50   /GDATES/                ;75
       WORD    75
       RAD50   /NUM   /                ;22
       WORD    22
       RAD50   /SUPVR /                ;50
       WORD    50
       RAD50   /SDATES/                ;76
       WORD    76
       RAD50   /TRM   /                ;23
       WORD    23
       RAD50   /USRBAS/                ;51
       WORD    51
       RAD50   /STIMES/                ;77
       WORD    77
       RAD50   /GTOCT /                ;24
       WORD    24
       RAD50   /USREND/                ;52
       WORD    52
       RAD50   /      /                ; DUMMY
       WORD    177777
       RAD50   /GTDEC /                ;25
       WORD    25
       RAD50   /USRFRE/                ;53
       WORD    53
       RAD50   /      /                ; DUMMY
       WORD    177777
       WORD    0

       END