;***************************************************************************;
;                                                                           ;
;                                                                           ;
;                                  MONMAP                                   ;
;                            Display Monitor Map                            ;
;                                                                           ;
;                                                                           ;
;***************************************************************************;
;1.0 29-Oct-84 DFP written by D. Pallmann for AMOS/L 1.X monitors.

       VMAJOR=1

       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
       CRLF

;
;  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>
       TYPECR  <----   ----    ------->
       CLR     D2                      ;pre-clear SVCA counter

LOOP:   CTRLC   EXIT                    ;branch on ^C
       TSTW    @A1                     ;end of table?
       BEQ     EXIT                    ; yes - branch
       MOV     D2,D1                   ;print
       OCVT    4,OT$TRM!OT$ZER         ; SVCA number
       TAB                             ;tab
       INC     D2                      ;inc SVCA number
       MOV     A5,A2                   ;index buffer
       UNPACK                          ;convert SVCA name
       UNPACK                          ; to ASCII
       CLRB    @A2                     ;terminate buffer
       TTYL    @A5                     ;print buffer
       TAB                             ;tab
       MOVW    (A0)+,D1                ;determine vector
       OCVT    6,OT$TRM!OT$ZER         ;print vector address
       CRLF                            ;newline
       BR      LOOP                    ;loop

EXIT:   CRLF                            ;newline
       EXIT                            ;exit

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

       END