
          BERTMO54   BERTMON9 5.4                      My Assembler (c) Robert Henneke Blad:   0
                                                       CPU: 6809        2025-10-26 15:11:10  
                                                                                                
    1                           $CPUID (6809)
    2                            OPT  PAG
    3                            NAM  BERTMON9 5.4
    4                            STTL Een 6809 monitor (April 2024)
    5                            SETLI 99       ; Linker (afdruk) marge 4 chars
    6                            SETPG 78       ; was 72

          BERTMO54   BERTMON9 5.4                      My Assembler (c) Robert Henneke Blad:   1
          Een 6809 monitor (April 2024)                CPU: 6809        2025-10-26 15:11:10  
                                                                                                
    7                            PAG
    8                           *** Voorlopige definitieve versie 19-04-2024
    9                           *** Dit is de monitor kernel in EPROM $F800-$FFFF.
   10                           *** Voor alle versies gelijk en zalig verklaard.
   11                           *** Bevat alle noodzakelijke routines (en niets meer).
   12                           *   plus
   13                           *** Externe monitor in EPROM $F000-$F7FF
   14                           *** Beide staan in dit source file
   15                           *   plus
   16                           *   In andere source files:
   17                           *** Dissassembler   - $E000-$E7FF
   18                           *** Debugger-Tracer - $E800-$EAFF
   19                           *** Help            - $EB00-$EFFF
   20                           *   Bij alle drie is (wat) ruimte voor uitbreiding
   21                           *** Totaal wordt dan 8k
   22                           *   plus
   23                           *** Utility - $D000-$DFFF
   24                           *** Drivers - $C000-$CFFF
   25                           *** Totaal wordt dan 16k in 1 EPROM
   26                           *
   27                           *** Verschillen  BEM3 en BEM4
   28                           *   USRVIA      $BC0x   $BEEx
   29                           *   SYSVIA      $BB0x   $BEFx
   30                     BB00  VIABASE3  EQU   $BB00   ; Start I-O GEBIED BEM3
   31                     BE00  VIABASE4  EQU   $BE00   ; Start I-O GEBIED BEM4
   32                           *
   33                           *** SYSVIA is verbonden met NMI voor Debug, Break en Keyboard
   34                           *** Keyboard met PA.0:7 en CA1 en CA2
   35                           *** PA.7 is ook een drukknop voor dissable Extmon bij opstarten
   36                           *
   37                           *** Rode LED met CB2, Breaktoets met CB1
   38                           *** CB2 is ook uitgang schuifregister (geluid en knipperlicht)
   39                           *** PB.0:1 2 Switches (User Mode)
   40                           *** PB.2:3 2 LED's (geel en blauw)
   41                           *** PB.4:6 3b adres pageable RAM (8*4k)
   42                           *** PB7 uitgang timer1 (geluid) en groene LED
   43                           *
   44                           *** Timer1 is Baudrate generator voor ACIA (Tweede terminal)
   45                           *** Timer2 zorgt voor Next-statement (debugger)
   46

          BERTMO54   BERTMON9 5.4                      My Assembler (c) Robert Henneke Blad:   2
          Een 6809 monitor (April 2024)                CPU: 6809        2025-10-26 15:11:10  
                                                                                                
   47                            PAG
   48                           * Chanche log 5.4
   49                           * 20251025 1 PDATA toevoegen extra opties
   50

          BERTMO54   BERTMON9 5.4                      My Assembler (c) Robert Henneke Blad:   3
          Een 6809 monitor (April 2024)                CPU: 6809        2025-10-26 15:11:10  
                                                                                                
   51                            PAG
   52                           $SET TYPE N
   53                     7FFF  MEMTOP    EQU   $7FFF   ; Top van het User memory       (RAM)
   54                     9000  WSBASE    EQU   $9000   ; Basis adres Working storage   (Monitor >
   55
   56                     F000  EXTMON    EQU   $F000   ; Basis adres Extended Monitor  (EPROM)
   57                     F800  BASE      EQU   $F800   ; Basis adres Monitor           (EPROM)
   58                           *
   59                           * Definitie USART Registers voor BEM3 en BEM4
   60                           *
   61                     BE00  USART     EQU   $BE00   ; BEM3 en BEM4
   62                     BE00  RHREG     EQU   USART   ; Recieve register
   63                     BE00  THREG     EQU   USART   ; Send Register
   64                     BE01  STTREG    EQU   USART+1 ; Status Register
   65                     BE02  MDREG1    EQU   USART+2 ; Mode Register1
   66                     BE02  MDREG2    EQU   USART+2 ; Mode Register2
   67                     BE03  CMDREG    EQU   USART+3 ; Commando Register
   68                           *
   69                           *** USART instel tabel
   70                           *
   71                     004E  MR1       EQU   $4E ; 8bits, NoPar, 1 stopbit 16x clock, Async
   72                     007E  MR2       EQU   $7E ; Interne clock (16x,16x) 9600 baud
   73                     0015  CMD       EQU   $15 ; Normal operation, RTS high, reset error,
   74                           *                   ; no break, enable Rx, DTR high, enable Tx
   75                           *
   76                           *** Definitie VIA Registers
   77                           *
   78                     0000  PB        EQU     0
   79                     0001  PA        EQU     1
   80                     0002  DDRB      EQU     2
   81                     0003  DDRA      EQU     3
   82                     0004  T1CL      EQU     4
   83                     0005  T1CH      EQU     5
   84                     0006  T1LL      EQU     6
   85                     0007  T1LH      EQU     7
   86                     0008  T2CL      EQU     8
   87                     0009  T2CH      EQU     9
   88                     000A  SHR       EQU    10
   89                     000B  ACR       EQU    11
   90                     00  PCR       EQU    12
   91                     000DA  IFR       EQU    13
   92                     000E  IER       EQU    14
   93                     000F  PAX       EQU    15

          BERTMO54   BERTMON9 5.4                      My Assembler (c) Robert Henneke Blad:   4
          Een 6809 monitor (April 2024)                CPU: 6809        2025-10-26 15:11:10  
                                                                                                
   94                            PAG
   95                           *
   96                           *** Algemene Equates
   97                           *
   98                     0004  EOT       EQU   $04     ; End of text
   99                     0008  BS        EQU   $08     ; Backspace
  100                     000A  LF        EQU   $0A     ; Linefeed
  101                     00  FF        EQU   $     ; Form Feed
  102                     000DA  CR        EQU   $0DA     ; Carriage return
  103                     0080  HiBit     EQU   $80     ; Highbit voor PRTMSG
  104                     008D  CRH       EQU   $8D     ; CR met highbit
  105                     0088  BSH       EQU   $88     ; BS met highbit
  106                           *
  107                     0007  Bell      EQU   $07     ; Bell op terminal
  108                     001B  Escape    EQU   $1B
  109                     0020  Space     EQU   $20
  110                     0022  Dquote    EQU   $22     ; "
  111                     0027  Quote     EQU   $27     ; '
  112                           *
  113                     FFFF  HV        EQU   -1
  114                     FFFF  DUMMY     EQU   $FFFF   ; FFFF bevat RTS
  115                           *
  116                           *** Control block
  117                           *
  118                     0000  STARTADR  EQU   0
  119                     0002  ENDADR    EQU   2
  120                     0004  DESTADR   EQU   4

          BERTMO54   BERTMON9 5.4                      My Assembler (c) Robert Henneke Blad:   5
          Een 6809 monitor (April 2024)                CPU: 6809        2025-10-26 15:11:10  
                                                                                                
  121                            PAG
  122                           $SET TYPE D
  123                           *#MONRAM
  124                     9000            ORG   WSBASE
  125                     9000            RMB   $0400   ; EPOS, NQBASIC en FORTH Werkvelden
  126
  127                     9400  TRBUFSTA  RMB   $0400   ; Trace buffer en andere Werkvelden
  128                     9800  TRBUFENX  EQU   *
  129                           *
  130                           *** Diverse buffers
  131                           *
  132                     9800  EDITBUF   RMB   256
  133                     9900  LOADBUF   RMB   64      ; Buffer voor LOAD EEPROM
  134                     9940  SYSBUF    RMB   64      ; System buffer
  135                     9980            RMB   64
  136                     99C0            RMB   64
  137                     9A00            RMB   256
  138                     9B00            RMB   256
  139                           *
  140                           *** System RAM
  141                           *
  142                     9C00            ORG   WSBASE+$00 ; Monitor Werkvelden
  143                     9C00  SYSRAM    EQU   *
  144                     9C00            RMB   242     ; Stack page
  145                     9CF2  STACKTOP  RMB   12      ; Registers bij opstarten
  146                     9CFE  STACK     RMB   2       ; Return adres voor Exec
  147                           *
  148                           *** Werk geheugen voor BERTMON9
  149                           *
  150                     9D00            ORG   SYSRAM+$100
  151                           *
  152                           *** Gereserveerd voor I-O Modules
  153                           *
  154                     9D00            RMB   16 ; I-O Slot 0
  155                     9D10            RMB   16 ; I-O Slot 1
  156                     9D20            RMB   16 ; I-O Slot 2
  157                     9D30            RMB   16 ; I-O Slot 3
  158                     9D40            RMB   16 ; I-O Slot 4
  159                     9D50            RMB   16 ; I-O Slot 5
  160                     9D60            RMB   16 ; I-O Slot 6
  161                     9D70            RMB   16 ; I-O Slot 7
  162                           *
  163                           *** Gereserveerd voor Drivers
  164                           *
  165                     9D80  GLCDWS    RMB   16 ; GLCD Working Storage
  166                     9D90            RMB   16
  167                     9DA0            RMB   16
  168                     9DB0            RMB   16
  169                     9DC0            RMB   16
  170                     9DD0            RMB   16
  171                     9DE0            RMB   16
  172                     9DF0            RMB   16
  173                           *
  174                           ***  System Direct Page
  175                           *         ORG   SYSRAM+$200 ; System Direct Page
  176                     9E00  MONRAM    EQU   *
  177                     9E              SETDP MONRAM
  178                     009E  SYSDP     EQU   HI:MONRAM

          BERTMO54   BERTMON9 5.4                      My Assembler (c) Robert Henneke Blad:   6
          Een 6809 monitor (April 2024)                CPU: 6809        2025-10-26 15:11:10  
                                                                                                
  179                            PAG
  180                           *
  181                           *** Monitor
  182                           *
  183                     9F00            ORG   SYSRAM+$0300 ; System Extended en vector Page
  184                           *** Default is $00
  185                     9F00  BIT_BASE  RMB   8 ; 64 system bits
  186                     9F08  CONVERTB  RMB   8 ; BIN2DEC Conversie buffer
  187
  188                     9F10  SYSSTACK  RMB   2 ; Laatst gebruikte stackpointer
  189                     9F12  PTR_RAS   RMB   2 ; Pointer naar return adres SVC
  190                     9F14  XTEMP0    RMB   2 ;
  191                     9F16  XTEMP1    RMB   2 ;
  192                     9F18  PMSEGMNT  RMB   1 ; Segment pageable memory
  193                     9F19            RMB   1 ;
  194                     9F1A            RMB   1 ;
  195                     9F1B            RMB   1 ; Reserve (O.S. Variabelen)
  196                     9F1C  BYTE0     RMB   1 ;
  197                     9F1D  BYTE1     RMB   1 ;
  198                     9F1E  BYTE2     RMB   1 ;
  199                     9F1F  BYTE3     RMB   1 ;
  200
  201                     9F20  CONTRBLK  RMB   2 ; STARTADR
  202                     9F22            RMB   2 ; ENDADR
  203                     9F24            RMB   2 ; DESTADR, VALUE of RUN adres
  204                     9F26            RMB   2 ; Overige variabelen
  205                     9F28            RMB   2 ; | Reserve controlblock
  206                     9F2A            RMB   2 ; |
  207                     9F2C            RMB   2 ; |
  208                     9F2E            RMB   2 ; |
  209
  210                     9F30  CALLBUF   RMB  16 ; CALL buffer voor debugger
  211                     9F40            RMB  16 ; Conversie buffer
  212
  213                     9F50  NMIBPTB   RMB  16 ; Debugger breakpoint tabel
  214                     9F60  NMIWORK   RMB  16 ; Debugger work space
  215
  216                     9F70            RMB   8 ; Reserve
  217                     9F78  MCLPTRS   EQU   * ; Init MCL tabel
  218                     9F78  VECTPUTM  RMB   2 ; Alternatieve schrijf
  219                     9F7A  VECTGETM  RMB   2 ; Alternatieve lees
  220                     9F7C  TYPEPARM  RMB   2 ; Parameter bij geheugen fratsen
  221                     9F7E            RMB   2 ; extra fratsen MCL
  222                     9F80  WPEND     EQU   *
  223                     9F7F  WSEND     EQU   *-1
  224                           *
  225                           *** Systeem variabelem BERTMON9
  226                           *
  227                     9F80            ORG   SYSRAM+$0380
  228                           *** Default $FFFF
  229                     9F80            RMB  16 ; 80 Reserve
  230                     9F90  PSVCTAB   RMB   2 ; 90 Primaire   SVC tabel
  231                     9F92  USVCTAB   RMB   2 ; 92 Secundaire SVC tabel
  232                     9F94  PCMDHELP  RMB   2 ; 94 Help voor Punt commando
  233                     9F96            RMB   2 ; 96 |
  234                     9F98            RMB   2 ; 98 |
  235                     9F9A            RMB   2 ; 9A | Reserve
  236                     9F9C            RMB   2 ; 9C |
  237                     9F9E            RMB   2 ; 9E |
  238
  239                     9FA0  TESTSX    RMB   2 ; A0 Verwerk alternatieve S-records
  240                     9FA2            RMB   2 ; A2 Was Extended 'HELP' vector
  241                     9FA4  MEMTYPE   RMB   2 ; A4 Memory type
  242                     9FA6  NMIPHDR   RMB   2 ; A6 Print header       (Debugger)
  243                     9FA8  NMIPREG   RMB   2 ; A8 Print registers    (Debugger)
  244                     9FAA  MONCMD    RMB   2 ; AA Monitor Commando's (Debugger)
  245                     9FAC  DISSASM   RMB   2 ; AC Dissassembler      (Debugger)
  246                     9FAE  CEDELAY   RMB   2 ; AE Delay na NEWLINE  (Mee lezen)
  247
  248                     9FB0  QVECTOR   RMB   2 ; B0 Q commando
  249                     9FB2  ZVECTOR   RMB   2 ; B2 Z commando
  250                     9FB4  XVECTOR   RMB   2 ; B4 X commando
  251                     9FB6  VECTRUN   RMB   2 ; B6 Vector voor RUN
  252                     9FB8  VTIMESHR  RMB   2 ; B8 Timeshare (tijdens wachten op character)
  253                     9FBA  USRCMD    RMB   2 ; BA User    commando tabel
  254                     9FBC  EXTCMD    RMB   2 ; BC Externe commando tabel
  255                     9FBE  SWIBUG    RMB   2 ; BE Entrypoint Debugger na SWI

          BERTMO54   BERTMON9 5.4                      My Assembler (c) Robert Henneke Blad:   7
          Een 6809 monitor (April 2024)                CPU: 6809        2025-10-26 15:11:10  
                                                                                                
  256                            PAG
  257                           *
  258                           *** Systeem variabelem BERTMON9
  259                           *** Default uit Init tabel
  260                           *
  261                     9FC0  BERTWORK  EQU   *
  262                     9FC0  TRBUFST   RMB   1 ; C0 HI Trace/Verify buffer begin
  263                     9FC1  TRBUFEND  RMB   1 ; C1 HI Trace/Verify buffer einde
  264                     9FC2  SEGMENT   RMB   1 ; C2 Segment voor pageable memory
  265                     9FC3  SYSCNTRL  RMB   1 ; C3 System (Linker marge)
  266                     9FC4  DISLINPA  RMB   1 ; C4 Aantal regels dissassembler
  267                     9FC5  LINESCRN  RMB   1 ; C5 Aantal regels per scherm
  268                     9FC6  DBUGFLGS  RMB   1 ; C6 Debug en SWI vlaggen
  269                     9FC7  DISASMFL  RMB   1 ; C7 Dissassembler
  270                     9FC8            RMB   1 ; C8 Reserve
  271                     9FC9            RMB   1 ; C9 Reserve
  272                     9FCA            RMB   1 ; CA Reserve
  273                     9FCB            RMB   1 ; CB Reserve
  274                     9FCC            RMB   1 ; CC Reserve
  275                     9FCD            RMB   1 ; CD Reserve
  276                     9FCE            RMB   1 ; CE Reserve
  277                     9FCF            RMB   1 ; CF Reserve
  278
  279                     9FD0  NOTFNDV   RMB   2 ; D0 Voer extern commando uit (EXTMON)
  280                     9FD2  CRDELAY   RMB   2 ; D2 Routine na nieuwe regel
  281                     9FD4  YVECTOR   RMB   2 ; D4 Y commando
  282                     9FD6            RMB   2 ; D6 Reserve
  283                     9FD8  DISREGEL  RMB   2 ; D8 Dissassembler 1 regel (Extern)
  284                     9FDA  OFFSET    RMB   2 ; DA Offset bij Load
  285                     9FDC  USRMEMTP  RMB   2 ; DC Einde User memory ($7FFF)
  286                     9FDE  USERNMI   RMB   2 ; DE User NMI Vector
  287                           *
  288                     9FE0  ESCVECT   RMB   2 ; E0 Escape Vector
  289                     9FE2  OUTPC     RMB   2 ; E2 Out PC bij Print registers
  290                     9FE4  PUTBLOAD  RMB   2 ; E4 Put Byte bij Load
  291                     9FE6            RMB   2 ; E6 Reserve
  292                     9FE8  PDATAEXT  RMB   2 ; E8 PDATA Extentions
  293                     9FEA  VCHAROUT  RMB   2 ; EA Output  routine
  294                     9FEC  VCHARIN   RMB   2 ; ED Invoer routine
  295                     9FEE  VCHARGET  RMB   2 ; EE Get char routine
  296                           *
  297                           *** System vectoren
  298                           *
  299                     9FF0  VECTRES   RMB   2 ; F0 6809 Not defined, 6309 Trap
  300                     9FF2  VECTSWI3  RMB   2 ; F2 SWI3
  301                     9FF4  VECTSWI2  RMB   2 ; F4 SWI2
  302                     9FF6  VECTFIRQ  RMB   2 ; F6 FIRQ
  303                     9FF8  VECTIRQ   RMB   2 ; F8 IRQ
  304                     9FFA  VECTSWI   RMB   2 ; FA SWI
  305                     9FFC  VECTNMI   RMB   2 ; FC NMI
  306                     9FFE  VECTSVC   RMB   2 ; FE Vector voor $3E (SVC)
  307                     9FFF  RAMTOP    EQU   *-1
  308                           *#END

          BERTMO54   BERTMON9 5.4                      My Assembler (c) Robert Henneke Blad:   8
          Een 6809 monitor (April 2024)                CPU: 6809        2025-10-26 15:11:10  
                                                                                                
  309                            PAG
  310                           *********************************************
  311                           *** Dit is het tweede deel van BERTMON9.
  312                           *** Bevat de extra commando's die uit BERTMONk verwijderd zijn.
  313                           *** Staat in de onderste 2k van het 4k EPROM ($F000-F7FF).
  314                           *** EXTINIT wordt aangeroepen na de Reset van BERTMONk.
  315                           *** EXTCMDL wordt aangeroepen bij een niet BERTMONk commando.
  316                           *** Een gewijzigde versie kan in NVRAM geladen worden.
  317                           *********************************************
  318                           *
  319                           $SET TYPE E
  320                     F000            ORG   EXTMON
  321 F000   BD FE44            EXTINIT   JSR   PRTMSG
  322 F003   0DA 07                        FCB   CR,Bell
  323 F005   45 78 74 65 72 6E            FCCH  'Externe Monitor'
  324 F00B   65 20 4D 6F 6E 69
  325 F011   74 6F F2
  326                           *
  327                           ***   Bepaal BEM3 of BEM4
  328                           *
  329 F014   8E F067                      LDX   #TXTBEM3   ; Default BEM3
  330 F017   BD FF19                      JSR   GETADSYS   ; Basisadres SYSVIA in Y
  331 F01A   26 03        F01F            BNE   EX10       ; NE = BEM3
  332 F01C   8E F06B                      LDX   #TXTBEM4   ; EQ = BEM4
  333 F01F   BD FE1D            EX10      JSR   NLPDATA    ; Y is adres SYSVIA
  334                           *
  335                           ***   Bepaal 6809 of 6309 en pas dissassembler aan
  336                           *
  337 F022   8E F073                      LDX   #TXT63     ; Default 6309
  338 F025   B6 9FC7                      LDA   DISASMFL
  339 F028   84 3F                        ANDA  #%00111111 ; bit6:7 = 00
  340
  341 F02A   BD F3DA                      JSR   TEST6309   ; Kijk of 6809
  342 F02D   26 05        F034            BNE   EX20       ; NE = 6309
  343                                                      ; EQ = 6809
  344
  345 F02F   8E F06F                      LDX   #TXT68     ; 6809
  346 F032   8A 80                        ORA   #$80       ; bit6:7 = 10
  347
  348 F034   B7 9FC7            EX20      STA   DISASMFL
  349 F037   BD FE1D                      JSR   NLPDATA
  350                           *
  351                           *** Init SYSVIA
  352                           *** SYSVIA is $BC00 (BEM3) of $BFF0 (BEM4)
  353                           *** Het correcte adres wordt bepaald door GETADSYS
  354                           *** Init System VIA I-O Poorten, Y is adres SYSVIA
  355                           *** SYSVIA.PCR is al door de Kernel geinit
  356                           *
  357 F03A   86 3F                        LDA   #%00111111 ; PA6.7 input, PA0.5 output
  358 F03C   A7 23                        STA   DDRA,Y
  359 F03E   86 FC                        LDA   #%11111100 ; PB.2:7 output
  360 F040   A7 22                        STA   DDRB,Y     ; PB.0:1  input
  361
  362 F042   86 83                        LDA   #%10000011 ; Groen aan en
  363 F044   A7 20                        STA   PB,Y       ; rest uit
  364 F046   BD FF29                      JSR   DELKO      ; Groen minimaal 750 mS aan
  365
  366 F049   CC F3EC                      LDD   #PRTSWI    ; Print registers bij SWI
  367 F04C   FD 9FFA                      STD   VECTSWI    ; naar SWI vector
  368
  369 F04F   CC F41E                      LDD   #NMIREGS   ; Debugger Print registers
  370 F052   FD 9FA8                      STD   NMIPREG
  371 F055   CC F34B                      LDD   #PH10      ; Debugger Print header
  372 F058   FD 9FA6                      STD   NMIPHDR
  373
  374 F05B   CC F077                      LDD   #EXTCMDH   ; Externe Monitor command routine
  375 F05E   FD 9FD0                      STD   NOTFNDV    ; naar 'not found' vector
  376 F061   BD F0A0                      JSR   INITCMD    ; Init 'command chain'
  377
  378 F064   6F 20                        CLR   PB,Y       ; Groen en rest uit
  379 F066   39                 EXIT      RTS
  380
  381 F067   42 45 4D B3        TXTBEM3   FCCH  'BEM3'
  382 F06B   42 45 4D B4        TXTBEM4   FCCH  'BEM4'
  383 F06F   36 38 30 B9        TXT68     FCCH  '6809'
  384 F073   36 33 30 B9        TXT63     FCCH  '6309'

          BERTMO54   BERTMON9 5.4                      My Assembler (c) Robert Henneke Blad:   9
          Een 6809 monitor (April 2024)                CPU: 6809        2025-10-26 15:11:10  
                                                                                                
  385                            PAG
  386                           *
  387                           *** Externe monitor command loop
  388                           *
  389 F077   8E F0E1            EXTCMDH   LDX   #EXMONCMD ; Extended Monitor tabel
  390 F07A   BD FF97                      JSR   CMDHDL
  391 F07D   24 E7        F066            BCC   EXIT      ; Commando verwerkt, Terug naar Kernel
  392                                                     ; Niet gevonden, Zoek in command chain
  393 F07F   BE 9FBC                      LDX   EXTCMD    ; Extended tabel
  394 F082   BD FF97                      JSR   CMDHDL
  395 F085   24 DF        F066            BCC   EXIT      ; Commando verwerkt
  396                                                     ; of zoek in 'command chain'
  397
  398                           * *******************************************************
  399                           * * Indien het commando niet gevonden is, wordt gekeken *
  400                           * * of er commando's zijn in andere geheugen blokken    *
  401                           * * door te kijken of op het begin van page (256 byte)  *
  402                           * * een z.g. EXTCMD signature staat                     *
  403                           * * Deze ziet er als volgt uit:                         *
  404                           * *        ORG   $xx00   ;                              *
  405                           * *        FCC   'RH'    ; Signature                    *
  406                           * *        BRA   INIT    ; Init van deze page           *
  407                           * *        FCB   'A'    ;|                              *
  408                           * *        FDB    CMD-A ;|                              *
  409                           * *        FCB   'B'    ;| Commando's (mogen ontbreken) *
  410                           * *        FDB    CMD-B ;| Bij commando behorende       *
  411                           * *        FCB   'C'    ;|                              *
  412                           * *        FDB    CMD-C ;| (sub)routines                *
  413                           * *        FCB    $FF    ;  End of table (verplicht)    *
  414                           * *                                                     *
  415                           * * INIT   RTS           ; Indien er geen INIT is       *
  416                           * *                      ; dan een lege routine         *
  417                           * *******************************************************
  418
  419 F087   8E 8000            NOTFND    LDX   #$8000   ; Begin System RAM
  420 F08A   8D 26        F0B2  NF10      BSR   SEARCH   ; Commando staat in A
  421 F08C   26 0F        F09D            BNE   NF80     ; Geen command Pages meer
  422 F08E   30 02                        LEAX  2,X      ; Skip BRA INIT
  423 F090   34 7E                        PSHS  U,X,Y,A,B,DP
  424 F092   BD FF97                      JSR   CMDHDL   ; Voer commando uit
  425 F095   35 7E                        PULS  U,X,Y,A,B,DP
  426 F097   24 3C        F0DA5            BCC   NS99     ; Klaar, Commando gevonden
  427 F099   8D 2F        FA            BSR   NEXTSEG  ; Volgende page
  428 F09B   20 ED        F08A            BRA   NF10
  429                                                    ; Commando niet gevonden
  430 F09D   7E FDC9            NF80      JMP   OUTSPQ   ; Foutmelding

          BERTMO54   BERTMON9 5.4                      My Assembler (c) Robert Henneke Blad:  10
          Een 6809 monitor (April 2024)                CPU: 6809        2025-10-26 15:11:10  
                                                                                                
  431                            PAG
  432                           * *******************************************************
  433                           * * Zoek op het begin van elk page de EXTCMD signature  *
  434                           * * en voer de bijbehorende INIT uit                    *
  435                           * *******************************************************
  436 F0A0   8E 8000            INITCMD   LDX   #$8000   ; Begin System RAM ;$ Start op $0000
  437
  438 F0A3   8D 0DA        F0B2  IC10      BSR   SEARCH
  439 F0A5   26 0A        F0B1            BNE   IC20     ; Niet (meer) gevonden
  440 F0A7   34 7F                        PSHS  #$7F     ; Stack alle registers
  441 F0A9   AD 84                        JSR   ,X       ; Voer INIT routine uit
  442 F0AB   35 7F                        PULS  #$7F     ; Restore alle registers
  443
  444 F0AD   8D 1B        FA            BSR   NEXTSEG  ; Volgend segment
  445 F0AF   26 F2        F0A3            BNE   IC10     ; en zoek verder
  446 F0B1   39                 IC20      RTS            ; klaar
  447
  448                           * ********************************************************
  449                           * * Kijk of op het begin van page EXTCMD signature staat *
  450                           * * Z=1 BEQ Gevonden X=Page adres: pp02                  *
  451                           * * Z=0 BNE Niet gevonden                                *
  452                           * ********************************************************
  453 F0B2   34 06              SEARCH    PSHS  D
  454 F0B4   EC 81              S10       LDD   ,X++     ; Zoek signature 'RH'
  455 F0B6 1083 5248                      CMPD  #$5248
  456 F0BA   26 06        F2            BNE   S20
  457 F0BC   A6 84                        LDA   ,X       ; Gevolgd door BRA
  458 F0BE   81 20                        CMPA  #$20     ; op page boundery
  459 F0   27 06        F8            BEQ   S99
  460 F2   8D 06        FA  S20       BSR   NEXTSEG     ; Niet gevonden, Volgend page
  461 F4   26 EE        F0B4            BNE   S10         ; Signature op volgende page
  462 F6   1C FB                        ANDCC #%11111011  ; Einde, Clear Z bit (Niet gevonden)
  463 F8   35 86              S99       PULS  PC,D        ; Gevonden (BEQ)
  464
  465 FA   34 10              NEXTSEG   PSHS  X
  466 FC   6C 60                        INC   0,S      ; Xh Volgende page
  467 FE   6F 61                        CLR   1,S      ; Clear Xl
  468 F0DA0   35 10                        PULS  X        ; X: xx00
  469 F0DA2   8C F000                      CMPX  #$F000   ; Maximum bereikt
  470                                                    ; BNE Er is nog hoop
  471 F0DA5   39                 NS99      RTS            ; BEQ Einde
  472                           *
  473                           * *******************************************************
  474                           * * Print P@xx op een nieuwe regel                      *
  475                           * * Wordt gebruikt voor 'Logon' boodschappen            *
  476                           * *******************************************************
  477                           *
  478 F0DA6   BD FE44            PRTPAGE   JSR   PRTMSG
  479 F0DA9   0DA                           FCB   CR
  480 F0DAA   50                           FCC   'P'     ; 'P@xx' op nieuwe regel
  481 F0DAB   C0                           FCB   $40+HiBit
  482 F0DAC   1F 10                        TFR   X,D
  483 F0DAE   7E FDA8                      JMP   OUT2HAS

          BERTMO54   BERTMON9 5.4                      My Assembler (c) Robert Henneke Blad:  11
          Een 6809 monitor (April 2024)                CPU: 6809        2025-10-26 15:11:10  
                                                                                                
  484                            PAG
  485                     F0E1  EXMONCMD  EQU   *
  486 F0E1   53                           FCB   'S'
  487 F0E2 F261                           FDB   SAVE     ; Save memory
  488 F0E4   4D                           FCB   'M'
  489 F0E5 F202                           FDB   MOVECMD  ; Move memory
  490 F0E7   4F                           FCB   'O'
  491 F0E8 F1A1                           FDB   DUMPALL  ; Maak Memory Map
  492 F0EA   41                           FCB   'A'
  493 F0EB F166                           FDB   ASCIDUMP ; Dump ASCII
  494 F0ED   42                           FCB   'B'
  495 F0EE F643                           FDB   DISPBYTE ; Display Byte
  496 F0F0   43                           FCB   'C'
  497 F0F1 F5F3                           FDB   COMPARE  ; Vergelijk memory met memory
  498 F0F3   56                           FCB   'V'
  499 F0F4 F2F5                           FDB   VERIFY   ; Vergelijk S19 file met memory
  500 F0F6   0DA                           FCB   CR
  501 F0F7 FFFF                           FDB   DUMMY    ; Geen fout bij CR
  502 F0F9   49                           FCB   'I'
  503 F0FA FFFF                           FDB   DUMMY    ; Init
  504 F0FC   2F                           FCB   '/'
  505 F0FD FDF5                           FDB   CLRSCRN  ; Wis het scherm
  506 F0FF   3F                           FCB   '?'
  507 F100 F5EF                           FDB   HELP     ; Print help string
  508 F102   50                           FCC   'P'
  509 F103 F394                           FDB   REGPRT   ; Print register
  510 F105   4A                           FCC   'J'
  511 F106 F118                           FDB   DISPVIAS ; Print System I-O
  512 F108   4B                           FCC   'K'
  513 F109 F14C                           FDB   DISPPAGE ; Print page
  514 F10B   46                           FCC   'F'
  515 F1 F23C                           FDB   FILLCMD  ; Fill memory
  516 F10E   2E                           FCC   '.'
  517 F10F F706                           FDB   PUNTCMD  ; Set systeem instellingen
  518                           *** Ruimte voor twee commando's
  519                                     RPT   2
  520 F111   FF FF FF                     FCB   $FF,$FF,$FF
  521 F114   FF FF FF                     FCB   $FF,$FF,$FF
  522 F117   FF                           FCB   $FF      ; EOT

          BERTMO54   BERTMON9 5.4                      My Assembler (c) Robert Henneke Blad:  12
          Een 6809 monitor (April 2024)                CPU: 6809        2025-10-26 15:11:10  
                                                                                                
  523                            PAG
  524                           *
  525                           *** Display I-O Devices Commando
  526                           *
  527 F118   BD FE44            DISPVIAS  JSR   PRTMSG
  528 F11B   49 2D CF                     FCCH  'I-O'
  529 F11E   BD F962                      JSR   HEADER
  530 F121   BD FF19                      JSR   GETADSYS  ; BEM3 of BEM4
  531
  532 F124   26 0DA        F133            BNE   BEM3      ; EQ   is BEM4
  533
  534 F126   8E BE00            BEM4      LDX   #VIABASE4 ; BE00 USART
  535 F129   8D 05        F130            BSR   D20       ; Display USART
  536 F12B   8E BEE0                      LDX   #VIABASE4+$E0
  537 F12E   8D 00        F130            BSR   D20       ; Display User VIA
  538 F130   7E F932            D20       JMP   DMPREGEL  ;    en System VIA
  539
  540 F133   8E BB00            BEM3      LDX   #VIABASE3 ; Start I-O Gebied BEM3
  541 F136   C6 05                        LDB   #5        ; 5 devices
  542 F138   8D F6        F130  D10       BSR   D20       ; Display eerste 16 bytes
  543                                                     ; van device
  544 F13A   30 89 00F0                   LEAX  240,X     ; Volgend device
  545 F13E   5A                           DECB
  546 F13F   26 F7        F138            BNE   D10
  547 F141   39                 D99       RTS
  548                           *
  549                           *** GETESC Kijk of toets binnen en Escape is
  550                           *   ESC ga naar MCL - Main command loop
  551                           *   Anders ga door waar je mee bezig bent
  552                           *
  553 F142   BD FE40            GETESC    JSR   CHARGET ; Get key
  554 F145   81 1B                        CMPA  #$1B    ; ESC = Monitor
  555 F147   26 F8        F141            BNE   D99     ; anders door
  556 F149   7E FF6C                      JMP   MCL
  557                           *
  558                           *** Display PAGE
  559                           *
  560 F14C   BD FE44            DISPPAGE  JSR   PRTMSG
  561 F14F   50 61 67 E5                  FCCH  'Page'
  562 F153   BD FB37                      JSR   GET1PARM ; Laad 1 parm
  563 F156   A6 41                        LDA   1,U      ; Page adres is 2 bytes
  564 F158   5F                           CLRB           ; Low bye is zero
  565 F159   1F 01                        TFR   D,X      ; Memory naar X
  566 F15B   BD F962                      JSR   HEADER
  567 F15E   C6 10                        LDB   #16      ; Display 16 regels
  568 F160   8D CE        F130  DP10      BSR   D20
  569 F162   5A                           DECB
  570 F163   26 FB        F160            BNE   DP10
  571 F165   39                           RTS

          BERTMO54   BERTMON9 5.4                      My Assembler (c) Robert Henneke Blad:  13
          Een 6809 monitor (April 2024)                CPU: 6809        2025-10-26 15:11:10  
                                                                                                
  572                            PAG
  573                           *
  574                           *** Dump Memory in ASCII
  575                           *
  576 F166   34 76              ASCIDUMP  PSHS  A,B,X,Y,U
  577 F168   BD FE44                      JSR   PRTMSG
  578 F16B   41 53 43 49 49               FCC   'ASCII'
  579 F170   A0                           FCB   Space+128
  580 F171   BD FB3B                      JSR   SEAGET2   ; X is startadres
  581 F174   1E 01                        EXG   D,X
  582 F176   C4 C0                        ANDB  #%11000000 ; Wis low mod 64
  583 F178   1E 01                        EXG   D,X
  584
  585 F17A   8D 10        F18C  AD10      BSR   ASCREGEL
  586 F17C   AC 42                        CMPX  ENDADR,U
  587 F17E   24 0A        F18A            BCC   AD90    ; Einde bereikt of overschreden
  588
  589 F180   1F 10                        TFR   X,D
  590 F182   5D                           TSTB          ; Page bereikt ?
  591 F183   26 F5        F17A            BNE   AD10    ; Volgende regel
  592
  593 F185   BD F99C                      JSR   NEXTPAGE
  594 F188   20 F0        F17A            BRA   AD10    ; Volgende page
  595
  596 F18A   35 F6              AD90      PULS  A,B,X,Y,U,PC
  597
  598 F18C   86 40              ASCREGEL  LDA   #64
  599 F18E   34 02                        PSHS  A       ; Teller (64) op stack
  600 F190   BD FDE1                      JSR  OUTXFDP  ; Print aaaa: op nieuwe regel
  601 F193   1F 12                        TFR   X,Y     ; Bewaar adres voor ASCII
  602
  603 F195   BD F956            AR10      JSR   GETMEM  ; Print regel van 64 characters
  604 F198   BD F980                      JSR   PNOPRT
  605 F19B   6A E4                        DEC   ,S      ; Decrement byte teller
  606 F19D   26 F6        F195            BNE   AR10
  607
  608 F19F   35 82                        PULS  A,PC    ; Delete teller en return

          BERTMO54   BERTMON9 5.4                      My Assembler (c) Robert Henneke Blad:  14
          Een 6809 monitor (April 2024)                CPU: 6809        2025-10-26 15:11:10  
                                                                                                
  609                            PAG
  610                           *
  611                           *** DUMP all (64k)
  612                           *         Registers @U op stack
  613                           *         0=Waarde
  614                           *         1=Char teller
  615                           *         2=Pages per regel
  616                           *         3=aantal regels
  617
  618 F1A1   34 56              DUMPALL   PSHS  A,B,X,U
  619 F1A3   BD FE44                      JSR   PRTMSG
  620 F1A6   4D 65 6D 20 4D 61            FCC   'Mem Map'
  621 F1AC   70
  622 F1AD   A0                           FCB   Space+128
  623 F1AE   C6 01                        LDB   #$01    ; invoer
  624 F1B0   AD 9F 9FA4                   JSR   [MEMTYPE]
  625
  626 F1B4   33 7C                        LEAU  -4,S     ; Maak ruimte op stack
  627 F1B6   1F 34                        TFR   U,S      ; Adresseer met U
  628 F1B8   86 10                        LDA   #16
  629 F1BA   A7 43                        STA   3,U
  630
  631 F1BC   BD F962            DA05      JSR   HEADER   ; Positioneer boven eerste hex
  632 F1BF   8E 0000                      LDX   #0
  633
  634 F1C2   86 10              DA10      LDA   #16
  635 F1C4   A7 42                        STA   2,U
  636 F1C6   BD FDE1                      JSR   OUTXFDP  ; Print adress
  637
  638 F1C9   BD F956            DA20      JSR   GETMEM   ; Lees byte en verhoog pointer
  639 F1CC   A7 40                        STA   0,U      ; Eerste is maatstaf
  640 F1CE   86 FF                        LDA   #255     ; Vergelijk met rest
  641 F1D0   A7 41                        STA   1,U
  642
  643 F1D2   BD F956            DA30      JSR   GETMEM   ; Lees byte en verhoog pointer
  644 F1D5   A1 40                        CMPA  0,U      ; Deze gelijk aan eerste?
  645 F1D7   26 16        F1EF            BNE   DA50     ; Nee
  646 F1D9   6A 41                        DEC   1,U
  647 F1DB   26 F5        F1D2            BNE   DA30
  648 F1DD   BD FDA8                      JSR   OUT2HAS  ; Toon de inhoud van deze page
  649                           *
  650                           *** Stop voor langzaam geheugen (I2C EEPROM)
  651                           *
  652 F1E0   BD F142            DA40      JSR   GETESC   ; Kijk of Escape is ingedrukt
  653                                                    ; Zo ja: Stop anders doorgaan
  654
  655 F1E3   6A 42              DA45      DEC   2,U
  656 F1E5   26 E2        F1C9            BNE   DA20     ; Volgende page
  657 F1E7   6A 43                        DEC   3,U
  658 F1E9   26 D7        F1C2            BNE   DA10     ; Volgend 4k segment
  659                           *
  660                           *** Klaar
  661                           *
  662 F1EB   32 64              DA99      LEAS  4,S      ; Restore stack
  663 F1ED   35 D6                        PULS  A,B,X,U,PC
  664
  665 F1EF   86 78              DA50      LDA   #'x'
  666 F1F1   BD FD90                      JSR   CHAROUT
  667 F1F4   BD FE85                      JSR   CHOUTSP
  668 F1F7   1F 10                        TFR   X,D
  669 F1F9   5D                           TSTB           ; Als Xl = 0
  670 F1FA   27 02        F1FE            BEQ   DA60     ; dan staan we al op volgende page
  671 F1FC   5F                           CLRB           ; Skip rest page en
  672 F1FD   4C                           INCA           ; volgende page
  673
  674 F1FE   1F 01              DA60      TFR   D,X
  675 F200   20 E1        F1E3            BRA   DA45

          BERTMO54   BERTMON9 5.4                      My Assembler (c) Robert Henneke Blad:  15
          Een 6809 monitor (April 2024)                CPU: 6809        2025-10-26 15:11:10  
                                                                                                
  676                            PAG
  677                           *
  678                           *** MOVE Commando
  679                           *
  680 F202   BD FE44            MOVECMD   JSR   PRTMSG
  681 F205   4D 6F 76 65                  FCC   'Move'
  682 F209   A0                           FCB   Space+128
  683 F20A   C6 03                        LDB   #3
  684 F2   AD 9F 9FA4                   JSR   [MEMTYPE]
  685 F210   BD FB41                      JSR   GET3PARM
  686 F213   34 12              MOVE      PSHS  X,A
  687 F215   AE 40                        LDX   STARTADR,U
  688 F217 10AE 44                        LDY   DESTADR,U
  689
  690 F21A   BD F956            MOVE1     JSR   GETMEM  ; Lees source
  691 F21D   1E 12                        EXG   X,Y     ; Schrijf destination
  692 F21F   BD FABB                      JSR   PUTMEM
  693 F222   26 0A        F22E            BNE   MEMERROR
  694 F224   1E 12                        EXG   X,Y
  695 F226   31 21                        LEAY  1,Y
  696 F228   AC 42                        CMPX  ENDADR,U
  697 F22A   23 EE        F21A            BLS   MOVE1
  698 F22C   35 92                        PULS  PC,X,A
  699
  700 F22E   C6 04              MEMERROR  LDB   #4      ; Foutmelding
  701 F230   BD FCAD            PRTERRIN  JSR   PRERROR
  702 F233   BD FDD1                      JSR   OUTXS   ; Print adres,
  703 F236   BD FDBA                      JSR   OUT2HS  ; werkelijke inhoud
  704 F239   7E FF6C                      JMP   MCL     ; en stop
  705                           *
  706                           *** FILL Commando
  707                           *
  708 F23C   BD FE44            FILLCMD   JSR   PRTMSG
  709 F23F   46 69 6C 6C A0               FCCH  'Fill '
  710 F244   5F                           CLRB
  711 F245   AD 9F 9FA4                   JSR   [MEMTYPE]
  712 F249   BD FB41                      JSR   GET3PARM  ; Bereik en Vulwaarde
  713
  714 F24C   34 12              FILL      PSHS  X,A
  715 F24E   AE 40                        LDX   STARTADR,U
  716 F250   A6 45                        LDA   DESTADR+1,U
  717 F252   BD FABB            FILL1     JSR   PUTMEM
  718 F255   26 D7        F22E            BNE   MEMERROR
  719 F257   AC 42                        CMPX  ENDADR,U
  720 F259   24 04        F25F            BCC   FILL9
  721 F25B   30 01                        LEAX  1,X
  722 F25D   20 F3        F252            BRA   FILL1
  723 F25F   35 92              FILL9     PULS  PC,X,A
  724

          BERTMO54   BERTMON9 5.4                      My Assembler (c) Robert Henneke Blad:  16
          Een 6809 monitor (April 2024)                CPU: 6809        2025-10-26 15:11:10  
                                                                                                
  725                            PAG
  726                           *
  727                           ***** SAVE MIKBUG TAPE *****
  728                           *
  729 F261   BD FE44            SAVE      JSR   PRTMSG
  730 F264   53 61 76 65                  FCC  'Save'
  731 F268   A0                           FCB   Space+HiBit
  732 F269   CE 9F20                      LDU   #CONTRBLK
  733 F26C   6F 44                        CLR   4,U      ; Default geen entry point
  734 F26E   6F 45                        CLR   5,U
  735 F270   BD FB41                      JSR   GET3PARM ; Begin, einde en entry point
  736 F273 10AE 40                        LDY   0,U      ; Y: begin
  737 F276   AE 42                        LDX   2,U      ; X: einde
  738
  739 F278   6F E2                        CLR   ,-S      ; Byte count op stack
  740 F27A   34 30                        PSHS  X,Y      ; Zet adressen op stack
  741 F27C   AC 62                        CMPX  2,S      ; vergelijk begin met einde
  742 F27E   25 42        F2C2            BCS   PUNEXT   ; Als begin groter einde dan exit
  743 F280   30 01                        LEAX  1,X      ; Increment eind adres
  744 F282   AF E4                        STX   ,S       ; op stack
  745
  746 F284   EC E4              SAVE2     LDD   ,S       ; Laad einde in D
  747 F286   A3 62                        SUBD  2,S      ; Aftrekken begin van einde
  748 F288   27 06        F290            BEQ   SAVE3    ; Gelijk dan 16 bytes
  749 F28A 1083 0010                      CMPD  #$10     ; Kleiner 16 byte
  750 F28E   23 02        F292            BLS   SAVE4    ; Print dan aantal
  751 F290   C6 10              SAVE3     LDB   #$10     ; Anders 16
  752 F292   E7 64              SAVE4     STB   4,S      ; Byte count op stack
  753 F294   BD FE44                      JSR   PRTMSG   ; Print S1 op nieuwe regel
  754 F297   0DA                           FCB   CR
  755 F298   53                           FCC  'S'       ; S1
  756 F299   B1                           FCB   $31+HiBit
  757 F29A   CB 03                        ADDB  #3       ; Bytecount+3 (adres en checksum)
  758 F29C   1F 98                        TFR   B,A      ; Afdrukken
  759 F29E   BD FDB0                      JSR   OUT2HA   ; bytecount
  760 F2A1   AE 62                        LDX   2,S      ; Laad begin adres
  761 F2A3   BD FDD9                      JSR   OUTX     ; Druk af
  762 F2A6   EB 62                        ADDB  2,S      ; Optellen ADDR MSB bij checksum
  763 F2A8   EB 63                        ADDB  3,S      ; Optellen ADDR LSB bij checksum
  764 F2AA   EB 84              SAVE5     ADDB  ,X       ; Optellen DATA byte bij checksum
  765 F2AC   BD F956                      JSR   GETMEM   ; Laad DATA byte
  766 F2AF   BD FDB0                      JSR   OUT2HA   ; en druk af
  767 F2B2   6A 64                        DEC   4,S      ; Verminder byte count
  768 F2B4   26 F4        F2AA            BNE   SAVE5    ; Er is meer doorgaan
  769 F2B6   53                           COMB           ; Klaar, 1's compliment checksum
  770 F2B7   1F 98                        TFR   B,A      ; In Acc
  771 F2B9   BD FDB0                      JSR   OUT2HA   ; en druk af
  772 F2BC   AF 62                        STX   2,S      ; Volgend adres terug op stack
  773 F2BE   AC E4                        CMPX  ,S       ; Vergelijk met eind adres
  774 F2C0   26 C2        F284            BNE   SAVE2    ; Nog niet klaar, doorgaan
  775
  776 F2C2   32 65              PUNEXT    LEAS  5,S      ; Verwijder werkvelden van stack
  777 F2C4   BD FE44                      JSR   PRTMSG   ; Print S9 Record
  778 F2C7   0DA                           FCB   CR
  779 F2C8   53 39 30                     FCC  'S90'
  780 F2CB   B3                           FCB   $33+HiBit
  781 F2CC   AE 44                        LDX   4,U      ; met start adres
  782 F2CE   BD FDD9                      JSR   OUTX
  783 F2D1   BD FDED                      JSR   DOCRLF   ; Netjes afsluiten
  784 F2D4   7E FCE3                      JMP   CHARIN   ; Schoon hexfile voor SAVE naar PC

          BERTMO54   BERTMON9 5.4                      My Assembler (c) Robert Henneke Blad:  17
          Een 6809 monitor (April 2024)                CPU: 6809        2025-10-26 15:11:10  
                                                                                                
  785                            PAG
  786                           *     COMPARE
  787                           ***** Verify Mikbug tape met memory
  788                           *
  789 F2D7   A1 84              COMPBYTE  CMPA  ,X       ; A  is Hexfile
  790 F2D9   27 16        F2F1            BEQ   CB10     ; @X Memory
  791
  792                           *** Maak entry in fouttabel
  793 F2DB   AF A1                        STX   ,Y++     ; Adres in fouttabel
  794 F2DD   A7 A0                        STA   ,Y+      ; DATA van hexfile
  795 F2DF   A6 84                        LDA   ,X       ; DATA in memory
  796 F2E1   A7 A0                        STA   ,Y+      ; in fout tabel
  797 F2E3   1F 20                        TFR   Y,D
  798 F2E5   B1 9FC1                      CMPA  TRBUFEND
  799 F2E8   25 07        F2F1            BLO   CB10     ; Nog plek in tabel
  800 F2EA   CC FFFF                      LDD   #$FFFF   ; tabel vol
  801 F2ED   ED A3                        STD   ,--Y     ; Wis laatste entry
  802 F2EF   ED A3                        STD   ,--Y
  803 F2F1   30 01              CB10      LEAX  1,X
  804 F2F3   4F                           CLRA
  805 F2F4   39                           RTS
  806
  807 F2F5   BD FE44            VERIFY    JSR   PRTMSG     ; Start message
  808 F2F8   56 65 72 69 66 79            FCC   'Verify'
  809 F2FE   8D                           FCB   CRH
  810 F2FF   B6 9FC0                      LDA   TRBUFST    ; Start tabel HI
  811 F302   5F                           CLRB             ; en LOW
  812 F303   1F 02                        TFR   D,Y
  813 F305   30 8C CF     F2D7            LEAX  COMPBYTE,PCR
  814 F308   BF 9FE4                      STX   PUTBLOAD   ; Compare databyte met geheugen
  815 F30B   BD FBFA                      JSR   LOAD00     ; Lees en compare
  816 F30E   CC FFFF                      LDD   #$FFFF     ; EOT is adres $FFFF
  817 F311   ED A4                        STD   ,Y         ; in tabel
  818 F313   30 8D 0991   FCA8            LEAX  PUTLOAD,PCR  ; Herstel normale load
  819 F317   BF 9FE4                      STX   PUTBLOAD   ; (plemp in geheugen)
  820 F31A   1F 20                        TFR   Y,D
  821 F31C   B1 9FC0                      CMPA  TRBUFST    ; Tabel leeg ?
  822 F31F   26 05        F326            BNE   COMP10
  823 F321   5D                           TSTB
  824 F322 1027 097B      FCA1            LBEQ  PRTOK   ; Er zijn geen verschillen
  825
  826 F326   BD F9A3            COMP10    JSR   ACK     ; Er zijn verschillen
  827 F329   B6 9FC0                      LDA   TRBUFST
  828 F32C   5F                           CLRB
  829 F32D   1F 01                        TFR   D,X     ; Start fout tabel
  830
  831 F32F   BD FE21            COMP20    JSR   NEWLINE ; Print record
  832 F332   BD FDB8                      JSR   OUT4HS  ; Adres
  833 F335   BD FDBA                      JSR   OUT2HS  ; Data Hexfile
  834 F338   BD FDBA                      JSR   OUT2HS  ; Data memory
  835 F33B   EC 84                        LDD   ,X
  836 F33D 1083 FFFF                      CMPD  #$FFFF  ; Einde tabel
  837 F341   26 EC        F32F            BNE   COMP20  ; volgende entry
  838 F343   39                           RTS           ; of klaar

          BERTMO54   BERTMON9 5.4                      My Assembler (c) Robert Henneke Blad:  18
          Een 6809 monitor (April 2024)                CPU: 6809        2025-10-26 15:11:10  
                                                                                                
  839                            PAG
  840                           *
  841                           *** Output registers
  842                           *
  843                           *** Print header met registernamen
  844                           *
  845 F344   B6 9FC6            PRTHEAD   LDA   DBUGFLGS
  846 F347   85 10                        BITA  #%00010000 ; Test A.4 = 1
  847 F349   26 46        F391            BNE   NEWLINE2   ; Alleen nieuwe regel
  848
  849 F34B   BD FE44            PH10      JSR   PRTMSG
  850 F34E   0DA                 TXTHEAD   FCB   CR
  851 F34F   20 53 50 20 20 45            FCC   ' SP  EFHI NZVC CC DP  IX   IY   US  A-D-B'
  852 F355   46 48 49 20 4E 5A
  853 F35B   56 43 20 43 43 20
  854 F361   44 50 20 20 49 58
  855 F367   20 20 20 49 59 20
  856 F36D   20 20 55 53 20 20
  857 F373   41 2D 44 2D 42
  858 F378   A0                           FCB   Space+$80
  859
  860 F379   8D 5F        F3DA            BSR   TEST6309 ; Kijk of 6309
  861 F37B   27 0E        F38B            BEQ   PH20     ; Nee
  862 F37D   BD FE44                      JSR   PRTMSG
  863 F380   45 2D 57 2D 46 20            FCC   'E-W-F  V  ' ; 6309 registers
  864 F386   20 56 20 20
  865 F38A   A0                           FCB   Space+$80
  866
  867 F38B   BD FE44            PH20      JSR   PRTMSG
  868 F38E   20 50 C3                     FCCH  ' PC'
  869
  870 F391   7E FE21            NEWLINE2  JMP   NEWLINE
  871
  872 F394   FE 9F10            REGPRT    LDU   SYSSTACK : 'P' Commando
  873                           *
  874                           *** Print registers zoals deze waren bij SWI of NMI
  875                           *
  876 F397   8D AB        F344  PREGHEAD  BSR   PRTHEAD
  877 F399   1F 30              PRINTREG  TFR   U,D
  878 F39B   BD FDA2                      JSR   OUTDH    ; Print SP
  879 F39E   1F 31                        TFR   U,X      ; X points to regs
  880 F3A0   E6 84                        LDB   ,X       ; CCR
  881 F3A2   BD FE04                      JSR   OUTBBIN  ; Print CCR binair
  882 F3A5   BD FDBA                      JSR   OUT2HS   ; en hex
  883 F3A8   A6 02                        LDA   2,X      ; Print DP in hex
  884 F3AA   BD FDA8                      JSR   OUT2HAS
  885 F3AD   30 03                        LEAX  3,X      ; Skip A, B en DP
  886
  887 F3AF   C6 03                        LDB   #3       ; 3 16bit registers
  888 F3B1   BD FDB8            PR10      JSR   OUT4HS   ; Print X, Y, U
  889 F3B4   5A                           DECB
  890 F3B5   26 FA        F3B1            BNE   PR10
  891
  892 F3B7   30 17                        LEAX  -9,X     ; Positioneer op A
  893 F3B9   BD FDBA                      JSR   OUT2HS   ; Print A en B
  894 F3BC   BD FDBA                      JSR   OUT2HS   ; in hex
  895 F3BF   30 07                        LEAX  7,X      ; Positioneer op PC
  896
  897 F3C1   8D 17        F3DA            BSR   TEST6309 ; 6309 Mode
  898 F3C3   27 0F        F3D4            BEQ   PR20     ; Nee
  899                           *
  900                           *** Dit stuk wordt alleen uitgevoerd door een 6309
  901                           *   Wordt door een 6809 assembler geassembleerd
  902                           *   6309 statements mogen dus niet gebruikt worden
  903                           *
  904 F3C5 1FE8                           FDB   $1FE8    ; TFR E,A
  905 F3C7   BD FDA8                      JSR   OUT2HAS  ; Print E en spatie
  906 F3CA 1FF8                           FDB   $1FF8    ; TFR F,A
  907 F3CC   BD FDA8                      JSR   OUT2HAS  ; Print F en spatie
  908 F3CF 1F70                           FDB   $1F70    ; TFR V,D
  909 F3D1   BD FD9E                      JSR   OUTDHS   ; Print V en spatie
  910                           *
  911                           *** Einde door 6309 uitgevoerd deel
  912                           *
  913 F3D4   AE 84              PR20      LDX   ,X       ; X: PC van stack
  914 F3D6   6E 9F 9FE2                   JMP   [OUTPC]  ; Print PC of Dissassemble regel
  915                           *
  916                           *** Test op 6809 of 6800

          BERTMO54   BERTMON9 5.4                      My Assembler (c) Robert Henneke Blad:  19
          Een 6809 monitor (April 2024)                CPU: 6809        2025-10-26 15:11:10  
                                                                                                
  917                           *   6309 complement B, 6809 niet
  918                           *
  919 F3DA   34 06              TEST6309  PSHS  D
  920 F3DC 1043                           FDB   $1043   ; 6309 COMD, 6809 COMA
  921 F3DE   E1 61                        CMPB  1,S     ; 6309 NE,   6809 EQ
  922                           ;         CLRA  ;$      ; TEST 6309
  923                           ;         INCA  ;$
  924 F3E0   35 86                        PULS  D,PC
  925                           *
  926                           * Deze routine print de registers zoals die waren bij de CALL
  927                           * PC is dan het return adres van de Caller
  928                           *
  929 F3E2   34 7F              PRTREGS   PSHS  #$7F     ; Push regs, PC staat al op stack
  930 F3E4   8D AB        F391            BSR   NEWLINE2 ; Op nieuwe regel
  931 F3E6   1F 43                        TFR   S,U
  932 F3E8   8D AF        F399            BSR   PRINTREG
  933 F3EA   35 FF                        PULS  #$FF     ; Restore registers en return
  934
  935                           ;               Op LCD
  936                           ;               0----+----1---+----2-
  937                           ;               9FA2 1111 1111 XX DD
  938                           ;               XXXX YYYY UUUU AA BB
  939                           ;               PPPP @X @Y @U  EE FF
  940                           ;               ---- instructie ----

          BERTMO54   BERTMON9 5.4                      My Assembler (c) Robert Henneke Blad:  20
          Een 6809 monitor (April 2024)                CPU: 6809        2025-10-26 15:11:10  
                                                                                                
  941                            PAG
  942                           *
  943                           ***       Print registers
  944                           * DBUGFLGS $9FC6
  945                           *         7654 3210
  946                           *            0            : Print header
  947                           *            1            : Print geen header
  948                           *         1xx             : Start de debugger op adres na de SWI
  949                           *         000             : Print registers en ga naar MCL (defa >
  950                           *         001             : Geen  Print registers en vervolg na  >
  951                           *         010             : Print registers vervolg na de SWI
  952                           *         011             : Print registers en User response
  953                           *
  954                           ***       User response
  955                           *         Escape          : Ga naar monitor
  956                           *         Space           : Ga naar statement na de SWI
  957                           *         CR              : Start debugger op statement na de SW >
  958                           *         ABCDXYUP EFV(63): Wijzig Register
  959                           *         ?               : Toon gewijzigde registers
  960                           *         @x              : Print @register
  961                           *         .x              : Wijzig instellingen
  962
  963 F3EC   7D 9FC6            PRTSWI    TST   DBUGFLGS
  964 F3EF   2B 23        F414            BMI   PS50
  965
  966 F3F1   1F 43                        TFR   S,U
  967 F3F3   8D A2        F397            BSR   PREGHEAD
  968 F3F5   B6 9FC6                      LDA   DBUGFLGS
  969 F3F8   85 20                        BITA  #%00100000   ; Test A.5
  970 F3FA   26 03        F3FF            BNE   PS20
  971 F3FC   7E FF6C            PS10      JMP   MCL          ; Clear: Terug naar Monitor
  972
  973 F3FF   85 40              PS20      BITA  #%01000000   ; Test A.6
  974 F401   26 01        F404            BNE   PS40
  975 F403   3B                 PS30      RTI                ; Clear:   Return naar User
  976
  977 F404   86 52              PS40      LDA   #'R'
  978 F406   BD FE77                      JSR   PROMPT
  979 F409   BD FD26                      JSR   CHINUP   ; User Response
  980
  981 F4   81 20                        CMPA  #Space
  982 F40E   27 F3        F403            BEQ   PS30     ; Doorgaan na SWI
  983 F410   81 0DA                        CMPA  #CR      ; CR is Debugger
  984 F412   26 1A        F42E            BNE   PS60
  985
  986 F414   BE 9FBE            PS50      LDX   SWIBUG   ; Debugger SWI entrypoint
  987 F417   8C FFFF                      CMPX  #$FFFF
  988 F41A   27 E7        F403            BEQ   PS30     ; Geen debugger actief
  989 F41C   6E 84                        JMP   ,X       ; Debugger met adres na SWI
  990                           *
  991                           *** Entry point voor NMI-Debugger
  992                           *
  993 F41E   BD F399            NMIREGS   JSR   PRINTREG ; Print registers
  994 F421   86 44              NR10      LDA   #'D'
  995 F423   BD FE77                      JSR   PROMPT
  996 F426   BD FD26                      JSR   CHINUP   ; User Response
  997 F429   8D 07        F432            BSR   CHLOOP
  998 F42B   24 F4        F421            BCC   NR10     ; Register gevonden, volgend register
  999 F42D   39                           RTS            ; Zo nee, [A] is debugger command
 1000                                                    ; Dus ga terug naar Debugger
 1001                           *
 1002                           *** Vervolg SWI-Print
 1003                           *
 1004 F42E   8D 02        F432  PS60      BSR   CHLOOP
 1005 F430   20 D2        F404            BRA   PS40
 1006
 1007 F432   81 3F              CHLOOP    CMPA  #'?'     ; ? Toon registers
 1008 F434   26 05        F43B            BNE   CHL10
 1009 F436   BD F397                      JSR   PREGHEAD ; Print registers met header
 1010 F439   20 11        F44C            BRA   CHL40
 1011
 1012 F43B   81 2F              CHL10     CMPA  #'/'
 1013 F43D   26 05        F444            BNE   CHL20
 1014 F43F   BD F507                      JSR   DISP_REG ; ingevuld door Debugger
 1015 F442   20 08        F44C            BRA   CHL40
 1016
 1017 F444   81 2E              CHL20     CMPA  #'.'     ; Monitor commando's
 1018 F446   26 07        F44F            BNE   CHL30

          BERTMO54   BERTMON9 5.4                      My Assembler (c) Robert Henneke Blad:  21
          Een 6809 monitor (April 2024)                CPU: 6809        2025-10-26 15:11:10  
                                                                                                
 1019 F448   AD 9F 9FAA                   JSR   [MONCMD] ; ingevuld door Debugger
 1020 F44C   1C FE              CHL40     CLRC           ; commando's verwerkt
 1021 F44E   39                           RTS
 1022
 1023                     F44F  CHL30     EQU   *
 1024                           *
 1025                           *** Change registers
 1026                           *** Register in A
 1027                           *
 1028 F44F   8E F4DB            CHANGREG  LDX   #REGTABEL ; Naam & offset
 1029 F452   A1 81              CR10      CMPA  ,X++      ; Naam in tabel
 1030 F454   27 07        F45D            BEQ   CR20      ; Verwerk
 1031 F456   6D 84                        TST   ,X        ; Einde tabel ?
 1032 F458   26 F8        F452            BNE   CR10
 1033 F45A   1A 01                        SETC            ; Register niet gevonden
 1034 F45C   39                           RTS             ; Doe niets
 1035                           *
 1036                           *** Print en wijzig het opgegeven register
 1037                           *
 1038 F45D   A6 1F              CR20      LDA   -1,X     ; Offset op stack
 1039 F45F   81                         CMPA  #12      ; 6309 (EFV) register ?
 1040 F461   24 27        F48A            BHS   CR40     ; Ja
 1041 F463   8D 1D        F482            BSR   PREGDP   ; Register naam
 1042
 1043 F465   A6 1F                        LDA   -1,X     ; Offset op stack
 1044 F467   30 C6                        LEAX  A,U      ; Point to register
 1045 F469   81 04                        CMPA  #4       ; 1 of 2 byte register
 1046 F46B   2D 0B        F478            BLT   CR30     ; 1
 1047 F46D   EC 84                        LDD   ,X       ; Laad woord van stack
 1048 F46F   8D 48        F4B9            BSR   CHANGE16
 1049 F471   26 0DA        F480            BNE   CR90     ; Invoer ? Nee, doe niets
 1050 F473 10AF 84                        STY   ,X       ; Store 2 byte
 1051 F476   20 08        F480            BRA   CR90     ; en klaar
 1052
 1053 F478   A6 84              CR30      LDA   ,X       ; Laad byte van stack
 1054 F47A   8D 4D        F4C9            BSR   CHANGE8
 1055 F47C   26 02        F480            BNE   CR90     ; Invoer ? Nee, doe niets
 1056 F47E   A7 84                        STA   ,X       ; Store 1 byte
 1057 F480   4F                 CR90      CLRA           ; en klaar
 1058 F481   39                           RTS
 1059                           *
 1060                           *** Print opgegeven register naam
 1061                           *
 1062 F482   A6 1E              PREGDP    LDA   -2,X
 1063 F484   BD FD90                      JSR   CHAROUT  ; Register naam
 1064 F487   7E FDBF                      JMP   PCOLSP   ; Gevolgd door ': '
 1065
 1066 F48A   BD F3DA            CR40      JSR   TEST6309 ; 6309 Mode
 1067 F48D   27 F1        F480            BEQ   CR90     ; Nee, Doe niets
 1068                           *
 1069                           *** Wijzig 6306 registers E-F-V
 1070                           *   Alleen als 6309
 1071                           *
 1072 F48F   8D F1        F482            BSR   PREGDP   ; Register naam
 1073 F491   A6 1F                        LDA   -1,X     ; Offset op stack
 1074 F493   81                         CMPA  #12
 1075 F495   26 0A        F4A1            BNE   CR50
 1076 F497 1FE8                           FDB   $1FE8    ; TFR E,A
 1077 F499   8D 2E        F4C9            BSR   CHANGE8
 1078 F49B   26 E3        F480            BNE   CR90     ; Invoer ? Nee, doe niets
 1079 F49D 1F8E                           FDB   $1F8E    ; gewijzigde waarde naar E
 1080 F49F   20 DF        F480            BRA   CR90
 1081
 1082 F4A1   81 0DA              CR50      CMPA  #13
 1083 F4A3   26 0A        F4AF            BNE   CR60
 1084 F4A5 1FF8                           FDB   $1FF8    ; TFR F,A
 1085 F4A7   8D 20        F4C9            BSR   CHANGE8
 1086 F4A9   26 D5        F480            BNE   CR90     ; Invoer ? Nee, doe niets
 1087 F4AB 1F8F                           FDB   $1F8F    ; gewijzigde waarde naar F
 1088 F4AD   20 D1        F480            BRA   CR90
 1089
 1090 F4AF 1F70                 CR60      FDB   $1F70    ; TFR  V,D
 1091 F4B1   8D 06        F4B9            BSR   CHANGE16
 1092 F4B3   26 CB        F480            BNE   CR90     ; Invoer ? Nee, doe niets
 1093 F4B5 1F70                           FDB   $1F70    ; Store 2 byte
 1094 F4B7   20 C7        F480            BRA   CR90     ; en klaar
 1095                           *
 1096                           *** Einde wijzig 6306 registers E-F-V

          BERTMO54   BERTMON9 5.4                      My Assembler (c) Robert Henneke Blad:  22
          Een 6809 monitor (April 2024)                CPU: 6809        2025-10-26 15:11:10  
                                                                                                
 1097                           *
 1098 F4B9   BD FD9E            CHANGE16  JSR   OUTDHS   ; en display
 1099 F4BC   8D 18        F4D6            BSR   OUTEQ    ; '=' teken
 1100 F4BE   34 10                        PSHS  X        ; Get waarde
 1101 F4C0   BD FB7C                      JSR   GETWORD
 1102 F4C3   1F 12                        TFR   X,Y      ; Woord in Y
 1103 F4C5   35 10                        PULS  X
 1104 F4C7   4D                           TSTA           ; Invoer ?
 1105 F4C8   39                           RTS
 1106
 1107 F4C9   BD FDA8            CHANGE8   JSR   OUT2HAS  ; en display
 1108 F4CC   8D 08        F4D6            BSR   OUTEQ    ; '=' teken
 1109 F4CE   BD FCE3                      JSR   CHARIN
 1110 F4D1   BD F9DB                      JSR   GETBYTEP
 1111 F4D4   5D                           TSTB           ; Invoer ?
 1112 F4D5   39                           RTS
 1113
 1114 F4D6   86 3D              OUTEQ     LDA   #'='
 1115 F4D8   7E FE85                      JMP  CHOUTSP
 1116                           *
 1117                           *** Register naam en offset
 1118                           *
 1119 F4DB   43 00              REGTABEL  FCB   'C',0    ; CCR
 1120 F4DD   41 01                        FCB   'A',1    ; ACCU A
 1121 F4DF   42 02                        FCB   'B',2    ; ACCU B
 1122 F4E1   44 03                        FCB   'D',3    ; Direct Page
 1123 F4E3   58 04                        FCB   'X',4    ; Index X
 1124 F4E5   59 06                        FCB   'Y',6    ; Index Y
 1125 F4E7   55 08                        FCB   'U',8    ; User SP
 1126 F4E9   50 0A                        FCB   'P',10   ; Program Counter
 1127                           ** 6309
 1128 F4EB   45                         FCB   'E',12   ; ACCU E
 1129 F4ED   46 0DA                        FCB   'F',13   ; ACCU F
 1130 F4EF   56 0E                        FCB   'V',14   ; Value register
 1131                           *# 6309
 1132 F4F1   00                           FCB    0       ; Einde tabel

          BERTMO54   BERTMON9 5.4                      My Assembler (c) Robert Henneke Blad:  23
          Een 6809 monitor (April 2024)                CPU: 6809        2025-10-26 15:11:10  
                                                                                                
 1133                            PAG
 1134                           *
 1135                           *** Display user stack
 1136                           *
 1137 F4F2   30 E8 12           DISSTACK  LEAX  18,S      ; (20) Skip PSHS X,U
 1138                           *                         ; registers en return adres
 1139 F4F5   C6 18                        LDB   #24       ; Maximaal 24
 1140 F4F7   BD FDE1                      JSR   OUTXFDP  ; Display SP op nieuwe regel
 1141 F4FA   BD FDBA            DS10      JSR   OUT2HS   ; Display byte op stack
 1142 F4FD   5A                           DECB
 1143 F4FE   27 05        F505            BEQ   DS99      ; Max 24
 1144 F500   8C 9CF2                      CMPX  #STACKTOP ; of einde stack
 1145 F503   26 F5        F4FA            BNE   DS10
 1146 F505   35 D0              DS99      PULS  X,U,PC
 1147                           *
 1148                           *** Display Memory @ DP,X,Y,U,S,PC
 1149                           *
 1150 F507   34 50              DISP_REG  PSHS  X,U
 1151 F509   86 40                        LDA   #'@'
 1152 F50B   BD FD90                      JSR   CHAROUT   ; Display '@'
 1153 F50E   17 007F      F590            LBSR  GETCHAR   ; Input register en display
 1154 F511   81 53                        CMPA  #'S'      ; Display stack
 1155 F513   27 DD        F4F2            BEQ   DISSTACK
 1156 F515   81 50                        CMPA  #'P'      ; Dissassembleer @P
 1157 F517   26 1D        F536            BNE   DR08
 1158 F519   8D 7B        F596            BSR   SPBYTE
 1159 F51B   5D                           TSTB            ; Getal ingevoerd?
 1160 F51C   27 02        F520            BEQ   DR06      ; Ja
 1161 F51E   86 08                        LDA   #8        ; Nee, default 8 regels
 1162 F520   1F 89              DR06      TFR   A,B
 1163 F522   AE 4A                        LDX   10,U      ; PC op stack
 1164 F524   8D 05        F52B  DR07      BSR   DIS1REG   ; en disassembleer
 1165 F526   5A                           DECB            ;  B  regels
 1166 F527   26 FB        F524            BNE   DR07
 1167 F529   20 DA        F505            BRA   DS99
 1168                           *
 1169                           *** Disassembleer 1 instructie op nieuwe regel
 1170                           *** voor List breakpoints en Dissassembler
 1171 F52B   BD FE21            DIS1REG   JSR   NEWLINE
 1172                           *
 1173                           *** Disassembleer 1 instructie op current positie
 1174                           *** voor List registers
 1175
 1176 F52E 108E FE53            PRTPC     LDY   #PDATA     ; Voor Print registers
 1177 F532   6E 9F 9FD8                   JMP   [DISREGEL] ; Doe 1 regel
 1178
 1179 F536   81 44              DR08      CMPA  #'D'
 1180 F538   26 13        F54D            BNE   DR09
 1181 F53A   BD FE87                      JSR   OUTSP
 1182 F53D   A6 43                        LDA   3,U       ; User D is high
 1183 F53F   5F                           CLRB            ; Low is 0
 1184 F540   1F 01                        TFR   D,X
 1185 F542   BD FD26                      JSR   CHINUP   ; Input register
 1186 F545   81 0DA                        CMPA  #CR
 1187 F547   26 53        F59C            BNE   DR30      ; Andere 'D' opties
 1188 F549   86 10                        LDA   #16       ; Hele page
 1189 F54B   20 33        F580            BRA   DR18
 1190
 1191 F54D   81 58              DR09      CMPA  #'X'
 1192 F54F   26 04        F555            BNE   DR11
 1193 F551   AE 44                        LDX   4,U     ; User X
 1194 F553   20 20        F575            BRA   DR16
 1195 F555   81 59              DR11      CMPA  #'Y'
 1196 F557   26 04        F55D            BNE   DR12
 1197 F559   AE 46                        LDX   6,U     ; User Y
 1198 F55B   20 18        F575            BRA   DR16
 1199 F55D   81 55              DR12      CMPA  #'U'
 1200 F55F   26 04        F565            BNE   DR14
 1201 F561   AE 48                        LDX   8,U     ; User U
 1202 F563   20 10        F575            BRA   DR16
 1203
 1204 F565   81 20              DR14      CMPA  #Space  ; Memory
 1205 F567   27 05        F56E            BEQ   DR15
 1206 F569   BD FBCD                      JSR   WISCHAR
 1207 F56C   20 20        F58E            BRA   DR99
 1208
 1209 F56E   BD FB7C            DR15      JSR   GETWORD  ; Hex waarde
 1210 F571   81 00                        CMPA  #0

          BERTMO54   BERTMON9 5.4                      My Assembler (c) Robert Henneke Blad:  24
          Een 6809 monitor (April 2024)                CPU: 6809        2025-10-26 15:11:10  
                                                                                                
 1211 F573   26 19        F58E            BNE   DR99
 1212
 1213 F575   BD FE87            DR16      JSR   OUTSP
 1214 F578   BD F9DA                      JSR   GETBYTE
 1215 F57B   5D                           TSTB          ; Getal ingevoerd?
 1216 F57C   27 02        F580            BEQ   DR18    ; Ja
 1217 F57E   86 01                        LDA   #1      ; Nee, default 1 regel
 1218
 1219 F580   34 02              DR18      PSHS  A       ; Regel teller
 1220
 1221 F582   BD F962            DR20      JSR   HEADER
 1222 F585   BD F932            DR25      JSR   DMPREGEL  ; Dump regel in hex en ASCII
 1223 F588   6A E4                        DEC   ,S
 1224 F58A   26 F9        F585            BNE   DR25
 1225 F58C   35 02                        PULS  A        ; Restore stack
 1226 F58E   35 D0              DR99      PULS  X,U,PC
 1227
 1228 F590   BD FD26            GETCHAR   JSR   CHINUP   ; Input char
 1229 F593   7E FD90                      JMP   CHAROUT  ; en display
 1230
 1231 F596   BD FE87            SPBYTE    JSR   OUTSP
 1232 F599   7E F9DA            XGETBYTE  JMP   GETBYTE
 1233
 1234 F59C   34 02              DR30      PSHA  A       ; Type
 1235 F59E   BD FD90                      JSR   CHAROUT
 1236 F5A1   8D F3        F596            BSR   SPBYTE  ; byte binnen DP
 1237 F5A3   1F 89                        TFR   A,B
 1238 F5A5   A6 43                        LDA   3,U
 1239 F5A7   1F 01                        TFR   D,X     ; X te displayen adres
 1240 F5A9   8D EB        F596            BSR   SPBYTE  ; Aantal bytes
 1241 F5AB   1F 89                        TFR   A,B     ; in B
 1242 F5AD   5D                           TSTB          ; Geen
 1243 F5AE   26 02        F5B2            BNE   DR30A
 1244 F5B0   C6 10                        LDB   #16     ; dan default 16
 1245 F5B2   BD FE21            DR30A     JSR    NEWLINE
 1246 F5B5   35 02                        PULS  A       ; Andere 'D' opties
 1247 F5B7   81 41                        CMPA  #'A'
 1248 F5B9   27 24        F5DF            BEQ   DR35
 1249 F5BB   81 42                        CMPA  #'B'
 1250 F5BD   27 12        F5D1            BEQ   DR33
 1251 F5BF   81 57                        CMPA  #'W'
 1252 F5C1   26 CB        F58E            BNE   DR99
 1253
 1254 F5C3   C1 18              DR31      CMPB  #24     ; Maximaal 24
 1255 F5C5   23 02        F5C9            BLS   DR32
 1256 F5C7   C6 18                        LDB   #24
 1257
 1258 F5C9   BD FDB8            DR32      JSR   OUT4HS
 1259 F5CC   5A                           DECB
 1260 F5CD   26 FA        F5C9            BNE   DR32
 1261 F5CF   20 BD        F58E            BRA   DR99
 1262
 1263 F5D1   C1 30              DR33      CMPB  #48     ; Maximaal 48
 1264 F5D3   23 02        F5D7            BLS   DR34
 1265 F5D5   C6 30                        LDB   #48
 1266
 1267 F5D7   BD FDBA            DR34      JSR   OUT2HS
 1268 F5DA   5A                           DECB
 1269 F5DB   26 FA        F5D7            BNE   DR34
 1270 F5DD   20 AF        F58E            BRA   DR99
 1271 F5DF   C1 50              DR35      CMPB  #80     ; Maximaal 80
 1272 F5E1   23 02        F5E5            BLS   DR36
 1273 F5E3   C6 50                        LDB   #80
 1274 F5E5   A6 80              DR36      LDA   ,X+
 1275 F5E7   BD F980                      JSR    PNOPRT
 1276 F5EA   5A                           DECB
 1277 F5EB   26 F8        F5E5            BNE   DR36
 1278 F5ED   20 9F        F58E            BRA   DR99
 1279
 1280 F5EF   6E 9F 9F94         HELP      JMP   [PCMDHELP]
 1281

          BERTMO54   BERTMON9 5.4                      My Assembler (c) Robert Henneke Blad:  25
          Een 6809 monitor (April 2024)                CPU: 6809        2025-10-26 15:11:10  
                                                                                                
 1282                            PAG
 1283                           *
 1284                           *** Vergelijk 2 geheugen gebieden
 1285                           *
 1286 F5F3   34 36              COMPARE   PSHS  D,X,Y
 1287 F5F5   BD FE44                      JSR   PRTMSG
 1288 F5F8   43 6F 6D 70 61 72            FCCH  'Compare'
 1289 F5FE   E5
 1290 F5FF   BD FB41                      JSR   GET3PARM
 1291 F602 10AE 44                        LDY   4,U
 1292
 1293 F605   AC 42              CP10      CMPX  2,U      ; vergelijk begin en eind adres
 1294 F607   23 02        F60B            BLS   CP20     ; indien geen einde ga door
 1295 F609   35 B6                        PULS  D,X,Y,PC ; Anders wegwezen
 1296
 1297 F60B   A6 80              CP20      LDA   ,X+      ; Vergelijk source en destination
 1298 F60DA   A1 A0                        CMPA  ,Y+      ; en verhoog pointers
 1299 F60F   27 F4        F605            BEQ   CP10
 1300
 1301 F611   34 12                        PSHS  X,A      ; Save source pointers
 1302 F613   30 1F                        LEAX  -1,X
 1303 F615   BD FDCF                      JSR   OUTXNL   ; Destination adres op nieuwe regel
 1304 F618   A6 E4                        LDA   ,S       ; Restore source byte
 1305 F61A   8D 10        F62C            BSR   OUTAHB   ; Output byte in Binair, Hex en ASCII
 1306
 1307 F61C   30 3F                        LEAX  -1,Y
 1308 F61E   BD FDCF                      JSR   OUTXNL  ; Destination adres op nieuwe regel
 1309 F621   A6 3F                        LDA   -1,Y    ; Tweede byte
 1310 F623   8D 07        F62C            BSR   OUTAHB  ; Output byte in Binair, Hex en ASCII
 1311 F625   35 12                        PULS  X,A     ; Restore memory pointers
 1312 F627   BD FE21                      JSR   NEWLINE ; Nieuwe regel
 1313 F62A   20 D9        F605            BRA   CP10
 1314
 1315 F62C   34 02              OUTAHB    PSHS  A
 1316 F62E   BD FDA8                      JSR   OUT2HAS ; Print HEX
 1317 F631   E6 E4                        LDB   ,S
 1318 F633   BD FE04                      JSR   OUTBBIN ; Print binair
 1319 F636   BD FDBC                      JSR   OUTS
 1320 F639   A6 E4                        LDA   ,S
 1321 F63B   BD F985                      JSR   NOPRINT ; Print ASCII
 1322 F63E   BD FE85                      JSR   CHOUTSP
 1323 F641   35 82                        PULS  A,PC
 1324                           *
 1325                           *** Display realtime byte
 1326                           *
 1327 F643   34 16              DISPBYTE  PSHS  D,X
 1328 F645   BD FB3D                      JSR   GET2PARM  ;$ X  Bevat adres
 1329
 1330 F648   86 0DA              DB10      LDA   #CR     ; Naar begin regel
 1331 F64A   BD FE85                      JSR   CHOUTSP ; zonder linefeed
 1332 F64D   BD F142                      JSR   GETESC  ; Break
 1333 F650   A6 84                        LDA   ,X
 1334 F652   8D D8        F62C            BSR   OUTAHB  ; Output byte in Binair, Hex en ASCII
 1335 F654   EC 42                        LDD   2,U     ; Test optie
 1336 F656   27 07        F65F            BEQ   DB20    ; 0 = Wacht op key
 1337
 1338 F658   83 0001            DB15      SUBD  #1      ; Anders delay
 1339 F65B   26 FB        F658            BNE   DB15
 1340 F65D   20 E9        F648            BRA   DB10
 1341
 1342 F65F   BD FD26            DB20      JSR   CHINUP
 1343 F662   20 E4        F648            BRA   DB10
 1344

          BERTMO54   BERTMON9 5.4                      My Assembler (c) Robert Henneke Blad:  26
          Een 6809 monitor (April 2024)                CPU: 6809        2025-10-26 15:11:10  
                                                                                                
 1345                            PAG
 1346                           *** Set, Clear en Test bit
 1347                           *   Operand staat na de call
 1348                           *   JSR BITS
 1349                           *   FCB Operand
 1350                           *   76543210
 1351                           *     aaaaaa Bit adres 0-63
 1352                           *   00          Clear bit
 1353                           *   01          Set bit
 1354                           *   10          Test bit
 1355                           *               Z = 1 Bit is 0
 1356                           *               Z = 0 Bit is 1
 1357                           *
 1358                           *   11..0       manupuleer accu A
 1359                           *   11..1       manupuleer accu B
 1360                           *        aaa    Bitadres binnen accu
 1361                           *
 1362                           *     00        Clear bit
 1363                           *     01        Set bit
 1364                           *     10        ACC.n TO C
 1365                           *     11        C TO ACC.n
 1366
 1367                           ;               0  1 3 5 7
 1368                           ; stackframe:   DP D X U R
 1369                           ;
 1370 F664   34 5E              BITS      PSHS  DP,D,X,U
 1371 F666   AE 67                        LDX   7,S     ; Return adres is adres operand
 1372 F668   A6 80                        LDA   ,X+     ; Laad Operand en
 1373                                                   ; increment returnadres
 1374 F66A   AF 67                        STX   7,S     ; Nieuw return adres op stack
 1375 F66C   1F 8B                        TFR   A,DP    ; Save in DP
 1376 F66E   1F 89                        TFR   A,B     ; en B
 1377
 1378 F670   84 3F                        ANDA  #%00111111 ; bit 0 - 63
 1379 F672   C4 C0                        ANDB  #%11000000 ; Operand
 1380 F674   27 22        F698            BEQ   B10        ; 0 = Clear bit
 1381 F676   C1 40                        CMPB  #%01000000
 1382 F678   27 25        F69F            BEQ   B20        ; 1 = Set bit
 1383 F67A   C1 80                        CMPB  #%10000000
 1384 F67C   27 27        F6A5            BEQ   B30        ; 2 = Test bit
 1385
 1386 F67E   1F 89                        TFR   A,B        ; 3 = Accu bits
 1387 F680   84 08                        ANDA  #%00001000 ; ACCU Select bit
 1388 F682   26 04        F688            BNE   B05
 1389 F684   A6 61                        LDA   1,S        ; Caller ACCA
 1390 F686   20 02        F68A            BRA   B07
 1391 F688   A6 62              B05       LDA   2,S        ; Caller ACCB
 1392
 1393 F68A   C4 30              B07       ANDB  #%00110000 ; Operand
 1394 F68C   27 1D        F6AB            BEQ   B100       ; 0 = Clear bit
 1395 F68E   C1 10                        CMPB  #%00010000
 1396 F690   27 26        F6B8            BEQ   B110       ; 1 = Set bit
 1397 F692   C1 20                        CMPB  #%00100000
 1398 F694   27 2E        F6C4            BEQ   B120       ; 2 = ACC to C
 1399 F696   20 42        F6DA            BRA   B140       ; 3 = C TO ACC
 1400
 1401 F698   8D 51        F6EB  B10       BSR   BIT_MASK ; Clear bit
 1402 F69A   43                           COMA
 1403 F69B   A4 84                        ANDA  ,X
 1404 F69D   20 37        F6D6            BRA   B40
 1405
 1406 F69F   8D 4A        F6EB  B20       BSR   BIT_MASK ; Set bit
 1407 F6A1   AA 84                        ORA   ,X
 1408 F6A3   20 31        F6D6            BRA   B40
 1409
 1410 F6A5   8D 44        F6EB  B30       BSR   BIT_MASK ; Test bit
 1411 F6A7   A4 84                        ANDA  ,X       ; Z = 1 Bit is 0
 1412 F6A9   20 3E        F6E9            BRA   B99      ; Z = 0 Bit is 1

          BERTMO54   BERTMON9 5.4                      My Assembler (c) Robert Henneke Blad:  27
          Een 6809 monitor (April 2024)                CPU: 6809        2025-10-26 15:11:10  
                                                                                                
 1413                            PAG
 1414                           ;                       ; Clear Bit in Accu
 1415 F6AB   1F 89              B100      TFR   A,B     ; Accu A of B in B
 1416 F6AD   1F B8                        TFR   DP,A    ; bitadres binnen Accu
 1417 F6AF   8D 45        F6F6            BSR   BM10X
 1418 F6B1   53                           COMB
 1419 F6B2   34 02                        PSHA
 1420 F6B4   E4 E0                        ANDB  ,S+
 1421 F6B6   20 26        F6DE            BRA   B150    ; Resultaat in B
 1422
 1423                           ;                       ; Set Bit in Accu
 1424 F6B8   1F 89              B110      TFR   A,B     ; Accu A of B in B
 1425 F6BA   1F B8                        TFR   DP,A    ; bitadres binnen Accu
 1426 F6BC   8D 38        F6F6            BSR   BM10X
 1427 F6BE   34 02                        PSHA
 1428 F6C0   EA E0                        ORB   ,S+
 1429 F6C2   20 1A        F6DE            BRA   B150    ; Resultaat in B
 1430
 1431                           ;                       ; Bit in Accu naar C
 1432 F6C4   1F 89              B120      TFR   A,B     ; Accu A of B in B
 1433 F6C6   1F B8                        TFR   DP,A    ; bitadres binnen Accu
 1434 F6C8   8D 2C        F6F6            BSR   BM10X
 1435 F6CA   34 02                        PSHA          ; Z = 1 Bit is 0
 1436 F6CC   E4 E0                        ANDB  ,S+     ; Z = 0 Bit is 1
 1437 F6CE   27 04        F6D4            BEQ   B130
 1438 F6D0   1A 01                        SETC          ; return C
 1439 F6D2   20 15        F6E9            BRA   B99
 1440 F6D4   1C FE              B130      CLRC
 1441
 1442 F6D6   A7 84              B40       STA   ,X       ; Terug in bit array
 1443 F6D8   20 0F        F6E9            BRA   B99
 1444                           ;                       ; C naar Bit in Accu
 1445 F6DA   24 CF        F6AB  B140      BCC   B100    ; C=0 > Clear bit in Accu
 1446 F6DC   20 DA        F6B8            BRA   B110    ; C=1 > Set   bit in Accu
 1447
 1448 F6DE   1F B8              B150      TFR   DP,A
 1449 F6E0   4D                           TSTA  #%00001000
 1450 F6E1   27 04        F6E7            BEQ   B160
 1451 F6E3   E7 62                        STB   2,S     ; Resultaat in Caller B
 1452 F6E5   20 02        F6E9            BRA   B99
 1453
 1454 F6E7   E7 61              B160      STB   1,S     ; Resultaat in Caller A
 1455 F6E9   35 DE              B99       PULS  DP,D,X,U,PC
 1456
 1457 F6EB   1F 89              BIT_MASK  TFR   A,B
 1458 F6ED   C4 38                        ANDB  #%00111000
 1459 F6EF   57                           ASRB  ; / 8
 1460 F6F0   57                           ASRB
 1461 F6F1   57                           ASRB  ; B: 0-7
 1462 F6F2   8E 9F00                      LDX   #BIT_BASE
 1463 F6F5   3A                           ABX   ; X: Adres in bit array
 1464
 1465 F6F6   84 07              BM10X     ANDA  #%00000111 ; A: Bit adres 0-7
 1466 F6F8   CE F6FE                      LDU   #MASK_TAB
 1467 F6FB   A6 C6                        LDA   A,U        ; A: Mask
 1468 F6FD   39                           RTS
 1469
 1470 F6FE   01                 MASK_TAB  FCB   %00000001
 1471 F6FF   02                           FCB   %00000010
 1472 F700   04                           FCB   %00000100
 1473 F701   08                           FCB   %00001000
 1474 F702   10                           FCB   %00010000
 1475 F703   20                           FCB   %00100000
 1476 F704   40                           FCB   %01000000
 1477 F705   80                           FCB   %10000000

          BERTMO54   BERTMON9 5.4                      My Assembler (c) Robert Henneke Blad:  28
          Een 6809 monitor (April 2024)                CPU: 6809        2025-10-26 15:11:10  
                                                                                                
 1478                            PAG
 1479                           *
 1480                           *** Set systeem instellingen
 1481                           *
 1482 F706   8E F720            PUNTCMD   LDX   #JMPTAB
 1483 F709   BD FD26                      JSR   CHINUP
 1484 F7   81 2E                        CMPA  #'.'
 1485 F70E   26 02        F712            BNE   PC10
 1486 F710   86 30                        LDA   #'0'
 1487
 1488 F712   81 30              PC10      CMPA  #'0'
 1489 F714   25 09        F71F            BLO   PC99   ; < 'O'
 1490 F716   81 39                        CMPA  #'9'
 1491 F718   22 05        F71F            BHI   PC99   ; > '9'
 1492 F71A   80 30                        SUBA  #'0'   ; Maak binair
 1493 F71C   48                           ASLA         ;2
 1494 F71D   6E 96                        JMP   [A,X]  ; Voer uit
 1495
 1496 F71F   39                 PC99      RTS
 1497                           *
 1498 F720 F780                 JMPTAB    FDB   PRTHELP
 1499 F722 F734                           FDB   TOGLPAGE
 1500 F724 F73D                           FDB   TOGLHBFL
 1501 F726 F744                           FDB   TOGLASC
 1502 F728 F752                           FDB   SETSYSFL
 1503 F72A F757                           FDB   SETDISFL
 1504 F72C F74D                           FDB   SETDBFL
 1505 F72E F769                           FDB   PAGEDISA
 1506 F730 F764                           FDB   PAGECLRS
 1507 F732 F777                           FDB   SWINMI
 1508
 1509 F734   B6 9FC3            TOGLPAGE  LDA   SYSCNTRL    ; TOGLPAGE: Toggle Page  flag (Syste >
 1510 F737   88 08                        EORA  #%00001000
 1511 F739   B7 9FC3            TOGSYS    STA   SYSCNTRL
 1512 F73C   39                           RTS
 1513
 1514 F73D   B6 9FC3            TOGLHBFL  LDA   SYSCNTRL    ; TOGLHBFL: Toggle HiBit flag (Syste >
 1515 F740   88 80                        EORA  #%10000000
 1516 F742   20 F5        F739            BRA   TOGSYS
 1517
 1518 F744   B6 9FC7            TOGLASC   LDA   DISASMFL    ; TOGLASCI: Toggle ASCII flag (Dissa >
 1519 F747   88 10                        EORA  #%00010000
 1520 F749   B7 9FC7                      STA   DISASMFL
 1521 F74C   39                           RTS
 1522
 1523 F74D   8E 9FC6            SETDBFL   LDX   #DBUGFLGS
 1524 F750   20 08        F75A            BRA   SETOPTIE
 1525
 1526 F752   8E 9FC3            SETSYSFL  LDX   #SYSCNTRL
 1527 F755   20 03        F75A            BRA   SETOPTIE
 1528
 1529 F757   8E 9FC7            SETDISFL  LDX  #DISASMFL
 1530
 1531 F75A   A6 84              SETOPTIE  LDA   ,X
 1532 F75C   BD FA76                      JSR   EDITBIN
 1533 F75F   25 02        F763            BLO   SD99
 1534 F761   A7 84              SD10      STA   ,X
 1535 F763   39                 SD99      RTS
 1536
 1537 F764   8E 9FC5            PAGECLRS  LDX   #LINESCRN
 1538 F767   20 03        F76C            BRA   EDITHEX
 1539
 1540 F769   8E 9FC4            PAGEDISA  LDX   #DISLINPA
 1541
 1542 F76C   A6 84              EDITHEX   LDA   ,X
 1543 F76E   BD FDA8                      JSR   OUT2HAS
 1544 F771   BD F9F4                      JSR   GB18
 1545 F774   A7 84                        STA   ,X
 1546 F776   39                           RTS
 1547
 1548 F777   8E 9FC6            SWINMI    LDX   #DBUGFLGS
 1549 F77A   A6 84                        LDA   ,X
 1550 F77C   8A 80                        ORA   #$80
 1551 F77E   20 E1        F761            BRA   SD10
 1552
 1553 F780   6E 9F 9F94         PRTHELP   JMP   [PCMDHELP]

          BERTMO54   BERTMON9 5.4                      My Assembler (c) Robert Henneke Blad:  29
          Een 6809 monitor (April 2024)                CPU: 6809        2025-10-26 15:11:10  
                                                                                                
 1554                            PAG
 1555 F784   81 10              PDEXIST   CMPA  #$10    ; < $10
 1556 F786   2F 04        F78C            BLE   PE10    ; Geen extenties
 1557 F788   81 1F                        CMPA  #$1F    ; > $1f
 1558 F78A   22 00        F78C            BHI   PE10    ; Geen extenties
 1559
 1560
 1561
 1562 F78C   1A 01              PE10      SEC           ; Geen extenties
 1563 F78E   39                           RTS
 1564                           *
 1565                           *** Nog vrije ruimte voor aanpassingen en uitbreidingen
 1566                           *
 1567                                     RPT    10
 1568 F78F FFFF FFFF FFFF FFFF            FDB   -1,-1,-1,-1
 1569 F797 FFFF FFFF FFFF FFFF            FDB   -1,-1,-1,-1
 1570 F79F FFFF FFFF FFFF FFFF            FDB   -1,-1,-1,-1
 1571 F7A7 FFFF FFFF FFFF FFFF            FDB   -1,-1,-1,-1
 1572 F7AF FFFF FFFF FFFF FFFF            FDB   -1,-1,-1,-1
 1573 F7B7 FFFF FFFF FFFF FFFF            FDB   -1,-1,-1,-1
 1574 F7BF FFFF FFFF FFFF FFFF            FDB   -1,-1,-1,-1
 1575 F7C7 FFFF FFFF FFFF FFFF            FDB   -1,-1,-1,-1
 1576 F7CF FFFF FFFF FFFF FFFF            FDB   -1,-1,-1,-1
 1577 F7D7 FFFF FFFF FFFF FFFF            FDB   -1,-1,-1,-1
 1578                                     RPT    3
 1579 F7DF   FF                           FCB   -1
 1580 F7E0   FF                           FCB   -1
 1581 F7E1   FF                           FCB   -1

          BERTMO54   BERTMON9 5.4                      My Assembler (c) Robert Henneke Blad:  30
          Een 6809 monitor (April 2024)                CPU: 6809        2025-10-26 15:11:10  
                                                                                                
 1582                            PAG
 1583                           **
 1584                     F7E0            ORG   $F7E0
 1585                           *** Extended Monitor routines
 1586                           *
 1587 F7E0 F0DA6                           FDB   PRTPAGE
 1588 F7E2 FB27                           FDB   GET2SEQ
 1589 F7E4 F142                           FDB   GETESC
 1590 F7E6 F664                           FDB   BITS
 1591 F7E8 FFFF                           FDB   -1 ; GETPARM1
 1592 F7EA FFFF                           FDB   DUMMY
 1593 F7EC FFFF                           FDB   DUMMY
 1594 F7EE FFFF                           FDB   DUMMY
 1595 F7F0 FFFF                           FDB   DUMMY
 1596 F7F2 FFFF                           FDB   DUMMY
 1597 F7F4 FFFF                           FDB   DUMMY
 1598
 1599 F7F6 FFFF                           FDB   DUMMY
 1600 F7F8 FFFF                           FDB   DUMMY
 1601 F7FA FFFF                           FDB   DUMMY
 1602 F7FC FFFF                           FDB   DUMMY
 1603 F7FE FF19                           FDB   GETADSYS

          BERTMO54   BERTMON9 5.4                      My Assembler (c) Robert Henneke Blad:  31
          Een 6809 monitor (April 2024)                CPU: 6809        2025-10-26 15:11:10  
                                                                                                
 1604                            PAG
 1605                     F800            ORG   $F800
 1606                     F800  MONCALLS  EQU   *
 1607                           *
 1608                           *** Monitor routines voor extern gebruik
 1609                           *   Deze worden indirect aangeroepen b.v. JSR  [CHAROUT]
 1610                           *     Naam        SVC
 1611 F800 FD90                  FDB  CHAROUT   ; 00 Uitvoer naar standaard uitvoer device
 1612 F802 FE85                  FDB  CHOUTSP   ; 01 Uitvoer character en spatie
 1613 F804 FE21                  FDB  NEWLINE   ; 02 Nieuwe regel: CR,LF, Left spaces en CRDELAY
 1614 F806 FE1D                  FDB  NLPDATA   ; 03 Print Message @X op nieuwe regel
 1615 F808 FE53                  FDB  PDATA     ; 04 Print Message @X
 1616 F80A F962                  FDB  HEADER    ; 05 Print header voor memorydump
 1617 F8 FDB0                  FDB  OUT2HA    ; 06 Out A als 2 hex
 1618 F80E FDA8                  FDB  OUT2HAS   ; 07 Out A als 2 hex en spatie
 1619 F810 FDBA                  FDB  OUT2HS    ; 08 Out byte @X als 2 hex en spatie
 1620 F812 FDAE                  FDB  OUT2HX    ; 09 Out byte @X als 2 hex
 1621 F814 F97B                  FDB  OUT2SP    ; 0A Out 2 spaties
 1622 F816 FDB8                  FDB  OUT4HS    ; 0B Out word @X als 4 hex en spatie
 1623 F818 FDAC                  FDB  OUT4HX    ;  Out word @X als 4 hex
 1624 F81A FE04                  FDB  OUTBBIN   ; 0DA Out B binair
 1625 F81C FE8C                  FDB  OUTBSP    ; 0E Out [B] spaties
 1626 F81E FADB                  FDB  OUTCHDP   ; 0F Out character en dubbele punt
 1627 F820 FDC1                  FDB  OUTCHSP   ; 10 Out character en spatie
 1628 F822 FDA2                  FDB  OUTDH     ; 11 Out D als 4 hex
 1629 F824 FD9E                  FDB  OUTDHS    ; 12 Out D als 4 hex en spatie
 1630 F826 FD82                  FDB  OUTHL     ; 13 Out linker nibble in A
 1631 F828 FD86                  FDB  OUTHR     ; 14 Out rechter nibble in A
 1632 F82A FDCB                  FDB  OUTQ      ; 15 Out vraagteken
 1633 F82C FE87                  FDB  OUTSP     ; 16 Out spatie
 1634 F82E FDC9                  FDB  OUTSPQ    ; 17 Out spatie en vraagteken
 1635 F830 FDC5                  FDB  OUTSPQB   ; 18 Out spatie, vraagteken en beep
 1636 F832 FDD9                  FDB  OUTX      ; 19 Out X als 4 hex
 1637 F834 FDD1                  FDB  OUTXS     ; 1A Out X als 4 hex en spatie
 1638 F836 FDCF                  FDB  OUTXNL    ; 1B Out X als 4 hex op nieuwe regel
 1639 F838 FDE3                  FDB  OUTXDP    ; 1C Out [X] als 4 hex en dubbele punt
 1640 F83A FDE1                  FDB  OUTXFDP   ; 1D Out [X] als 4 hex en dubbele punt op nieuwe >
 1641 F83C FDBF                  FDB  PCOLSP    ; 1E Out dubbele punt en spatie
 1642 F83E F980                  FDB  PNOPRT    ; 1F Out $20 - $7F als ASCII, rest als '.'
 1643 F840 FCAD                  FDB  PRERROR   ; 20 Out RC=x op nieuwe regel (x=[B])
 1644 F842 FFFF                  FDB  DUMMY     ; 21 Idem met adres en inhoud op dat adres
 1645 F844 FE77                  FDB  PROMPT    ; 22 Out '<x> ' op nieuwe regel (x=[A])
 1646 F846 FD98                  FDB  PUTDA     ; 23 Out D als 2 ASCII
 1647 F848 FD94                  FDB  PUTDAS    ; 24 Out D als 2 ASCII en spatie
 1648 F84A FBCD                  FDB  WISCHAR   ; 25 Wis het character op cursor positie
 1649 F84C F99C                  FDB  NEXTPAGE  ; 26 Out '<*>' en wacht op nieuw blad
 1650 F84E F900                  FDB  DUMP      ; 27 Dump memory
 1651 F850 F932                  FDB  DMPREGEL  ; 28 Dump 16 bytes als hex ASCII
 1652 F852 FDF5                  FDB  CLRSCRN   ; 29 Wis scherm
 1653 F854 FE8E                  FDB  OUTBCH    ; 2A Out [B] tekens in A
 1654 F856 F9B4                  FDB  TESTCHAR  ; 2B Test character
 1655 F858 FCEE                  FDB  TESTHEX   ; 2C Test of character hex is
 1656 F85A FD30                  FDB  UPPER     ; 2D Converteer naar uppercase
 1657 F85C F985                  FDB  NOPRINT   ; 2E Converteer niet $20-$7F naar '.'
 1658 F85E FF19                  FDB  GETADSYS  ; 2F Bepaal SYSVIA Adres
 1659 F860 FCE3                  FDB  CHARIN    ; 30 Invoer van standaard invoer device
 1660 F862 FE40                  FDB  CHARGET   ; 31 Character aanwezig lees, anders return 0
 1661 F864 FD26                  FDB  CHINUP    ; 32 Invoer hoofdletter en test escape
 1662 F866 FB43                  FDB  GETPARM   ; 33 Lees [A] parameters in controlblock (@U)
 1663 F868 FD3B                  FDB  GETBBIN   ; 34 Lees binair in B
 1664 F86A F9DA                  FDB  GETBYTE   ; 35 Lees byte (hex, binair of ASCII)
 1665 F86C F9DB                  FDB  GETBYTEP  ; 36 Lees byte met voorkeuze
 1666 F86E FB7C                  FDB  GETWORD   ; 37 Lees word in X
 1667 F870 FB7D                  FDB  GETWORDP  ; 38 Lees word in X met voor keuze
 1668 F872 FAEE                  FDB  KEYIN     ; 39 Edit ASCII Buffer @X lengte [B]
 1669 F874 FAEC                  FDB  KEYIN10   ; 3A Edit ASCII Buffer @X lengte 64
 1670 F876 FAE9                  FDB  KEYINSYS  ; 3B Edit ASCII SYSBUF lengte 64
 1671 F878 FB3B                  FDB  SEAGET2   ; 3C Default eind adres = $FFFF bij twee paramet >
 1672 F87A F9A8                  FDB  ACK1      ; 3D Acknowledge
 1673 F87C FA76                  FDB  EDITBIN   ; 3E Edit Bin in A
 1674 F87E FA0E                  FDB  EDITMEM   ; 3F Edit memory (Opvragen parameters)

          BERTMO54   BERTMON9 5.4                      My Assembler (c) Robert Henneke Blad:  32
          Een 6809 monitor (April 2024)                CPU: 6809        2025-10-26 15:11:10  
                                                                                                
 1675                            PAG
 1676                           *
 1677                           *** Routines die NIET als SVC uitgevoerd mogen worden
 1678                           *
 1679 F880 FF6C                  FDB  MCL       ; Main Command loop
 1680 F882 FF97                  FDB  CMDHDL    ; Command handler
 1681 F884 FB46                  FDB  PGUSR     ; Invullen User tabel
 1682 F886 FFFF                  FDB  DUMMY     ; Reserve
 1683 F888 FE44                  FDB  PRTMSG    ; Print message embedded in Code
 1684 F88A FA1F                  FDB  EDIT2     ; Edit memory (Parameters als opgegeven)
 1685                           *
 1686                           *** Datum / tijd  van Compilatie
 1687                           *
 1688 F88C 5B5A                           FDB   &DATE
 1689 F88E 7965                           FDB   &TIME
 1690                           *#END
 1691                           *
 1692                           *** Default pointers voor Command routine
 1693                           *
 1694 F890 FABF                 MCLDEF    FDB   PUTMDEF
 1695 F892 F95A                           FDB   GETMDEF
 1696 F894 FFFF                           FDB   DUMMY
 1697 F896 FFFF                           FDB   DUMMY

          BERTMO54   BERTMON9 5.4                      My Assembler (c) Robert Henneke Blad:  33
          Een 6809 monitor (April 2024)                CPU: 6809        2025-10-26 15:11:10  
                                                                                                
 1698                            PAG
 1699                           *
 1700                           *** Vectored Jump commando's
 1701                           *
 1702 F898   6E 9F 9FB4         JMPXVECT  JMP   [XVECTOR]
 1703 F89C   6E 9F 9FB2         JMPZVECT  JMP   [ZVECTOR]
 1704                           *
 1705                           *** Logon boodschap
 1706                           *
 1707 F8A0   42 45 52 54 4D 4F  LOGON     FCC   'BERTMON9'
 1708 F8A6   4E 39
 1709 F8A8   2D 35 2E 34                  FCC   '-5.4'  ; Versie
 1710 F8AC   0DA                           FCB   CR
 1711 F8AD   28 63 29 20 52 6F  COPYRIGT  FCC   '(c) Robert Henneke'
 1712 F8B3   62 65 72 74 20 48
 1713 F8B9   65 6E 6E 65 6B 65
 1714 F8BF   87                           FCB   $87     ; EOT en Bell
 1715                           *
 1716                           *** (Monitor) default waarden Systeem RAM
 1717                           *
 1718                     F8C0  DEFWORK   EQU   *
 1719 F8C0   94                           FCB   HI:TRBUFSTA  ; CO | Trace, verify en andere buff >
 1720 F8C1   98                           FCB   HI:TRBUFENX  ; C1 |
 1721 F8C2   00                           FCB   0            ; C2 Newline delay
 1722 F8C3   01                           FCB   1            ; C3 Left (SYSCNTRL)
 1723 F8C4   28                           FCB   40           ; C4 Aantal regels dissassembler
 1724 F8C5   28                           FCB   40           ; C5 Regels per scherm
 1725 F8C6   06                           FCB   $06          ; C6 Debug en SWI
 1726 F8C7   90                           FCB   $90          ; C7 Dissassembler opties
 1727 F8C8   FF                           FCB   DUMMY        ; C8 |
 1728 F8C9   FF                           FCB   DUMMY        ; C9 |
 1729 F8CA   FF                           FCB   DUMMY        ; CA |
 1730 F8CB   FF                           FCB   DUMMY        ; CB | Reserve
 1731 F8CC   FF                           FCB   DUMMY        ; CC |
 1732 F8CD   FF                           FCB   DUMMY        ; CD |
 1733 F8CE   FF                           FCB   DUMMY        ; CE |
 1734 F8CF   FF                           FCB   DUMMY        ; CF |
 1735
 1736 F8D0 FDC5                           FDB   OUTSPQB      ; D0 Fout commando, piep en ?
 1737 F8D2 FFFF                           FDB   DUMMY        ; D2 CRDELAY default dummy
 1738 F8D4 FFFF                           FDB   DUMMY        ; D4 Y Start te testen monitor
 1739 F8D6 FFFF                           FDB   DUMMY        ; D6 Print registers in debugger
 1740 F8D8 FFFF                           FDB   DUMMY        ; D8 Dissassembleer 1 regel
 1741 F8DA 0000                           FDB   0            ; DA Offset bij Load
 1742 F8DC 7FFF                           FDB   MEMTOP       ; DC User Memorytop
 1743 F8DE FF6C                           FDB   MCL          ; DE User NMI
 1744
 1745 F8E0 FF6C                           FDB   MCL          ; E0 Escape vector
 1746 F8E2 FDD9                           FDB   OUTX         ; E2 Out PC bij Print registers
 1747 F8E4 FCA8                           FDB   PUTLOAD      ; E4 PUTLOAD vector
 1748 F8E6 FFFF                           FDB   DUMMY        ; E6 Reserve
 1749 F8E8 F784                           FDB   PDEXIST      ; E8 PDEXIST
 1750 F8EA FE97                           FDB   SEROUTCH     ; EA Out vector
 1751 F8EC FEAE                           FDB   SERINCH      ; EC In  vector
 1752 F8EE FEA5                           FDB   SERGETCH     ; EE Get vector
 1753
 1754 F8F0 FFD7                           FDB   DUMRTI       ; F0 Reserved vector (6809) of trap >
 1755 F8F2 FF6C                           FDB   MCL          ; F2 SWI3
 1756 F8F4 FF6C                           FDB   MCL          ; F4 SWI2
 1757 F8F6 FFD7                           FDB   DUMRTI       ; F6 FIRQ
 1758 F8F8 FFD7                           FDB   DUMRTI       ; F8 IRQ
 1759 F8FA FFFF                           FDB   DUMMY        ; FA SWI
 1760 F8FC FFD7                           FDB   DUMRTI       ; FC NMI
 1761 F8FE FF6C                           FDB   MCL          ; FE SVC ($3E)
 1762                     F900  ENDWORK   EQU   *

          BERTMO54   BERTMON9 5.4                      My Assembler (c) Robert Henneke Blad:  34
          Een 6809 monitor (April 2024)                CPU: 6809        2025-10-26 15:11:10  
                                                                                                
 1763                            PAG
 1764                           $SET TYPE C
 1765                           *
 1766                           *** Dump Memory (bereik in control block)
 1767                           *
 1768 F900   34 76              DUMP      PSHS  A,B,X,Y,U
 1769 F902   20 1B        F91F            BRA   DM10
 1770                           *
 1771                           *** Dump Memory (Geef bereik op)
 1772                           *
 1773 F904   34 76              HEXDUMP   PSHS  A,B,X,Y,U
 1774 F906   BD FE44                      JSR   PRTMSG
 1775 F909   48 65 78 44 75 6D            FCCH  'HexDump'
 1776 F90F   F0
 1777                           ;         FCC   'HexDum'
 1778                           ;         FCB   'p'+128
 1779 F910   C6 01                        LDB   #$01    ; invoer
 1780 F912   AD 9F 9FA4                   JSR   [MEMTYPE]
 1781 F916   BD FB3B                      JSR   SEAGET2   ; X is startadres
 1782 F919   1E 01                        EXG   D,X
 1783 F91B   C4 F0                        ANDB  #%11110000 ; Wis low nibble
 1784 F91D   1E 01                        EXG   D,X        ; AAA0
 1785
 1786 F91F   8D 41        F962  DM10      BSR   HEADER
 1787
 1788 F921   8D 0F        F932  DM20      BSR   DMPREGEL
 1789 F923   AC 42                        CMPX  ENDADR,U
 1790 F925   24 09        F930            BCC   DM90     ; Einde bereikt of overschreden
 1791 F927   1F 10                        TFR   X,D
 1792 F929   5D                           TSTB           ; Page bereikt ?
 1793 F92A   26 F5        F921            BNE   DM20     ; Volgende regel
 1794 F92C   8D 6E        F99C            BSR   NEXTPAGE
 1795 F92E   20 EF        F91F            BRA   DM10     ; Volgende page
 1796
 1797 F930   35 F6              DM90      PULS  A,B,X,Y,U,PC
 1798
 1799 F932   86 10              DMPREGEL  LDA   #16      ; 16 bytes @X
 1800 F934   34 02                        PSHS  A        ; Teller (16) op stack
 1801 F936   BD FDE1                      JSR   OUTXFDP  ; Print aaaa: op nieuwe regel
 1802 F939   1F 12                        TFR   X,Y      ; Bewaar adres voor ASCII
 1803
 1804 F93B   8D 19        F956  DM30      BSR   GETMEM   ; Lees byte
 1805 F93D   BD FDA8                      JSR   OUT2HAS
 1806 F940   6A E4                        DEC   ,S       ; Decrement byte teller
 1807 F942   26 F7        F93B            BNE   DM30
 1808
 1809 F944   1F 21                        TFR   Y,X      ; Restore adres
 1810 F946   86 10                        LDA   #16
 1811 F948   A7 E4                        STA   ,S       ; Reset teller op 16
 1812 F94A   8D 2F        F97B            BSR   OUT2SP
 1813
 1814 F94C   8D 08        F956  DM40      BSR   GETMEM   ; Lees byte en verhoog pointer
 1815 F94E   8D 30        F980            BSR   PNOPRT
 1816 F950   6A E4                        DEC   ,S       ; Decrement byte teller
 1817 F952   26 F8        F94C            BNE   DM40
 1818
 1819 F954   35 82                        PULS  A,PC     ; Delete teller
 1820                                                    ; en return
 1821                           *
 1822                           *** GETBYTE: Lees Memory of via vector (I2C)
 1823                           *
 1824 F956   6E 9F 9F7A         GETMEM    JMP   [VECTGETM]
 1825
 1826 F95A   A6 80              GETMDEF   LDA   ,X+
 1827 F95C   39                           RTS
 1828                           *
 1829                           *** Dummy lees/schrijf (altijd $FF/Not EQ)
 1830                           *
 1831 F95D   30 01              GETDUMMY  LEAX  1,X
 1832 F95F   86 FF              PUTDUMMY  LDA   #$FF
 1833 F961   39                           RTS

          BERTMO54   BERTMON9 5.4                      My Assembler (c) Robert Henneke Blad:  35
          Een 6809 monitor (April 2024)                CPU: 6809        2025-10-26 15:11:10  
                                                                                                
 1834                            PAG
 1835                           *
 1836                           *** Print header
 1837                           *
 1838 F962   34 06              HEADER    PSHS  A,B
 1839 F964   BD FE21                      JSR   NEWLINE
 1840 F967   C6 06                        LDB   #6
 1841 F969   BD FE8C                      JSR   OUTBSP
 1842 F96C   5F                           CLRB
 1843 F96D   1F 98              H10       TFR   B,A
 1844 F96F   BD FD86                      JSR   OUTHR
 1845 F972   8D 07        F97B            BSR   OUT2SP
 1846 F974   5C                           INCB
 1847 F975   C1 10                        CMPB  #16
 1848 F977   26 F4        F96D            BNE   H10
 1849 F979   35 86                        PULS  A,B,PC
 1850
 1851 F97B   8D 00        F97D  OUT2SP    BSR   XOUTSP
 1852 F97D   7E FE87            XOUTSP    JMP   OUTSP
 1853                           *
 1854                           ***  Print Unprintable characters
 1855                           ***  ASCII (Printbaar) of '.' (< $20 of >$7F)
 1856                           *
 1857 F980   8D 03        F985  PNOPRT    BSR   NOPRINT
 1858 F982   7E FD90                      JMP   CHAROUT
 1859                           *
 1860                           *** Converteer [A] 20h - 7Fh onveranderd Rest '.'
 1861                           * Bij SYSCNTRL.7=1 Print 7 bits ASCCI
 1862                           *
 1863 F985   81 20              NOPRINT   CMPA  #SPACE   ; Niet printbaar naar '.'
 1864 F987   25 10        F999            BCS   NOP8     ; < 20h   --> '.'
 1865 F989   81 7F                        CMPA  #$7F     ; $20-$7F
 1866 F98B   25 0E        F99B  NOP2      BCS   NOP9     ; ASCII normaal afdrukken
 1867
 1868 F98D   7D 9FC3                      TST   SYSCNTRL ; bit7 aan ?
 1869 F990   2A 07        F999            BPL   NOP8     ; nee, print '.'
 1870 F992   84 7F                        ANDA  #$7F     ; Ja, Wis high bit
 1871 F994   81 20                        CMPA  #SPACE   ; Niet printbaar naar '.'
 1872 F996   25 01        F999            BCS   NOP8     ; $80-$9F --> '`'
 1873 F998   39                           RTS
 1874
 1875 F999   86 2E              NOP8      LDA   #'.'
 1876 F99B   39                 NOP9      RTS
 1877                           *
 1878                           ***  Wacht na afdruk blad
 1879                           *
 1880 F99C   B6 9FC3            NEXTPAGE  LDA   SYSCNTRL
 1881 F99F   85 08                        BITA  #%00001000   ; Test A.3
 1882 F9A1   26         F9AF            BNE   ACK9         ; Clear: Wacht op blad
 1883                           *
 1884                           ***  Acknowledge
 1885                           ***  CR is doorgaan
 1886                           ***  ESC is einde
 1887                           *
 1888 F9A3   86 2A              ACK       LDA   #'*'     ; Prompt <*> _
 1889 F9A5   BD FE77                      JSR  PROMPT
 1890
 1891 F9A8   BD FD26            ACK1      JSR   CHINUP   ; Escape is einde
 1892 F9AB   81 0DA                        CMPA  #CR      ; Enter is doorgaan
 1893 F9AD   26 F9        F9A8            BNE   ACK1     ; Negeer rest
 1894 F9AF   39                 ACK9      RTS
 1895                           *
 1896                           *** User start
 1897                           *
 1898 F9B0   6E 9F 9FB0         JMPQVECT  JMP   [QVECTOR]

          BERTMO54   BERTMON9 5.4                      My Assembler (c) Robert Henneke Blad:  36
          Een 6809 monitor (April 2024)                CPU: 6809        2025-10-26 15:11:10  
                                                                                                
 1899                            PAG
 1900                           *
 1901                           *** Routines voor EDIT
 1902                           *
 1903 F9B4   C6 FF              TESTCHAR  LDB   #$FF
 1904 F9B6   5C                 TC10      INCB
 1905 F9B7   A1 84                        CMPA  ,X
 1906 F9B9   27 07        F9C2            BEQ   TC30
 1907 F9BB   6D 80                        TST   ,X+      ; einde tabel
 1908 F9BD   26 F7        F9B6            BNE   TC10
 1909 F9BF   1C FE              TC15      CLC            ; Niet gevonden
 1910 F9C1   39                           RTS
 1911
 1912 F9C2   1A 01              TC30      SEC
 1913 F9C4   39                           RTS
 1914
 1915 F9C5   0DA 20 53 4C 52     CHARTAB   FCB   CR,Space,'S','L','R'
 1916 F9CA   25 7E                        FCB   '%','~'
 1917 F9CC   00                           FCB   0
 1918
 1919 F9CD   BD FD26            GHEX8     JSR   CHINUP
 1920 F9D0   34 10                        PSHS  X
 1921 F9D2   8E F9C5                      LDX   #CHARTAB
 1922 F9D5   8D DD        F9B4            BSR   TESTCHAR
 1923 F9D7   35 10                        PULS  X
 1924 F9D9   39                           RTS
 1925                           *
 1926                           **** Get byte in hex, binair of ASCII
 1927                           *
 1928 F9DA   4F                 GETBYTE   CLRA
 1929 F9DB   4D                 GETBYTEP  TSTA
 1930 F9DC   27 16        F9F4            BEQ   GB18
 1931 F9DE   81 27                        CMPA  #quote
 1932 F9E0   26 24        FA06            BNE   GB20
 1933 F9E2   BD FD90                      JSR   CHAROUT
 1934
 1935 F9E5   BD FCE3            GB10      JSR   CHARIN
 1936 F9E8   BD FD90                      JSR   CHAROUT
 1937 F9EB   81 1B              GB12      CMPA  #Escape
 1938 F9ED   26 03        F9F2            BNE   GB14
 1939 F9EF   C6 01                        LDB   #1
 1940 F9F1   39                           RTS
 1941
 1942 F9F2   5F                 GB14      CLRB
 1943 F9F3   39                 GB99      RTS
 1944
 1945 F9F4   BD FD30            GB18      JSR   UPPER
 1946 F9F7   34 10                        PSHS  X        ; Get waarde
 1947 F9F9   BD FB7D                      JSR   GETWORDP
 1948 F9FC   34 10                        PSHS  X        ; Verkregen waarde op stack
 1949 F9FE   1F 89                        TFR   A,B      ; Returncode in B
 1950 FA00   A6 61                        LDA   1,S      ; Low byte   in A
 1951 FA02   35 10                        PULS  X        ; Restore stack
 1952 FA04   35 90                        PULS  X,PC     ; en return
 1953
 1954 FA06   81 25              GB20      CMPA  #'%'
 1955 FA08   26 EA        F9F4            BNE   GB18
 1956 FA0A   8D 71        FA7D            BSR   EB10
 1957 FA   20 DD        F9EB            BRA   GB12

          BERTMO54   BERTMON9 5.4                      My Assembler (c) Robert Henneke Blad:  37
          Een 6809 monitor (April 2024)                CPU: 6809        2025-10-26 15:11:10  
                                                                                                
 1958                            PAG
 1959                           *
 1960                           **** Edit memory commando -  Subcommando's
 1961                           *       Escape  Einde commando  (Return naar Monitor)
 1962                           *       '~'     Soft escape     (Return naar Caller)
 1963                           *       Enter   Volgend adres
 1964                           *       Space   Vorig adres
 1965                           *       'S'     Enter string    (max 64)
 1966                           *       Quote   Enter ASCII (byte)
 1967                           *       '%'     Bekijk en invoer binair
 1968                           *       hex     Edit in hex
 1969                           *       'R'     Bereken  8 bits offset
 1970                           *       'L'     Bereken 16 bits offset
 1971                           *
 1972 FA0E   BD FE44            EDITMEM   JSR   PRTMSG
 1973 FA11   45 64 69 F4                  FCCH  'Edit'
 1974                           ;         FCC   'Edi'
 1975                           ;         FCB   't'+128
 1976 FA15   5F                           CLRB            ; Bepaal memory type
 1977 FA16   AD 9F 9FA4                   JSR   [MEMTYPE] ; Invoer gelijk aan uitvoer
 1978 FA1A   BD FB37                      JSR   GET1PARM
 1979 FA1D   AE 40                        LDX   STARTADR,U
 1980
 1981 FA1F   BD FDE1            EDIT2     JSR   OUTXFDP   ; Output adres 0000: . FF
 1982 FA22   BD F956                      JSR   GETMEM    ; Lees byte en verhoog pointer
 1983 FA25   30 1F                        LEAX  -1,X      ; pointer blijft op current adres
 1984 FA27   34 02                        PSHS  A         ; Gevolgd door
 1985 FA29   BD F980                      JSR   PNOPRT    ; Inhoud in ASCII
 1986 FA2C   BD FE87                      JSR   OUTSP     ; 1 spatie
 1987 FA2F   35 02                        PULS  A         ; en inhoud
 1988 FA31   BD FDA8                      JSR   OUT2HAS   ; in HEX
 1989 FA34   8D 97        F9CD            BSR   GHEX8     ; Eerste toets
 1990 FA36   25 14        FA4C            BCS   EDIT3     ; Edit commando
 1991 FA38   8D A1        F9DB            BSR   GETBYTEP  ; Input byte
 1992 FA3A   C1 02                        CMPB  #2        ; Geen invoer
 1993 FA3C   27 30        FA6E            BEQ   EDIT5     ; Dan volgend adres
 1994
 1995 FA3E   8D 7B        FABB  EDIT2A    BSR   PUTMEM    ; Verander memory
 1996 FA40   27 2C        FA6E            BEQ   EDIT5     ; Gelijk aan invoer, volgende opnieuw
 1997 FA42   BD FDC5                      JSR   OUTSPQB   ; Ongelijk NOK: ? Piep
 1998 FA45   A6 84                        LDA   ,X
 1999 FA47   BD FDB0                      JSR   OUT2HA    ; en display werkelijke waarde
 2000 FA4A   20 D3        FA1F            BRA   EDIT2     ; Opnieuw zelfde adres
 2001
 2002 FA4C   81 7E              EDIT3     CMPA  #'~'      ; Soft escape
 2003 FA4E   27 A3        F9F3            BEQ   GB99
 2004 FA50   81 53                        CMPA  #'S'      ; 'S' is string invoer
 2005 FA52   26 0A        FA5E            BNE   EDIT4
 2006 FA54   86 3E                        LDA   #'>'
 2007 FA56   BD FDC1                      JSR   OUTCHSP
 2008 FA59   BD FAEC                      JSR   KEYIN10   ; Zet max 64 tekens in memory
 2009 FA5C   20 C1        FA1F            BRA   EDIT2     ; Opnieuw bij 64 of CR
 2010
 2011 FA5E   81 20              EDIT4     CMPA  #Space
 2012 FA60   27 10        FA72            BEQ   EDIT7     ; Spatie is vorige
 2013 FA62   81 52                        CMPA  #'R'
 2014 FA64   27 36        FA9C            BEQ   EDIT8     ; 'R' 8 bits  offset
 2015 FA66   81 4C                        CMPA  #'L'
 2016 FA68   27 5A        FAC4            BEQ   EDIT9     ; 'L' 16 bits offset
 2017 FA6A   81 25                        CMPA  #'%'
 2018 FA6C   27 23        FA91            BEQ   EDIT10    ; '%' Binair display en invoer
 2019 FA6E   30 01              EDIT5     INX             ; CR is volgende entry
 2020 FA70   20 AD        FA1F            BRA   EDIT2
 2021 FA72   30 1F              EDIT7     DEX             ; Spatie is vorige entry
 2022 FA74   20 A9        FA1F  EDIT7A    BRA   EDIT2

          BERTMO54   BERTMON9 5.4                      My Assembler (c) Robert Henneke Blad:  38
          Een 6809 monitor (April 2024)                CPU: 6809        2025-10-26 15:11:10  
                                                                                                
 2023                            PAG
 2024 FA76   1F 89              EDITBIN   TFR   A,B
 2025 FA78   BD FE04                      JSR   OUTBBIN  ; Display binair
 2026 FA7B   86 25                        LDA   #'%'
 2027 FA7D   BD FD90            EB10      JSR   CHAROUT
 2028 FA80   BD FD3B                      JSR   GETBBIN  ; Edit binair
 2029 FA83   34 01                        PSHS  CC       ; Save escape bit
 2030 FA85   BD FE87                      JSR   OUTSP
 2031 FA88   1F 98                        TFR   B,A      ; Resutaat in A
 2032 FA8A   BD FDB0                      JSR   OUT2HA   ; Display in hex
 2033 FA8D   1F 98                        TFR   B,A      ; Restore resutaat,
 2034 FA8F   35 81                        PULS  CC,PC    ; escape bit en return
 2035                           *
 2036                           *** Display en edit in binair
 2037                           *
 2038 FA91   BD F956            EDIT10    JSR   GETMEM
 2039 FA94   30 1F                        LEAX  -1,X
 2040 FA96   8D DE        FA76            BSR   EDITBIN
 2041 FA98   25 DA        FA74            BCS   EDIT7A   ; Escape geen vervanging
 2042 FA9A   20 A2        FA3E  XEDIT2A   BRA   EDIT2A   ; Vervang waarde
 2043                           *
 2044                           *** Bereken 8 bits offset
 2045                           *
 2046 FA9C   8D 3D        FADB  EDIT8     BSR   OUTCHDP
 2047 FA9E   34 10                        PSHS  X        ; Zet current adres op stack
 2048 FAA0   BD FB7C                      JSR   GETWORD  ; Enter doel adres
 2049 FAA3   30 1F                        LEAX  -1,X
 2050 FAA5   1F 10                        TFR   X,D      ; Bereken offset
 2051 FAA7   A3 E4                        SUBD  ,S
 2052 FAA9   1E 89                        EXG   A,B
 2053 FAAB   35 10                        PULS  X
 2054 FAAD   34 02                        PSHS  A
 2055 FAAF   49                           ROLA
 2056 FAB0   C9 00                        ADCB  #0       ; Binnen 8 bit bereik ?
 2057 FAB2   35 02                        PULS  A
 2058 FAB4   27 2D        FAE3            BEQ   EDIT8B   ; Ja
 2059 FAB6   BD FDC5                      JSR   OUTSPQB  ; NOK ? Piep
 2060 FAB9   20 B9        FA74  XEDIT2    BRA   EDIT7A
 2061                           *
 2062                           *** PUTBYTE: Schrijf via vector
 2063                           *
 2064
 2065 FABB   6E 9F 9F78         PUTMEM    JMP   [VECTPUTM]
 2066 FABF   A7 84              PUTMDEF   STA   ,X      ; Zet in memory
 2067 FAC1   A1 84                        CMPA  ,X      ; en compare
 2068 FAC3   39                           RTS
 2069                           *
 2070                           *** Bereken 16 bits offset
 2071                           *
 2072 FAC4   8D 15        FADB  EDIT9     BSR   OUTCHDP
 2073 FAC6   34 10                        PSHS  X        ; Zet current adres op stack
 2074 FAC8   BD FB7C                      JSR   GETWORD  ; Enter doel adres
 2075 FACB   30 1E                        LEAX  -2,X
 2076 FACD   1F 10                        TFR   X,D      ; Bereken offset
 2077 FACF   A3 E4                        SUBD  ,S
 2078 FAD1   35 10                        PULS  X
 2079 FAD3   8D E6        FABB            BSR   PUTMEM   ; A in memory
 2080 FAD5   30 01                        LEAX  1,X
 2081 FAD7   1F 98                        TFR   B,A
 2082 FAD9   20 08        FAE3            BRA   EDIT8B   ; B in memory en return
 2083
 2084 FADB   BD FD90            OUTCHDP   JSR   CHAROUT
 2085 FADE   86 3A                        LDA   #':'
 2086 FAE0   7E FE85                      JMP   CHOUTSP
 2087
 2088 FAE3   8D D6        FABB  EDIT8B    BSR   PUTMEM
 2089 FAE5   30 01                        LEAX  1,X
 2090 FAE7   20 D0        FAB9            BRA   XEDIT2

          BERTMO54   BERTMON9 5.4                      My Assembler (c) Robert Henneke Blad:  39
          Een 6809 monitor (April 2024)                CPU: 6809        2025-10-26 15:11:10  
                                                                                                
 2091                            PAG
 2092                           ; ********************************************
 2093                           ;DN KEYIN
 2094                           ;D  Edit ASCII Buffer
 2095                           ;D  In:  X  Adres buffer
 2096                           ;D       B  Max aantal tekens
 2097                           ;D  Uit: B  Aantal tekens
 2098                            ; ********************************************
 2099 FAE9   8E 9940            KEYINSYS  LDX   #SYSBUF
 2100 FAEC   C6 40              KEYIN10   LDB   #64
 2101 FAEE   34 04              KEYIN     PSHS  B         ; Plaats voor character teller
 2102 FAF0   4F                 KEY0      CLRA
 2103 FAF1   A7 E4                        STA   ,S        ; Init character teller
 2104 FAF3   BD FCE3            KEY1      JSR   CHARIN
 2105 FAF6   81 0DA                        CMPA  #CR
 2106 FAF8   27 2A        FB24            BEQ   KEY8
 2107 FAFA   81 1B              KEY2      CMPA  #Escape
 2108 FAFC   26 04        FB02            BNE   KEY3
 2109 FAFE   1A 01                        SEC
 2110 FB00   20 22        FB24            BRA   KEY8
 2111
 2112 FB02   81 08              KEY3      CMPA  #BS
 2113 FB04   26 0DA        FB13            BNE   KEY4
 2114 FB06   A6 E4                        LDA   ,S        ; Chars in buffer
 2115 FB08   27 E9        FAF3            BEQ   KEY1      ; Geen, negeer backspace
 2116 FB0A   BD FBCD                      JSR   WISCHAR   ; Wis teken op scherm
 2117 FB0DA   6A E4                        DEC   ,S        ; Cursor pos terug
 2118 FB0F   30 1F                        DEX
 2119 FB11   20 E0        FAF3            BRA   KEY1
 2120
 2121 FB13   81 20              KEY4      CMPA  #$20
 2122 FB15   25 DC        FAF3            BLO   KEY1      ; Skip CChars
 2123
 2124 FB17   BD FD90                      JSR   CHAROUT   ; Zet op scherm
 2125 FB1A   A7 80                        STA   ,X+       ; en in buffer
 2126 FB1C   6C E4                        INC   ,S        ; aantal tekens verhogen
 2127 FB1E   E1 E4                        CMPB  ,S        ; Char teller vergelijken met max char
 2128 FB20   26 D1        FAF3            BNE   KEY1      ; Past nog
 2129
 2130 FB22   1C FE                        CLC
 2131 FB24   35 04              KEY8      PULS  B         ; B: Aantal characters
 2132 FB26   39                 KEY9      RTS

          BERTMO54   BERTMON9 5.4                      My Assembler (c) Robert Henneke Blad:  40
          Een 6809 monitor (April 2024)                CPU: 6809        2025-10-26 15:11:10  
                                                                                                
 2133                            PAG
 2134                           *
 2135                           ** ALS P2 < P1, P2=$FFFF
 2136                           *
 2137 FB27   8D 14        FB3D  GET2SEQ   BSR   GET2PARM
 2138 FB29   AC 42                        CMPX  2,U     ; Vergelijk eerste met tweede parm
 2139 FB2B   23 F9        FB26            BLS   KEY9    ; P1 < P2 IS OK
 2140 FB2D   34 06              PARM2HV   PSHS  D
 2141 FB2F   CC FFFF                      LDD   #$FFFF  ; anders tot einde
 2142 FB32   FD 9F22                      STD   CONTRBLK+2
 2143 FB35   35 86                        PULS  D,PC
 2144                           *
 2145                           *** Laad controlblock met 1,2 of 3 16b parameter
 2146                           *
 2147 FB37   86 01              GET1PARM  LDA   #1
 2148 FB39   20 08        FB43            BRA   GETPARM
 2149
 2150 FB3B   8D F0        FB2D  SEAGET2   BSR   PARM2HV    ; Default tot einde
 2151
 2152 FB3D   86 02              GET2PARM  LDA   #2
 2153 FB3F   20 02        FB43            BRA   GETPARM
 2154
 2155 FB41   86 03              GET3PARM  LDA   #3
 2156
 2157                           *  Display en verander parameter/vector blok
 2158                           *  U: Pointer in parameter blok
 2159                           *  A: Aantal 16b parms (max 8)
 2160                           *  Bij ander controlblok gebruik PGUSR
 2161                           *  waarbij U wijst naar controlblok
 2162 FB43   CE 9F20            GETPARM   LDU   #CONTRBLK
 2163 FB46   34 02              PGUSR     PSHS  A        ; Aantal op stack
 2164 FB48   86 30                        LDA   #'0'     ; Volgnummer
 2165 FB4A   34 02                        PSHS  A        ;  op stack
 2166 FB4C   6C E4              GP1       INC   ,S
 2167 FB4E   A6 E4                        LDA   ,S
 2168 FB50   BD FE77                      JSR   PROMPT
 2169 FB53   EC C4                        LDD   ,U       ; Waarde in CB
 2170 FB55   BD FD9E                      JSR   OUTDHS   ; Display als default
 2171 FB58   8D 22        FB7C            BSR   GETWORD  ; Lees woord
 2172 FB5A   81 01                        CMPA  #1       ; Spatie,
 2173 FB5C   27         FB6A            BEQ   GP5      ; voortiJdig einde
 2174 FB5E   81 02                        CMPA  #2       ; CR zonder invoer
 2175 FB60   27 02        FB64            BEQ   GP2      ; Gebruik default
 2176 FB62   AF C4                        STX   ,U       ; Gebruik ingeven waarde
 2177 FB64   33 42              GP2       LEAU  2,U      ; Volgende entry
 2178 FB66   6A 61                        DEC   1,S      ; Decrement aantal
 2179 FB68   26 E2        FB4C            BNE   GP1      ; en volgende entry
 2180 FB6A   BD F9A3            GP5       JSR   ACK      ; Wacht op toestemming
 2181 FB6D   32 62                        LEAS  2,S      ; Restore stack
 2182 FB6F   CE 9F20                      LDU   #CONTRBLK
 2183 FB72   AE C4                        LDX   ,U       ; X is eerste parameter
 2184 FB74   39                 GP9       RTS            ; CR is OK
 2185                           *
 2186                           *** GOTO Commando
 2187                           *
 2188 FB75   8D C0        FB37  GOTO      BSR   GET1PARM
 2189 FB77   BF 9FB2                      STX   ZVECTOR
 2190 FB7A   6E 84                        JMP   ,X

          BERTMO54   BERTMON9 5.4                      My Assembler (c) Robert Henneke Blad:  41
          Een 6809 monitor (April 2024)                CPU: 6809        2025-10-26 15:11:10  
                                                                                                
 2191                            PAG
 2192                           *
 2193                           ****  Lees word in X
 2194                           *  Einde bij 4 geldige hex tekens
 2195                           *  CR is einde (ook bij minder 4 chars)
 2196                           *  Space einde (Soft escape)
 2197                           *       ; Escape is einde
 2198                           *  A=2 : CR zonder invoer
 2199                           *  A=1 : Einde door spatie
 2200                           *  A=0 : Woord in X
 2201                           *
 2202 FB7C   4F                 GETWORD   CLRA             ; Default zonder eerste character
 2203 FB7D   34 04              GETWORDP  PSHS  B
 2204 FB7F   8E 0000                      LDX   #0
 2205 FB82   C6 04                        LDB   #4         ; Max aantal cijfers
 2206 FB84   4D                           TSTA
 2207 FB85   26 26        FBAD            BNE   INW06      ; Er is een previous character
 2208
 2209 FB87   BD FD26            INW01     JSR   CHINUP     ; Escape is einde
 2210
 2211 FB8A   81 08              INW03     CMPA  #BS        ; Backspace
 2212 FB8C   26 0B        FB99            BNE   INW05      ; Nee
 2213 FB8E   C1 04                        CMPB  #4         ; Is er invoer
 2214 FB90   27 F5        FB87            BEQ   INW01      ; Nee, begin opnieuw
 2215
 2216 FB92   8D 39        FBCD  INW04     BSR   WISCHAR    ; Wis teken op scherm
 2217 FB94   8D 3E        FBD4            BSR   DIGRIGHT   ; Schuif resultaat 4 bits terug,
 2218 FB96   5C                           INCB             ; verhoog teken teller
 2219 FB97   20 EE        FB87            BRA   INW01      ; en verwerk nieuwe invoer
 2220
 2221 FB99   81 0DA              INW05     CMPA  #CR        ; CR
 2222 FB9B   26 08        FBA5            BNE   INW05A
 2223 FB9D   C1 04                        CMPB  #4         ; Einde
 2224 FB9F   26 29        FBCA            BNE   INW07      ; Return wat er is
 2225 FBA1   86 02                        LDA   #2         ; Indiceer geen invoer
 2226 FBA3   20 26        FBCB  INW05B    BRA   INW08      ; Return
 2227
 2228 FBA5   81 20              INW05A    CMPA  #SPACE     ; Spatie
 2229 FBA7   26 04        FBAD            BNE   INW06
 2230 FBA9   86 01                        LDA   #1         ; Einde door spatie
 2231 FBAB   20 F6        FBA3            BRA   INW05B     ; Return 0000
 2232
 2233 FBAD   BD FCEE            INW06     JSR   TESTHEX    ; 00 - 0F
 2234 FBB0   25 D5        FB87            BCS   INW01      ; Fout, Opnieuw
 2235 FBB2   34 02                        PSHS  A
 2236 FBB4   BD FD86                      JSR   OUTHR      ; Echo hex character
 2237 FBB7   35 02                        PULS  A
 2238 FBB9   8D 29        FBE4            BSR   DIGLEFT    ; Schuif resultaat 4 bits naar links
 2239 FBBB   34 04                        PSHS  B          ; Save digit teller
 2240 FBBD   34 02                        PSHS  A          ; Laatste cijfer op stack
 2241 FBBF   1E 01                        EXG   D,X        ; Word in D
 2242 FBC1   EA E0                        ORB   ,S+        ; invoegen in resultaat
 2243 FBC3   1E 01                        EXG   D,X        ; Word  weer in X
 2244 FBC5   35 04                        PULS  B          ; Digit teller
 2245 FBC7   5A                           DECB             ; volgend cijfer bij < 4
 2246 FBC8   26 BD        FB87            BNE   INW01      ; anders klaar
 2247 FBCA   4F                 INW07     CLRA             ; Woord in X
 2248 FBCB   35 84              INW08     PULS  PC,B
 2249

          BERTMO54   BERTMON9 5.4                      My Assembler (c) Robert Henneke Blad:  42
          Een 6809 monitor (April 2024)                CPU: 6809        2025-10-26 15:11:10  
                                                                                                
 2250                            PAG
 2251                           *
 2252                           ***  Wis character op terminal op cursor positie
 2253                           *
 2254 FBCD   BD FE44            WISCHAR   JSR   PRTMSG
 2255 FBD0   08 20 88                     FCB   BS,Space,BSH
 2256 FBD3   39                           RTS
 2257                           *
 2258                           ***  Schuif word in X 1 digit naar rechts
 2259                           *
 2260 FBD4   34 06              DIGRIGHT  PSHS  D
 2261 FBD6   1E 01                        EXG   D,X      ; Word in D
 2262 FBD8   44                           LSRA
 2263 FBD9   56                           RORB
 2264 FBDA   44                           LSRA
 2265 FBDB   56                           RORB
 2266 FBDC   44                           LSRA
 2267 FBDD   56                           RORB
 2268 FBDE   44                           LSRA
 2269 FBDF   56                           RORB
 2270 FBE0   1E 01              DR10      EXG   D,X      ; Word weer in X
 2271 FBE2   35 86                        PULS  PC,D
 2272                           *
 2273                           ***  Schuif word in X 1 digit naar links
 2274                           *
 2275 FBE4   34 06              DIGLEFT   PSHS  D
 2276 FBE6   1E 01                        EXG   D,X      ; Word in D
 2277 FBE8   58                           LSLB
 2278 FBE9   49                           ROLA
 2279 FBEA   58                           LSLB
 2280 FBEB   49                           ROLA
 2281 FBEC   58                           LSLB
 2282 FBED   49                           ROLA
 2283 FBEE   58                           LSLB
 2284 FBEF   49                           ROLA
 2285 FBF0   20 EE        FBE0            BRA   DR10

          BERTMO54   BERTMON9 5.4                      My Assembler (c) Robert Henneke Blad:  43
          Een 6809 monitor (April 2024)                CPU: 6809        2025-10-26 15:11:10  
                                                                                                
 2286                            PAG
 2287                           *
 2288                           ***** Laad MIKBUG TAPE
 2289                           *
 2290 FBF2   BD FE44            LOAD      JSR   PRTMSG    ; Start message
 2291 FBF5   4C 6F 61 64                  FCC   'Load'
 2292 FBF9   8D                           FCB   CRH
 2293 FBFA   34 46              LOAD00    PSHS  D,U
 2294 FBFC   32 7E                        LEAS  -2,S      ; Count en error flags
 2295 FBFE   1F 43                        TFR   S,U       ; op stack
 2296 FC00   6F 40                        CLR   0,U       ; Clear error flags
 2297 FC02   86 40              LOAD0     LDA   #64
 2298 FC04   A7 41                        STA   1,U       ; '>' teller
 2299 FC06   86 3E              LOAD1     LDA   #'>'
 2300 FC08   BD FD90                      JSR   CHAROUT   ; Display voortgangs indicator
 2301 FC0B   6A 41                        DEC   1,U       ; Max 64
 2302 FC0DA   26 0A        FC19            BNE   LOAD2
 2303 FC0F   BD FDED                      JSR   DOCRLF    ; Daarna nieuwe regel
 2304 FC12   BD FE87                      JSR   OUTSP
 2305 FC15   86 40                        LDA   #64
 2306 FC17   A7 41                        STA   1,U
 2307
 2308 FC19   BD FCE3            LOAD2     JSR   CHARIN    ; Input character
 2309 FC1C   81 53                        CMPA  #'S'      ; 'S' Start van een record
 2310 FC1E   26 F9        FC19            BNE   LOAD2     ; Geen 'S' record probeer opnieuw
 2311 FC20   BD FCE3                      JSR   CHARIN    ; Character na 'S' (0,1,9)
 2312 FC23   81 31                        CMPA  #'1'      ; '1' is Data record
 2313 FC25   27 13        FC3A            BEQ   LOAD05    ; Verwerk
 2314 FC27   81 39                        CMPA  #'9'      ; '9' is einde Hex-file
 2315 FC29   27 53        FC7E            BEQ   LOAD30    ; Dus afwerken
 2316 FC2B   81 30                        CMPA  #'0'      ; '0' is Label record
 2317 FC2D   27 06        FC35            BEQ   LOAD4     ; Verwerk label
 2318 FC2F   AD 9F 9FA0                   JSR   [TESTSX]  ; Test overige Sx records
 2319 FC33   20 CD        FC02            BRA   LOAD0     ; Volgend record
 2320
 2321 FC35   BD FD06            LOAD4     JSR   LABEL     ; Lees en dispay S0 Label record
 2322 FC38   20 C8        FC02            BRA   LOAD0     ; Volgend record
 2323
 2324 FC3A   BD FCC5            LOAD05    JSR   BYTE      ; Byte teller
 2325 FC3D   34 02                        PSHS  A         ; op Stack
 2326 FC3F   8D 78        FCB9            BSR   INADRES   ; Destination adres in X
 2327 FC41   34 10                        PSHS  X         ; op Stack voor checksum bepaling
 2328 FC43   E6 E0                        LDB   ,S+       ; MSB adres in B voor checksum bepalin >
 2329 FC45   EB E0                        ADDB  ,S+       ; LSB adres optellen bij checksum
 2330 FC47   34 06                        PSHS  D
 2331 FC49   FC 9FDA                      LDD   OFFSET    ; Tel offset op bij adres
 2332 FC4C   30 8B                        LEAX  D,X       ; van hexfile
 2333 FC4E   35 06                        PULS  D
 2334 FC50   EB E4                        ADDB  ,S        ; Byte optellen bij checksum
 2335 FC52   6A E4                        DEC   ,S        ; Bytecount verminderen
 2336 FC54   6A E4                        DEC   ,S        ; met lengte adres
 2337 FC56   34 04              LOAD10    PSHS  B         ; Byte count op stack
 2338 FC58   8D 6B        FCC5            BSR   BYTE      ; Lees databyte (2 Hex chars)
 2339 FC5A   35 04                        PULS  B         ; Checksum naar B
 2340 FC5C   34 02                        PSHS  A         ; Databyte via stack
 2341 FC5E   EB E0                        ADDB  ,S+       ; Optellen bij checksum en verwijder d >
 2342 FC60   6A E4                        DEC   ,S        ; Verlaag Bytecount
 2343 FC62   27 0E        FC72            BEQ   LOAD16    ; Alle bytes verwerkt, Test checksum
 2344 FC64   AD 9F 9FE4                   JSR   [PUTBLOAD]  ; Zet databyte in geheugen
 2345 FC68   27 EC        FC56            BEQ   LOAD10    ; Gelijk, volgend data byte
 2346 FC6A   A6 C4                        LDA   ,U
 2347 FC6C   8A 01                        ORA   #$01      ; Set Memory  error bit
 2348 FC6E   A7 C4                        STA   ,U
 2349 FC70   20 E4        FC56            BRA   LOAD10    ; en volgend data byte

          BERTMO54   BERTMON9 5.4                      My Assembler (c) Robert Henneke Blad:  44
          Een 6809 monitor (April 2024)                CPU: 6809        2025-10-26 15:11:10  
                                                                                                
 2350                            PAG
 2351 FC72   35 02              LOAD16    PULS  A         ; Corrigeer stack, verwijder byte coun >
 2352                                                     ; Checksum OK?
 2353 FC74   27 90        FC06            BEQ   LOAD1     ; Ja volgende regel
 2354 FC76   A6 C4                        LDA   ,U        ; Set checksum error bit
 2355 FC78   8A 02                        ORA   #$02
 2356 FC7A   A7 C4                        STA   ,U
 2357 FC7C   20 88        FC06            BRA   LOAD1     ; Volgende regel
 2358                           *
 2359                           *** Verwerk einde
 2360                           *                         ; Verwerk S9 record (start adres)
 2361 FC7E   8D 45        FCC5  LOAD30    BSR   BYTE      ; Byte teller
 2362 FC80   81 03                        CMPA  #3        ; Is er een start adres  ?
 2363 FC82   26 0A        FC8E            BNE   LOAD35    ; Nee
 2364 FC84   8D 33        FCB9            BSR   INADRES   ; Start adres in X
 2365 FC86   8C 0000                      CMPX  #0        ; 0000 is geen start adres
 2366 FC89   27 03        FC8E            BEQ   LOAD35    ; Dan aleen LOAD
 2367 FC8B   BF 9FB6                      STX   VECTRUN   ; Set RUN vector
 2368
 2369 FC8E   86 3E              LOAD35    LDA   #'>'
 2370 FC90   BD FD90                      JSR   CHAROUT   ; Meldt laatste record ontvangen
 2371 FC93   E6 C4                        LDB   ,U        ; Returncode
 2372 FC95   26 04        FC9B            BNE   LOAD40
 2373 FC97   8D 08        FCA1            BSR   PRTOK     ; 0 is OK
 2374 FC99   20 02        FC9D            BRA   LOAD50
 2375 FC9B   8D 10        FCAD  LOAD40    BSR   PRERROR   ; Display returncode
 2376 FC9D   32 62              LOAD50    LEAS  2,S
 2377 FC9F   35 C6                        PULS  D,U,PC
 2378                           *
 2379                           *** Print OK
 2380                           *
 2381 FCA1   BD FE44            PRTOK     JSR   PRTMSG  ; Er zijn geen verschillen
 2382 FCA4   0DA                           FCB   CR
 2383 FCA5   4F                           FCC   'O'     ; OK
 2384 FCA6   CB                           FCB    $4B+HiBit
 2385 FCA7   39                           RTS
 2386                           *
 2387                           * Put data in memory
 2388                           *
 2389 FCA8   A7 84              PUTLOAD   STA   ,X
 2390 FCAA   A1 80                        CMPA  ,X+
 2391 FCAC   39                           RTS
 2392                           *
 2393                           *** Print RC=[B]
 2394                           *
 2395 FCAD   BD FE44            PRERROR   JSR   PRTMSG
 2396 FCB0   0DA                           FCB   CR
 2397 FCB1   52 43                        FCC  'RC'      ; RC=
 2398 FCB3   BD                           FCB   $3D+HiBit
 2399 FCB4   1F 98                        TFR   B,A
 2400 FCB6   7E FDA8                      JMP   OUT2HAS
 2401                           *
 2402                           *** Input adres (4 hex chars)
 2403                           *
 2404 FCB9   8D 0A        FCC5  INADRES   BSR   BYTE     ; Input byte (2 hex chars)
 2405 FCBB   1F 01                        TFR   D,X      ; naar X (high)
 2406 FCBD   8D 06        FCC5            BSR   BYTE     ; Input byte (2 hex chars)
 2407 FCBF   34 10                        PSHS  X        ; Gebruik stack als werkveld
 2408 FCC1   A7 61                        STA   1,S      ; Tweede byte naar X (low)
 2409 FCC3   35 90                        PULS  PC,X     ; Adres in X en return
 2410                           *
 2411                           *** Input byte (2 hex chars)
 2412                           *
 2413 FCC5   8D 0B        FCD2  BYTE      BSR   INHEX    ; Get hex links
 2414 FCC7   48                           ASLA
 2415 FCC8   48                           ASLA
 2416 FCC9   48                           ASLA           ; Schuif naar linker nibble
 2417 FCCA   48                           ASLA
 2418 FCCB   34 02                        PSHS  A        ; Zet Hex (links) op stack
 2419 FCCD   8D 03        FCD2            BSR   INHEX    ; Get hex rechts
 2420 FCCF   AB E0                        ADDA  ,S+      ; Voeg links & rechts samen
 2421 FCD1   39                 LOAD99    RTS            ; Hex in A

          BERTMO54   BERTMON9 5.4                      My Assembler (c) Robert Henneke Blad:  45
          Een 6809 monitor (April 2024)                CPU: 6809        2025-10-26 15:11:10  
                                                                                                
 2422                            PAG
 2423                           *
 2424                           *** Input hex char
 2425                           *
 2426 FCD2   8D 0F        FCE3  INHEX     BSR   CHARIN    ; Lees char (nibble)
 2427 FCD4   8D 5A        FD30            BSR   UPPER
 2428 FCD6   8D 16        FCEE            BSR   TESTHEX
 2429 FCD8   24 08        FCE2            BCC   INHX9     ; Hex is OK
 2430 FCDA   A6 C4                        LDA   ,U
 2431 FCDC   8A 04                        ORA   #$04      ; Set hex error bit
 2432 FCDE   A7 C4                        STA   ,U
 2433 FCE0   20 F0        FCD2            BRA   INHEX
 2434 FCE2   39                 INHX9     RTS
 2435                           *
 2436                           *** Input character
 2437                           *
 2438 FCE3   BD FE40            CHARIN    JSR   CHARGET
 2439 FCE6   26 FA        FCE2            BNE   INHX9
 2440 FCE8   AD 9F 9FB8         CI10      JSR   [VTIMESHR] ; Voer tijdens het wachten
 2441 FCEC   20 F5        FCE3            BRA   CHARIN     ; de timeshare uit
 2442                           *
 2443                           *** Test of char 0..9 A..F
 2444                           *
 2445 FCEE   80 30              TESTHEX   SUBA  #'0'
 2446 FCF0   2B 11        FD03            BMI   HEXFOUT  ; <  0, geen hex
 2447 FCF2   81 09                        CMPA  #9
 2448 FCF4   23 0A        FD00            BLS   HEXOK    ; =< 9, hex OK
 2449 FCF6   80 07                        SUBA  #7       ; Converteer A - F
 2450 FCF8   81 09                        CMPA  #9
 2451 FCFA   23 07        FD03            BLS   HEXFOUT  ; < 'A', Geen hex
 2452 FCFC   81 0F                        CMPA  #$0F
 2453 FCFE   22 03        FD03            BHI   HEXFOUT  ; > 'F', Geen hex
 2454 FD00   1C FE              HEXOK     CLC
 2455 FD02   39                           RTS            ; Hex OK
 2456 FD03   1A 01              HEXFOUT   SEC
 2457 FD05   39                           RTS            ; Hex Fout
 2458                           *
 2459                           *** Lees en display S0 Label
 2460                           *
 2461 FD06   8E 9940            LABEL     LDX   #SYSBUF  ; Adres label buffer
 2462 FD09   C6 3F                        LDB   #63      ; Max 63 + CR
 2463 FD0B   8D D6        FCE3  L10       BSR   CHARIN   ; Lees teken
 2464 FD0DA   81 0DA                        CMPA  #CR      ; Einde label
 2465 FD0F   27 0B        FD1C            BEQ   L30
 2466 FD11   A7 80                        STA   ,X+      ; in buffer
 2467 FD13   5A                           DECB           ; Buffer vol ?
 2468 FD14   26 F5        FD0B            BNE   L10      ; Nee
 2469
 2470 FD16   8D CB        FCE3  L20       BSR   CHARIN   ; Skip rest record
 2471 FD18   81 0DA                        CMPA  #CR      ; bij meer dan
 2472 FD1A   26 FA        FD16            BNE   L20      ; 64 tekens
 2473
 2474 FD1C   86 8D              L30       LDA   #CRH     ; Afsluiten buffer
 2475 FD1E   A7 84                        STA   ,X
 2476 FD20   8E 9940                      LDX   #SYSBUF  ; Adres label buffer
 2477 FD23   7E FE1D                      JMP   NLPDATA  ; Label op nieuw regel
 2478
 2479                           *
 2480                           *** Invoer van hoofdletter met escape
 2481                           *
 2482 FD26   8D BB        FCE3  CHINUP    BSR   CHARIN
 2483 FD28   81 1B                        CMPA  #Escape
 2484 FD2A   26 04        FD30            BNE   UPPER
 2485 FD2C   6E 9F 9FE0                   JMP   [ESCVECT]

          BERTMO54   BERTMON9 5.4                      My Assembler (c) Robert Henneke Blad:  46
          Een 6809 monitor (April 2024)                CPU: 6809        2025-10-26 15:11:10  
                                                                                                
 2486                            PAG
 2487                           *
 2488                           *** Converteer character in A naar uppercase
 2489                           *
 2490 FD30   81 61              UPPER     CMPA  #'a'
 2491 FD32   25 06        FD3A            BCS   UP9          ; Geen conversie bij < 'a'
 2492 FD34   81 7A                        CMPA  #'z'
 2493 FD36   22 02        FD3A            BHI   UP9          ; Geen conversie bij > 'z'
 2494 FD38   84 DF                        ANDA  #%11011111   ; Wis lower case bit
 2495 FD3A   39                 UP9       RTS
 2496                           *
 2497                           *** GETBBIN Lees binair in B
 2498                           *
 2499 FD3B   34 02              GETBBIN   PSHS  A
 2500 FD3D   C6 08                        LDB   #8       ; 8 bits per byte
 2501 FD3F   34 04                        PSHS  B        ; Teller op stack
 2502 FD41   5F                           CLRB           ; Default resultaat is 0
 2503
 2504 FD42   8D 9F        FCE3  GBB10     BSR   CHARIN   ; Input '0', '1', Escape, BS of CR
 2505 FD44   34 02                        PSHS  A
 2506 FD46   A6 61                        LDA   1,S      ; Bit teller
 2507 FD48   35 02                        PULS  A        ; zijn er al 8 bits binnen ?
 2508 FD4A   27 10        FD5C            BEQ   GBB30    ; bevestigen, ontkennen of corrigeren
 2509
 2510 FD4C   81 30              GBB20     CMPA  #'0'     ; Invoer '0', of '1'
 2511 FD4E   27 04        FD54            BEQ   GBB25
 2512 FD50   81 31                        CMPA  #'1'
 2513 FD52   26 08        FD5C            BNE   GBB30
 2514
 2515 FD54   8D 3A        FD90  GBB25     BSR   CHAROUT  ; Echo '0' of '1'
 2516 FD56   46                           RORA           ; Low bit in carry
 2517 FD57   59                           ROLB           ; Schuif in byte
 2518 FD58   6A E4                        DEC   ,S       ; Volgend bit
 2519 FD5A   20 E6        FD42            BRA   GBB10
 2520
 2521 FD5C   81 08              GBB30     CMPA  #BS
 2522 FD5E   26 10        FD70            BNE   GBB35
 2523 FD60   A6 E4                        LDA   ,S       ; Bit teller
 2524 FD62   81 08                        CMPA  #8       ; eerste heeft geen voorganger
 2525 FD64   27 DC        FD42            BEQ   GBB10    ; dus opnieuw
 2526
 2527 FD66   1C FE                        CLC            ; Verwijder vorig bit
 2528 FD68   56                           RORB
 2529 FD69   BD FBCD                      JSR   WISCHAR  ; Verwijder vorig character
 2530 FD6C   6C E4                        INC   ,S       ; Vorig bit
 2531 FD6E   20 D2        FD42            BRA   GBB10    ; en opnieuw
 2532
 2533 FD70   81 0DA              GBB35     CMPA  #CR      ; CR is einde, gebruik wat er is
 2534 FD72   27 08        FD7C            BEQ   GBB40
 2535 FD74   81 1B                        CMPA  #Escape  ; Escape is einde
 2536 FD76   26 CA        FD42            BNE   GBB10    ; Negeer rest
 2537 FD78   1A 01                        SEC            ; met C=1 (geen invoer)
 2538 FD7A   20 02        FD7E            BRA   GBB45
 2539
 2540 FD7C   1C FE              GBB40     CLC            ; C=0 is OK
 2541 FD7E   32 61              GBB45     INS            ; Verwijder teller
 2542 FD80   35 82                        PULS  A,PC     ; Restore A en return

          BERTMO54   BERTMON9 5.4                      My Assembler (c) Robert Henneke Blad:  47
          Een 6809 monitor (April 2024)                CPU: 6809        2025-10-26 15:11:10  
                                                                                                
 2543                            PAG
 2544                           *
 2545                           *** Output routines
 2546                           *
 2547 FD82   44                 OUTHL     LSRA           ; Out hex left
 2548 FD83   44                           LSRA
 2549 FD84   44                           LSRA
 2550 FD85   44                           LSRA
 2551
 2552 FD86   84 0F              OUTHR     ANDA  #$0F     ; Out hex right
 2553 FD88   8B 30                        ADDA  #'0'
 2554 FD8A   81 39                        CMPA  #'9'
 2555 FD8C   23 02        FD90            BLS   CHAROUT
 2556 FD8E   8B 07                        ADDA  #7
 2557 FD90   6E 9F 9FEA         CHAROUT   JMP   [VCHAROUT]
 2558
 2559 FD94   8D 02        FD98  PUTDAS    BSR   PUTDA    ; Print D als 2 ASCII
 2560 FD96   20 24        FDBC            BRA   OUTS     ; en spatie
 2561
 2562 FD98   8D F6        FD90  PUTDA     BSR   CHAROUT  ; Print D als 2 ASCII
 2563 FD9A   1F 98                        TFR   B,A
 2564 FD9C   20 F2        FD90            BRA   CHAROUT
 2565
 2566 FD9E   8D 02        FDA2  OUTDHS    BSR   OUTDH    ; Print D als 4 hex
 2567 FDA0   20 1A        FDBC            BRA   OUTS     ; en spatie
 2568
 2569 FDA2   8D         FDB0  OUTDH     BSR   OUT2HA   ; Print D als 4 hex
 2570 FDA4   1F 98                        TFR   B,A
 2571 FDA6   20 08        FDB0            BRA   OUT2HA
 2572
 2573 FDA8   8D 06        FDB0  OUT2HAS   BSR   OUT2HA   ; Print A als 2 hex
 2574 FDAA   20 10        FDBC            BRA   OUTS     ; en spatie
 2575
 2576 FDAC   8D 00        FDAE  OUT4HX    BSR   OUT2HX   ; Print word @X als 4 hex chars
 2577 FDAE   A6 80              OUT2HX    LDA   ,X+      ; Print byte @X als 2 hex chars
 2578 FDB0   34 02              OUT2HA    PSHS  A        ; Print A als 2 hex
 2579 FDB2   8D CE        FD82            BSR   OUTHL    ; Print links
 2580 FDB4   35 02                        PULS  A
 2581 FDB6   20 CE        FD86            BRA   OUTHR    ; Print rechts
 2582                           *                        ; en return
 2583
 2584 FDB8   8D F4        FDAE  OUT4HS    BSR   OUT2HX   ; Print 4 byte in hex
 2585 FDBA   8D F2        FDAE  OUT2HS    BSR   OUT2HX   ; Print 2 byte in hex
 2586 FDBC   7E FE87            OUTS      JMP   OUTSP    ; en spatie
 2587
 2588 FDBF   86 3A              PCOLSP    LDA   #':'
 2589 FDC1   8D CD        FD90  OUTCHSP   BSR   CHAROUT
 2590 FDC3   20 F7        FDBC            BRA   OUTS
 2591
 2592 FDC5   86 07              OUTSPQB   LDA   #7
 2593 FDC7   8D C7        FD90            BSR   CHAROUT
 2594
 2595 FDC9   8D F1        FDBC  OUTSPQ    BSR   OUTS     ; Print ' ? '
 2596 FDCB   86 3F              OUTQ      LDA   #'?'     ; Print ? en spatie
 2597 FDCD   20 F2        FDC1            BRA   OUTCHSP
 2598
 2599 FDCF   8D 50        FE21  OUTXNL    BSR   NEWLINE
 2600 FDD1   34 12              OUTXS     PSHS  X,A
 2601 FDD3   8D 04        FDD9            BSR   OUTX
 2602 FDD5   8D E5        FDBC            BSR   OUTS
 2603 FDD7   35 92                        PULS  PC,X,A
 2604
 2605 FDD9   34 12              OUTX      PSHS  X,A
 2606 FDDB   30 61                        LEAX  1,S
 2607 FDDD   8D CD        FDAC            BSR   OUT4HX
 2608 FDDF   35 92                        PULS  PC,X,A

          BERTMO54   BERTMON9 5.4                      My Assembler (c) Robert Henneke Blad:  48
          Een 6809 monitor (April 2024)                CPU: 6809        2025-10-26 15:11:10  
                                                                                                
 2609                            PAG
 2610 FDE1   8D 3E        FE21  OUTXFDP   BSR   NEWLINE
 2611 FDE3   34 12              OUTXDP    PSHS  X,A
 2612 FDE5   30 61                        LEAX  1,S
 2613 FDE7   8D C3        FDAC            BSR   OUT4HX
 2614 FDE9   8D D4        FDBF            BSR   PCOLSP
 2615 FDEB   35 92                        PULS  PC,X,A
 2616
 2617 FDED   86 0DA              DOCRLF    LDA   #CR
 2618 FDEF   8D 02        FDF3            BSR   YCHOUT
 2619 FDF1   86 0A                        LDA   #LF
 2620 FDF3   20 9B        FD90  YCHOUT    BRA   CHAROUT
 2621                           *
 2622                           *** Wis het scherm
 2623                           *
 2624 FDF5   F6 9FC5            CLRSCRN   LDB   LINESCRN
 2625 FDF8   27 06        FE00            BEQ   FORMFEED
 2626 FDFA   8D F1        FDED  CS10      BSR   DOCRLF
 2627 FDFC   5A                           DECB
 2628 FDFD   26 FB        FDFA            BNE   CS10
 2629 FDFF   39                           RTS
 2630
 2631 FE00   86               FORMFEED  LDA   #FF
 2632 FE02   20 EF        FDF3            BRA   YCHOUT
 2633                           *
 2634                           *** Print B binair ' 1010 0011 '
 2635                           *
 2636 FE04   8D 04        FE0A  OUTBBIN   BSR   OB10     ; High nibble
 2637 FE06   8D 02        FE0A            BSR   OB10     ; Low  nibble
 2638 FE08   20 7D        FE87            BRA   OUTSP
 2639
 2640 FE0A   8D 7B        FE87  OB10      BSR   OUTSP
 2641 FE   86 04                        LDA   #4
 2642 FE0E   34 02                        PSHS  A
 2643 FE10   4F                 OB20      CLRA
 2644 FE11   58                           ASLB
 2645 FE12   49                           ROLA
 2646 FE13   8A 30                        ORA   #'0'
 2647 FE15   8D DC        FDF3            BSR   YCHOUT
 2648 FE17   6A E4                        DEC   ,S
 2649 FE19   26 F5        FE10            BNE   OB20
 2650 FE1B   35 82                        PULS  PC,A
 2651                           *
 2652                           ***  Print Message op nieuwe regel
 2653                           *
 2654 FE1D   8D 02        FE21  NLPDATA   BSR   NEWLINE
 2655 FE1F   20 32        FE53            BRA   PDATA
 2656                           *
 2657                           *** NEWLINE
 2658                           *   Print CRLF en [LEFT] spaces
 2659                           *
 2660 FE21   34 06              NEWLINE   PSHS  A,B
 2661 FE23   8D C8        FDED            BSR   DOCRLF
 2662 FE25   AD 9F 9FD2                   JSR   [CRDELAY] ; Wacht (voor meelezen)
 2663 FE29   F6 9FC3            NL20      LDB   SYSCNTRL  ; linker spaties
 2664 FE2C   C4 07                        ANDB  #7        ; Maximaal 7
 2665 FE2E   27 02        FE32            BEQ   NL30      ; 0 is geen spaties
 2666 FE30   8D 5A        FE8C            BSR   OUTBSP
 2667                           *** Test op char (wait) of escape
 2668 FE32   8D         FE40  NL30      BSR   CHARGET
 2669 FE34   27 08        FE3E            BEQ   NL90      ; Geen char in, Doorgaan
 2670 FE36   8D 5C        FE94            BSR   XCHARIN
 2671 FE38   81 20                        CMPA  #$20      ; Spatie Wacht
 2672 FE3A   26 02        FE3E            BNE   NL90
 2673 FE3C   8D 56        FE94            BSR   XCHARIN
 2674 FE3E   35 86              NL90      PULS  A,B,PC
 2675
 2676 FE40   6E 9F 9FEE         CHARGET   JMP   [VCHARGET]

          BERTMO54   BERTMON9 5.4                      My Assembler (c) Robert Henneke Blad:  49
          Een 6809 monitor (April 2024)                CPU: 6809        2025-10-26 15:11:10  
                                                                                                
 2677                            PAG
 2678                           *
 2679                           ***  Print Message (text embedded in code)
 2680                           *
 2681 FE44   34 10              PRTMSG    PSHS  X
 2682 FE46   AE 62                        LDX   2,S      ; Return adres is adres string
 2683 FE48   8D 09        FE53            BSR   PDATA    ; Display string
 2684 FE4A   AF 62                        STX   2,S      ; X bevat adres na string
 2685 FE4C   35 10                        PULS  X        ; en dat is het return adres
 2686 FE4E   39                 EINDE     RTS
 2687
 2688 FE4F   A6 80              PD30      LDA   ,X+      ; Volgend character
 2689 FE51   8D 36        FE89  PD40      BSR   XCHOUT   ; Schrijf teken na $7F
 2690                           *
 2691                           *** Print string @X tot 00, 04 of t/m HiBit
 2692                           *
 2693 FE53   A6 80              PDATA     LDA   ,X+       ; Volgend character
 2694 FE55   27 F7        FE4E            BEQ   EINDE     ; 00 is einde
 2695 FE57   2B 16        FE6F            BMI   PD20      ; High bit gezet
 2696 FE59   81 04                        CMPA  #EOT      ; 04 is
 2697 FE5B   27 F1        FE4E            BEQ   EINDE     ; MIKBUG einde
 2698 FE5D   AD 9F F784                   JSR   [PDEXIST] ; Voer extenties uit          ;$1
 2699 FE61   25 F0        FE53            BCS   PDATA     ; volgend teken string        ;$1
 2700                                                     ; Ga verder met current teken ;$1
 2701 FE63   81 7F                        CMPA  #$7F      ;
 2702 FE65   27 E8        FE4F            BEQ   PD30      ; print character na $7F
 2703 FE67   81 0DA                        CMPA  #$0DA      ; CR
 2704 FE69   26 E6        FE51            BNE   PD40      ; Print rest
 2705 FE6B   8D B4        FE21  PD10      BSR   NEWLINE   ; CR, LF en left spaces
 2706 FE6D   20 E4        FE53            BRA   PDATA     ; en print de nieuwe regel
 2707
 2708 FE6F   84 7F              PD20      ANDA  #$7F     ; Strip high bit
 2709 FE71   81 0DA                        CMPA  #$0DA     ; Test CR
 2710 FE73   27 AC        FE21            BEQ   NEWLINE  ; Verwerk CR en klaar
 2711 FE75   20 12        FE89            BRA   XCHOUT   ; Print en klaar
 2712                           *
 2713                           *** Print prompt  <M> _  (M het teken in A)
 2714                           *
 2715 FE77   34 02              PROMPT    PSHS  A
 2716 FE79   8D A6        FE21            BSR   NEWLINE  ; Prompt op een nieuwe regel
 2717 FE7B   86 3C                        LDA   #'<'     ; <M> _ (M het teken in A)
 2718 FE7D   8D 0A        FE89            BSR   XCHOUT
 2719 FE7F   35 02                        PULS  A
 2720 FE81   8D 06        FE89            BSR   XCHOUT
 2721 FE83   86 3E                        LDA   #'>'
 2722                           *
 2723                           *** Print character en spatie
 2724                           *
 2725 FE85   8D 02        FE89  CHOUTSP   BSR   XCHOUT   ; Output char in A en spatie
 2726
 2727 FE87   86 20              OUTSP     LDA   #Space   ; Output een spatie
 2728 FE89   7E FD90            XCHOUT    JMP   CHAROUT
 2729
 2730 FE8C   86 20              OUTBSP    LDA   #Space    ; Print [B] spaties
 2731                     FE8E  OUTBCH    EQU   *
 2732 FE8E   8D F9        FE89  OBS10     BSR   XCHOUT    ; Print [B] tekens in A
 2733 FE90   5A                           DECB
 2734 FE91   26 FB        FE8E            BNE   OBS10
 2735 FE93   39                 OBS99     RTS
 2736
 2737 FE94   7E FD26            XCHARIN   JMP   CHINUP

          BERTMO54   BERTMON9 5.4                      My Assembler (c) Robert Henneke Blad:  50
          Een 6809 monitor (April 2024)                CPU: 6809        2025-10-26 15:11:10  
                                                                                                
 2738                            PAG
 2739                           *
 2740                           **** Schrijf de USART
 2741                           *
 2742 FE97   34 04              SEROUTCH  PSHS  B
 2743 FE99   F6 BE01            OS10      LDB   STTREG   ; Transmitter leeg ?
 2744 FE9C   C5 01                        BITB  #$01
 2745 FE9E   27 F9        FE99            BEQ   OS10     ; Nee, Wacht
 2746 FEA0   B7 BE00                      STA   THREG    ; Verstuur byte in A
 2747 FEA3   35 84                        PULS  PC,B
 2748                           *
 2749                           *** Test of er een character binnen is
 2750                           *
 2751 FEA5   B6 BE01            SERGETCH  LDA   STTREG
 2752 FEA8   85 02                        BITA  #$02     ; Ontvang register leeg ?
 2753 FEAA   26 06        FEB2            BNE   IS20     ; Nee, lees USART
 2754 FEAC   4F                           CLRA           ; Geen char, Return 0
 2755 FEAD   39                           RTS            ; BEQ (Z=1) geen char
 2756                           *
 2757                           **** Lees de USART
 2758                           *
 2759                     FEAE  SERINCH   EQU   *
 2760 FEAE   8D F5        FEA5  IS10      BSR   SERGETCH    ; Ontvang register leeg ?
 2761 FEB0   27 FC        FEAE            BEQ   IS10        ; Ja, Wacht
 2762 FEB2   B6 BE00            IS20      LDA   RHREG       ; Laad ontvangen byte
 2763 FEB5   39                           RTS               ; BNE (Z=0) char binnen
 2764
 2765                           *
 2766                           *** Initieer de USART
 2767                           *
 2768 FEB6   8E BE00            SERINIT   LDX    #USART          ; Basisadres USART
 2769 FEB9   86 08                        LDA    #%0001000
 2770 FEBB   A7 03                        STA    CMDREG-USART,X  ; Disable USART
 2771 FEBD   A6 03                        LDA    CMDREG-USART,X  ; Reset USART pointers
 2772 FEBF   86 4E                        LDA    #MR1            ; Vul USART registers
 2773 FEC1   A7 02                        STA    MDREG1-USART,X
 2774 FEC3   86 7E                        LDA    #MR2
 2775 FEC5   A7 02                        STA    MDREG2-USART,X
 2776 FEC7   86 15                        LDA    #CMD
 2777 FEC9   A7 03                        STA    CMDREG-USART,X
 2778 FECB   84 EF                        ANDA   #%11101111
 2779 FECD   A7 03                        STA    CMDREG-USART,X  ; Enable USART
 2780 FECF   39                           RTS
 2781                           *
 2782                           *** Invullen MCL Pointers
 2783                           *
 2784 FED0   34 56              INITMCL   PSHS  D,X,U
 2785 FED2   CE F890                      LDU   #MCLDEF
 2786 FED5   8E 9F78                      LDX   #MCLPTRS
 2787 FED8   C6 08                        LDB   #WPEND-MCLPTRS
 2788 FEDA   20 1A        FEF6            BRA   MP10
 2789                           *
 2790                           *** Vul het system RAM met default waarden
 2791                           *
 2792 FEDC   34 56              INITRAM   PSHS  D,X,U
 2793 FEDE   8E 9C00                      LDX   #SYSRAM
 2794 FEE1   6F C0              IR10      CLR   ,U+     ; $00
 2795 FEE3   8C 9F80                      CMPX  #WSEND+1
 2796 FEE6   26 F9        FEE1            BNE   IR10
 2797
 2798 FEE8   86 FF                        LDA   #$FF    ; $FF
 2799 FEEA   A7 80              IR20      STA   ,X+
 2800 FEEC   8C 9FC0                      CMPX  #BERTWORK
 2801 FEEF   26 F9        FEEA            BNE   IR20
 2802                           *
 2803                           *** Vul de default vectoren
 2804                           *
 2805 FEF1   CE F8C0                      LDU   #DEFWORK
 2806 FEF4   C6 40                        LDB   #ENDWORK-DEFWORK
 2807
 2808 FEF6   A6 C0              MP10      LDA   ,U+ ; Move [B] bytes UX naar @X
 2809 FEF8   A7 80                        STA   ,X+
 2810 FEFA   5A                           DECB
 2811 FEFB   26 F9        FEF6            BNE   MP10
 2812 FEFD   35 D6                        PULS  D,X,U,PC
 2813
 2814 FEFF   FF                           FCB   $FF

          BERTMO54   BERTMON9 5.4                      My Assembler (c) Robert Henneke Blad:  51
          Een 6809 monitor (April 2024)                CPU: 6809        2025-10-26 15:11:10  
                                                                                                
 2815                            PAG
 2816 FF00   6E 9F 9FF0         JMPRESV   JMP   [VECTRES]  ; 6809 Undefiend, 6309 Error trap
 2817 FF04   6E 9F 9FFE         SVCVECT   JMP   [VECTSVC]
 2818 FF08   6E 9F 9FB6         RUN       JMP   [VECTRUN]
 2819                           *
 2820                           *** Knipoog Rood, Rode LED 1 Sec aan
 2821                           *
 2822 FF   8D 0B        FF19  KO_ROOD   BSR   GETADSYS
 2823 FF0E   86 EE                        LDA   #%11101110 ; CB2 hoog, CB1 H2L, CA2 hoog, CA1 H2 >
 2824 FF10   A7 2C                        STA   PCR,Y      ; Rood aan   Break   Keyb AL   Keyb ? >
 2825 FF12   8D 15        FF29            BSR   DELKO      ; Laat LED Rood 1 Sec aan
 2826 FF14   86 CE              CLR_ROOD  LDA   #%11001110 ; LED uit, Rest onveranderd
 2827 FF16   A7 2C                        STA   PCR,Y
 2828 FF18   39                 DUMCMD    RTS
 2829                           *
 2830                           *** Get adres SYSVIA in Y
 2831                           *       afhankelijk van systeem
 2832                           *
 2833 FF19 108E BC00            GETADSYS  LDY   #$BC00  ; BEM3:SYSVIA, BEM4:Memory
 2834 FF1D   A6 28                        LDA   T2CL,Y  ; Low byte counter
 2835 FF1F   A0 28                        SUBA  T2CL,Y  ; BEM3: A <> 5, BEM4: A = 0
 2836 FF21   26 04        FF27            BNE   GAS10   ; NE: BEM3
 2837 FF23 108E BFF0                      LDY   #$BFF0  ; EQ: BEM4
 2838 FF27   4D                 GAS10     TSTA
 2839 FF28   39                           RTS
 2840
 2841 FF29   34 10              DELKO     PSHS X
 2842 FF2B   8E FFFF                      LDX   #$FFFF
 2843 FF2E   30 1F              DK10      LEAX  -1,X
 2844 FF30   26 FC        FF2E            BNE   DK10
 2845 FF32   35 90                        PULS  PC,X
 2846                           *
 2847                           *** System DP
 2848                           *
 2849 FF34   86 9E              SETSYSDP  LDA   #SYSDP  ; DP op system Direct Page
 2850 FF36   1F 8B                        TFR   A,DP
 2851 FF38   39                           RTS
 2852                           *
 2853                           *** Koude start
 2854                           *
 2855 FF39   1F B8              COLDSTRT  TFR   DP,A      ; Bij reset is DP nul
 2856 FF3B   4D                           TSTA            ; Test DP, 0 is gewone Reset
 2857 FF3C   26 C6        FF04            BNE   SVCVECT   ; <>0 Reset door opcode $3E (WAI-SVC1)
 2858                           *
 2859                           *** Gewone Reset
 2860                           *
 2861 FF3E 1E 9800            BERTMON   LDS   #TRBUFENX  ; Tijdelijke stack i.v.m. Wis RAM
 2862 FF42   8D D5        FF19            BSR   GETADSYS   ; Y is adres SYSVIA
 2863 FF44   8D CE        FF14            BSR   CLR_ROOD   ; Rood uit
 2864 FF46   86 F3                        LDA   #%11110011 ; LED's console uit en
 2865 FF48   A7 22                        STA   DDRB,Y     ; Pageregister = page 0
 2866 FF4A   8D DD        FF29            BSR   DELKO      ; Gedurende 1 Sec
 2867 FF4C   BD FEB6                      JSR   SERINIT    ; Init USART
 2868 FF4F   8D E3        FF34            BSR   SETSYSDP   ; Init DP op System Direct Page
 2869 FF51   8D 89        FEDC            BSR   INITRAM    ; Init Vectoren met BERMON9 defaults
 2870 FF53   8D B7        FF            BSR   KO_ROOD    ; Knipoog rood, Y is adres SYSVIA
 2871                           *
 2872                           *** Test aanwezigheid Extended Monitor
 2873                           *
 2874 FF55   8E F000                      LDX   #EXTMON   ; Extended monitor
 2875 FF58   A6 84                        LDA   ,X        ; begint met
 2876 FF5A   81 BD                        CMPA  #$BD      ; JSR
 2877 FF5C   26 06        FF64            BNE   BM10      ; Anders geen Extended monitor
 2878                           *
 2879                           *** Als Dissable switch niet aanwezig, dan altijd EXTMON (b.v. R >
 2880                           *
 2881 FF5E   6D 21                        TST   PA,Y      ; Test 'SAFE' mode
 2882 FF60   2A 02        FF64            BPL   BM10      ; Dan geen Extended monitor
 2883 FF62   AD 84                        JSR   ,X        ; Init Extended Monitor en command cha >
 2884
 2885 FF64   8D A6        FF  BM10      BSR   KO_ROOD   ; Knipoog rood
 2886 FF66   8E F8A0                      LDX   #LOGON    ; Print
 2887 FF69   BD FE1D                      JSR   NLPDATA   ; Logon boodschap

          BERTMO54   BERTMON9 5.4                      My Assembler (c) Robert Henneke Blad:  52
          Een 6809 monitor (April 2024)                CPU: 6809        2025-10-26 15:11:10  
                                                                                                
 2888                            PAG
 2889                           *
 2890                           *** Warme start en
 2891                           *** Monitor command loop
 2892                           *
 2893 FF6C 1E 9CFE            MCL       LDS   #STACK    ; De echte stack
 2894 FF70   34 FF              MCL10     PSHS  CC,DP,A,B,X,Y,U,PC ; registers op stack
 2895 FF72 10FF 9F10                      STS   SYSSTACK  ; Bewaar SP voor Print registers
 2896 FF76   8D BC        FF34            BSR   SETSYSDP  ; DP op SYSTEM DP
 2897 FF78   BD FED0                      JSR   INITMCL
 2898 FF7B   86 4D                        LDA   #'M'      ; <M> _
 2899 FF7D   BD FE77                      JSR   PROMPT
 2900 FF80   BD FD26                      JSR   CHINUP    ; Lees commando
 2901
 2902 FF83   BE 9FBA                      LDX   USRCMD    ; User tabel
 2903 FF86   8D 0F        FF97            BSR   CMDHDL
 2904 FF88   24 E2        FF6C            BCC   MCL       ; Commando verwerkt
 2905
 2906 FF8A   8E FFBE                      LDX   #MONTAB   ; Monitor tabel
 2907 FF8D   8D 08        FF97            BSR   CMDHDL
 2908 FF8F   24 DB        FF6C            BCC   MCL       ; Commando verwerkt
 2909
 2910 FF91   AD 9F 9FD0                   JSR   [NOTFNDV] ; Niet gevonden, Foutmelding of
 2911                                                     ; Zoek in command chain (ExtMon)
 2912 FF95   20 D5        FF6C            BRA   MCL
 2913                           *
 2914                           *** Algemene commando routine
 2915                           *
 2916 FF97   8D 08        FFA1  CMDHDL    BSR   CMDADR    ; Zoek adres bij commando
 2917 FF99   25 05        FFA0            BCS   CH99      ; Niet gevonden
 2918 FF9B   AD 98 01                     JSR   [1,X]     ; Voer commando uit
 2919 FF9E   1C FE                        CLC             ; Meldt OK
 2920 FFA0   39                 CH99      RTS
 2921                           *
 2922                           *** Zoek adres behorende bij commando
 2923                           *
 2924 FFA1   34 04              CMDADR    PSHS  B
 2925 FFA3   8C FFFF                      CMPX  #HV       ; Lege tabel
 2926 FFA6   27 12        FFBA            BEQ   ANOTFND
 2927 FFA8   E6 84              GETAD1    LDB   ,X        ; Commando in tabel
 2928 FFAA   C1 FF                        CMPB  #HV       ; Einde tabel
 2929 FFAC   27         FFBA            BEQ   ANOTFND   ; dus niet gevonden
 2930 FFAE   A1 84                        CMPA  ,X        ; vergelijk entry met commando
 2931 FFB0   27 04        FFB6            BEQ   FOUND     ; Gevonden
 2932 FFB2   30 03                        LEAX  3,X       ; volgende entry
 2933 FFB4   20 F2        FFA8            BRA   GETAD1    ; en opnieuw
 2934
 2935 FFB6   1C FE              FOUND     CLC             ; gevonden C=0
 2936 FFB8   20 02        FFBC            BRA   GA90
 2937
 2938 FFBA   1A 01              ANOTFND   SEC             ; niet gevonden C=1
 2939 FFBC   35 84              GA90      PULS  PC,B

          BERTMO54   BERTMON9 5.4                      My Assembler (c) Robert Henneke Blad:  53
          Een 6809 monitor (April 2024)                CPU: 6809        2025-10-26 15:11:10  
                                                                                                
 2940                            PAG
 2941                           *
 2942                           *** Monitor commando tabel
 2943
 2944                           *
 2945                     FFBE  MONTAB    EQU   *
 2946 FFBE   4C                           FCB   'L'      ; Load Hexfile vanaf terminal
 2947 FFBF FBF2                           FDB   LOAD     ; Vult RUN Vector
 2948 FFC1   45                           FCB   'E'      ; Edit memory
 2949 FFC2 FA0E                           FDB   EDITMEM
 2950 FFC4   48                           FCB   'H'      ; Hexdump memory
 2951 FFC5 F904                           FDB   HEXDUMP
 2952 FFC7   52                           FCB   'R'      ; Run (Vector geset door Load)
 2953 FFC8 FF08                           FDB   RUN
 2954 FFCA   47                           FCB   'G'      ; Go to adres (set ZVector)
 2955 FFCB FB75                           FDB   GOTO
 2956 FFCD   51                           FCB   'Q'      ; Warme start Userprogramm
 2957 FFCE F9B0                           FDB   JMPQVECT ; Gevuld door Userprogramma
 2958 FFD0   58                           FCB   'X'      ; Go to User adres
 2959 FFD1 F898                           FDB   JMPXVECT ; Set door user
 2960 FFD3   5A                           FCB   'Z'      ; Goto vector
 2961 FFD4 F89C                           FDB   JMPZVECT ; Gevuld door Goto
 2962 FFD6   FF                           FCB   $FF      ; Einde tabel
 2963                           *
 2964 FFD7   3B                 DUMRTI    RTI            ; Dummy RTI voor default vectoren
 2965                           *
 2966                           *** Interrupts via vector
 2967                           *
 2968 FFD8   6E 9F 9FF2         JMPSWI3V  JMP   [VECTSWI3]
 2969 FFDC   6E 9F 9FF4         JMPSWI2V  JMP   [VECTSWI2]
 2970 FFE0   6E 9F 9FF6         JMPFIRQV  JMP   [VECTFIRQ]
 2971 FFE4   6E 9F 9FF8         JMPIRQV   JMP   [VECTIRQ]
 2972 FFE8   6E 9F 9FFA         JMPSWIV   JMP   [VECTSWI]
 2973 FFEC   6E 9F 9FFC         JMPNMIV   JMP   [VECTNMI]
 2974                           *
 2975                           *** Vectoren
 2976                           *
 2977 FFF0 FF00                           FDB   JMPRESV
 2978 FFF2 FFD8                           FDB   JMPSWI3V
 2979 FFF4 FFDC                           FDB   JMPSWI2V
 2980 FFF6 FFE0                           FDB   JMPFIRQV
 2981 FFF8 FFE4                           FDB   JMPIRQV
 2982 FFFA FFE8                           FDB   JMPSWIV
 2983 FFFC FFEC                           FDB   JMPNMIV
 2984 FFFE FF39                           FDB   COLDSTRT
 2985                     0000  ENDLOAD   EQU   *       ; moet 0000 zijn
 2986 0004   <>                           END

          BERTMO54   BERTMON9 5.4                      My Assembler (c) Robert Henneke Blad:  54
          Gekruiste referenties                        CPU: 6809        2025-10-26 15:11:10  
LABEL    ## T Value Def.  Referenties                                                           
VIABASE3  1 . BB00    30   540
VIABASE4  2 . BE00    31   534   536
MEMTOP    1 . 7FFF    53  1742
WSBASE    2 . 9000    54   124   142
EXTMON    2 . F000    56   320  2874
BASE      0 . F800    57
USART     7 . BE00    61    62    63    64    65    66    67  2768
RHREG     1 . BE00    62  2762
THREG     1 . BE00    63  2746
STTREG    2 . BE01    64  2743  2751
MDREG1    1 . BE02    65  2773
MDREG2    1 . BE02    66  2775
CMDREG    4 . BE03    67  2770  2771  2777  2779
MR1       1 . 004E    71  2772
MR2       1 . 007E    72  2774
CMD       1 . 0015    73  2776
PB        2 . 0000    78   363   378
PA        1 . 0001    79  2881
DDRB      2 . 0002    80   360  2865
DDRA      1 . 0003    81   358
T1CL      0 . 0004    82
T1CH      0 . 0005    83
T1LL      0 . 0006    84
T1LH      0 . 0007    85
T2CL      2 . 0008    86  2834  2835
T2CH      0 . 0009    87
SHR       0 . 000A    88
ACR       0 . 000B    89
PCR       2 . 00    90  2824  2827
IFR       0 . 000DA    91
IER       0 . 000E    92

          BERTMO54   BERTMON9 5.4                      My Assembler (c) Robert Henneke Blad:  55
          Gekruiste referenties                        CPU: 6809        2025-10-26 15:11:10  
LABEL    ## T Value Def.  Referenties                                                           
PAX       0 . 000F    93
EOT       1 . 0004    98  2696
BS        4 . 0008    99  2112  2211  2255  2521
LF        1 . 000A   100  2619
FF        1 . 00   101  2631
CR       20 . 000DA   102   322   479   500   754   778   850   983  1186  1330  1710  1892  1915
                          2105  2221  2382  2396  2464  2471  2533  2617
HiBit     6 . 0080   103   481   731   756   780  2384  2398
CRH       3 . 008D   104   809  2292  2474
BSH       1 . 0088   105  2255
Bell      1 . 0007   107   322
Escape    4 . 001B   108  1937  2107  2483  2535
Space    16 . 0020   109   579   622   682   731   858   865   981  1204  1863  1871  1915  2011
                          2228  2255  2727  2730
Dquote    0 . 0022   110
Quote     1 . 0027   111  1931
HV        2 . FFFF   113  2925  2928
DUMMY    30 . FFFF   114   501   503  1592  1593  1594  1595  1596  1597  1599  1600  1601  1602
                          1644  1682  1696  1697  1727  1728  1729  1730  1731  1732  1733  1734
                          1737  1738  1739  1740  1748  1759
STARTADR  3 . 0000   118   687   715  1979
ENDADR    4 . 0002   119   586   696   719  1789
DESTADR   2 . 0004   120   688   716
TRBUFSTA  1 . 9400   127  1719
TRBUFENX  2 . 9800   128  1720  2861
EDITBUF   0 . 9800   132
LOADBUF   0 . 9900   133
SYSBUF    3 . 9940   134  2099  2461  2476
SYSRAM    4 . 9C00   143   150   183   227  2793
STACKTOP  1 . 9CF2   145  1144
STACK     1 . 9CFE   146  2893
GLCDWS    0 . 9D80   165
MONRAM    2 . 9E00   176   177   178
SYSDP     1 . 009E   178  2849
BIT_BASE  1 . 9F00   185  1462
CONVERTB  0 . 9F08   186
SYSSTACK  2 . 9F10   188   872  2895
PTR_RAS   0 . 9F12   189
XTEMP0    0 . 9F14   190
XTEMP1    0 . 9F16   191
PMSEGMNT  0 . 9F18   192
BYTE0     0 . 9F1C   196
BYTE1     0 . 9F1D   197
BYTE2     0 . 9F1E   198
BYTE3     0 . 9F1F   199
CONTRBLK  4 . 9F20   201   732  2142  2162  2182
CALLBUF   0 . 9F30   210
NMIBPTB   0 . 9F50   213
NMIWORK   0 . 9F60   214
MCLPTRS   2 . 9F78   217  2786  2787
VECTPUTM  1 . 9F78   218  2065
VECTGETM  1 . 9F7A   219  1824
TYPEPARM  0 . 9F7C   220
WPEND     1 . 9F80   222  2787
WSEND     1 . 9F7F   223  2795
PSVCTAB   0 . 9F90   230
USVCTAB   0 . 9F92   231
PCMDHELP  2 . 9F94   232  1280  1553
TESTSX    1 . 9FA0   239  2318
MEMTYPE   5 . 9FA4   241   624   684   711  1780  1977
NMIPHDR   1 . 9FA6   242   372
NMIPREG   1 . 9FA8   243   370
MONCMD    1 . 9FAA   244  1019
DISSASM   0 . 9FAC   245
CEDELAY   0 . 9FAE   246
QVECTOR   1 . 9FB0   248  1898
ZVECTOR   2 . 9FB2   249  1703  2189
XVECTOR   1 . 9FB4   250  1702
VECTRUN   2 . 9FB6   251  2367  2818
VTIMESHR  1 . 9FB8   252  2440
USRCMD    1 . 9FBA   253  2902
EXTCMD    1 . 9FBC   254   393
SWIBUG    1 . 9FBE   255   986
BERTWORK  1 . 9FC0   261  2800
TRBUFST   3 . 9FC0   262   810   821   827
TRBUFEND  1 . 9FC1   263   798
SEGMENT   0 . 9FC2   264
SYSCNTRL  7 . 9FC3   265  1509  1511  1514  1526  1868  1880  2663

          BERTMO54   BERTMON9 5.4                      My Assembler (c) Robert Henneke Blad:  56
          Gekruiste referenties                        CPU: 6809        2025-10-26 15:11:10  
LABEL    ## T Value Def.  Referenties                                                           
DISLINPA  1 . 9FC4   266  1540
LINESCRN  2 . 9FC5   267  1537  2624
DBUGFLGS  5 . 9FC6   268   845   963   968  1523  1548
DISASMFL  5 . 9FC7   269   338   348  1518  1520  1529
NOTFNDV   2 . 9FD0   279   375  2910
CRDELAY   1 . 9FD2   280  2662
YVECTOR   0 . 9FD4   281
DISREGEL  1 . 9FD8   283  1177
OFFSET    1 . 9FDA   284  2331
USRMEMTP  0 . 9FDC   285
USERNMI   0 . 9FDE   286
ESCVECT   1 . 9FE0   288  2485
OUTPC     1 . 9FE2   289   914
PUTBLOAD  3 . 9FE4   290   814   819  2344
PDATAEXT  0 . 9FE8   292
VCHAROUT  1 . 9FEA   293  2557
VCHARIN   0 . 9FEC   294
VCHARGET  1 . 9FEE   295  2676
VECTRES   1 . 9FF0   299  2816
VECTSWI3  1 . 9FF2   300  2968
VECTSWI2  1 . 9FF4   301  2969
VECTFIRQ  1 . 9FF6   302  2970
VECTIRQ   1 . 9FF8   303  2971
VECTSWI   2 . 9FFA   304   367  2972
VECTNMI   1 . 9FFC   305  2973
VECTSVC   1 . 9FFE   306  2817
RAMTOP    0 . 9FFF   307
EXTINIT   0 . F000   321
EX10      1 . F01F   333   331
EX20      1 . F034   348   342
EXIT      2 . F066   379   391   395
TXTBEM3   1 . F067   381   329
TXTBEM4   1 . F06B   382   332
TXT68     1 . F06F   383   345
TXT63     1 . F073   384   337
EXTCMDH   1 . F077   389   374
NOTFND    0 . F087   419
NF10      1 . F08A   420   428
NF80      1 . F09D   430   421
INITCMD   1 . F0A0   436   376
IC10      1 . F0A3   438   445
IC20      1 . F0B1   446   439
SEARCH    2 . F0B2   453   420   438
S10       1 . F0B4   454   461
S20       1 . F2   460   456
S99       1 . F8   463   459
NEXTSEG   3 . FA   465   427   444   460
NS99      1 . F0DA5   471   426
PRTPAGE   1 . F0DA6   478  1587
EXMONCMD  1 . F0E1   485   389
DISPVIAS  1 . F118   527   511
BEM4      0 . F126   534
D20       4 . F130   538   535   537   542   568
BEM3      1 . F133   540   532
D10       1 . F138   542   546
D99       1 . F141   547   555
GETESC    3 . F142   553   652  1332  1589
DISPPAGE  1 . F14C   560   513
DP10      1 . F160   568   570
ASCIDUMP  1 . F166   576   493
AD10      2 . F17A   585   591   594
AD90      1 . F18A   596   587
ASCREGEL  1 . F18C   598   585
AR10      1 . F195   603   606
DUMPALL   1 . F1A1   618   491
DA05      0 . F1BC   631
DA10      1 . F1C2   634   658
DA20      1 . F1C9   638   656
DA30      1 . F1D2   643   647
DA40      0 . F1E0   652
DA45      1 . F1E3   655   675
DA99      0 . F1EB   662
DA50      1 . F1EF   665   645
DA60      1 . F1FE   674   670
MOVECMD   1 . F202   680   489
MOVE      0 . F213   686
MOVE1     1 . F21A   690   697
MEMERROR  2 . F22E   700   693   718

          BERTMO54   BERTMON9 5.4                      My Assembler (c) Robert Henneke Blad:  57
          Gekruiste referenties                        CPU: 6809        2025-10-26 15:11:10  
LABEL    ## T Value Def.  Referenties                                                           
PRTERRIN  0 . F230   701
FILLCMD   1 . F23C   708   515
FILL      0 . F24C   714
FILL1     1 . F252   717   722
FILL9     1 . F25F   723   720
SAVE      1 . F261   729   487
SAVE2     1 . F284   746   774
SAVE3     1 . F290   751   748
SAVE4     1 . F292   752   750
SAVE5     1 . F2AA   764   768
PUNEXT    1 . F2C2   776   742
COMPBYTE  1 . F2D7   789   813
CB10      2 . F2F1   803   790   799
VERIFY    1 . F2F5   807   499
COMP10    1 . F326   826   822
COMP20    1 . F32F   831   837
PRTHEAD   1 . F344   845   876
PH10      1 . F34B   849   371
TXTHEAD   0 . F34E   850
PH20      1 . F38B   867   861
NEWLINE2  2 . F391   870   847   930
REGPRT    1 . F394   872   509
PREGHEAD  2 . F397   876   967  1009
PRINTREG  2 . F399   877   932   993
PR10      1 . F3B1   888   890
PR20      1 . F3D4   913   898
TEST6309  4 . F3DA   919   341   860   897  1066
PRTREGS   0 . F3E2   929
PRTSWI    1 . F3EC   963   366
PS10      0 . F3FC   971
PS20      1 . F3FF   973   970
PS30      2 . F403   975   982   988
PS40      2 . F404   977   974  1005
PS50      1 . F414   986   964
NMIREGS   1 . F41E   993   369
NR10      1 . F421   994   998
PS60      1 . F42E  1004   984
CHLOOP    2 . F432  1007   997  1004
CHL10     1 . F43B  1012  1008
CHL20     1 . F444  1017  1013
CHL40     2 . F44C  1020  1010  1015
CHL30     1 . F44F  1023  1018
CHANGREG  0 . F44F  1028
CR10      1 . F452  1029  1032
CR20      1 . F45D  1038  1030
CR30      1 . F478  1053  1046
CR90     10 . F480  1057  1049  1051  1055  1067  1078  1080  1086  1088  1092  1094
PREGDP    2 . F482  1062  1041  1072
CR40      1 . F48A  1066  1040
CR50      1 . F4A1  1082  1075
CR60      1 . F4AF  1090  1083
CHANGE16  2 . F4B9  1098  1048  1091
CHANGE8   3 . F4C9  1107  1054  1077  1085
OUTEQ     2 . F4D6  1114  1099  1108
REGTABEL  1 . F4DB  1119  1028
DISSTACK  1 . F4F2  1137  1155
DS10      1 . F4FA  1141  1145
DS99      2 . F505  1146  1143  1167
DISP_REG  1 . F507  1150  1014
DR06      1 . F520  1162  1160
DR07      1 . F524  1164  1166
DIS1REG   1 . F52B  1171  1164
PRTPC     0 . F52E  1176
DR08      1 . F536  1179  1157
DR09      1 . F54D  1191  1180
DR11      1 . F555  1195  1192
DR12      1 . F55D  1199  1196
DR14      1 . F565  1204  1200
DR15      1 . F56E  1209  1205
DR16      3 . F575  1213  1194  1198  1202
DR18      2 . F580  1219  1189  1216
DR20      0 . F582  1221
DR25      1 . F585  1222  1224
DR99      6 . F58E  1226  1207  1211  1252  1261  1270  1278
GETCHAR   1 . F590  1228  1153
SPBYTE    3 . F596  1231  1158  1236  1240
XGETBYTE  0 . F599  1232
DR30      1 . F59C  1234  1187

          BERTMO54   BERTMON9 5.4                      My Assembler (c) Robert Henneke Blad:  58
          Gekruiste referenties                        CPU: 6809        2025-10-26 15:11:10  
LABEL    ## T Value Def.  Referenties                                                           
DR30A     1 . F5B2  1245  1243
DR31      0 . F5C3  1254
DR32      2 . F5C9  1258  1255  1260
DR33      1 . F5D1  1263  1250
DR34      2 . F5D7  1267  1264  1269
DR35      1 . F5DF  1271  1248
DR36      2 . F5E5  1274  1272  1277
HELP      1 . F5EF  1280   507
COMPARE   1 . F5F3  1286   497
CP10      2 . F605  1293  1299  1313
CP20      1 . F60B  1297  1294
OUTAHB    3 . F62C  1315  1305  1310  1334
DISPBYTE  1 . F643  1327   495
DB10      2 . F648  1330  1340  1343
DB15      1 . F658  1338  1339
DB20      1 . F65F  1342  1336
BITS      1 . F664  1370  1590
B05       1 . F688  1391  1388
B07       1 . F68A  1393  1390
B10       1 . F698  1401  1380
B20       1 . F69F  1406  1382
B30       1 . F6A5  1410  1384
B100      2 . F6AB  1415  1394  1445
B110      2 . F6B8  1424  1396  1446
B120      1 . F6C4  1432  1398
B130      1 . F6D4  1440  1437
B40       2 . F6D6  1442  1404  1408
B140      1 . F6DA  1445  1399
B150      2 . F6DE  1448  1421  1429
B160      1 . F6E7  1454  1450
B99       4 . F6E9  1455  1412  1439  1443  1452
BIT_MASK  3 . F6EB  1457  1401  1406  1410
BM10X     3 . F6F6  1465  1417  1426  1434
MASK_TAB  1 . F6FE  1470  1466
PUNTCMD   1 . F706  1482   517
PC10      1 . F712  1488  1485
PC99      2 . F71F  1496  1489  1491
JMPTAB    1 . F720  1498  1482
TOGLPAGE  1 . F734  1509  1499
TOGSYS    1 . F739  1511  1516
TOGLHBFL  1 . F73D  1514  1500
TOGLASC   1 . F744  1518  1501
SETDBFL   1 . F74D  1523  1504
SETSYSFL  1 . F752  1526  1502
SETDISFL  1 . F757  1529  1503
SETOPTIE  2 . F75A  1531  1524  1527
SD10      1 . F761  1534  1551
SD99      1 . F763  1535  1533
PAGECLRS  1 . F764  1537  1506
PAGEDISA  1 . F769  1540  1505
EDITHEX   1 . F76C  1542  1538
SWINMI    1 . F777  1548  1507
PRTHELP   1 . F780  1553  1498
PDEXIST   2 . F784  1555  1749  2698
PE10      2 . F78C  1562  1556  1558
MONCALLS  0 . F800  1606
MCLDEF    1 . F890  1694  2785
JMPXVECT  1 . F898  1702  2959
JMPZVECT  1 . F89C  1703  2961
LOGON     1 . F8A0  1708  2886
COPYRIGT  0 . F8AD  1713
DEFWORK   2 . F8C0  1718  2805  2806
ENDWORK   1 . F900  1762  2806
DUMP      1 . F900  1768  1650
HEXDUMP   1 . F904  1773  2951
DM10      2 . F91F  1786  1769  1795
DM20      1 . F921  1788  1793
DM90      1 . F930  1797  1790
DMPREGEL  4 . F932  1799   538  1222  1651  1788
DM30      1 . F93B  1804  1807
DM40      1 . F94C  1814  1817
GETMEM    9 . F956  1824   603   638   643   690   765  1804  1814  1982  2038
GETMDEF   1 . F95A  1826  1695
GETDUMMY  0 . F95D  1831
PUTDUMMY  0 . F95F  1832
HEADER    6 . F962  1838   529   566   631  1221  1616  1786
H10       1 . F96D  1843  1848
OUT2SP    3 . F97B  1851  1621  1812  1845

          BERTMO54   BERTMON9 5.4                      My Assembler (c) Robert Henneke Blad:  59
          Gekruiste referenties                        CPU: 6809        2025-10-26 15:11:10  
LABEL    ## T Value Def.  Referenties                                                           
XOUTSP    1 . F97D  1852  1851
PNOPRT    5 . F980  1857   604  1275  1642  1815  1985
NOPRINT   3 . F985  1863  1321  1657  1857
NOP2      0 . F98B  1866
NOP8      3 . F999  1875  1864  1869  1872
NOP9      1 . F99B  1876  1866
NEXTPAGE  3 . F99C  1880   593  1649  1794
ACK       2 . F9A3  1888   826  2180
ACK1      2 . F9A8  1891  1672  1893
ACK9      1 . F9AF  1894  1882
JMPQVECT  1 . F9B0  1898  2957
TESTCHAR  2 . F9B4  1903  1654  1922
TC10      1 . F9B6  1904  1908
TC15      0 . F9BF  1909
TC30      1 . F9C2  1912  1906
CHARTAB   1 . F9C5  1915  1921
GHEX8     1 . F9CD  1919  1989
GETBYTE   3 . F9DA  1928  1214  1232  1664
GETBYTEP  3 . F9DB  1929  1110  1665  1991
GB10      0 . F9E5  1935
GB12      1 . F9EB  1937  1957
GB14      1 . F9F2  1942  1938
GB99      1 . F9F3  1943  2003
GB18      3 . F9F4  1945  1544  1930  1955
GB20      1 . FA06  1954  1932
EDITMEM   2 . FA0E  1972  1674  2949
EDIT2     5 . FA1F  1981  1684  2000  2009  2020  2022
EDIT2A    1 . FA3E  1995  2042
EDIT3     1 . FA4C  2002  1990
EDIT4     1 . FA5E  2011  2005
EDIT5     2 . FA6E  2019  1993  1996
EDIT7     1 . FA72  2021  2012
EDIT7A    2 . FA74  2022  2041  2060
EDITBIN   3 . FA76  2024  1532  1673  2040
EB10      1 . FA7D  2027  1956
EDIT10    1 . FA91  2038  2018
XEDIT2A   0 . FA9A  2042
EDIT8     1 . FA9C  2046  2014
XEDIT2    1 . FAB9  2060  2090
PUTMEM    5 . FABB  2065   692   717  1995  2079  2088
PUTMDEF   1 . FABF  2066  1694
EDIT9     1 . FAC4  2072  2016
OUTCHDP   3 . FADB  2084  1626  2046  2072
EDIT8B    2 . FAE3  2088  2058  2082
KEYINSYS  1 . FAE9  2099  1670
KEYIN10   2 . FAEC  2100  1669  2008
KEYIN     1 . FAEE  2101  1668
KEY0      0 . FAF0  2102
KEY1      4 . FAF3  2104  2115  2119  2122  2128
KEY2      0 . FAFA  2107
KEY3      1 . FB02  2112  2108
KEY4      1 . FB13  2121  2113
KEY8      2 . FB24  2131  2106  2110
KEY9      1 . FB26  2132  2139
GET2SEQ   1 . FB27  2137  1588
PARM2HV   1 . FB2D  2140  2150
GET1PARM  3 . FB37  2147   562  1978  2188
SEAGET2   3 . FB3B  2150   580  1671  1781
GET2PARM  2 . FB3D  2152  1328  2137
GET3PARM  4 . FB41  2155   685   712   735  1290
GETPARM   3 . FB43  2162  1662  2148  2153
PGUSR     1 . FB46  2163  1681
GP1       1 . FB4C  2166  2179
GP2       1 . FB64  2177  2175
GP5       1 . FB6A  2180  2173
GP9       0 . FB74  2184
GOTO      1 . FB75  2188  2955
GETWORD   6 . FB7C  2202  1101  1209  1666  2048  2074  2171
GETWORDP  2 . FB7D  2203  1667  1947
INW01     4 . FB87  2209  2214  2219  2234  2246
INW03     0 . FB8A  2211
INW04     0 . FB92  2216
INW05     1 . FB99  2221  2212
INW05B    1 . FBA3  2226  2231
INW05A    1 . FBA5  2228  2222
INW06     2 . FBAD  2233  2207  2229
INW07     1 . FBCA  2247  2224
INW08     1 . FBCB  2248  2226

          BERTMO54   BERTMON9 5.4                      My Assembler (c) Robert Henneke Blad:  60
          Gekruiste referenties                        CPU: 6809        2025-10-26 15:11:10  
LABEL    ## T Value Def.  Referenties                                                           
WISCHAR   5 . FBCD  2254  1206  1648  2116  2216  2529
DIGRIGHT  1 . FBD4  2260  2217
DR10      1 . FBE0  2270  2285
DIGLEFT   1 . FBE4  2275  2238
LOAD      1 . FBF2  2290  2947
LOAD00    1 . FBFA  2293   815
LOAD0     2 . FC02  2297  2319  2322
LOAD1     2 . FC06  2299  2353  2357
LOAD2     2 . FC19  2308  2302  2310
LOAD4     1 . FC35  2321  2317
LOAD05    1 . FC3A  2324  2313
LOAD10    2 . FC56  2337  2345  2349
LOAD16    1 . FC72  2351  2343
LOAD30    1 . FC7E  2361  2315
LOAD35    2 . FC8E  2369  2363  2366
LOAD40    1 . FC9B  2375  2372
LOAD50    1 . FC9D  2376  2374
PRTOK     2 . FCA1  2381   824  2373
PUTLOAD   2 . FCA8  2389   818  1747
PRERROR   3 . FCAD  2395   701  1643  2375
INADRES   2 . FCB9  2404  2326  2364
BYTE      5 . FCC5  2413  2324  2338  2361  2404  2406
LOAD99    0 . FCD1  2421
INHEX     3 . FCD2  2426  2413  2419  2433
INHX9     2 . FCE2  2434  2429  2439
CHARIN   13 . FCE3  2438   784  1109  1659  1935  2104  2308  2311  2426  2441  2463  2470  2482
                          2504
CI10      0 . FCE8  2440
TESTHEX   3 . FCEE  2445  1655  2233  2428
HEXOK     1 . FD00  2454  2448
HEXFOUT   3 . FD03  2456  2446  2451  2453
LABEL     1 . FD06  2461  2321
L10       1 . FD0B  2463  2468
L20       1 . FD16  2470  2472
L30       1 . FD1C  2474  2465
CHINUP   12 . FD26  2482   979   996  1185  1228  1342  1483  1661  1891  1919  2209  2737  2900
UPPER     4 . FD30  2490  1656  1945  2427  2484
UP9       2 . FD3A  2495  2491  2493
GETBBIN   2 . FD3B  2499  1663  2028
GBB10     4 . FD42  2504  2519  2525  2531  2536
GBB20     0 . FD4C  2510
GBB25     1 . FD54  2515  2511
GBB30     2 . FD5C  2521  2508  2513
GBB35     1 . FD70  2533  2522
GBB40     1 . FD7C  2540  2534
GBB45     1 . FD7E  2541  2538
OUTHL     2 . FD82  2547  1630  2579
OUTHR     4 . FD86  2552  1631  1844  2236  2581
CHAROUT  22 . FD90  2557   666  1063  1152  1229  1235  1611  1858  1933  1936  2027  2084  2124
                          2300  2370  2515  2555  2562  2564  2589  2593  2620  2728
PUTDAS    1 . FD94  2559  1647
PUTDA     2 . FD98  2562  1646  2559
OUTDHS    4 . FD9E  2566   909  1098  1629  2170
OUTDH     3 . FDA2  2569   878  1628  2566
OUT2HAS  12 . FDA8  2573   483   648   884   905   907  1107  1316  1543  1618  1805  1988  2400
OUT4HX    3 . FDAC  2576  1623  2607  2613
OUT2HX    4 . FDAE  2577  1620  2576  2584  2585
OUT2HA    9 . FDB0  2578   759   766   771  1617  1999  2032  2569  2571  2573
OUT4HS    4 . FDB8  2584   832   888  1258  1622
OUT2HS    9 . FDBA  2585   703   833   834   882   893   894  1141  1267  1619
OUTS      7 . FDBC  2586  1319  2560  2567  2574  2590  2595  2602
PCOLSP    3 . FDBF  2588  1064  1641  2614
OUTCHSP   3 . FDC1  2589  1627  2007  2597
OUTSPQB   4 . FDC5  2592  1635  1736  1997  2059
OUTSPQ    2 . FDC9  2595   430  1634
OUTQ      1 . FDCB  2596  1632
OUTXNL    3 . FDCF  2599  1303  1308  1638
OUTXS     2 . FDD1  2600   702  1637
OUTX      5 . FDD9  2605   761   782  1636  1746  2601
OUTXFDP   6 . FDE1  2610   600   636  1140  1640  1801  1981
OUTXDP    1 . FDE3  2611  1639
DOCRLF    4 . FDED  2617   783  2303  2626  2661
YCHOUT    3 . FDF3  2620  2618  2632  2647
CLRSCRN   2 . FDF5  2624   505  1652
CS10      1 . FDFA  2626  2628
FORMFEED  1 . FE00  2631  2625
OUTBBIN   4 . FE04  2636   881  1318  1624  2025
OB10      2 . FE0A  2640  2636  2637

          BERTMO54   BERTMON9 5.4                      My Assembler (c) Robert Henneke Blad:  61
          Gekruiste referenties                        CPU: 6809        2025-10-26 15:11:10  
LABEL    ## T Value Def.  Referenties                                                           
OB20      1 . FE10  2643  2649
NLPDATA   5 . FE1D  2654   333   349  1614  2477  2887
NEWLINE  13 . FE21  2660   831   870  1171  1245  1312  1613  1839  2599  2610  2654  2705  2710
                          2716
NL20      0 . FE29  2663
NL30      1 . FE32  2668  2665
NL90      2 . FE3E  2674  2669  2672
CHARGET   4 . FE40  2676   553  1660  2438  2668
PRTMSG   23 . FE44  2681   321   478   527   560   577   619   680   708   729   753   777   807
                           849   862   867  1287  1683  1774  1972  2254  2290  2381  2395
EINDE     2 . FE4E  2686  2694  2697
PD30      1 . FE4F  2688  2702
PD40      1 . FE51  2689  2704
PDATA     6 . FE53  2693  1176  1615  2655  2683  2699  2706
PD10      0 . FE6B  2705
PD20      1 . FE6F  2708  2695
PROMPT    6 . FE77  2715   978   995  1645  1889  2168  2899
CHOUTSP   6 . FE85  2725   667  1115  1322  1331  1612  2086
OUTSP    11 . FE87  2727  1181  1213  1231  1633  1852  1986  2030  2304  2586  2638  2640
XCHOUT    6 . FE89  2728  2689  2711  2718  2720  2725  2732
OUTBSP    3 . FE8C  2730  1625  1841  2666
OUTBCH    1 . FE8E  2731  1653
OBS10     1 . FE8E  2732  2734
OBS99     0 . FE93  2735
XCHARIN   2 . FE94  2737  2670  2673
SEROUTCH  1 . FE97  2742  1750
OS10      1 . FE99  2743  2745
SERGETCH  2 . FEA5  2751  1752  2760
SERINCH   1 . FEAE  2759  1751
IS10      1 . FEAE  2760  2761
IS20      1 . FEB2  2762  2753
SERINIT   1 . FEB6  2768  2867
INITMCL   1 . FED0  2784  2897
INITRAM   1 . FEDC  2792  2869
IR10      1 . FEE1  2794  2796
IR20      1 . FEEA  2799  2801
MP10      2 . FEF6  2808  2788  2811
JMPRESV   1 . FF00  2816  2977
SVCVECT   1 . FF04  2817  2857
RUN       1 . FF08  2818  2953
KO_ROOD   2 . FF  2822  2870  2885
CLR_ROOD  1 . FF14  2826  2863
DUMCMD    0 . FF18  2828
GETADSYS  6 . FF19  2833   330   530  1603  1658  2822  2862
GAS10     1 . FF27  2838  2836
DELKO     3 . FF29  2841   364  2825  2866
DK10      1 . FF2E  2843  2844
SETSYSDP  2 . FF34  2849  2868  2896
COLDSTRT  1 . FF39  2855  2984
BERTMON   0 . FF3E  2861
BM10      2 . FF64  2885  2877  2882
MCL      12 . FF6C  2893   556   704   971  1679  1743  1745  1755  1756  1761  2904  2908  2912
MCL10     0 . FF70  2894
CMDHDL    6 . FF97  2916   390   394   424  1680  2903  2907
CH99      1 . FFA0  2920  2917
CMDADR    1 . FFA1  2924  2916
GETAD1    1 . FFA8  2927  2933
FOUND     1 . FFB6  2935  2931
ANOTFND   2 . FFBA  2938  2926  2929
GA90      1 . FFBC  2939  2936
MONTAB    1 . FFBE  2945  2906
DUMRTI    4 . FFD7  2964  1754  1757  1758  1760
JMPSWI3V  1 . FFD8  2968  2978
JMPSWI2V  1 . FFDC  2969  2979
JMPFIRQV  1 . FFE0  2970  2980
JMPIRQV   1 . FFE4  2971  2981
JMPSWIV   1 . FFE8  2972  2982
JMPNMIV   1 . FFEC  2973  2983
ENDLOAD   0 . 0000  2985
