** CBG PU17a assembler job t.s
   1                                          
   2                                          
   3                                          
   4                                          ; /* pu17hdr.s - reset entry point to monitor rom
   5                                          ;  *  
   6                                          ;  *
   7                                          ;  * Software Excellence from Tenison Technology.
   8                                          ;  *
   9                                          ;  *  
  10                                          ;  * (C) 1995 Tenison Technology.
  11                                          ;  * (C) 1992 DJ Greaves.
  12                                          ;  *
  13                                          ;  */
  14                                          
  15                                          
  16                                          ; /* some of these values also in mymachdep.h */ 
  17                                StackTop  equ 0xF7FE
  18                                 BSS_ORG  equ 0xDF00
  19                                  IOBASE  equ 0xF800
  20                                          
  21                               uart_data  .equ IOBASE+0x82 // Low byte at not at plus one - little end now.
  22                             uart_status  .equ IOBASE+0x80
  23                                          
  24                      uart_status_txidle  .equ 1  // bit 0
  25                        uart_status_rxav  .equ 2  // bit 1
  26                                          
  27                                          .text
  28                                          
  29                                          .org 0 
  30                               coldreset  
  31                                          
  32   0000 80F7FEF7                              lod r7,#StackTop
  33   0004 67D1                                  mov r2,r7
  34   0006 28D8BA2D                              jmp __crt0
  35                                          
  36                                          
  37                                   _open  
  38   000A 00F3                                  ret
  39                                          
  40                                          ;; Polled I/O to onboard UART.
  41                                          
  42                               __sa_wrch  
  43   000C 80D480F8                         ps0  lod r1,uart_status
  44   0010 B900                                  and r1,#uart_status_txidle
  45   0012 FDC0                                  beq ps0  ; Wait for last char to leave
  46   0014 60D482F8                              strb r0,uart_data
  47   0018 00F3                                  ret
  48                                          
  49                                          
  50                               __sa_rdch  
  51   001A 00D480F8                         ps1  lod r0,uart_status
  52   001E 3A00                                  and r0,#uart_status_rxav
  53   0020 FDC0                                  beq ps1  ; Wait for char to arrive
  54   0022 40D482F8                              lodb r0,uart_data
  55   0026 00F3                                  ret
  56                                          
  57                                          
  58                                          ;;  Return non-zero if user attention (e.g. control C)
  59                               _checkend  
  60   0028 00D480F8                              lod r0,uart_status
  61   002C 3A00                                  and r0,#uart_status_rxav ;  here, check any char
  62   002E 00F3                                  ret
  63                                          
  64                                          
  65                                          ;;  Just give the sp for now
  66                   _read_cpu_control_reg  
  67   0030 67D0                                  mov r0,r7
  68   0032 00F3                                  ret
  69                                          
  70                                          ;; 
  71                       _clear_breakpoint  
  72                                          
  73                                          ;; 
  74                     _install_breakpoint  
  75   0034 00F3                                  ret
  76                                          
  77                                          
  78                                          .bss
  79                                          .org BSS_ORG
  80                                          
  81                                          ;; Console flags should be set from the uart rx interrupt routine
  82                                          ;; for a control C or so on.  Not implemented.
  83                          _console_flags  
  84   DF00 0000                                  .defw 0
  87                                          
  88                                _bptaddr  
  89   DF02 0000                                  .defw 0
  92                                          
  93                                          .text
  94                                          ;;  EOF
  95                                          
  96                                          ; _open  .extern
  97                                          ; _close  .extern
  98                                          ; _main  .extern
  99                                          ; __sa_wrch  .extern
 100                                          ; __sa_rdch  .extern
 101                                          ; _getchar  .extern
 102                                          ; _putchar  .extern
 103                                          ; _toupper  .extern
 104                                          ; _tolower  .extern
 105                                          ; _strlen  .extern
 106                                          ; _strcmp  .extern
 107                                          ; _strncmp  .extern
 108                                          .bss
 109                                          ;_console_flags  .extern
 110                                          ; _exit  .extern
 111                                          ; _malloc  .extern
 112                                          ; __exit  .extern
 113                                          ; _strlen  .extern
 114                                          ; _isdigit  .extern
 115                                          ; _atoi  .extern
 116                                          ; _checkend  .extern
 117                                          ; _strncpy  .extern
 118                                          ; _flush_dtoi  .extern
 119                                          ; _printf  .extern
 120                                          ; _mymon_main  .extern
 121                                          .text
 122                                          
 123                                          
 124                                          ; Routine main
 125                                          .align 2 
 126                                   _main  .global
 127   0036 809B                                  str r7,[r2]
 128   0038 E2D3                                  mov r7,r2
 129   003A 7F9F                                  str R6,[R7,#-2]
 130                                          ; ------------------------------------------------- 
 131                                          ; 
 132                                          ; 
 133                                          ; 
 134                                          ; 
 135                                          ; 
 136                                          ; 
 137                                          ; 
 138                                          ; 
 139                                          ; 
 140                                          ; 
 141                                          ; 
 142                                          ; 
 143                                          ; 
 144                                          ; 
 145                                          ; 
 146                                          ; 
 147                                          ;  
 148                                          ; 
 149                                          ; 
 150                                          ; 
 151                                          ; 
 152                                          ; 
 153                                          ; 
 154                                          ; 
 155                                          ; 
 156                                          ; 
 157                                          ; 
 158                                          ; 
 159                                          ; 
 160                                          ; 
 161                                          ; typedef unsigned char uchar;
 162                                          ; 
 163                                          ; 
 164                                          ; 
 165                                          ; 
 166                                          ; 
 167                                          ; 
 168                                          ; 
 169                                          ; 
 170                                          ; 
 171                                          ; 
 172                                          ; 
 173                                          ; typedef struct stdio 
 174                                          ; 
 175                                          ; {
 176                                          ; 
 177                                          ;   int flags;
 178                                          ; 
 179                                          ;   int sysfd;
 180                                          ; 
 181                                          ;   int mode;
 182                                          ; 
 183                                          ;   int bytes;
 184                                          ; 
 185                                          ;   char *poi;
 186                                          ; 
 187                                          ;   int error;
 188                                          ; 
 189                                          ;   int index;
 190                                          ; 
 191                                          ;   char data[32 ];
 192                                          ; 
 193                                          ; } STDIO;
 194                                          ; 
 195                                          ; 
 196                                          ; 
 197                                          ; 
 198                                          ; 
 199                                          ; extern int open(char *, int);
 200                                          ; 
 201                                          ; extern int close(char *, int);
 202                                          ; 
 203                                          ; extern int main(int, char **);
 204                                          ; 
 205                                          ; extern void _sa_wrch(char);
 206                                          ; 
 207                                          ; extern char _sa_rdch();
 208                                          ; 
 209                                          ; 
 210                                          ; 
 211                                          ; extern char getchar();
 212                                          ; 
 213                                          ; extern void putchar(char);
 214                                          ; 
 215                                          ; extern char toupper(char);
 216                                          ; 
 217                                          ; extern char tolower(char);
 218                                          ; 
 219                                          ; extern int strlen(const char *);
 220                                          ; 
 221                                          ; extern int strcmp(const char *, const char *);
 222                                          ; 
 223                                          ; extern int strncmp(char *, char *, int);
 224                                          ; 
 225                                          ; extern int console_flags;
 226                                          ; 
 227                                          ; extern void exit(int);
 228                                          ; 
 229                                          ; extern char *malloc(int);
 230                                          ; 
 231                                          ; extern int _exit(int);
 232                                          ; 
 233                                          ; extern int strlen(char *);
 234                                          ; 
 235                                          ; extern int isdigit(char);
 236                                          ; 
 237                                          ; extern int atoi(char *);
 238                                          ; 
 239                                          ; extern int checkend();
 240                                          ; 
 241                                          ; extern char *strncpy(char *, char *, int);
 242                                          ; 
 243                                          ; extern void flush_dtoi();
 244                                          ; 
 245                                          ; extern void printf();
 246                                          ; 
 247                                          ; 
 248                                          ; 
 249                                          ; 
 250                                          ; 
 251                                          ; 
 252                                          ; 
 253                                          ; extern void mymon_main();
 254                                          ; 
 255                                          ; 
 256                                          ; 
 257                                          ; 
 258                                          ; 
 259                                          ; void main()
 260                                          ; 
 261                                          ; {
 262                                          ; 
 263                                          ;   printf("CBG PU17 Monitor Running\n");
 264                                          ; 
 265   003C 00F45600                              lod R0,#ua10   ; ltgd3
 266                                          ; force VR0 to 0   ; call
 267   0040 67D1                                  mov r2,r7   ; call
 268   0042 1005                                  sub r2,#8   ; call
 269   0044 3CD89628                              jsr _printf   ; call
 270                                          ; force VR0 to 0   ; res
 271                                          ;   mymon_main();
 272                                          ; 
 273   0048 67D1                                  mov r2,r7   ; call
 274   004A 1005                                  sub r2,#8   ; call
 275   004C 3CD88E15                              jsr _mymon_main   ; call
 276                                          ; force VR0 to 0   ; res
 277   0050 7F8F                                  lod R6,[R7,#-2]   ; cr
 278   0052 808F                                  lod r7,[r7]   ; cr
 279   0054 00F3                                  ret   ; cr
 280   0056 43424720                        ua10  .data "CBG PU17 Monitor Running",10,0
            50553137204D6F6E69746F722052756E6E696E670A00
 281                                          ; _open  .extern
 282                                          ; _close  .extern
 283                                          ; _main  .extern
 284                                          ; __sa_wrch  .extern
 285                                          ; __sa_rdch  .extern
 286                                          ; _getchar  .extern
 287                                          ; _putchar  .extern
 288                                          ; _toupper  .extern
 289                                          ; _tolower  .extern
 290                                          ; _strlen  .extern
 291                                          ; _strcmp  .extern
 292                                          ; _strncmp  .extern
 293                                          .bss
 294                                          ;_console_flags  .extern
 295                                          ; _exit  .extern
 296                                          ; _malloc  .extern
 297                                          ; __exit  .extern
 298                                          ; _strlen  .extern
 299                                          ; _isdigit  .extern
 300                                          ; _atoi  .extern
 301                                          ; _checkend  .extern
 302                                          ; _strncpy  .extern
 303                                          ; _flush_dtoi  .extern
 304                                          ; _printf  .extern
 305                                          ; _init_mylinein  .extern
 306                                          ; _rhex  .extern
 307                                          ; _readcookedline_pe  .extern
 308                                          ; _shell_parse  .extern
 309                                          ; _myvict_main  .extern
 310                                          ; _init_myvict  .extern
 311                                 _errorf  
 312   DF04 0000                                  .defs 2
 315                            _ihex_offset  
 316   DF06 0000                                  .defs 2
 319                                          ;_deb  .extern
 320                              _last_addr  
 321   DF08 0000                                  .defs 2
 324                           _bytes_loaded  
 325   DF0A 0000                                  .defs 2
 328                                _monmode  .global
 329   DF0C 0000                                  .defs 2
 332                                          ; _read_cpu_control_reg  .extern
 333                                          ; _flush_dtoi1  .extern
 334                                          ; _clear_breakpoint  .extern
 335                                          ; _install_breakpoint  .extern
 336                                          ;_bptaddr  .extern
 337                                _go_addr  
 338   DF0E 0000                                  .defs 2
 341                                          ; _myadis  .extern
 342                                          ; _zog1  .extern
 343                                          ; _zog2  .extern
 344                                          ; _zog3  .extern
 345                                          ; _zog4  .extern
 346                                          ; _zog5  .extern
 347                                  _inpoi  .global
 348   DF10 0000                                  .defs 2
 351                                          .text
 352                                          
 353                                          
 354                                          ; Routine sayprompt
 355                                          .align 2 
 356                              _sayprompt  .global
 357   0070 809B                                  str r7,[r2]
 358   0072 E2D3                                  mov r7,r2
 359   0074 7F9F                                  str R6,[R7,#-2]
 360                                          ; ------------------------------------------------- 
 361                                          ; } 
 362                                          ; 
 363                                          ; 
 364                                          ; 
 365                                          ; 
 366                                          ; 
 367                                          ; sayprompt()
 368                                          ; 
 369                                          ; {
 370                                          ; 
 371                                          ;   if (monmode==0)  printf("mymon:");
 372                                          ; 
 373   0076 00D40CDF                              lod  R0,_monmode   ; ris
 374   007A 2800                                  cmp R0,#0   ; gfv
 375   007C 04D89000                              bne dy10 ; fjump F   ; cfj
 376   0080 00F4C500                              lod R0,#dy11   ; ltgd3
 377                                          ; force VR0 to 0   ; call
 378   0084 67D1                                  mov r2,r7   ; call
 379   0086 1005                                  sub r2,#8   ; call
 380   0088 3CD89628                              jsr _printf   ; call
 381                                          ; force VR0 to 0   ; res
 382   008C 28D8B600                              bra dy12   ; anon
 383                                    dy10  ; anon
 384                                          ;   else if (monmode==1) printf("V: ");
 385                                          ; 
 386   0090 00D40CDF                              lod  R0,_monmode   ; ris
 387   0094 2900                                  cmp R0,#1   ; alu_i
 388   0096 04D8AA00                              bne dy13 ; fjump F   ; cfj
 389   009A 00F4C100                              lod R0,#dy14   ; ltgd3
 390                                          ; force VR0 to 0   ; call
 391   009E 67D1                                  mov r2,r7   ; call
 392   00A0 1005                                  sub r2,#8   ; call
 393   00A2 3CD89628                              jsr _printf   ; call
 394                                          ; force VR0 to 0   ; res
 395   00A6 28D8B600                              bra dy15   ; anon
 396                                    dy13  ; anon
 397                                          ;   else printf("WC: ");
 398                                          ; 
 399   00AA 00F4BC00                              lod R0,#dy16   ; ltgd3
 400                                          ; force VR0 to 0   ; call
 401   00AE 67D1                                  mov r2,r7   ; call
 402   00B0 1005                                  sub r2,#8   ; call
 403   00B2 3CD89628                              jsr _printf   ; call
 404                                          ; force VR0 to 0   ; res
 405                                    dy15  ; anon
 406                                    dy12  ; anon
 407   00B6 7F8F                                  lod R6,[R7,#-2]   ; cr
 408   00B8 808F                                  lod r7,[r7]   ; cr
 409   00BA 00F3                                  ret   ; cr
 410   00BC 57433A20                        dy16  .data "WC: ",0
            00
 411   00C1 563A2000                        dy14  .data "V: ",0
 412   00C5 6D796D6F                        dy11  .data "mymon:",0
            6E3A00
 413                                          
 414                                          
 415                                          ; Routine intel_hex
 416                                          .align 2 
 417                              _intel_hex  .global
 418   00CC 809B                                  str r7,[r2]
 419   00CE E2D3                                  mov r7,r2
 420   00D0 7F9F                                  str R6,[R7,#-2]
 421   00D2 019C                                  str R0,[R7,#2]
 422                                          ; ------------------------------------------------- 
 423                                          ; local t  [R7,#2]
 424                                          ; s
 425                                          ; }
 426                                          ; 
 427                                          ; 
 428                                          ; 
 429                                          ; 
 430                                          ; 
 431                                          ; intel_hex(char *t)
 432                                          ; 
 433                                          ; {
 434                                          ; 
 435                                          ;   if (*t != ':') return;
 436                                          ; 
 437   00D4 018C                                  lod  R0,[R7,#2]   ; risf
 438   00D6 80A0                                  lodb R1,[R0]   ; risf
 439   00D8 AA1C                                  cmp R1,#58   ; alu_i
 440   00DA 00D8E400                              beq dy17 ; fjump F   ; cfj
 441   00DE 7F8F                                  lod R6,[R7,#-2]   ; cr
 442   00E0 808F                                  lod r7,[r7]   ; cr
 443   00E2 00F3                                  ret   ; cr
 444                                    dy17  ; anon
 445                                          ;   if (handle_ihex(0, t)) errorf = 1;
 446                                          ; 
 447   00E4 6000                                  lod R0,#0   ; lti
 448   00E6 818C                                  lod  R1,[R7,#2]   ; risf
 449                                          ; force VR0 to 0   ; call
 450                                          ; force VR1 to 1   ; call
 451   00E8 67D1                                  mov r2,r7   ; call
 452   00EA 1005                                  sub r2,#8   ; call
 453   00EC 3CD81801                              jsr _handle_ihex   ; call
 454                                          ; force VR0 to 0   ; res
 455   00F0 2800                                  cmp R0,#0   ; gfv
 456   00F2 00D8FC00                              beq dy18 ; fjmp1   ; cfj
 457   00F6 6100                                  lod R0,#1   ; lti
 458   00F8 20D404DF                              str  R0,_errorf   ; assign
 459                                    dy18  ; anon
 460                                          ;   if (errorf == 0) handle_ihex(1, t);
 461                                          ; 
 462   00FC 00D404DF                              lod  R0,_errorf   ; ris
 463   0100 2800                                  cmp R0,#0   ; gfv
 464   0102 04D81201                              bne dy19 ; fjump F   ; cfj
 465   0106 6100                                  lod R0,#1   ; lti
 466   0108 818C                                  lod  R1,[R7,#2]   ; risf
 467                                          ; force VR0 to 0   ; call
 468                                          ; force VR1 to 1   ; call
 469   010A 67D1                                  mov r2,r7   ; call
 470   010C 1005                                  sub r2,#8   ; call
 471   010E 3CD81801                              jsr _handle_ihex   ; call
 472                                          ; force VR0 to 0   ; res
 473                                    dy19  ; anon
 474   0112 7F8F                                  lod R6,[R7,#-2]   ; cr
 475   0114 808F                                  lod r7,[r7]   ; cr
 476   0116 00F3                                  ret   ; cr
 477                                          
 478                                          
 479                                          ; Routine handle_ihex
 480                                          .align 2 
 481                            _handle_ihex  .global
 482   0118 809B                                  str r7,[r2]
 483   011A E2D3                                  mov r7,r2
 484   011C 7F9F                                  str R6,[R7,#-2]
 485   011E 019C                                  str R0,[R7,#2]
 486   0120 829C                                  str R1,[R7,#4]
 487                                          ; ------------------------------------------------- 
 488                                          ; local write  [R7,#2]
 489                                          ; s
 490                                          ; local src  [R7,#4]
 491                                          ; s
 492                                          ; local llen  [R7,#-4]
 493                                          ; s
 494                                          ; local laddr  [R7,#-6]
 495                                          ; s
 496                                          ; local ltype  [R7,#-8]
 497                                          ; s
 498                                          ; local lsum  [R7,#-10]
 499                                          ; s
 500                                          ; local wq  [R7,#-12]
 501                                          ; s
 502                                          ; }
 503                                          ; 
 504                                          ; 
 505                                          ; 
 506                                          ; 
 507                                          ; 
 508                                          ; int handle_ihex(int write, char *src)
 509                                          ; 
 510                                          ; {
 511                                          ; 
 512                                          ;   int llen, laddr, ltype;
 513                                          ; 
 514                                          ;   uchar lsum;
 515                                          ; 
 516                                          ;   int wq;
 517                                          ; 
 518                                          ;   inpoi = src+1; 
 519                                          ; 
 520   0122 028C                                  lod  R0,[R7,#4]   ; risf
 521   0124 0900                                  add R0,#1   ; alu_i
 522   0126 20D410DF                              str  R0,_inpoi   ; assign
 523                                          ;   llen = iread(2);
 524                                          ; 
 525   012A 6200                                  lod R0,#2   ; lti
 526                                          ; force VR0 to 0   ; call
 527   012C 67D1                                  mov r2,r7   ; call
 528   012E 1209                                  sub r2,#18   ; call
 529   0130 3CD8C802                              jsr _iread   ; call
 530                                          ; force VR0 to 0   ; res
 531   0134 7E9C                                  str  R0,[R7,#-4]   ; assign
 532                                          ;   laddr = iread(4);
 533                                          ; 
 534   0136 6400                                  lod R0,#4   ; lti
 535                                          ; force VR0 to 0   ; call
 536   0138 67D1                                  mov r2,r7   ; call
 537   013A 1209                                  sub r2,#18   ; call
 538   013C 3CD8C802                              jsr _iread   ; call
 539                                          ; force VR0 to 0   ; res
 540   0140 7D9C                                  str  R0,[R7,#-6]   ; assign
 541                                          ;   ltype = iread(2);
 542                                          ; 
 543   0142 6200                                  lod R0,#2   ; lti
 544                                          ; force VR0 to 0   ; call
 545   0144 67D1                                  mov r2,r7   ; call
 546   0146 1209                                  sub r2,#18   ; call
 547   0148 3CD8C802                              jsr _iread   ; call
 548                                          ; force VR0 to 0   ; res
 549   014C 7C9C                                  str  R0,[R7,#-8]   ; assign
 550                                          ;   if (ltype == 2 && llen == 2) 
 551                                          ; 
 552   014E 7C8C                                  lod  R0,[R7,#-8]   ; risf
 553   0150 2A00                                  cmp R0,#2   ; alu_i
 554   0152 04D88E01                              bne dy20 ; fjump F   ; cfj
 555   0156 7E8C                                  lod  R0,[R7,#-4]   ; risf
 556   0158 2A00                                  cmp R0,#2   ; alu_i
 557   015A 04D88E01                              bne dy20 ; fjump F   ; cfj
 558                                          ;     {
 559                                          ; 
 560                                          ;       ihex_offset = (uchar *) (iread(4) << 4); 
 561                                          ; 
 562   015E 6400                                  lod R0,#4   ; lti
 563                                          ; force VR0 to 0   ; call
 564   0160 67D1                                  mov r2,r7   ; call
 565   0162 1209                                  sub r2,#18   ; call
 566   0164 3CD8C802                              jsr _iread   ; call
 567                                          ; force VR0 to 0   ; res
 568   0168 4900                                  asl R0,#1   ; fshif
 569   016A 4900                                  asl R0,#1   ; fshif
 570   016C 4900                                  asl R0,#1   ; fshif
 571   016E 4900                                  asl R0,#1   ; fshif
 572   0170 20D406DF                              str  R0,_ihex_offset   ; assign
 573                                          ;       lsum = iread(2);  
 574                                          ; 
 575   0174 6200                                  lod R0,#2   ; lti
 576                                          ; force VR0 to 0   ; call
 577   0176 67D1                                  mov r2,r7   ; call
 578   0178 1209                                  sub r2,#18   ; call
 579   017A 3CD8C802                              jsr _iread   ; call
 580                                          ; force VR0 to 0   ; res
 581   017E 7BBC                                  strb R0,[R7,#-10]   ; assign
 582                                          ;       return errorf;
 583                                          ; 
 584   0180 00D404DF                              lod  R0,_errorf   ; ris
 585                                          ; force VR0 to 0   ; loadtod0
 586   0184 7F8F                                  lod R6,[R7,#-2]   ; cr
 587   0186 808F                                  lod r7,[r7]   ; cr
 588   0188 00F3                                  ret   ; cr
 589   018A 28D8B801                              bra dy21   ; anon
 590                                    dy20  ; anon
 591                                          ;     }
 592                                          ; 
 593                                          ;   else if (ltype != 0)
 594                                          ; 
 595   018E 7C8C                                  lod  R0,[R7,#-8]   ; risf
 596   0190 2800                                  cmp R0,#0   ; gfv
 597   0192 00D8B801                              beq dy22 ; fjump F   ; cfj
 598                                          ;     {
 599                                          ; 
 600                                          ;       printf("Unknown type 0x%x encountered in line %s\n", ltype, src);
 601                                          ; 
 602   0196 028C                                  lod  R0,[R7,#4]   ; risf
 603   0198 799C                                  str  R0,[R7,#-14]   ; assign
 604   019A 00F49E02                              lod R0,#dy23   ; ltgd3
 605   019E FC8C                                  lod  R1,[R7,#-8]   ; risf
 606                                          ; force VR0 to 0   ; call
 607                                          ; force VR1 to 1   ; call
 608   01A0 67D1                                  mov r2,r7   ; call
 609   01A2 1409                                  sub r2,#20   ; call
 610   01A4 3CD89628                              jsr _printf   ; call
 611                                          ; force VR0 to 0   ; res
 612                                          ;       errorf = 1;
 613                                          ; 
 614   01A8 6100                                  lod R0,#1   ; lti
 615   01AA 20D404DF                              str  R0,_errorf   ; assign
 616                                          ;       return errorf;
 617                                          ; 
 618   01AE 00D404DF                              lod  R0,_errorf   ; ris
 619                                          ; force VR0 to 0   ; loadtod0
 620   01B2 7F8F                                  lod R6,[R7,#-2]   ; cr
 621   01B4 808F                                  lod r7,[r7]   ; cr
 622   01B6 00F3                                  ret   ; cr
 623                                    dy22  ; anon
 624                                    dy21  ; anon
 625                                          ;     }
 626                                          ; 
 627                                          ;   lsum = llen + laddr + ltype + (laddr >> 8);
 628                                          ; 
 629   01B8 7E8C                                  lod  R0,[R7,#-4]   ; risf
 630   01BA FD8C                                  lod  R1,[R7,#-6]   ; risf
 631   01BC 09D0                                  add R0,R1   ; alu-l
 632   01BE FC8C                                  lod  R1,[R7,#-8]   ; risf
 633   01C0 09D0                                  add R0,R1   ; alu-l
 634   01C2 FD8C                                  lod  R1,[R7,#-6]   ; risf
 635   01C4 D100                                  asr R1,#1   ; fshif
 636   01C6 D100                                  asr R1,#1   ; fshif
 637   01C8 D100                                  asr R1,#1   ; fshif
 638   01CA D100                                  asr R1,#1   ; fshif
 639   01CC D100                                  asr R1,#1   ; fshif
 640   01CE D100                                  asr R1,#1   ; fshif
 641   01D0 D100                                  asr R1,#1   ; fshif
 642   01D2 D100                                  asr R1,#1   ; fshif
 643   01D4 09D0                                  add R0,R1   ; alu-l
 644   01D6 7BBC                                  strb R0,[R7,#-10]   ; assign
 645                                          ;   for (wq=0; wq<llen; wq++)
 646                                          ; 
 647   01D8 6000                                  lod R0,#0   ; lti
 648   01DA 7A9C                                  str  R0,[R7,#-12]   ; assign
 649                                    dy24  ; anon
 650   01DC 7A8C                                  lod  R0,[R7,#-12]   ; risf
 651   01DE FE8C                                  lod  R1,[R7,#-4]   ; risf
 652   01E0 29D0                                  cmp R0,R1   ; alu-l
 653   01E2 0CD82602                              bge dy25 ; fjump F   ; cfj
 654                                          ;     {
 655                                          ; 
 656                                          ; local data  [R7,#-14]
 657                                          ; s
 658   01E6 6200                                  lod R0,#2   ; lti
 659                                          ; force VR0 to 0   ; call
 660   01E8 67D1                                  mov r2,r7   ; call
 661   01EA 1209                                  sub r2,#18   ; call
 662   01EC 3CD8C802                              jsr _iread   ; call
 663                                          ; force VR0 to 0   ; res
 664   01F0 79BC                                  strb R0,[R7,#-14]   ; assign
 665                                          ;       uchar data = iread(2);
 666                                          ; 
 667                                          ;       lsum = lsum + data;
 668                                          ; 
 669   01F2 7BAC                                  lodb R0,[R7,#-10]   ; risf
 670   01F4 F9AC                                  lodb R1,[R7,#-14]   ; risf
 671   01F6 09D0                                  add R0,R1   ; alu-l
 672   01F8 7BBC                                  strb R0,[R7,#-10]   ; assign
 673                                          ;       if (write) ihex_offset[laddr] = data;
 674                                          ; 
 675   01FA 018C                                  lod  R0,[R7,#2]   ; risf
 676   01FC 2800                                  cmp R0,#0   ; gfv
 677   01FE 00D80E02                              beq dy26 ; fjmp1   ; cfj
 678   0202 00D406DF                              lod  R0,_ihex_offset   ; ris
 679   0206 FD8C                                  lod  R1,[R7,#-6]   ; risf
 680   0208 09D0                                  add R0,R1   ; alu-l
 681   020A F9AC                                  lodb R1,[R7,#-14]   ; risf
 682   020C 80B0                                  strb R1,[R0]   ; assign
 683                                    dy26  ; anon
 684                                          ;       laddr += 1;
 685                                          ; 
 686   020E 7D8C                                  lod  R0,[R7,#-6]   ; risf
 687   0210 0900                                  add R0,#1   ; alu_i
 688   0212 7D9C                                  str  R0,[R7,#-6]   ; assign
 689                                          ;       bytes_loaded += 1;
 690                                          ; 
 691   0214 00D40ADF                              lod  R0,_bytes_loaded   ; ris
 692   0218 0900                                  add R0,#1   ; alu_i
 693   021A 20D40ADF                              str  R0,_bytes_loaded   ; assign
 694   021E 7A8C                                  lod  R0,[R7,#-12]   ; risf
 695   0220 0900                                  add R0,#1   ; qas
 696   0222 7A9C                                  str  R0,[R7,#-12]   ; qasmi
 697   0224 DCCA                                  bra dy24   ; anon
 698                                    dy25  ; anon
 699                                          ;     }
 700                                          ; 
 701                                          ;   lsum += iread(2);
 702                                          ; 
 703   0226 6200                                  lod R0,#2   ; lti
 704                                          ; force VR0 to 0   ; call
 705   0228 67D1                                  mov r2,r7   ; call
 706   022A 1209                                  sub r2,#18   ; call
 707   022C 3CD8C802                              jsr _iread   ; call
 708                                          ; force VR0 to 0   ; res
 709   0230 FBAC                                  lodb R1,[R7,#-10]   ; risf
 710   0232 88D0                                  add R1,R0   ; alu-l
 711   0234 FBBC                                  strb R1,[R7,#-10]   ; assign
 712                                          ;   if (lsum != 0) 
 713                                          ; 
 714   0236 7BAC                                  lodb R0,[R7,#-10]   ; risf
 715   0238 2800                                  cmp R0,#0   ; gfv
 716   023A 00D86602                              beq dy27 ; fjump F   ; cfj
 717                                          ;     { 
 718                                          ; 
 719                                          ;       printf("Checksum error in line %s, residue 0x%X (%X)\n", src, lsum, llen);
 720                                          ; 
 721   023E 7BAC                                  lodb R0,[R7,#-10]   ; risf
 722   0240 3F7C                                  and R0,#255   ; ccti
 723   0242 789C                                  str  R0,[R7,#-16]   ; assign
 724   0244 7E8C                                  lod  R0,[R7,#-4]   ; risf
 725   0246 799C                                  str  R0,[R7,#-14]   ; assign
 726   0248 00F47002                              lod R0,#dy28   ; ltgd3
 727   024C 828C                                  lod  R1,[R7,#4]   ; risf
 728                                          ; force VR0 to 0   ; call
 729                                          ; force VR1 to 1   ; call
 730   024E 67D1                                  mov r2,r7   ; call
 731   0250 1609                                  sub r2,#22   ; call
 732   0252 3CD89628                              jsr _printf   ; call
 733                                          ; force VR0 to 0   ; res
 734                                          ;       errorf = 1;
 735                                          ; 
 736   0256 6100                                  lod R0,#1   ; lti
 737   0258 20D404DF                              str  R0,_errorf   ; assign
 738                                          ;       return errorf;
 739                                          ; 
 740   025C 00D404DF                              lod  R0,_errorf   ; ris
 741                                          ; force VR0 to 0   ; loadtod0
 742   0260 7F8F                                  lod R6,[R7,#-2]   ; cr
 743   0262 808F                                  lod r7,[r7]   ; cr
 744   0264 00F3                                  ret   ; cr
 745                                    dy27  ; anon
 746                                          ;     }
 747                                          ; 
 748                                          ;   return errorf;
 749                                          ; 
 750   0266 00D404DF                              lod  R0,_errorf   ; ris
 751                                          ; force VR0 to 0   ; loadtod0
 752   026A 7F8F                                  lod R6,[R7,#-2]   ; cr
 753   026C 808F                                  lod r7,[r7]   ; cr
 754   026E 00F3                                  ret   ; cr
 755   0270 43686563                        dy28  .data "Checksum error in line %s, residue 0x%X (%X)",10,0
            6B73756D206572726F7220696E206C696E652025732C2072657369647565203078255820282558290A00
 756   029E 556E6B6E                        dy23  .data "Unknown type 0x%x encountered in line %s",10,0
            6F776E2074797065203078257820656E636F756E746572656420696E206C696E652025730A00
 757                                          
 758                                          
 759                                          ; Routine iread
 760                                          .align 2 
 761                                  _iread  .global
 762   02C8 809B                                  str r7,[r2]
 763   02CA E2D3                                  mov r7,r2
 764   02CC 7F9F                                  str R6,[R7,#-2]
 765   02CE 019C                                  str R0,[R7,#2]
 766                                          ; ------------------------------------------------- 
 767                                          ; local len  [R7,#2]
 768                                          ; s
 769                                          ; local r  [R7,#-4]
 770                                          ; s
 771   02D0 6000                                  lod R0,#0   ; lti
 772   02D2 7E9C                                  str  R0,[R7,#-4]   ; assign
 773                                          ; local i  [R7,#-6]
 774                                          ; s
 775                                          ; }
 776                                          ; 
 777                                          ; 
 778                                          ; 
 779                                          ; char *inpoi;
 780                                          ; 
 781                                          ; int iread(len)
 782                                          ; 
 783                                          ; {
 784                                          ; 
 785                                          ;   int r = 0;
 786                                          ; 
 787                                          ;   int i;
 788                                          ; 
 789                                          ;   for (i=0; i < len; i++)
 790                                          ; 
 791   02D4 6000                                  lod R0,#0   ; lti
 792   02D6 7D9C                                  str  R0,[R7,#-6]   ; assign
 793                                    dy29  ; anon
 794   02D8 7D8C                                  lod  R0,[R7,#-6]   ; risf
 795   02DA 818C                                  lod  R1,[R7,#2]   ; risf
 796   02DC 29D0                                  cmp R0,R1   ; alu-l
 797   02DE 0CD84C03                              bge dy30 ; fjump F   ; cfj
 798                                          ;   {
 799                                          ; 
 800                                          ; local c  [R7,#-8]
 801                                          ; s
 802   02E2 80D410DF                              lod  R1,_inpoi   ; ris
 803   02E6 61D0                                  mov R0,R1   ; qasp1
 804   02E8 0900                                  add R0,#1   ; qasp
 805   02EA 20D410DF                              str  R0,_inpoi   ; qasp
 806   02EE 00A4                                  lodb R0,[R1]   ; risf
 807                                          ; force VR0 to 0   ; call
 808   02F0 67D1                                  mov r2,r7   ; call
 809   02F2 1405                                  sub r2,#12   ; call
 810   02F4 3CD88E21                              jsr _toupper   ; call
 811                                          ; force VR0 to 0   ; res
 812   02F8 7CBC                                  strb R0,[R7,#-8]   ; assign
 813                                          ;     char c = toupper(*inpoi++);
 814                                          ; 
 815                                          ;     while (c == ' ') c = toupper(*inpoi++);
 816                                          ; 
 817                                    dy31  ; anon
 818   02FA 7CAC                                  lodb R0,[R7,#-8]   ; risf
 819   02FC 2810                                  cmp R0,#32   ; alu_i
 820   02FE 04D81C03                              bne dy32 ; fjump F   ; cfj
 821   0302 80D410DF                              lod  R1,_inpoi   ; ris
 822   0306 61D0                                  mov R0,R1   ; qasp1
 823   0308 0900                                  add R0,#1   ; qasp
 824   030A 20D410DF                              str  R0,_inpoi   ; qasp
 825   030E 00A4                                  lodb R0,[R1]   ; risf
 826                                          ; force VR0 to 0   ; call
 827   0310 67D1                                  mov r2,r7   ; call
 828   0312 1605                                  sub r2,#14   ; call
 829   0314 3CD88E21                              jsr _toupper   ; call
 830                                          ; force VR0 to 0   ; res
 831   0318 7CBC                                  strb R0,[R7,#-8]   ; assign
 832   031A F0CA                                  bra dy31   ; anon
 833                                    dy32  ; anon
 834                                          ;     c = (c <= '9') ? c-'0': c-('0'+7);
 835                                          ; 
 836   031C 7CAC                                  lodb R0,[R7,#-8]   ; risf
 837   031E 291C                                  cmp R0,#57   ; alu_i
 838   0320 10D82C03                              bgt dy33 ; fjump F   ; cfj
 839   0324 7CAC                                  lodb R0,[R7,#-8]   ; risf
 840   0326 1018                                  sub R0,#48   ; alu_i
 841   0328 28D83203                              bra dy34   ; anon
 842                                    dy33  ; anon
 843   032C FCAC                                  lodb R1,[R7,#-8]   ; risf
 844   032E 9718                                  sub R1,#55   ; alu_i
 845   0330 61D0                                  mov R0,R1   ; ltmv
 846                                    dy34  ; anon
 847   0332 7CBC                                  strb R0,[R7,#-8]   ; assign
 848                                          ;     r = (r<<4) + c;
 849                                          ; 
 850   0334 7E8C                                  lod  R0,[R7,#-4]   ; risf
 851   0336 4900                                  asl R0,#1   ; fshif
 852   0338 4900                                  asl R0,#1   ; fshif
 853   033A 4900                                  asl R0,#1   ; fshif
 854   033C 4900                                  asl R0,#1   ; fshif
 855   033E FCAC                                  lodb R1,[R7,#-8]   ; risf
 856   0340 09D0                                  add R0,R1   ; alu-l
 857   0342 7E9C                                  str  R0,[R7,#-4]   ; assign
 858   0344 7D8C                                  lod  R0,[R7,#-6]   ; risf
 859   0346 0900                                  add R0,#1   ; qas
 860   0348 7D9C                                  str  R0,[R7,#-6]   ; qasmi
 861   034A C7CA                                  bra dy29   ; anon
 862                                    dy30  ; anon
 863                                          ;   }
 864                                          ; 
 865                                          ;   return r;
 866                                          ; 
 867   034C 7EAC                                  lodb R0,[R7,#-4]   ; risf
 868                                          ; force VR0 to 0   ; loadtod0
 869   034E 7F8F                                  lod R6,[R7,#-2]   ; cr
 870   0350 808F                                  lod r7,[r7]   ; cr
 871   0352 00F3                                  ret   ; cr
 872                                          
 873                                          
 874                                          ; Routine mymon_dispatch
 875                                          ; forced litpool here
 876                                          .align 2 
 877                         _mymon_dispatch  .global
 878   0354 809B                                  str r7,[r2]
 879   0356 E2D3                                  mov r7,r2
 880   0358 7F9F                                  str R6,[R7,#-2]
 881   035A 019C                                  str R0,[R7,#2]
 882                                          ; ------------------------------------------------- 
 883                                          ; local argv  [R7,#2]
 884                                          ; s
 885                                          ; }
 886                                          ; 
 887                                          ; 
 888                                          ; 
 889                                          ; int mymon_dispatch(char **argv)
 890                                          ; 
 891                                          ; {
 892                                          ; 
 893                                          ;   
 894                                          ; 
 895                                          ;   if (*argv == 0 || strlen(*argv)==0) return;
 896                                          ; 
 897   035C 018C                                  lod  R0,[R7,#2]   ; risf
 898   035E 8080                                  lod  R1,[R0]   ; risf
 899   0360 A800                                  cmp R1,#0   ; gfv
 900   0362 00D87803                              beq dy35   ; ctj
 901   0366 818C                                  lod  R1,[R7,#2]   ; risf
 902   0368 0084                                  lod  R0,[R1]   ; risf
 903                                          ; force VR0 to 0   ; call
 904   036A 67D1                                  mov r2,r7   ; call
 905   036C 1005                                  sub r2,#8   ; call
 906   036E 3CD8AA2A                              jsr _strlen   ; call
 907                                          ; force VR0 to 0   ; res
 908   0372 2800                                  cmp R0,#0   ; gfv
 909   0374 04D87E03                              bne dy36 ; fjump F   ; cfj
 910                                    dy35  ; anon
 911   0378 7F8F                                  lod R6,[R7,#-2]   ; cr
 912   037A 808F                                  lod r7,[r7]   ; cr
 913   037C 00F3                                  ret   ; cr
 914                                    dy36  ; anon
 915                                          ;   if (strcmp(*argv, "?")==0  || strcmp(*argv, "help")==0) return mymon_help(argv);
 916                                          ; 
 917   037E 818C                                  lod  R1,[R7,#2]   ; risf
 918   0380 0084                                  lod  R0,[R1]   ; risf
 919   0382 80F43006                              lod R1,#dy37   ; ltgd3
 920                                          ; force VR0 to 0   ; call
 921                                          ; force VR1 to 1   ; call
 922   0386 67D1                                  mov r2,r7   ; call
 923   0388 1005                                  sub r2,#8   ; call
 924   038A 3CD81822                              jsr _strcmp   ; call
 925                                          ; force VR0 to 0   ; res
 926   038E 2800                                  cmp R0,#0   ; gfv
 927   0390 00D8AA03                              beq dy38   ; ctj
 928   0394 818C                                  lod  R1,[R7,#2]   ; risf
 929   0396 0084                                  lod  R0,[R1]   ; risf
 930   0398 80F42B06                              lod R1,#dy39   ; ltgd3
 931                                          ; force VR0 to 0   ; call
 932                                          ; force VR1 to 1   ; call
 933   039C 67D1                                  mov r2,r7   ; call
 934   039E 1005                                  sub r2,#8   ; call
 935   03A0 3CD81822                              jsr _strcmp   ; call
 936                                          ; force VR0 to 0   ; res
 937   03A4 2800                                  cmp R0,#0   ; gfv
 938   03A6 04D8BA03                              bne dy40 ; fjump F   ; cfj
 939                                    dy38  ; anon
 940   03AA 018C                                  lod  R0,[R7,#2]   ; risf
 941                                          ; force VR0 to 0   ; call
 942   03AC 67D1                                  mov r2,r7   ; call
 943   03AE 1005                                  sub r2,#8   ; call
 944   03B0 3CD8A811                              jsr _mymon_help   ; call
 945                                          ; force VR0 to 0   ; res
 946                                          ; force VR0 to 0   ; loadtod0
 947   03B4 7F8F                                  lod R6,[R7,#-2]   ; cr
 948   03B6 808F                                  lod r7,[r7]   ; cr
 949   03B8 00F3                                  ret   ; cr
 950                                    dy40  ; anon
 951                                          ;   if (strcmp(*argv, "md")==0) return mymon_md(argv);
 952                                          ; 
 953   03BA 818C                                  lod  R1,[R7,#2]   ; risf
 954   03BC 0084                                  lod  R0,[R1]   ; risf
 955   03BE 80F42806                              lod R1,#dy41   ; ltgd3
 956                                          ; force VR0 to 0   ; call
 957                                          ; force VR1 to 1   ; call
 958   03C2 67D1                                  mov r2,r7   ; call
 959   03C4 1005                                  sub r2,#8   ; call
 960   03C6 3CD81822                              jsr _strcmp   ; call
 961                                          ; force VR0 to 0   ; res
 962   03CA 2800                                  cmp R0,#0   ; gfv
 963   03CC 04D8E003                              bne dy42 ; fjump F   ; cfj
 964   03D0 018C                                  lod  R0,[R7,#2]   ; risf
 965                                          ; force VR0 to 0   ; call
 966   03D2 67D1                                  mov r2,r7   ; call
 967   03D4 1005                                  sub r2,#8   ; call
 968   03D6 3CD8F607                              jsr _mymon_md   ; call
 969                                          ; force VR0 to 0   ; res
 970                                          ; force VR0 to 0   ; loadtod0
 971   03DA 7F8F                                  lod R6,[R7,#-2]   ; cr
 972   03DC 808F                                  lod r7,[r7]   ; cr
 973   03DE 00F3                                  ret   ; cr
 974                                    dy42  ; anon
 975                                          ;   if (strcmp(*argv, "mdw")==0) return mymon_md_w(argv);
 976                                          ; 
 977   03E0 818C                                  lod  R1,[R7,#2]   ; risf
 978   03E2 0084                                  lod  R0,[R1]   ; risf
 979   03E4 80F42406                              lod R1,#dy43   ; ltgd3
 980                                          ; force VR0 to 0   ; call
 981                                          ; force VR1 to 1   ; call
 982   03E8 67D1                                  mov r2,r7   ; call
 983   03EA 1005                                  sub r2,#8   ; call
 984   03EC 3CD81822                              jsr _strcmp   ; call
 985                                          ; force VR0 to 0   ; res
 986   03F0 2800                                  cmp R0,#0   ; gfv
 987   03F2 04D80604                              bne dy44 ; fjump F   ; cfj
 988   03F6 018C                                  lod  R0,[R7,#2]   ; risf
 989                                          ; force VR0 to 0   ; call
 990   03F8 67D1                                  mov r2,r7   ; call
 991   03FA 1005                                  sub r2,#8   ; call
 992   03FC 3CD8D406                              jsr _mymon_md_w   ; call
 993                                          ; force VR0 to 0   ; res
 994                                          ; force VR0 to 0   ; loadtod0
 995   0400 7F8F                                  lod R6,[R7,#-2]   ; cr
 996   0402 808F                                  lod r7,[r7]   ; cr
 997   0404 00F3                                  ret   ; cr
 998                                    dy44  ; anon
 999                                          ;   if (strcmp(*argv, "mmw")==0) return mymon_ma(1, argv);
1000                                          ; 
1001   0406 818C                                  lod  R1,[R7,#2]   ; risf
1002   0408 0084                                  lod  R0,[R1]   ; risf
1003   040A 80F42006                              lod R1,#dy45   ; ltgd3
1004                                          ; force VR0 to 0   ; call
1005                                          ; force VR1 to 1   ; call
1006   040E 67D1                                  mov r2,r7   ; call
1007   0410 1005                                  sub r2,#8   ; call
1008   0412 3CD81822                              jsr _strcmp   ; call
1009                                          ; force VR0 to 0   ; res
1010   0416 2800                                  cmp R0,#0   ; gfv
1011   0418 04D82E04                              bne dy46 ; fjump F   ; cfj
1012   041C 6100                                  lod R0,#1   ; lti
1013   041E 818C                                  lod  R1,[R7,#2]   ; risf
1014                                          ; force VR0 to 0   ; call
1015                                          ; force VR1 to 1   ; call
1016   0420 67D1                                  mov r2,r7   ; call
1017   0422 1005                                  sub r2,#8   ; call
1018   0424 3CD8740A                              jsr _mymon_ma   ; call
1019                                          ; force VR0 to 0   ; res
1020                                          ; force VR0 to 0   ; loadtod0
1021   0428 7F8F                                  lod R6,[R7,#-2]   ; cr
1022   042A 808F                                  lod r7,[r7]   ; cr
1023   042C 00F3                                  ret   ; cr
1024                                    dy46  ; anon
1025                                          ; 
1026                                          ; 
1027                                          ; 
1028                                          ; 
1029                                          ; 
1030                                          ; 
1031                                          ; 
1032                                          ; 
1033                                          ; 
1034                                          ; 
1035                                          ; 
1036                                          ; 
1037                                          ; 
1038                                          ; 
1039                                          ; 
1040                                          ; 
1041                                          ; 
1042                                          ; 
1043                                          ;   if (strcmp(*argv, "bp")==0) return mymon_bp(argv);
1044                                          ; 
1045   042E 818C                                  lod  R1,[R7,#2]   ; risf
1046   0430 0084                                  lod  R0,[R1]   ; risf
1047   0432 80F41D06                              lod R1,#dy47   ; ltgd3
1048                                          ; force VR0 to 0   ; call
1049                                          ; force VR1 to 1   ; call
1050   0436 67D1                                  mov r2,r7   ; call
1051   0438 1005                                  sub r2,#8   ; call
1052   043A 3CD81822                              jsr _strcmp   ; call
1053                                          ; force VR0 to 0   ; res
1054   043E 2800                                  cmp R0,#0   ; gfv
1055   0440 04D85404                              bne dy48 ; fjump F   ; cfj
1056   0444 018C                                  lod  R0,[R7,#2]   ; risf
1057                                          ; force VR0 to 0   ; call
1058   0446 67D1                                  mov r2,r7   ; call
1059   0448 1005                                  sub r2,#8   ; call
1060   044A 3CD89A0E                              jsr _mymon_bp   ; call
1061                                          ; force VR0 to 0   ; res
1062                                          ; force VR0 to 0   ; loadtod0
1063   044E 7F8F                                  lod R6,[R7,#-2]   ; cr
1064   0450 808F                                  lod r7,[r7]   ; cr
1065   0452 00F3                                  ret   ; cr
1066                                    dy48  ; anon
1067                                          ;   if (strcmp(*argv, "mmr")==0) return mymon_ma(0, argv);
1068                                          ; 
1069   0454 818C                                  lod  R1,[R7,#2]   ; risf
1070   0456 0084                                  lod  R0,[R1]   ; risf
1071   0458 80F41906                              lod R1,#dy49   ; ltgd3
1072                                          ; force VR0 to 0   ; call
1073                                          ; force VR1 to 1   ; call
1074   045C 67D1                                  mov r2,r7   ; call
1075   045E 1005                                  sub r2,#8   ; call
1076   0460 3CD81822                              jsr _strcmp   ; call
1077                                          ; force VR0 to 0   ; res
1078   0464 2800                                  cmp R0,#0   ; gfv
1079   0466 04D87C04                              bne dy50 ; fjump F   ; cfj
1080   046A 6000                                  lod R0,#0   ; lti
1081   046C 818C                                  lod  R1,[R7,#2]   ; risf
1082                                          ; force VR0 to 0   ; call
1083                                          ; force VR1 to 1   ; call
1084   046E 67D1                                  mov r2,r7   ; call
1085   0470 1005                                  sub r2,#8   ; call
1086   0472 3CD8740A                              jsr _mymon_ma   ; call
1087                                          ; force VR0 to 0   ; res
1088                                          ; force VR0 to 0   ; loadtod0
1089   0476 7F8F                                  lod R6,[R7,#-2]   ; cr
1090   0478 808F                                  lod r7,[r7]   ; cr
1091   047A 00F3                                  ret   ; cr
1092                                    dy50  ; anon
1093                                          ;   if (strcmp(*argv, "mm")==0) return mymon_mm(argv);
1094                                          ; 
1095   047C 818C                                  lod  R1,[R7,#2]   ; risf
1096   047E 0084                                  lod  R0,[R1]   ; risf
1097   0480 80F41606                              lod R1,#dy51   ; ltgd3
1098                                          ; force VR0 to 0   ; call
1099                                          ; force VR1 to 1   ; call
1100   0484 67D1                                  mov r2,r7   ; call
1101   0486 1005                                  sub r2,#8   ; call
1102   0488 3CD81822                              jsr _strcmp   ; call
1103                                          ; force VR0 to 0   ; res
1104   048C 2800                                  cmp R0,#0   ; gfv
1105   048E 04D8A204                              bne dy52 ; fjump F   ; cfj
1106   0492 018C                                  lod  R0,[R7,#2]   ; risf
1107                                          ; force VR0 to 0   ; call
1108   0494 67D1                                  mov r2,r7   ; call
1109   0496 1005                                  sub r2,#8   ; call
1110   0498 3CD8240F                              jsr _mymon_mm   ; call
1111                                          ; force VR0 to 0   ; res
1112                                          ; force VR0 to 0   ; loadtod0
1113   049C 7F8F                                  lod R6,[R7,#-2]   ; cr
1114   049E 808F                                  lod r7,[r7]   ; cr
1115   04A0 00F3                                  ret   ; cr
1116                                    dy52  ; anon
1117                                          ;   if (strcmp(*argv, "go")==0) return mymon_go(argv);
1118                                          ; 
1119   04A2 818C                                  lod  R1,[R7,#2]   ; risf
1120   04A4 0084                                  lod  R0,[R1]   ; risf
1121   04A6 80F41306                              lod R1,#dy53   ; ltgd3
1122                                          ; force VR0 to 0   ; call
1123                                          ; force VR1 to 1   ; call
1124   04AA 67D1                                  mov r2,r7   ; call
1125   04AC 1005                                  sub r2,#8   ; call
1126   04AE 3CD81822                              jsr _strcmp   ; call
1127                                          ; force VR0 to 0   ; res
1128   04B2 2800                                  cmp R0,#0   ; gfv
1129   04B4 04D8C804                              bne dy54 ; fjump F   ; cfj
1130   04B8 018C                                  lod  R0,[R7,#2]   ; risf
1131                                          ; force VR0 to 0   ; call
1132   04BA 67D1                                  mov r2,r7   ; call
1133   04BC 1005                                  sub r2,#8   ; call
1134   04BE 3CD8F809                              jsr _mymon_go   ; call
1135                                          ; force VR0 to 0   ; res
1136                                          ; force VR0 to 0   ; loadtod0
1137   04C2 7F8F                                  lod R6,[R7,#-2]   ; cr
1138   04C4 808F                                  lod r7,[r7]   ; cr
1139   04C6 00F3                                  ret   ; cr
1140                                    dy54  ; anon
1141                                          ;   if (strcmp(*argv, "dis")==0) return mymon_dis(argv);
1142                                          ; 
1143   04C8 818C                                  lod  R1,[R7,#2]   ; risf
1144   04CA 0084                                  lod  R0,[R1]   ; risf
1145   04CC 80F40F06                              lod R1,#dy55   ; ltgd3
1146                                          ; force VR0 to 0   ; call
1147                                          ; force VR1 to 1   ; call
1148   04D0 67D1                                  mov r2,r7   ; call
1149   04D2 1005                                  sub r2,#8   ; call
1150   04D4 3CD81822                              jsr _strcmp   ; call
1151                                          ; force VR0 to 0   ; res
1152   04D8 2800                                  cmp R0,#0   ; gfv
1153   04DA 04D8EE04                              bne dy56 ; fjump F   ; cfj
1154   04DE 018C                                  lod  R0,[R7,#2]   ; risf
1155                                          ; force VR0 to 0   ; call
1156   04E0 67D1                                  mov r2,r7   ; call
1157   04E2 1005                                  sub r2,#8   ; call
1158   04E4 3CD87009                              jsr _mymon_dis   ; call
1159                                          ; force VR0 to 0   ; res
1160                                          ; force VR0 to 0   ; loadtod0
1161   04E8 7F8F                                  lod R6,[R7,#-2]   ; cr
1162   04EA 808F                                  lod r7,[r7]   ; cr
1163   04EC 00F3                                  ret   ; cr
1164                                    dy56  ; anon
1165                                          ;   if (strcmp(*argv, "clear")==0) return mymon_clear();
1166                                          ; 
1167   04EE 818C                                  lod  R1,[R7,#2]   ; risf
1168   04F0 0084                                  lod  R0,[R1]   ; risf
1169   04F2 80F40906                              lod R1,#dy57   ; ltgd3
1170                                          ; force VR0 to 0   ; call
1171                                          ; force VR1 to 1   ; call
1172   04F6 67D1                                  mov r2,r7   ; call
1173   04F8 1005                                  sub r2,#8   ; call
1174   04FA 3CD81822                              jsr _strcmp   ; call
1175                                          ; force VR0 to 0   ; res
1176   04FE 2800                                  cmp R0,#0   ; gfv
1177   0500 04D81205                              bne dy58 ; fjump F   ; cfj
1178   0504 67D1                                  mov r2,r7   ; call
1179   0506 1005                                  sub r2,#8   ; call
1180   0508 3CD89006                              jsr _mymon_clear   ; call
1181                                          ; force VR0 to 0   ; res
1182                                          ; force VR0 to 0   ; loadtod0
1183   050C 7F8F                                  lod R6,[R7,#-2]   ; cr
1184   050E 808F                                  lod r7,[r7]   ; cr
1185   0510 00F3                                  ret   ; cr
1186                                    dy58  ; anon
1187                                          ;   if (strcmp(*argv, "fill")==0) return mymon_fill(argv);
1188                                          ; 
1189   0512 818C                                  lod  R1,[R7,#2]   ; risf
1190   0514 0084                                  lod  R0,[R1]   ; risf
1191   0516 80F40406                              lod R1,#dy59   ; ltgd3
1192                                          ; force VR0 to 0   ; call
1193                                          ; force VR1 to 1   ; call
1194   051A 67D1                                  mov r2,r7   ; call
1195   051C 1005                                  sub r2,#8   ; call
1196   051E 3CD81822                              jsr _strcmp   ; call
1197                                          ; force VR0 to 0   ; res
1198   0522 2800                                  cmp R0,#0   ; gfv
1199   0524 04D83805                              bne dy60 ; fjump F   ; cfj
1200   0528 018C                                  lod  R0,[R7,#2]   ; risf
1201                                          ; force VR0 to 0   ; call
1202   052A 67D1                                  mov r2,r7   ; call
1203   052C 1005                                  sub r2,#8   ; call
1204   052E 3CD8780C                              jsr _mymon_fill   ; call
1205                                          ; force VR0 to 0   ; res
1206                                          ; force VR0 to 0   ; loadtod0
1207   0532 7F8F                                  lod R6,[R7,#-2]   ; cr
1208   0534 808F                                  lod r7,[r7]   ; cr
1209   0536 00F3                                  ret   ; cr
1210                                    dy60  ; anon
1211                                          ;   if (strcmp(*argv, "findb")==0) return mymon_findb(argv);
1212                                          ; 
1213   0538 818C                                  lod  R1,[R7,#2]   ; risf
1214   053A 0084                                  lod  R0,[R1]   ; risf
1215   053C 80F4FE05                              lod R1,#dy61   ; ltgd3
1216                                          ; force VR0 to 0   ; call
1217                                          ; force VR1 to 1   ; call
1218   0540 67D1                                  mov r2,r7   ; call
1219   0542 1005                                  sub r2,#8   ; call
1220   0544 3CD81822                              jsr _strcmp   ; call
1221                                          ; force VR0 to 0   ; res
1222   0548 2800                                  cmp R0,#0   ; gfv
1223   054A 04D85E05                              bne dy62 ; fjump F   ; cfj
1224   054E 018C                                  lod  R0,[R7,#2]   ; risf
1225                                          ; force VR0 to 0   ; call
1226   0550 67D1                                  mov r2,r7   ; call
1227   0552 1005                                  sub r2,#8   ; call
1228   0554 3CD8DE0D                              jsr _mymon_findb   ; call
1229                                          ; force VR0 to 0   ; res
1230                                          ; force VR0 to 0   ; loadtod0
1231   0558 7F8F                                  lod R6,[R7,#-2]   ; cr
1232   055A 808F                                  lod r7,[r7]   ; cr
1233   055C 00F3                                  ret   ; cr
1234                                    dy62  ; anon
1235   055E 28D86205                              bra dy63   ; anon
1236                                    dy63  ; anon
1237                                          ; 
1238                                          ; 
1239                                          ; 
1240                                          ; 
1241                                          ; 
1242                                          ; 
1243                                          ;   if (strcmp(*argv, "findl")==0) return mymon_findl(argv);
1244                                          ; 
1245   0562 818C                                  lod  R1,[R7,#2]   ; risf
1246   0564 0084                                  lod  R0,[R1]   ; risf
1247   0566 80F4F805                              lod R1,#dy64   ; ltgd3
1248                                          ; force VR0 to 0   ; call
1249                                          ; force VR1 to 1   ; call
1250   056A 67D1                                  mov r2,r7   ; call
1251   056C 1005                                  sub r2,#8   ; call
1252   056E 3CD81822                              jsr _strcmp   ; call
1253                                          ; force VR0 to 0   ; res
1254   0572 2800                                  cmp R0,#0   ; gfv
1255   0574 04D88805                              bne dy65 ; fjump F   ; cfj
1256   0578 018C                                  lod  R0,[R7,#2]   ; risf
1257                                          ; force VR0 to 0   ; call
1258   057A 67D1                                  mov r2,r7   ; call
1259   057C 1005                                  sub r2,#8   ; call
1260   057E 3CD8140D                              jsr _mymon_findl   ; call
1261                                          ; force VR0 to 0   ; res
1262                                          ; force VR0 to 0   ; loadtod0
1263   0582 7F8F                                  lod R6,[R7,#-2]   ; cr
1264   0584 808F                                  lod r7,[r7]   ; cr
1265   0586 00F3                                  ret   ; cr
1266                                    dy65  ; anon
1267                                          ; 
1268                                          ; 
1269                                          ;   if (strcmp(*argv, "offset")==0) return mymon_offset(argv);
1270                                          ; 
1271   0588 818C                                  lod  R1,[R7,#2]   ; risf
1272   058A 0084                                  lod  R0,[R1]   ; risf
1273   058C 80F4F105                              lod R1,#dy66   ; ltgd3
1274                                          ; force VR0 to 0   ; call
1275                                          ; force VR1 to 1   ; call
1276   0590 67D1                                  mov r2,r7   ; call
1277   0592 1005                                  sub r2,#8   ; call
1278   0594 3CD81822                              jsr _strcmp   ; call
1279                                          ; force VR0 to 0   ; res
1280   0598 2800                                  cmp R0,#0   ; gfv
1281   059A 04D8AE05                              bne dy67 ; fjump F   ; cfj
1282   059E 018C                                  lod  R0,[R7,#2]   ; risf
1283                                          ; force VR0 to 0   ; call
1284   05A0 67D1                                  mov r2,r7   ; call
1285   05A2 1005                                  sub r2,#8   ; call
1286   05A4 3CD83206                              jsr _mymon_offset   ; call
1287                                          ; force VR0 to 0   ; res
1288                                          ; force VR0 to 0   ; loadtod0
1289   05A8 7F8F                                  lod R6,[R7,#-2]   ; cr
1290   05AA 808F                                  lod r7,[r7]   ; cr
1291   05AC 00F3                                  ret   ; cr
1292                                    dy67  ; anon
1293                                          ;   sayprompt(); printf("Possibly an error >%s< >%s<\n", argv[0], argv[1]);
1294                                          ; 
1295   05AE 67D1                                  mov r2,r7   ; call
1296   05B0 1005                                  sub r2,#8   ; call
1297   05B2 3CD87000                              jsr _sayprompt   ; call
1298                                          ; force VR0 to 0   ; res
1299   05B6 018C                                  lod  R0,[R7,#2]   ; risf
1300   05B8 0A00                                  add R0,#2   ; alu_i
1301   05BA 8080                                  lod  R1,[R0]   ; risf
1302   05BC FE9C                                  str  R1,[R7,#-4]   ; assign
1303   05BE 00F4D405                              lod R0,#dy68   ; ltgd3
1304   05C2 018D                                  lod  R2,[R7,#2]   ; risf
1305   05C4 8088                                  lod  R1,[R2]   ; risf
1306                                          ; force VR0 to 0   ; call
1307                                          ; force VR1 to 1   ; call
1308   05C6 67D1                                  mov r2,r7   ; call
1309   05C8 1205                                  sub r2,#10   ; call
1310   05CA 3CD89628                              jsr _printf   ; call
1311                                          ; force VR0 to 0   ; res
1312   05CE 7F8F                                  lod R6,[R7,#-2]   ; cr
1313   05D0 808F                                  lod r7,[r7]   ; cr
1314   05D2 00F3                                  ret   ; cr
1315   05D4 506F7373                        dy68  .data "Possibly an error >%s< >%s<",10,0
            69626C7920616E206572726F72203E25733C203E25733C0A00
1316   05F1 6F666673                        dy66  .data "offset",0
            657400
1317   05F8 66696E64                        dy64  .data "findl",0
            6C00
1318   05FE 66696E64                        dy61  .data "findb",0
            6200
1319   0604 66696C6C                        dy59  .data "fill",0
            00
1320   0609 636C6561                        dy57  .data "clear",0
            7200
1321   060F 64697300                        dy55  .data "dis",0
1322   0613 676F00                          dy53  .data "go",0
1323   0616 6D6D00                          dy51  .data "mm",0
1324   0619 6D6D7200                        dy49  .data "mmr",0
1325   061D 627000                          dy47  .data "bp",0
1326   0620 6D6D7700                        dy45  .data "mmw",0
1327   0624 6D647700                        dy43  .data "mdw",0
1328   0628 6D6400                          dy41  .data "md",0
1329   062B 68656C70                        dy39  .data "help",0
            00
1330   0630 3F00                            dy37  .data "?",0
1331                                          
1332                                          
1333                                          ; Routine mymon_offset
1334                                          .align 2 
1335                           _mymon_offset  .global
1336   0632 809B                                  str r7,[r2]
1337   0634 E2D3                                  mov r7,r2
1338   0636 7F9F                                  str R6,[R7,#-2]
1339   0638 019C                                  str R0,[R7,#2]
1340                                          ; ------------------------------------------------- 
1341                                          ; local argv  [R7,#2]
1342                                          ; s
1343                                          ; }
1344                                          ; 
1345                                          ; 
1346                                          ; 
1347                                          ; extern void zog1(void);
1348                                          ; 
1349                                          ; extern void zog2(void);
1350                                          ; 
1351                                          ; extern void zog3(void);
1352                                          ; 
1353                                          ; extern void zog4(void);
1354                                          ; 
1355                                          ; extern void zog5(void);
1356                                          ; 
1357                                          ; 
1358                                          ; 
1359                                          ; int mymon_offset(char **argv)
1360                                          ; 
1361                                          ; {
1362                                          ; 
1363                                          ;   if (argv[1]) ihex_offset = (uchar *) rhex(argv[1]);
1364                                          ; 
1365   063A 018C                                  lod  R0,[R7,#2]   ; risf
1366   063C 0A00                                  add R0,#2   ; alu_i
1367   063E 8080                                  lod  R1,[R0]   ; risf
1368   0640 A800                                  cmp R1,#0   ; gfv
1369   0642 00D85806                              beq dy69 ; fjmp1   ; cfj
1370   0646 818C                                  lod  R1,[R7,#2]   ; risf
1371   0648 8A00                                  add R1,#2   ; alu_i
1372   064A 0084                                  lod  R0,[R1]   ; risf
1373                                          ; force VR0 to 0   ; call
1374   064C 67D1                                  mov r2,r7   ; call
1375   064E 1005                                  sub r2,#8   ; call
1376   0650 3CD80E1E                              jsr _rhex   ; call
1377                                          ; force VR0 to 0   ; res
1378   0654 20D406DF                              str  R0,_ihex_offset   ; assign
1379                                    dy69  ; anon
1380                                          ;   printf("Offset for hex download 0x%08X\n", ihex_offset);
1381                                          ; 
1382   0658 00F47006                              lod R0,#dy70   ; ltgd3
1383   065C 80D406DF                              lod  R1,_ihex_offset   ; ris
1384                                          ; force VR0 to 0   ; call
1385                                          ; force VR1 to 1   ; call
1386   0660 67D1                                  mov r2,r7   ; call
1387   0662 1005                                  sub r2,#8   ; call
1388   0664 3CD89628                              jsr _printf   ; call
1389                                          ; force VR0 to 0   ; res
1390                                          ;   return 0;
1391                                          ; 
1392   0668 6000                                  lod R0,#0   ; lti
1393                                          ; force VR0 to 0   ; loadtod0
1394   066A 7F8F                                  lod R6,[R7,#-2]   ; cr
1395   066C 808F                                  lod r7,[r7]   ; cr
1396   066E 00F3                                  ret   ; cr
1397   0670 4F666673                        dy70  .data "Offset for hex download 0x%08X",10,0
            657420666F722068657820646F776E6C6F6164203078253038580A00
1398                                          
1399                                          
1400                                          ; Routine mymon_clear
1401                                          .align 2 
1402                            _mymon_clear  .global
1403   0690 809B                                  str r7,[r2]
1404   0692 E2D3                                  mov r7,r2
1405   0694 7F9F                                  str R6,[R7,#-2]
1406                                          ; ------------------------------------------------- 
1407                                          ; }
1408                                          ; 
1409                                          ; 
1410                                          ; 
1411                                          ; 
1412                                          ; 
1413                                          ; 
1414                                          ; 
1415                                          ; 
1416                                          ; 
1417                                          ; int mymon_clear()
1418                                          ; 
1419                                          ; { 
1420                                          ; 
1421                                          ;   
1422                                          ; 
1423                                          ;   printf("\n::%i bytes loaded\n", bytes_loaded - errorf);
1424                                          ; 
1425   0696 00F4C006                              lod R0,#dy71   ; ltgd3
1426   069A 80D40ADF                              lod  R1,_bytes_loaded   ; ris
1427   069E 00D504DF                              lod  R2,_errorf   ; ris
1428   06A2 92D0                                  sub R1,R2   ; alu-l
1429                                          ; force VR0 to 0   ; call
1430                                          ; force VR1 to 1   ; call
1431   06A4 67D1                                  mov r2,r7   ; call
1432   06A6 1005                                  sub r2,#8   ; call
1433   06A8 3CD89628                              jsr _printf   ; call
1434                                          ; force VR0 to 0   ; res
1435                                          ;   errorf = 0;
1436                                          ; 
1437   06AC 6000                                  lod R0,#0   ; lti
1438   06AE 20D404DF                              str  R0,_errorf   ; assign
1439                                          ; 
1440                                          ; 
1441                                          ;   bytes_loaded = 0;
1442                                          ; 
1443   06B2 6000                                  lod R0,#0   ; lti
1444   06B4 20D40ADF                              str  R0,_bytes_loaded   ; assign
1445                                          ;   return 0; 
1446                                          ; 
1447   06B8 6000                                  lod R0,#0   ; lti
1448                                          ; force VR0 to 0   ; loadtod0
1449   06BA 7F8F                                  lod R6,[R7,#-2]   ; cr
1450   06BC 808F                                  lod r7,[r7]   ; cr
1451   06BE 00F3                                  ret   ; cr
1452   06C0 0A3A3A25                        dy71  .data 10,58,58,37,105,32,98,121,116,101,115,32,108,111,97,100,101,100,10,0
            69206279746573206C6F616465640A00
1453                                          
1454                                          
1455                                          ; Routine mymon_md_w
1456                                          .align 2 
1457                             _mymon_md_w  .global
1458   06D4 809B                                  str r7,[r2]
1459   06D6 E2D3                                  mov r7,r2
1460   06D8 7F9F                                  str R6,[R7,#-2]
1461   06DA 019C                                  str R0,[R7,#2]
1462                                          ; ------------------------------------------------- 
1463                                          ; local argv  [R7,#2]
1464                                          ; s
1465                                          ; local b  [R7,#-4]
1466                                          ; s
1467   06DC 6000                                  lod R0,#0   ; lti
1468   06DE 7E9C                                  str  R0,[R7,#-4]   ; assign
1469                                          ; local l  [R7,#-6]
1470                                          ; s
1471   06E0 6100                                  lod R0,#1   ; lti
1472   06E2 7D9C                                  str  R0,[R7,#-6]   ; assign
1473                                          ; }
1474                                          ; 
1475                                          ;     
1476                                          ; 
1477                                          ; int mymon_md_w(char **argv)
1478                                          ; 
1479                                          ; {
1480                                          ; 
1481                                          ;   int b = 0;
1482                                          ; 
1483                                          ;   int l = 1;
1484                                          ; 
1485                                          ; 
1486                                          ; 
1487                                          ;   if (argv[1] && argv[1][0] != '.') b = rhex(argv[1]); else b = last_addr;
1488                                          ; 
1489   06E4 018C                                  lod  R0,[R7,#2]   ; risf
1490   06E6 0A00                                  add R0,#2   ; alu_i
1491   06E8 8080                                  lod  R1,[R0]   ; risf
1492   06EA A800                                  cmp R1,#0   ; gfv
1493   06EC 00D81207                              beq dy72 ; fjmp1   ; cfj
1494   06F0 018C                                  lod  R0,[R7,#2]   ; risf
1495   06F2 0A00                                  add R0,#2   ; alu_i
1496   06F4 8080                                  lod  R1,[R0]   ; risf
1497   06F6 00A4                                  lodb R0,[R1]   ; risf
1498   06F8 2E14                                  cmp R0,#46   ; alu_i
1499   06FA 00D81207                              beq dy72 ; fjump F   ; cfj
1500   06FE 818C                                  lod  R1,[R7,#2]   ; risf
1501   0700 8A00                                  add R1,#2   ; alu_i
1502   0702 0084                                  lod  R0,[R1]   ; risf
1503                                          ; force VR0 to 0   ; call
1504   0704 67D1                                  mov r2,r7   ; call
1505   0706 1405                                  sub r2,#12   ; call
1506   0708 3CD80E1E                              jsr _rhex   ; call
1507                                          ; force VR0 to 0   ; res
1508   070C 7E9C                                  str  R0,[R7,#-4]   ; assign
1509   070E 28D81807                              bra dy73   ; anon
1510                                    dy72  ; anon
1511   0712 00D408DF                              lod  R0,_last_addr   ; ris
1512   0716 7E9C                                  str  R0,[R7,#-4]   ; assign
1513                                    dy73  ; anon
1514                                          ;   if (argv[2]) l = rhex(argv[2]);  
1515                                          ; 
1516   0718 018C                                  lod  R0,[R7,#2]   ; risf
1517   071A 0C00                                  add R0,#4   ; alu_i
1518   071C 8080                                  lod  R1,[R0]   ; risf
1519   071E A800                                  cmp R1,#0   ; gfv
1520   0720 00D83407                              beq dy74 ; fjmp1   ; cfj
1521   0724 818C                                  lod  R1,[R7,#2]   ; risf
1522   0726 8C00                                  add R1,#4   ; alu_i
1523   0728 0084                                  lod  R0,[R1]   ; risf
1524                                          ; force VR0 to 0   ; call
1525   072A 67D1                                  mov r2,r7   ; call
1526   072C 1405                                  sub r2,#12   ; call
1527   072E 3CD80E1E                              jsr _rhex   ; call
1528                                          ; force VR0 to 0   ; res
1529   0732 7D9C                                  str  R0,[R7,#-6]   ; assign
1530                                    dy74  ; anon
1531                                          ;   while (l-- > 0)
1532                                          ; 
1533                                    dy75  ; anon
1534   0734 7D8C                                  lod  R0,[R7,#-6]   ; risf
1535   0736 E0D0                                  mov R1,R0   ; qasp1
1536   0738 9100                                  sub R1,#1   ; qasp
1537   073A FD9C                                  str  R1,[R7,#-6]   ; qasp
1538   073C 2800                                  cmp R0,#0   ; gfv
1539   073E 14D8D607                              ble dy76 ; fjump F   ; cfj
1540                                          ;   {
1541                                          ; 
1542                                          ; local i  [R7,#-8]
1543                                          ; s
1544                                          ; local xw  [R7,#-10]
1545                                          ; s
1546   0742 7E8C                                  lod  R0,[R7,#-4]   ; risf
1547   0744 7B9C                                  str  R0,[R7,#-10]   ; assign
1548                                          ; local x  [R7,#-12]
1549                                          ; s
1550   0746 7E8C                                  lod  R0,[R7,#-4]   ; risf
1551   0748 7A9C                                  str  R0,[R7,#-12]   ; assign
1552                                          ;     int i;
1553                                          ; 
1554                                          ;     int *xw = (int *) b;
1555                                          ; 
1556                                          ;     uchar *x = (uchar *) b;
1557                                          ; 
1558                                          ; 
1559                                          ; 
1560                                          ;     printf("%X  ", b);
1561                                          ; 
1562   074A 00F4F107                              lod R0,#dy77   ; ltgd3
1563   074E FE8C                                  lod  R1,[R7,#-4]   ; risf
1564                                          ; force VR0 to 0   ; call
1565                                          ; force VR1 to 1   ; call
1566   0750 67D1                                  mov r2,r7   ; call
1567   0752 1209                                  sub r2,#18   ; call
1568   0754 3CD89628                              jsr _printf   ; call
1569                                          ; force VR0 to 0   ; res
1570                                          ; 
1571                                          ; 
1572                                          ;     for (i=0; i<4; i++)
1573                                          ; 
1574   0758 6000                                  lod R0,#0   ; lti
1575   075A 7C9C                                  str  R0,[R7,#-8]   ; assign
1576                                    dy78  ; anon
1577   075C 7C8C                                  lod  R0,[R7,#-8]   ; risf
1578   075E 2C00                                  cmp R0,#4   ; alu_i
1579   0760 0CD88207                              bge dy79 ; fjump F   ; cfj
1580                                          ;     {
1581                                          ; 
1582                                          ;       printf("%08X   ", xw[i]);
1583                                          ; 
1584   0764 00F4E907                              lod R0,#dy80   ; ltgd3
1585   0768 FC8C                                  lod  R1,[R7,#-8]   ; risf
1586   076A C900                                  asl R1,#1   ; anon
1587   076C 7B8D                                  lod  R2,[R7,#-10]   ; risf
1588   076E 09D1                                  add R2,R1   ; alu-l
1589   0770 8088                                  lod  R1,[R2]   ; risf
1590                                          ; force VR0 to 0   ; call
1591                                          ; force VR1 to 1   ; call
1592   0772 67D1                                  mov r2,r7   ; call
1593   0774 1209                                  sub r2,#18   ; call
1594   0776 3CD89628                              jsr _printf   ; call
1595                                          ; force VR0 to 0   ; res
1596   077A 7C8C                                  lod  R0,[R7,#-8]   ; risf
1597   077C 0900                                  add R0,#1   ; qas
1598   077E 7C9C                                  str  R0,[R7,#-8]   ; qasmi
1599   0780 EECA                                  bra dy78   ; anon
1600                                    dy79  ; anon
1601                                          ;     }
1602                                          ; 
1603                                          ;     for (i=0; i<16; i++)
1604                                          ; 
1605   0782 6000                                  lod R0,#0   ; lti
1606   0784 7C9C                                  str  R0,[R7,#-8]   ; assign
1607                                    dy81  ; anon
1608   0786 7C8C                                  lod  R0,[R7,#-8]   ; risf
1609   0788 2808                                  cmp R0,#16   ; alu_i
1610   078A 0CD8C207                              bge dy82 ; fjump F   ; cfj
1611                                          ;     {
1612                                          ; 
1613                                          ; local t  [R7,#-14]
1614                                          ; s
1615   078E 7A8C                                  lod  R0,[R7,#-12]   ; risf
1616   0790 FC8C                                  lod  R1,[R7,#-8]   ; risf
1617   0792 09D0                                  add R0,R1   ; alu-l
1618   0794 80A0                                  lodb R1,[R0]   ; risf
1619   0796 F9BC                                  strb R1,[R7,#-14]   ; assign
1620                                          ;       uchar t = x[i];
1621                                          ; 
1622                                          ;       if (t <32 || t >= 127) t = '.';
1623                                          ; 
1624   0798 79AC                                  lodb R0,[R7,#-14]   ; risf
1625   079A 2810                                  cmp R0,#32   ; alu_i
1626   079C 08D8A807                              blt dy83   ; ctj
1627   07A0 79AC                                  lodb R0,[R7,#-14]   ; risf
1628   07A2 2F3C                                  cmp R0,#127   ; alu_i
1629   07A4 08D8AC07                              blt dy84 ; fjump F   ; cfj
1630                                    dy83  ; anon
1631   07A8 6614                                  lod R0,#46   ; lti
1632   07AA 79BC                                  strb R0,[R7,#-14]   ; assign
1633                                    dy84  ; anon
1634                                          ;       printf("%c", t);
1635                                          ; 
1636   07AC 00F4E607                              lod R0,#dy85   ; ltgd3
1637   07B0 F9AC                                  lodb R1,[R7,#-14]   ; risf
1638                                          ; force VR0 to 0   ; call
1639                                          ; force VR1 to 1   ; call
1640   07B2 67D1                                  mov r2,r7   ; call
1641   07B4 1409                                  sub r2,#20   ; call
1642   07B6 3CD89628                              jsr _printf   ; call
1643                                          ; force VR0 to 0   ; res
1644   07BA 7C8C                                  lod  R0,[R7,#-8]   ; risf
1645   07BC 0900                                  add R0,#1   ; qas
1646   07BE 7C9C                                  str  R0,[R7,#-8]   ; qasmi
1647   07C0 E3CA                                  bra dy81   ; anon
1648                                    dy82  ; anon
1649                                          ;     }
1650                                          ; 
1651                                          ;     printf("\n");
1652                                          ; 
1653   07C2 00F4E407                              lod R0,#dy86   ; ltgd3
1654                                          ; force VR0 to 0   ; call
1655   07C6 67D1                                  mov r2,r7   ; call
1656   07C8 1209                                  sub r2,#18   ; call
1657   07CA 3CD89628                              jsr _printf   ; call
1658                                          ; force VR0 to 0   ; res
1659                                          ;     b += 16;
1660                                          ; 
1661   07CE 7E8C                                  lod  R0,[R7,#-4]   ; risf
1662   07D0 0808                                  add R0,#16   ; alu_i
1663   07D2 7E9C                                  str  R0,[R7,#-4]   ; assign
1664   07D4 B0CA                                  bra dy75   ; anon
1665                                    dy76  ; anon
1666                                          ;   }
1667                                          ; 
1668                                          ;   last_addr = b;
1669                                          ; 
1670   07D6 7E8C                                  lod  R0,[R7,#-4]   ; risf
1671   07D8 20D408DF                              str  R0,_last_addr   ; assign
1672                                          ;   return 0;
1673                                          ; 
1674   07DC 6000                                  lod R0,#0   ; lti
1675                                          ; force VR0 to 0   ; loadtod0
1676   07DE 7F8F                                  lod R6,[R7,#-2]   ; cr
1677   07E0 808F                                  lod r7,[r7]   ; cr
1678   07E2 00F3                                  ret   ; cr
1679   07E4 0A00                            dy86  .data 10,0
1680   07E6 256300                          dy85  .data "%c",0
1681   07E9 25303858                        dy80  .data "%08X   ",0
            20202000
1682   07F1 25582020                        dy77  .data "%X  ",0
            00
1683                                          
1684                                          
1685                                          ; Routine mymon_md
1686                                          .align 2 
1687                               _mymon_md  .global
1688   07F6 809B                                  str r7,[r2]
1689   07F8 E2D3                                  mov r7,r2
1690   07FA 7F9F                                  str R6,[R7,#-2]
1691   07FC 019C                                  str R0,[R7,#2]
1692                                          ; ------------------------------------------------- 
1693                                          ; local argv  [R7,#2]
1694                                          ; s
1695                                          ; local b  [R7,#-4]
1696                                          ; s
1697   07FE 6000                                  lod R0,#0   ; lti
1698   0800 7E9C                                  str  R0,[R7,#-4]   ; assign
1699                                          ; local l  [R7,#-6]
1700                                          ; s
1701   0802 6100                                  lod R0,#1   ; lti
1702   0804 7D9C                                  str  R0,[R7,#-6]   ; assign
1703                                          ; }
1704                                          ; 
1705                                          ; 
1706                                          ; 
1707                                          ; 
1708                                          ; 
1709                                          ; 
1710                                          ; 
1711                                          ; int mymon_md(char **argv)
1712                                          ; 
1713                                          ; {
1714                                          ; 
1715                                          ;   int b = 0;
1716                                          ; 
1717                                          ;   int l = 1;
1718                                          ; 
1719                                          ;   if (argv[1] && argv[1][0] != '.') b = rhex(argv[1]); else b = last_addr;
1720                                          ; 
1721   0806 018C                                  lod  R0,[R7,#2]   ; risf
1722   0808 0A00                                  add R0,#2   ; alu_i
1723   080A 8080                                  lod  R1,[R0]   ; risf
1724   080C A800                                  cmp R1,#0   ; gfv
1725   080E 00D83408                              beq dy87 ; fjmp1   ; cfj
1726   0812 018C                                  lod  R0,[R7,#2]   ; risf
1727   0814 0A00                                  add R0,#2   ; alu_i
1728   0816 8080                                  lod  R1,[R0]   ; risf
1729   0818 00A4                                  lodb R0,[R1]   ; risf
1730   081A 2E14                                  cmp R0,#46   ; alu_i
1731   081C 00D83408                              beq dy87 ; fjump F   ; cfj
1732   0820 818C                                  lod  R1,[R7,#2]   ; risf
1733   0822 8A00                                  add R1,#2   ; alu_i
1734   0824 0084                                  lod  R0,[R1]   ; risf
1735                                          ; force VR0 to 0   ; call
1736   0826 67D1                                  mov r2,r7   ; call
1737   0828 1405                                  sub r2,#12   ; call
1738   082A 3CD80E1E                              jsr _rhex   ; call
1739                                          ; force VR0 to 0   ; res
1740   082E 7E9C                                  str  R0,[R7,#-4]   ; assign
1741   0830 28D83A08                              bra dy88   ; anon
1742                                    dy87  ; anon
1743   0834 00D408DF                              lod  R0,_last_addr   ; ris
1744   0838 7E9C                                  str  R0,[R7,#-4]   ; assign
1745                                    dy88  ; anon
1746                                          ;   
1747                                          ; 
1748                                          ;   if (argv[2]) l = rhex(argv[2]);  
1749                                          ; 
1750   083A 018C                                  lod  R0,[R7,#2]   ; risf
1751   083C 0C00                                  add R0,#4   ; alu_i
1752   083E 8080                                  lod  R1,[R0]   ; risf
1753   0840 A800                                  cmp R1,#0   ; gfv
1754   0842 00D85608                              beq dy89 ; fjmp1   ; cfj
1755   0846 818C                                  lod  R1,[R7,#2]   ; risf
1756   0848 8C00                                  add R1,#4   ; alu_i
1757   084A 0084                                  lod  R0,[R1]   ; risf
1758                                          ; force VR0 to 0   ; call
1759   084C 67D1                                  mov r2,r7   ; call
1760   084E 1405                                  sub r2,#12   ; call
1761   0850 3CD80E1E                              jsr _rhex   ; call
1762                                          ; force VR0 to 0   ; res
1763   0854 7D9C                                  str  R0,[R7,#-6]   ; assign
1764                                    dy89  ; anon
1765                                          ;   console_flags = 0;
1766                                          ; 
1767   0856 6000                                  lod R0,#0   ; lti
1768   0858 20D400DF                              str  R0,_console_flags   ; assign
1769                                          ;   while (l-- > 0)
1770                                          ; 
1771                                    dy90  ; anon
1772   085C 7D8C                                  lod  R0,[R7,#-6]   ; risf
1773   085E E0D0                                  mov R1,R0   ; qasp1
1774   0860 9100                                  sub R1,#1   ; qasp
1775   0862 FD9C                                  str  R1,[R7,#-6]   ; qasp
1776   0864 2800                                  cmp R0,#0   ; gfv
1777   0866 14D82C09                              ble dy91 ; fjump F   ; cfj
1778                                          ;   {
1779                                          ; 
1780                                          ; local i  [R7,#-8]
1781                                          ; s
1782                                          ; local x  [R7,#-10]
1783                                          ; s
1784   086A 7E8C                                  lod  R0,[R7,#-4]   ; risf
1785   086C 7B9C                                  str  R0,[R7,#-10]   ; assign
1786                                          ;     int i;
1787                                          ; 
1788                                          ;     uchar *x = (uchar *) b;
1789                                          ; 
1790                                          ;     printf("%X  ", b);
1791                                          ; 
1792   086E 00F44A09                              lod R0,#dy92   ; ltgd3
1793   0872 FE8C                                  lod  R1,[R7,#-4]   ; risf
1794                                          ; force VR0 to 0   ; call
1795                                          ; force VR1 to 1   ; call
1796   0874 67D1                                  mov r2,r7   ; call
1797   0876 1009                                  sub r2,#16   ; call
1798   0878 3CD89628                              jsr _printf   ; call
1799                                          ; force VR0 to 0   ; res
1800                                          ;     for (i=0; i<16; i++)
1801                                          ; 
1802   087C 6000                                  lod R0,#0   ; lti
1803   087E 7C9C                                  str  R0,[R7,#-8]   ; assign
1804                                    dy93  ; anon
1805   0880 7C8C                                  lod  R0,[R7,#-8]   ; risf
1806   0882 2808                                  cmp R0,#16   ; alu_i
1807   0884 0CD8BA08                              bge dy94 ; fjump F   ; cfj
1808                                          ;     {
1809                                          ; 
1810                                          ;       printf("%02X ", x[i]);
1811                                          ; 
1812   0888 00F44409                              lod R0,#dy95   ; ltgd3
1813   088C 7B8D                                  lod  R2,[R7,#-10]   ; risf
1814   088E FC8C                                  lod  R1,[R7,#-8]   ; risf
1815   0890 09D1                                  add R2,R1   ; alu-l
1816   0892 80A8                                  lodb R1,[R2]   ; risf
1817                                          ; force VR0 to 0   ; call
1818                                          ; force VR1 to 1   ; call
1819   0894 67D1                                  mov r2,r7   ; call
1820   0896 1009                                  sub r2,#16   ; call
1821   0898 3CD89628                              jsr _printf   ; call
1822                                          ; force VR0 to 0   ; res
1823                                          ;       if ((i & 3) == 3) printf(" ");
1824                                          ; 
1825   089C 7C8C                                  lod  R0,[R7,#-8]   ; risf
1826   089E 3B00                                  and R0,#3   ; alu_i
1827   08A0 2B00                                  cmp R0,#3   ; alu_i
1828   08A2 04D8B208                              bne dy96 ; fjump F   ; cfj
1829   08A6 00F44209                              lod R0,#dy97   ; ltgd3
1830                                          ; force VR0 to 0   ; call
1831   08AA 67D1                                  mov r2,r7   ; call
1832   08AC 1009                                  sub r2,#16   ; call
1833   08AE 3CD89628                              jsr _printf   ; call
1834                                          ; force VR0 to 0   ; res
1835                                    dy96  ; anon
1836   08B2 7C8C                                  lod  R0,[R7,#-8]   ; risf
1837   08B4 0900                                  add R0,#1   ; qas
1838   08B6 7C9C                                  str  R0,[R7,#-8]   ; qasmi
1839   08B8 E4CA                                  bra dy93   ; anon
1840                                    dy94  ; anon
1841                                          ;     }
1842                                          ; 
1843                                          ;     printf("  ");
1844                                          ; 
1845   08BA 00F43F09                              lod R0,#dy98   ; ltgd3
1846                                          ; force VR0 to 0   ; call
1847   08BE 67D1                                  mov r2,r7   ; call
1848   08C0 1009                                  sub r2,#16   ; call
1849   08C2 3CD89628                              jsr _printf   ; call
1850                                          ; force VR0 to 0   ; res
1851                                          ;     for (i=0; i<16; i++)
1852                                          ; 
1853   08C6 6000                                  lod R0,#0   ; lti
1854   08C8 7C9C                                  str  R0,[R7,#-8]   ; assign
1855                                    dy99  ; anon
1856   08CA 7C8C                                  lod  R0,[R7,#-8]   ; risf
1857   08CC 2808                                  cmp R0,#16   ; alu_i
1858   08CE 0CD80609                              bge dy100 ; fjump F   ; cfj
1859                                          ;     {
1860                                          ; 
1861                                          ; local t  [R7,#-12]
1862                                          ; s
1863   08D2 7B8C                                  lod  R0,[R7,#-10]   ; risf
1864   08D4 FC8C                                  lod  R1,[R7,#-8]   ; risf
1865   08D6 09D0                                  add R0,R1   ; alu-l
1866   08D8 80A0                                  lodb R1,[R0]   ; risf
1867   08DA FABC                                  strb R1,[R7,#-12]   ; assign
1868                                          ;       uchar t = x[i];
1869                                          ; 
1870                                          ; 
1871                                          ; 
1872                                          ;       if (t <32 || t >= 127) t = '.';
1873                                          ; 
1874   08DC 7AAC                                  lodb R0,[R7,#-12]   ; risf
1875   08DE 2810                                  cmp R0,#32   ; alu_i
1876   08E0 08D8EC08                              blt dy101   ; ctj
1877   08E4 7AAC                                  lodb R0,[R7,#-12]   ; risf
1878   08E6 2F3C                                  cmp R0,#127   ; alu_i
1879   08E8 08D8F008                              blt dy102 ; fjump F   ; cfj
1880                                   dy101  ; anon
1881   08EC 6614                                  lod R0,#46   ; lti
1882   08EE 7ABC                                  strb R0,[R7,#-12]   ; assign
1883                                   dy102  ; anon
1884                                          ;       printf("%c", t);
1885                                          ; 
1886   08F0 00F43C09                              lod R0,#dy103   ; ltgd3
1887   08F4 FAAC                                  lodb R1,[R7,#-12]   ; risf
1888                                          ; force VR0 to 0   ; call
1889                                          ; force VR1 to 1   ; call
1890   08F6 67D1                                  mov r2,r7   ; call
1891   08F8 1209                                  sub r2,#18   ; call
1892   08FA 3CD89628                              jsr _printf   ; call
1893                                          ; force VR0 to 0   ; res
1894   08FE 7C8C                                  lod  R0,[R7,#-8]   ; risf
1895   0900 0900                                  add R0,#1   ; qas
1896   0902 7C9C                                  str  R0,[R7,#-8]   ; qasmi
1897   0904 E3CA                                  bra dy99   ; anon
1898                                   dy100  ; anon
1899                                          ;     }
1900                                          ; 
1901                                          ;     printf("\n");
1902                                          ; 
1903   0906 00F43A09                              lod R0,#dy104   ; ltgd3
1904                                          ; force VR0 to 0   ; call
1905   090A 67D1                                  mov r2,r7   ; call
1906   090C 1009                                  sub r2,#16   ; call
1907   090E 3CD89628                              jsr _printf   ; call
1908                                          ; force VR0 to 0   ; res
1909                                          ;     b += 16;
1910                                          ; 
1911   0912 7E8C                                  lod  R0,[R7,#-4]   ; risf
1912   0914 0808                                  add R0,#16   ; alu_i
1913   0916 7E9C                                  str  R0,[R7,#-4]   ; assign
1914                                          ;     if (checkend()) break;
1915                                          ; 
1916   0918 67D1                                  mov r2,r7   ; call
1917   091A 1009                                  sub r2,#16   ; call
1918   091C 3CD82800                              jsr _checkend   ; call
1919                                          ; force VR0 to 0   ; res
1920   0920 2800                                  cmp R0,#0   ; gfv
1921   0922 00D82A09                              beq dy105 ; fjmp1   ; cfj
1922   0926 28D82C09                              bra dy91   ; anon
1923                                   dy105  ; anon
1924   092A 99CA                                  bra dy90   ; anon
1925                                    dy91  ; anon
1926                                          ;   }
1927                                          ; 
1928                                          ;   last_addr = b;
1929                                          ; 
1930   092C 7E8C                                  lod  R0,[R7,#-4]   ; risf
1931   092E 20D408DF                              str  R0,_last_addr   ; assign
1932                                          ;   return 0;
1933                                          ; 
1934   0932 6000                                  lod R0,#0   ; lti
1935                                          ; force VR0 to 0   ; loadtod0
1936   0934 7F8F                                  lod R6,[R7,#-2]   ; cr
1937   0936 808F                                  lod r7,[r7]   ; cr
1938   0938 00F3                                  ret   ; cr
1939   093A 0A00                           dy104  .data 10,0
1940   093C 256300                         dy103  .data "%c",0
1941   093F 202000                          dy98  .data "  ",0
1942   0942 2000                            dy97  .data " ",0
1943   0944 25303258                        dy95  .data "%02X ",0
            2000
1944   094A 25582020                        dy92  .data "%X  ",0
            00
1945                                          
1946                                          
1947                                          ; Routine MDEL
1948   094F 00                                    .align 2 
1949                                   _MDEL  .global
1950   0950 809B                                  str r7,[r2]
1951   0952 E2D3                                  mov r7,r2
1952                                          ; ------------------------------------------------- 
1953                                          ; local i  [R7,#-4]
1954                                          ; s
1955                                          ; }
1956                                          ; 
1957                                          ; 
1958                                          ; 
1959                                          ; 
1960                                          ; 
1961                                          ; 
1962                                          ; 
1963                                          ; void MDEL()
1964                                          ; 
1965                                          ; {
1966                                          ; 
1967                                          ;   volatile int i;
1968                                          ; 
1969                                          ;   for (i=0;i<100;i++) continue;
1970                                          ; 
1971   0954 6000                                  lod R0,#0   ; lti
1972   0956 7E9C                                  str  R0,[R7,#-4]   ; assign
1973                                   dy106  ; anon
1974   0958 7E8C                                  lod  R0,[R7,#-4]   ; risf
1975   095A 2C30                                  cmp R0,#100   ; alu_i
1976   095C 0CD86C09                              bge dy107 ; fjump F   ; cfj
1977   0960 28D86409                              bra dy108   ; anon
1978                                   dy108  ; anon
1979   0964 7E8C                                  lod  R0,[R7,#-4]   ; risf
1980   0966 0900                                  add R0,#1   ; qas
1981   0968 7E9C                                  str  R0,[R7,#-4]   ; qasmi
1982   096A F7CA                                  bra dy106   ; anon
1983                                   dy107  ; anon
1984   096C 808F                                  lod r7,[r7]   ; cr
1985   096E 00F3                                  ret   ; cr
1986                                          
1987                                          
1988                                          ; Routine mymon_dis
1989                                          .align 2 
1990                              _mymon_dis  .global
1991   0970 809B                                  str r7,[r2]
1992   0972 E2D3                                  mov r7,r2
1993   0974 7F9F                                  str R6,[R7,#-2]
1994   0976 019C                                  str R0,[R7,#2]
1995                                          ; ------------------------------------------------- 
1996                                          ; local argv  [R7,#2]
1997                                          ; s
1998                                          ; local b  [R7,#-4]
1999                                          ; s
2000   0978 6000                                  lod R0,#0   ; lti
2001   097A 7E9C                                  str  R0,[R7,#-4]   ; assign
2002                                          ; local l  [R7,#-6]
2003                                          ; s
2004   097C 6408                                  lod R0,#20   ; lti
2005   097E 7D9C                                  str  R0,[R7,#-6]   ; assign
2006                                          ; }
2007                                          ; 
2008                                          ; 
2009                                          ; 
2010                                          ; extern void myadis(int, int);    
2011                                          ; 
2012                                          ; 
2013                                          ; 
2014                                          ; int mymon_dis(char **argv)
2015                                          ; 
2016                                          ; {
2017                                          ; 
2018                                          ;   int b = 0;
2019                                          ; 
2020                                          ;   int l = 20;
2021                                          ; 
2022                                          ;   if (argv[1] && argv[1][0] != '.') b = rhex(argv[1]); else b = last_addr;
2023                                          ; 
2024   0980 018C                                  lod  R0,[R7,#2]   ; risf
2025   0982 0A00                                  add R0,#2   ; alu_i
2026   0984 8080                                  lod  R1,[R0]   ; risf
2027   0986 A800                                  cmp R1,#0   ; gfv
2028   0988 00D8AE09                              beq dy109 ; fjmp1   ; cfj
2029   098C 018C                                  lod  R0,[R7,#2]   ; risf
2030   098E 0A00                                  add R0,#2   ; alu_i
2031   0990 8080                                  lod  R1,[R0]   ; risf
2032   0992 00A4                                  lodb R0,[R1]   ; risf
2033   0994 2E14                                  cmp R0,#46   ; alu_i
2034   0996 00D8AE09                              beq dy109 ; fjump F   ; cfj
2035   099A 818C                                  lod  R1,[R7,#2]   ; risf
2036   099C 8A00                                  add R1,#2   ; alu_i
2037   099E 0084                                  lod  R0,[R1]   ; risf
2038                                          ; force VR0 to 0   ; call
2039   09A0 67D1                                  mov r2,r7   ; call
2040   09A2 1405                                  sub r2,#12   ; call
2041   09A4 3CD80E1E                              jsr _rhex   ; call
2042                                          ; force VR0 to 0   ; res
2043   09A8 7E9C                                  str  R0,[R7,#-4]   ; assign
2044   09AA 28D8B409                              bra dy110   ; anon
2045                                   dy109  ; anon
2046   09AE 00D408DF                              lod  R0,_last_addr   ; ris
2047   09B2 7E9C                                  str  R0,[R7,#-4]   ; assign
2048                                   dy110  ; anon
2049                                          ;   if (argv[2]) l = rhex(argv[2]);  
2050                                          ; 
2051   09B4 018C                                  lod  R0,[R7,#2]   ; risf
2052   09B6 0C00                                  add R0,#4   ; alu_i
2053   09B8 8080                                  lod  R1,[R0]   ; risf
2054   09BA A800                                  cmp R1,#0   ; gfv
2055   09BC 00D8D009                              beq dy111 ; fjmp1   ; cfj
2056   09C0 818C                                  lod  R1,[R7,#2]   ; risf
2057   09C2 8C00                                  add R1,#4   ; alu_i
2058   09C4 0084                                  lod  R0,[R1]   ; risf
2059                                          ; force VR0 to 0   ; call
2060   09C6 67D1                                  mov r2,r7   ; call
2061   09C8 1405                                  sub r2,#12   ; call
2062   09CA 3CD80E1E                              jsr _rhex   ; call
2063                                          ; force VR0 to 0   ; res
2064   09CE 7D9C                                  str  R0,[R7,#-6]   ; assign
2065                                   dy111  ; anon
2066                                          ;   while (l-- > 0)
2067                                          ; 
2068                                   dy112  ; anon
2069   09D0 7D8C                                  lod  R0,[R7,#-6]   ; risf
2070   09D2 E0D0                                  mov R1,R0   ; qasp1
2071   09D4 9100                                  sub R1,#1   ; qasp
2072   09D6 FD9C                                  str  R1,[R7,#-6]   ; qasp
2073   09D8 2800                                  cmp R0,#0   ; gfv
2074   09DA 14D8EA09                              ble dy113 ; fjump F   ; cfj
2075                                          ;   {
2076                                          ; 
2077                                          ; local x  [R7,#-8]
2078                                          ; s
2079   09DE 7E8C                                  lod  R0,[R7,#-4]   ; risf
2080   09E0 7C9C                                  str  R0,[R7,#-8]   ; assign
2081                                          ;     int *x = (int *) b;
2082                                          ; 
2083                                          ;     
2084                                          ; 
2085                                          ;     b += 4;
2086                                          ; 
2087   09E2 7E8C                                  lod  R0,[R7,#-4]   ; risf
2088   09E4 0C00                                  add R0,#4   ; alu_i
2089   09E6 7E9C                                  str  R0,[R7,#-4]   ; assign
2090   09E8 F4CA                                  bra dy112   ; anon
2091                                   dy113  ; anon
2092                                          ;   }
2093                                          ; 
2094                                          ;   last_addr = b;
2095                                          ; 
2096   09EA 7E8C                                  lod  R0,[R7,#-4]   ; risf
2097   09EC 20D408DF                              str  R0,_last_addr   ; assign
2098                                          ;   return 0;
2099                                          ; 
2100   09F0 6000                                  lod R0,#0   ; lti
2101                                          ; force VR0 to 0   ; loadtod0
2102   09F2 7F8F                                  lod R6,[R7,#-2]   ; cr
2103   09F4 808F                                  lod r7,[r7]   ; cr
2104   09F6 00F3                                  ret   ; cr
2105                                          
2106                                          
2107                                          ; Routine mymon_go
2108                                          .align 2 
2109                               _mymon_go  .global
2110   09F8 809B                                  str r7,[r2]
2111   09FA E2D3                                  mov r7,r2
2112   09FC 7F9F                                  str R6,[R7,#-2]
2113   09FE 019C                                  str R0,[R7,#2]
2114                                          ; ------------------------------------------------- 
2115                                          ; local argv  [R7,#2]
2116                                          ; s
2117                                          ; local f  [R7,#-4]
2118                                          ; s
2119                                          ; local rc  [R7,#-6]
2120                                          ; s
2121                                          ; }
2122                                          ; 
2123                                          ; 
2124                                          ; 
2125                                          ; 
2126                                          ; 
2127                                          ; static int go_addr;
2128                                          ; 
2129                                          ; 
2130                                          ; 
2131                                          ; mymon_go(char **argv)
2132                                          ; 
2133                                          ; {
2134                                          ; 
2135                                          ;   int (*f)();
2136                                          ; 
2137                                          ;   int rc;
2138                                          ; 
2139                                          ;   if (argv[1])
2140                                          ; 
2141   0A00 018C                                  lod  R0,[R7,#2]   ; risf
2142   0A02 0A00                                  add R0,#2   ; alu_i
2143   0A04 8080                                  lod  R1,[R0]   ; risf
2144   0A06 A800                                  cmp R1,#0   ; gfv
2145   0A08 00D81E0A                              beq dy114 ; fjmp1   ; cfj
2146                                          ;   {
2147                                          ; 
2148                                          ;     go_addr = rhex(argv[1]);
2149                                          ; 
2150   0A0C 818C                                  lod  R1,[R7,#2]   ; risf
2151   0A0E 8A00                                  add R1,#2   ; alu_i
2152   0A10 0084                                  lod  R0,[R1]   ; risf
2153                                          ; force VR0 to 0   ; call
2154   0A12 67D1                                  mov r2,r7   ; call
2155   0A14 1405                                  sub r2,#12   ; call
2156   0A16 3CD80E1E                              jsr _rhex   ; call
2157                                          ; force VR0 to 0   ; res
2158   0A1A 20D40EDF                              str  R0,_go_addr   ; assign
2159                                   dy114  ; anon
2160                                          ;   }
2161                                          ; 
2162                                          ;   printf("Execute at $%08X\n", go_addr);
2163                                          ; 
2164   0A1E 00F4610A                              lod R0,#dy115   ; ltgd3
2165   0A22 80D40EDF                              lod  R1,_go_addr   ; ris
2166                                          ; force VR0 to 0   ; call
2167                                          ; force VR1 to 1   ; call
2168   0A26 67D1                                  mov r2,r7   ; call
2169   0A28 1405                                  sub r2,#12   ; call
2170   0A2A 3CD89628                              jsr _printf   ; call
2171                                          ; force VR0 to 0   ; res
2172                                          ;   f = (int *)  go_addr;
2173                                          ; 
2174   0A2E 00D40EDF                              lod  R0,_go_addr   ; ris
2175   0A32 7E9C                                  str  R0,[R7,#-4]   ; assign
2176                                          ;   rc =  f(argv);
2177                                          ; 
2178   0A34 018C                                  lod  R0,[R7,#2]   ; risf
2179                                          ; force VR0 to 0   ; call
2180   0A36 67D1                                  mov r2,r7   ; call
2181   0A38 1405                                  sub r2,#12   ; call
2182   0A3A 7E8C                                  lod  R0,[R7,#-4]   ; risf
2183   0A3C 01F0                                  bxl R0   ; call
2184                                          ; force VR0 to 0   ; res
2185   0A3E 7D9C                                  str  R0,[R7,#-6]   ; assign
2186                                          ;   printf("Returned %i\n", rc);
2187                                          ; 
2188   0A40 00F4540A                              lod R0,#dy116   ; ltgd3
2189   0A44 FD8C                                  lod  R1,[R7,#-6]   ; risf
2190                                          ; force VR0 to 0   ; call
2191                                          ; force VR1 to 1   ; call
2192   0A46 67D1                                  mov r2,r7   ; call
2193   0A48 1405                                  sub r2,#12   ; call
2194   0A4A 3CD89628                              jsr _printf   ; call
2195                                          ; force VR0 to 0   ; res
2196   0A4E 7F8F                                  lod R6,[R7,#-2]   ; cr
2197   0A50 808F                                  lod r7,[r7]   ; cr
2198   0A52 00F3                                  ret   ; cr
2199   0A54 52657475                       dy116  .data "Returned %i",10,0
            726E65642025690A00
2200   0A61 45786563                       dy115  .data "Execute at $%08X",10,0
            7574652061742024253038580A00
2201                                          
2202                                          
2203                                          ; Routine mymon_ma
2204   0A73 00                                    .align 2 
2205                               _mymon_ma  .global
2206   0A74 809B                                  str r7,[r2]
2207   0A76 E2D3                                  mov r7,r2
2208   0A78 7F9F                                  str R6,[R7,#-2]
2209   0A7A 019C                                  str R0,[R7,#2]
2210   0A7C 829C                                  str R1,[R7,#4]
2211                                          ; ------------------------------------------------- 
2212                                          ; local write  [R7,#2]
2213                                          ; s
2214                                          ; local argv  [R7,#4]
2215                                          ; s
2216                                          ; local b  [R7,#-4]
2217                                          ; s
2218   0A7E 6000                                  lod R0,#0   ; lti
2219   0A80 7E9C                                  str  R0,[R7,#-4]   ; assign
2220                                          ; local l  [R7,#-6]
2221                                          ; s
2222   0A82 6000                                  lod R0,#0   ; lti
2223   0A84 7D9C                                  str  R0,[R7,#-6]   ; assign
2224                                          ; local byte  [R7,#-8]
2225                                          ; s
2226                                          ; local m  [R7,#-10]
2227                                          ; s
2228   0A86 028C                                  lod  R0,[R7,#4]   ; risf
2229   0A88 0A00                                  add R0,#2   ; alu_i
2230   0A8A 8080                                  lod  R1,[R0]   ; risf
2231   0A8C 00A4                                  lodb R0,[R1]   ; risf
2232                                          ; force VR0 to 0   ; call
2233   0A8E 67D1                                  mov r2,r7   ; call
2234   0A90 1605                                  sub r2,#14   ; call
2235   0A92 3CD8A821                              jsr _tolower   ; call
2236                                          ; force VR0 to 0   ; res
2237   0A96 7BBC                                  strb R0,[R7,#-10]   ; assign
2238                                          ; }
2239                                          ; 
2240                                          ; 
2241                                          ; 
2242                                          ; 
2243                                          ; 
2244                                          ; 
2245                                          ; 
2246                                          ; 
2247                                          ; 
2248                                          ; 
2249                                          ; 
2250                                          ; 
2251                                          ; 
2252                                          ; mymon_ma(int write, char **argv)
2253                                          ; 
2254                                          ; {
2255                                          ; 
2256                                          ;   int b = 0;
2257                                          ; 
2258                                          ;   int l = 0;  
2259                                          ; 
2260                                          ;   int byte;
2261                                          ; 
2262                                          ;   char m = tolower(argv[1][0]);
2263                                          ; 
2264                                          ;   if (m != 'b' && m != 'w') 
2265                                          ; 
2266   0A98 7BAC                                  lodb R0,[R7,#-10]   ; risf
2267   0A9A 2A30                                  cmp R0,#98   ; alu_i
2268   0A9C 00D8CE0A                              beq dy117 ; fjump F   ; cfj
2269   0AA0 7BAC                                  lodb R0,[R7,#-10]   ; risf
2270   0AA2 2F38                                  cmp R0,#119   ; alu_i
2271   0AA4 00D8CE0A                              beq dy117 ; fjump F   ; cfj
2272                                          ;   {
2273                                          ; 
2274                                          ;     printf("Syntax   %s b addr [times]    for byte access\n", argv[0]);
2275                                          ; 
2276   0AA8 00F4490C                              lod R0,#dy118   ; ltgd3
2277   0AAC 028D                                  lod  R2,[R7,#4]   ; risf
2278   0AAE 8088                                  lod  R1,[R2]   ; risf
2279                                          ; force VR0 to 0   ; call
2280                                          ; force VR1 to 1   ; call
2281   0AB0 67D1                                  mov r2,r7   ; call
2282   0AB2 1009                                  sub r2,#16   ; call
2283   0AB4 3CD89628                              jsr _printf   ; call
2284                                          ; force VR0 to 0   ; res
2285                                          ;     printf("Syntax   %s w addr [times]    for word access\n", argv[0]);
2286                                          ; 
2287   0AB8 00F41A0C                              lod R0,#dy119   ; ltgd3
2288   0ABC 028D                                  lod  R2,[R7,#4]   ; risf
2289   0ABE 8088                                  lod  R1,[R2]   ; risf
2290                                          ; force VR0 to 0   ; call
2291                                          ; force VR1 to 1   ; call
2292   0AC0 67D1                                  mov r2,r7   ; call
2293   0AC2 1009                                  sub r2,#16   ; call
2294   0AC4 3CD89628                              jsr _printf   ; call
2295                                          ; force VR0 to 0   ; res
2296                                          ;     return;
2297                                          ; 
2298   0AC8 7F8F                                  lod R6,[R7,#-2]   ; cr
2299   0ACA 808F                                  lod r7,[r7]   ; cr
2300   0ACC 00F3                                  ret   ; cr
2301                                   dy117  ; anon
2302                                          ;   }
2303                                          ; 
2304                                          ;   if (argv[2]) b = rhex(argv[2]);
2305                                          ; 
2306   0ACE 028C                                  lod  R0,[R7,#4]   ; risf
2307   0AD0 0C00                                  add R0,#4   ; alu_i
2308   0AD2 8080                                  lod  R1,[R0]   ; risf
2309   0AD4 A800                                  cmp R1,#0   ; gfv
2310   0AD6 00D8EA0A                              beq dy120 ; fjmp1   ; cfj
2311   0ADA 828C                                  lod  R1,[R7,#4]   ; risf
2312   0ADC 8C00                                  add R1,#4   ; alu_i
2313   0ADE 0084                                  lod  R0,[R1]   ; risf
2314                                          ; force VR0 to 0   ; call
2315   0AE0 67D1                                  mov r2,r7   ; call
2316   0AE2 1009                                  sub r2,#16   ; call
2317   0AE4 3CD80E1E                              jsr _rhex   ; call
2318                                          ; force VR0 to 0   ; res
2319   0AE8 7E9C                                  str  R0,[R7,#-4]   ; assign
2320                                   dy120  ; anon
2321                                          ;   if (argv[3]) l = rhex(argv[3]);
2322                                          ; 
2323   0AEA 028C                                  lod  R0,[R7,#4]   ; risf
2324   0AEC 0E00                                  add R0,#6   ; alu_i
2325   0AEE 8080                                  lod  R1,[R0]   ; risf
2326   0AF0 A800                                  cmp R1,#0   ; gfv
2327   0AF2 00D8060B                              beq dy121 ; fjmp1   ; cfj
2328   0AF6 828C                                  lod  R1,[R7,#4]   ; risf
2329   0AF8 8E00                                  add R1,#6   ; alu_i
2330   0AFA 0084                                  lod  R0,[R1]   ; risf
2331                                          ; force VR0 to 0   ; call
2332   0AFC 67D1                                  mov r2,r7   ; call
2333   0AFE 1009                                  sub r2,#16   ; call
2334   0B00 3CD80E1E                              jsr _rhex   ; call
2335                                          ; force VR0 to 0   ; res
2336   0B04 7D9C                                  str  R0,[R7,#-6]   ; assign
2337                                   dy121  ; anon
2338                                          ;   if (l) printf("Loop poll of address %08X, %i times \n", b, l);
2339                                          ; 
2340   0B06 7D8C                                  lod  R0,[R7,#-6]   ; risf
2341   0B08 2800                                  cmp R0,#0   ; gfv
2342   0B0A 00D8240B                              beq dy122 ; fjmp1   ; cfj
2343   0B0E 7D8C                                  lod  R0,[R7,#-6]   ; risf
2344   0B10 7A9C                                  str  R0,[R7,#-12]   ; assign
2345   0B12 00F4F40B                              lod R0,#dy123   ; ltgd3
2346   0B16 FE8C                                  lod  R1,[R7,#-4]   ; risf
2347                                          ; force VR0 to 0   ; call
2348                                          ; force VR1 to 1   ; call
2349   0B18 67D1                                  mov r2,r7   ; call
2350   0B1A 1209                                  sub r2,#18   ; call
2351   0B1C 3CD89628                              jsr _printf   ; call
2352                                          ; force VR0 to 0   ; res
2353   0B20 28D8320B                              bra dy124   ; anon
2354                                   dy122  ; anon
2355                                          ;   else printf("Loop poll of address %08X forever more\n", b);
2356                                          ; 
2357   0B24 00F4CC0B                              lod R0,#dy125   ; ltgd3
2358   0B28 FE8C                                  lod  R1,[R7,#-4]   ; risf
2359                                          ; force VR0 to 0   ; call
2360                                          ; force VR1 to 1   ; call
2361   0B2A 67D1                                  mov r2,r7   ; call
2362   0B2C 1009                                  sub r2,#16   ; call
2363   0B2E 3CD89628                              jsr _printf   ; call
2364                                          ; force VR0 to 0   ; res
2365                                   dy124  ; anon
2366                                          ;   console_flags = 0;
2367                                          ; 
2368   0B32 6000                                  lod R0,#0   ; lti
2369   0B34 20D400DF                              str  R0,_console_flags   ; assign
2370                                          ;   while (l != 1)
2371                                          ; 
2372                                   dy126  ; anon
2373   0B38 7D8C                                  lod  R0,[R7,#-6]   ; risf
2374   0B3A 2900                                  cmp R0,#1   ; alu_i
2375   0B3C 00D8B40B                              beq dy127 ; fjump F   ; cfj
2376                                          ;   {
2377                                          ; 
2378                                          ; local dummy  [R7,#-12]
2379                                          ; s
2380                                          ; local wa  [R7,#-14]
2381                                          ; s
2382   0B40 7E8C                                  lod  R0,[R7,#-4]   ; risf
2383   0B42 799C                                  str  R0,[R7,#-14]   ; assign
2384                                          ; local ba  [R7,#-16]
2385                                          ; s
2386   0B44 7E8C                                  lod  R0,[R7,#-4]   ; risf
2387   0B46 789C                                  str  R0,[R7,#-16]   ; assign
2388                                          ;     volatile int dummy;
2389                                          ; 
2390                                          ;     int *wa = (int *) b;
2391                                          ; 
2392                                          ;     uchar *ba = (uchar *) b;
2393                                          ; 
2394                                          ;     if (console_flags) break;
2395                                          ; 
2396   0B48 00D400DF                              lod  R0,_console_flags   ; ris
2397   0B4C 2800                                  cmp R0,#0   ; gfv
2398   0B4E 00D8560B                              beq dy128 ; fjmp1   ; cfj
2399   0B52 28D8B40B                              bra dy127   ; anon
2400                                   dy128  ; anon
2401                                          ;     if (l > 1) l -= 1;
2402                                          ; 
2403   0B56 7D8C                                  lod  R0,[R7,#-6]   ; risf
2404   0B58 2900                                  cmp R0,#1   ; alu_i
2405   0B5A 14D8640B                              ble dy129 ; fjump F   ; cfj
2406   0B5E 7D8C                                  lod  R0,[R7,#-6]   ; risf
2407   0B60 1100                                  sub R0,#1   ; alu_i
2408   0B62 7D9C                                  str  R0,[R7,#-6]   ; assign
2409                                   dy129  ; anon
2410                                          ;     if (m == b)
2411                                          ; 
2412   0B64 7BAC                                  lodb R0,[R7,#-10]   ; risf
2413   0B66 FE8C                                  lod  R1,[R7,#-4]   ; risf
2414   0B68 29D0                                  cmp R0,R1   ; alu-l
2415   0B6A 04D8920B                              bne dy130 ; fjump F   ; cfj
2416                                          ;     {
2417                                          ; 
2418                                          ;       if (write==0) dummy = *ba; else *ba = dummy++;
2419                                          ; 
2420   0B6E 018C                                  lod  R0,[R7,#2]   ; risf
2421   0B70 2800                                  cmp R0,#0   ; gfv
2422   0B72 04D8820B                              bne dy131 ; fjump F   ; cfj
2423   0B76 788C                                  lod  R0,[R7,#-16]   ; risf
2424   0B78 80A0                                  lodb R1,[R0]   ; risf
2425   0B7A BF7C                                  and R1,#255   ; ccti
2426   0B7C FA9C                                  str  R1,[R7,#-12]   ; assign
2427   0B7E 28D88E0B                              bra dy132   ; anon
2428                                   dy131  ; anon
2429   0B82 FA8C                                  lod  R1,[R7,#-12]   ; risf
2430   0B84 61D0                                  mov R0,R1   ; qasp1
2431   0B86 0900                                  add R0,#1   ; qasp
2432   0B88 7A9C                                  str  R0,[R7,#-12]   ; qasp
2433   0B8A 788C                                  lod  R0,[R7,#-16]   ; risf
2434   0B8C 80B0                                  strb R1,[R0]   ; assign
2435                                   dy132  ; anon
2436   0B8E 28D8B20B                              bra dy133   ; anon
2437                                   dy130  ; anon
2438                                          ;     }
2439                                          ; 
2440                                          ;     else
2441                                          ; 
2442                                          ;     {
2443                                          ; 
2444                                          ;       if (write==0) dummy = *wa; else *wa = dummy++;
2445                                          ; 
2446   0B92 018C                                  lod  R0,[R7,#2]   ; risf
2447   0B94 2800                                  cmp R0,#0   ; gfv
2448   0B96 04D8A40B                              bne dy134 ; fjump F   ; cfj
2449   0B9A 798C                                  lod  R0,[R7,#-14]   ; risf
2450   0B9C 80A0                                  lodb R1,[R0]   ; risf
2451   0B9E FABC                                  strb R1,[R7,#-12]   ; assign
2452   0BA0 28D8B20B                              bra dy135   ; anon
2453                                   dy134  ; anon
2454   0BA4 FAAC                                  lodb R1,[R7,#-12]   ; risf
2455   0BA6 61D0                                  mov R0,R1   ; qasp1
2456   0BA8 0900                                  add R0,#1   ; qasp
2457   0BAA 7ABC                                  strb R0,[R7,#-12]   ; qasp
2458   0BAC BF7C                                  and R1,#255   ; ccti
2459   0BAE 798C                                  lod  R0,[R7,#-14]   ; risf
2460   0BB0 8090                                  str  R1,[R0]   ; assign
2461                                   dy135  ; anon
2462                                   dy133  ; anon
2463   0BB2 C3CA                                  bra dy126   ; anon
2464                                   dy127  ; anon
2465                                          ;     }
2466                                          ; 
2467                                          ;   }
2468                                          ; 
2469                                          ;   printf("Done\n");
2470                                          ; 
2471   0BB4 00F4C60B                              lod R0,#dy136   ; ltgd3
2472                                          ; force VR0 to 0   ; call
2473   0BB8 67D1                                  mov r2,r7   ; call
2474   0BBA 1009                                  sub r2,#16   ; call
2475   0BBC 3CD89628                              jsr _printf   ; call
2476                                          ; force VR0 to 0   ; res
2477   0BC0 7F8F                                  lod R6,[R7,#-2]   ; cr
2478   0BC2 808F                                  lod r7,[r7]   ; cr
2479   0BC4 00F3                                  ret   ; cr
2480   0BC6 446F6E65                       dy136  .data "Done",10,0
            0A00
2481   0BCC 4C6F6F70                       dy125  .data "Loop poll of address %08X forever more",10,0
            20706F6C6C206F662061646472657373202530385820666F7265766572206D6F72650A00
2482   0BF4 4C6F6F70                       dy123  .data "Loop poll of address %08X, %i times ",10,0
            20706F6C6C206F66206164647265737320253038582C2025692074696D6573200A00
2483   0C1A 53796E74                       dy119  .data "Syntax   %s w addr [times]    for word access",10,0
            6178202020257320772061646472205B74696D65735D20202020666F7220776F7264206163636573730A00
2484   0C49 53796E74                       dy118  .data "Syntax   %s b addr [times]    for byte access",10,0
            6178202020257320622061646472205B74696D65735D20202020666F722062797465206163636573730A00
2485                                          
2486                                          
2487                                          ; Routine mymon_fill
2488                                          .align 2 
2489                             _mymon_fill  .global
2490   0C78 809B                                  str r7,[r2]
2491   0C7A E2D3                                  mov r7,r2
2492   0C7C 7F9F                                  str R6,[R7,#-2]
2493   0C7E 019C                                  str R0,[R7,#2]
2494                                          ; ------------------------------------------------- 
2495                                          ; local argv  [R7,#2]
2496                                          ; s
2497                                          ; local r  [R7,#-4]
2498                                          ; s
2499   0C80 6000                                  lod R0,#0   ; lti
2500   0C82 7E9C                                  str  R0,[R7,#-4]   ; assign
2501                                          ; }
2502                                          ; 
2503                                          ; 
2504                                          ; 
2505                                          ; 
2506                                          ; 
2507                                          ; int mymon_fill(char **argv)
2508                                          ; 
2509                                          ; {
2510                                          ; 
2511                                          ;   unsigned int r = 0;
2512                                          ; 
2513                                          ;   if (argv[1] && argv[2])
2514                                          ; 
2515   0C84 018C                                  lod  R0,[R7,#2]   ; risf
2516   0C86 0A00                                  add R0,#2   ; alu_i
2517   0C88 8080                                  lod  R1,[R0]   ; risf
2518   0C8A A800                                  cmp R1,#0   ; gfv
2519   0C8C 00D8060D                              beq dy137 ; fjmp1   ; cfj
2520   0C90 018C                                  lod  R0,[R7,#2]   ; risf
2521   0C92 0C00                                  add R0,#4   ; alu_i
2522   0C94 8080                                  lod  R1,[R0]   ; risf
2523   0C96 A800                                  cmp R1,#0   ; gfv
2524   0C98 00D8060D                              beq dy137 ; fjmp1   ; cfj
2525                                          ;     {
2526                                          ; 
2527                                          ; local start  [R7,#-6]
2528                                          ; s
2529   0C9C 818C                                  lod  R1,[R7,#2]   ; risf
2530   0C9E 8A00                                  add R1,#2   ; alu_i
2531   0CA0 0084                                  lod  R0,[R1]   ; risf
2532                                          ; force VR0 to 0   ; call
2533   0CA2 67D1                                  mov r2,r7   ; call
2534   0CA4 1205                                  sub r2,#10   ; call
2535   0CA6 3CD80E1E                              jsr _rhex   ; call
2536                                          ; force VR0 to 0   ; res
2537   0CAA 7D9C                                  str  R0,[R7,#-6]   ; assign
2538                                          ; local end  [R7,#-8]
2539                                          ; s
2540   0CAC 818C                                  lod  R1,[R7,#2]   ; risf
2541   0CAE 8C00                                  add R1,#4   ; alu_i
2542   0CB0 0084                                  lod  R0,[R1]   ; risf
2543                                          ; force VR0 to 0   ; call
2544   0CB2 67D1                                  mov r2,r7   ; call
2545   0CB4 1405                                  sub r2,#12   ; call
2546   0CB6 3CD80E1E                              jsr _rhex   ; call
2547                                          ; force VR0 to 0   ; res
2548   0CBA 7C9C                                  str  R0,[R7,#-8]   ; assign
2549                                          ; local s  [R7,#-10]
2550                                          ; s
2551   0CBC 7D8C                                  lod  R0,[R7,#-6]   ; risf
2552   0CBE 7B9C                                  str  R0,[R7,#-10]   ; assign
2553                                          ; local val  [R7,#-12]
2554                                          ; s
2555   0CC0 6000                                  lod R0,#0   ; lti
2556   0CC2 7A9C                                  str  R0,[R7,#-12]   ; assign
2557                                          ;       int *start = (int *) rhex(argv[1]);
2558                                          ; 
2559                                          ;       int *end = (int *) rhex(argv[2]);
2560                                          ; 
2561                                          ;       int *s = (int *) start;
2562                                          ; 
2563                                          ;       int val = 0;
2564                                          ; 
2565                                          ;       if (argv[3]) val = rhex(argv[3]);
2566                                          ; 
2567   0CC4 018C                                  lod  R0,[R7,#2]   ; risf
2568   0CC6 0E00                                  add R0,#6   ; alu_i
2569   0CC8 8080                                  lod  R1,[R0]   ; risf
2570   0CCA A800                                  cmp R1,#0   ; gfv
2571   0CCC 00D8E00C                              beq dy138 ; fjmp1   ; cfj
2572   0CD0 818C                                  lod  R1,[R7,#2]   ; risf
2573   0CD2 8E00                                  add R1,#6   ; alu_i
2574   0CD4 0084                                  lod  R0,[R1]   ; risf
2575                                          ; force VR0 to 0   ; call
2576   0CD6 67D1                                  mov r2,r7   ; call
2577   0CD8 1209                                  sub r2,#18   ; call
2578   0CDA 3CD80E1E                              jsr _rhex   ; call
2579                                          ; force VR0 to 0   ; res
2580   0CDE 7A9C                                  str  R0,[R7,#-12]   ; assign
2581                                   dy138  ; anon
2582                                          ;       while (s <= end)
2583                                          ; 
2584                                   dy139  ; anon
2585   0CE0 7B8C                                  lod  R0,[R7,#-10]   ; risf
2586   0CE2 FC8C                                  lod  R1,[R7,#-8]   ; risf
2587   0CE4 29D0                                  cmp R0,R1   ; alu-l
2588   0CE6 5900                                  lsr R0,#1   ; ps
2589   0CE8 10D8FA0C                              bgt dy140 ; fjump F   ; cfj
2590                                          ;  {
2591                                          ; 
2592                                          ;    *s++ = val;
2593                                          ; 
2594   0CEC 7B8C                                  lod  R0,[R7,#-10]   ; risf
2595   0CEE E0D0                                  mov R1,R0   ; qasp1
2596   0CF0 8A00                                  add R1,#2   ; qasp
2597   0CF2 FB9C                                  str  R1,[R7,#-10]   ; qasp
2598   0CF4 FA8C                                  lod  R1,[R7,#-12]   ; risf
2599   0CF6 8090                                  str  R1,[R0]   ; assign
2600   0CF8 F4CA                                  bra dy139   ; anon
2601                                   dy140  ; anon
2602                                          ;  }
2603                                          ; 
2604                                          ;       printf("done\n");
2605                                          ; 
2606   0CFA 00F40E0D                              lod R0,#dy141   ; ltgd3
2607                                          ; force VR0 to 0   ; call
2608   0CFE 67D1                                  mov r2,r7   ; call
2609   0D00 1209                                  sub r2,#18   ; call
2610   0D02 3CD89628                              jsr _printf   ; call
2611                                          ; force VR0 to 0   ; res
2612                                   dy137  ; anon
2613                                          ;     }
2614                                          ; 
2615                                          ;   return 0;
2616                                          ; 
2617   0D06 6000                                  lod R0,#0   ; lti
2618                                          ; force VR0 to 0   ; loadtod0
2619   0D08 7F8F                                  lod R6,[R7,#-2]   ; cr
2620   0D0A 808F                                  lod r7,[r7]   ; cr
2621   0D0C 00F3                                  ret   ; cr
2622   0D0E 646F6E65                       dy141  .data "done",10,0
            0A00
2623                                          
2624                                          
2625                                          ; Routine mymon_findl
2626                                          .align 2 
2627                            _mymon_findl  .global
2628   0D14 809B                                  str r7,[r2]
2629   0D16 E2D3                                  mov r7,r2
2630   0D18 7F9F                                  str R6,[R7,#-2]
2631   0D1A 019C                                  str R0,[R7,#2]
2632                                          ; ------------------------------------------------- 
2633                                          ; local argv  [R7,#2]
2634                                          ; s
2635                                          ; local r  [R7,#-4]
2636                                          ; s
2637   0D1C 6000                                  lod R0,#0   ; lti
2638   0D1E 7E9C                                  str  R0,[R7,#-4]   ; assign
2639                                          ; }
2640                                          ; 
2641                                          ; 
2642                                          ; 
2643                                          ; int mymon_findl(char **argv)
2644                                          ; 
2645                                          ; {
2646                                          ; 
2647                                          ;   unsigned int r = 0;
2648                                          ; 
2649                                          ;   if (argv[1] && argv[2] && argv[3])
2650                                          ; 
2651   0D20 018C                                  lod  R0,[R7,#2]   ; risf
2652   0D22 0A00                                  add R0,#2   ; alu_i
2653   0D24 8080                                  lod  R1,[R0]   ; risf
2654   0D26 A800                                  cmp R1,#0   ; gfv
2655   0D28 00D8BE0D                              beq dy142 ; fjmp1   ; cfj
2656   0D2C 018C                                  lod  R0,[R7,#2]   ; risf
2657   0D2E 0C00                                  add R0,#4   ; alu_i
2658   0D30 8080                                  lod  R1,[R0]   ; risf
2659   0D32 A800                                  cmp R1,#0   ; gfv
2660   0D34 00D8BE0D                              beq dy142 ; fjmp1   ; cfj
2661   0D38 018C                                  lod  R0,[R7,#2]   ; risf
2662   0D3A 0E00                                  add R0,#6   ; alu_i
2663   0D3C 8080                                  lod  R1,[R0]   ; risf
2664   0D3E A800                                  cmp R1,#0   ; gfv
2665   0D40 00D8BE0D                              beq dy142 ; fjmp1   ; cfj
2666                                          ;     {
2667                                          ; 
2668                                          ; local start  [R7,#-6]
2669                                          ; s
2670   0D44 818C                                  lod  R1,[R7,#2]   ; risf
2671   0D46 8A00                                  add R1,#2   ; alu_i
2672   0D48 0084                                  lod  R0,[R1]   ; risf
2673                                          ; force VR0 to 0   ; call
2674   0D4A 67D1                                  mov r2,r7   ; call
2675   0D4C 1205                                  sub r2,#10   ; call
2676   0D4E 3CD80E1E                              jsr _rhex   ; call
2677                                          ; force VR0 to 0   ; res
2678   0D52 7D9C                                  str  R0,[R7,#-6]   ; assign
2679                                          ; local end  [R7,#-8]
2680                                          ; s
2681   0D54 818C                                  lod  R1,[R7,#2]   ; risf
2682   0D56 8C00                                  add R1,#4   ; alu_i
2683   0D58 0084                                  lod  R0,[R1]   ; risf
2684                                          ; force VR0 to 0   ; call
2685   0D5A 67D1                                  mov r2,r7   ; call
2686   0D5C 1405                                  sub r2,#12   ; call
2687   0D5E 3CD80E1E                              jsr _rhex   ; call
2688                                          ; force VR0 to 0   ; res
2689   0D62 7C9C                                  str  R0,[R7,#-8]   ; assign
2690                                          ; local s  [R7,#-10]
2691                                          ; s
2692   0D64 7D8C                                  lod  R0,[R7,#-6]   ; risf
2693   0D66 7B9C                                  str  R0,[R7,#-10]   ; assign
2694                                          ; local val  [R7,#-12]
2695                                          ; s
2696   0D68 818C                                  lod  R1,[R7,#2]   ; risf
2697   0D6A 8E00                                  add R1,#6   ; alu_i
2698   0D6C 0084                                  lod  R0,[R1]   ; risf
2699                                          ; force VR0 to 0   ; call
2700   0D6E 67D1                                  mov r2,r7   ; call
2701   0D70 1009                                  sub r2,#16   ; call
2702   0D72 3CD80E1E                              jsr _rhex   ; call
2703                                          ; force VR0 to 0   ; res
2704   0D76 7A9C                                  str  R0,[R7,#-12]   ; assign
2705                                          ;       int *start = (int *) rhex(argv[1]);
2706                                          ; 
2707                                          ;       int *end = (int *) rhex(argv[2]);
2708                                          ; 
2709                                          ;       int *s = (int *) start;
2710                                          ; 
2711                                          ;       int  val = rhex(argv[3]);
2712                                          ; 
2713                                          ;       while (s <= end && s!= start)
2714                                          ; 
2715                                   dy143  ; anon
2716   0D78 7B8C                                  lod  R0,[R7,#-10]   ; risf
2717   0D7A FC8C                                  lod  R1,[R7,#-8]   ; risf
2718   0D7C 29D0                                  cmp R0,R1   ; alu-l
2719   0D7E 5900                                  lsr R0,#1   ; ps
2720   0D80 10D8B20D                              bgt dy144 ; fjump F   ; cfj
2721   0D84 7B8C                                  lod  R0,[R7,#-10]   ; risf
2722   0D86 FD8C                                  lod  R1,[R7,#-6]   ; risf
2723   0D88 29D0                                  cmp R0,R1   ; alu-l
2724   0D8A 5900                                  lsr R0,#1   ; ps
2725   0D8C 00D8B20D                              beq dy144 ; fjump F   ; cfj
2726                                          ;  {
2727                                          ; 
2728                                          ;    if (*s == val) printf("Found at %x ", s);
2729                                          ; 
2730   0D90 7B8C                                  lod  R0,[R7,#-10]   ; risf
2731   0D92 8080                                  lod  R1,[R0]   ; risf
2732   0D94 7A8C                                  lod  R0,[R7,#-12]   ; risf
2733   0D96 A8D0                                  cmp R1,R0   ; alu-l
2734   0D98 04D8AA0D                              bne dy145 ; fjump F   ; cfj
2735   0D9C 00F4D00D                              lod R0,#dy146   ; ltgd3
2736   0DA0 FB8C                                  lod  R1,[R7,#-10]   ; risf
2737                                          ; force VR0 to 0   ; call
2738                                          ; force VR1 to 1   ; call
2739   0DA2 67D1                                  mov r2,r7   ; call
2740   0DA4 1209                                  sub r2,#18   ; call
2741   0DA6 3CD89628                              jsr _printf   ; call
2742                                          ; force VR0 to 0   ; res
2743                                   dy145  ; anon
2744                                          ;    s++;
2745                                          ; 
2746   0DAA 7B8C                                  lod  R0,[R7,#-10]   ; risf
2747   0DAC 0A00                                  add R0,#2   ; qas
2748   0DAE 7B9C                                  str  R0,[R7,#-10]   ; qasmi
2749   0DB0 E4CA                                  bra dy143   ; anon
2750                                   dy144  ; anon
2751                                          ;  }
2752                                          ; 
2753                                          ;       printf("... done\n");
2754                                          ; 
2755   0DB2 00F4C60D                              lod R0,#dy147   ; ltgd3
2756                                          ; force VR0 to 0   ; call
2757   0DB6 67D1                                  mov r2,r7   ; call
2758   0DB8 1209                                  sub r2,#18   ; call
2759   0DBA 3CD89628                              jsr _printf   ; call
2760                                          ; force VR0 to 0   ; res
2761                                   dy142  ; anon
2762                                          ;     }
2763                                          ; 
2764                                          ;   return 0;
2765                                          ; 
2766   0DBE 6000                                  lod R0,#0   ; lti
2767                                          ; force VR0 to 0   ; loadtod0
2768   0DC0 7F8F                                  lod R6,[R7,#-2]   ; cr
2769   0DC2 808F                                  lod r7,[r7]   ; cr
2770   0DC4 00F3                                  ret   ; cr
2771   0DC6 2E2E2E20                       dy147  .data "... done",10,0
            646F6E650A00
2772   0DD0 466F756E                       dy146  .data "Found at %x ",0
            642061742025782000
2773                                          
2774                                          
2775                                          ; Routine mymon_findb
2776   0DDD 00                                    .align 2 
2777                            _mymon_findb  .global
2778   0DDE 809B                                  str r7,[r2]
2779   0DE0 E2D3                                  mov r7,r2
2780   0DE2 7F9F                                  str R6,[R7,#-2]
2781   0DE4 019C                                  str R0,[R7,#2]
2782                                          ; ------------------------------------------------- 
2783                                          ; local argv  [R7,#2]
2784                                          ; s
2785                                          ; local r  [R7,#-4]
2786                                          ; s
2787   0DE6 6000                                  lod R0,#0   ; lti
2788   0DE8 7E9C                                  str  R0,[R7,#-4]   ; assign
2789                                          ; 
2790                                          ; 
2791                                          ; }
2792                                          ; 
2793                                          ; 
2794                                          ; 
2795                                          ; 
2796                                          ; 
2797                                          ; int mymon_findb(char **argv)
2798                                          ; 
2799                                          ; {
2800                                          ; 
2801                                          ;   unsigned int r = 0;
2802                                          ; 
2803                                          ;   if (argv[1] && argv[2] && argv[3])
2804                                          ; 
2805   0DEA 018C                                  lod  R0,[R7,#2]   ; risf
2806   0DEC 0A00                                  add R0,#2   ; alu_i
2807   0DEE 8080                                  lod  R1,[R0]   ; risf
2808   0DF0 A800                                  cmp R1,#0   ; gfv
2809   0DF2 00D87A0E                              beq dy148 ; fjmp1   ; cfj
2810   0DF6 018C                                  lod  R0,[R7,#2]   ; risf
2811   0DF8 0C00                                  add R0,#4   ; alu_i
2812   0DFA 8080                                  lod  R1,[R0]   ; risf
2813   0DFC A800                                  cmp R1,#0   ; gfv
2814   0DFE 00D87A0E                              beq dy148 ; fjmp1   ; cfj
2815   0E02 018C                                  lod  R0,[R7,#2]   ; risf
2816   0E04 0E00                                  add R0,#6   ; alu_i
2817   0E06 8080                                  lod  R1,[R0]   ; risf
2818   0E08 A800                                  cmp R1,#0   ; gfv
2819   0E0A 00D87A0E                              beq dy148 ; fjmp1   ; cfj
2820                                          ;     {
2821                                          ; 
2822                                          ; local start  [R7,#-6]
2823                                          ; s
2824   0E0E 818C                                  lod  R1,[R7,#2]   ; risf
2825   0E10 8A00                                  add R1,#2   ; alu_i
2826   0E12 0084                                  lod  R0,[R1]   ; risf
2827                                          ; force VR0 to 0   ; call
2828   0E14 67D1                                  mov r2,r7   ; call
2829   0E16 1205                                  sub r2,#10   ; call
2830   0E18 3CD80E1E                              jsr _rhex   ; call
2831                                          ; force VR0 to 0   ; res
2832   0E1C 7D9C                                  str  R0,[R7,#-6]   ; assign
2833                                          ; local end  [R7,#-8]
2834                                          ; s
2835   0E1E 818C                                  lod  R1,[R7,#2]   ; risf
2836   0E20 8C00                                  add R1,#4   ; alu_i
2837   0E22 0084                                  lod  R0,[R1]   ; risf
2838                                          ; force VR0 to 0   ; call
2839   0E24 67D1                                  mov r2,r7   ; call
2840   0E26 1405                                  sub r2,#12   ; call
2841   0E28 3CD80E1E                              jsr _rhex   ; call
2842                                          ; force VR0 to 0   ; res
2843   0E2C 7C9C                                  str  R0,[R7,#-8]   ; assign
2844                                          ; local s  [R7,#-10]
2845                                          ; s
2846   0E2E 7D8C                                  lod  R0,[R7,#-6]   ; risf
2847   0E30 7B9C                                  str  R0,[R7,#-10]   ; assign
2848                                          ; local val  [R7,#-12]
2849                                          ; s
2850   0E32 818C                                  lod  R1,[R7,#2]   ; risf
2851   0E34 8E00                                  add R1,#6   ; alu_i
2852   0E36 0084                                  lod  R0,[R1]   ; risf
2853                                          ; force VR0 to 0   ; call
2854   0E38 67D1                                  mov r2,r7   ; call
2855   0E3A 1009                                  sub r2,#16   ; call
2856   0E3C 3CD80E1E                              jsr _rhex   ; call
2857                                          ; force VR0 to 0   ; res
2858   0E40 7A9C                                  str  R0,[R7,#-12]   ; assign
2859                                          ;       char *start = (char *) rhex(argv[1]);
2860                                          ; 
2861                                          ;       char *end = (char *) rhex(argv[2]);
2862                                          ; 
2863                                          ;       char *s = (char *) start;
2864                                          ; 
2865                                          ;       int  val = rhex(argv[3]);
2866                                          ; 
2867                                          ;       while (s <= end)
2868                                          ; 
2869                                   dy149  ; anon
2870   0E42 7B8C                                  lod  R0,[R7,#-10]   ; risf
2871   0E44 FC8C                                  lod  R1,[R7,#-8]   ; risf
2872   0E46 29D0                                  cmp R0,R1   ; alu-l
2873   0E48 10D86E0E                              bgt dy150 ; fjump F   ; cfj
2874                                          ;  {
2875                                          ; 
2876                                          ;    if (*s == val) printf("Found at %x ", s);
2877                                          ; 
2878   0E4C 7B8C                                  lod  R0,[R7,#-10]   ; risf
2879   0E4E 80A0                                  lodb R1,[R0]   ; risf
2880   0E50 7A8C                                  lod  R0,[R7,#-12]   ; risf
2881   0E52 A8D0                                  cmp R1,R0   ; alu-l
2882   0E54 04D8660E                              bne dy151 ; fjump F   ; cfj
2883   0E58 00F48C0E                              lod R0,#dy152   ; ltgd3
2884   0E5C FB8C                                  lod  R1,[R7,#-10]   ; risf
2885                                          ; force VR0 to 0   ; call
2886                                          ; force VR1 to 1   ; call
2887   0E5E 67D1                                  mov r2,r7   ; call
2888   0E60 1209                                  sub r2,#18   ; call
2889   0E62 3CD89628                              jsr _printf   ; call
2890                                          ; force VR0 to 0   ; res
2891                                   dy151  ; anon
2892                                          ;    s++;
2893                                          ; 
2894   0E66 7B8C                                  lod  R0,[R7,#-10]   ; risf
2895   0E68 0900                                  add R0,#1   ; qas
2896   0E6A 7B9C                                  str  R0,[R7,#-10]   ; qasmi
2897   0E6C EBCA                                  bra dy149   ; anon
2898                                   dy150  ; anon
2899                                          ;  }
2900                                          ; 
2901                                          ;       printf("... done\n");
2902                                          ; 
2903   0E6E 00F4820E                              lod R0,#dy153   ; ltgd3
2904                                          ; force VR0 to 0   ; call
2905   0E72 67D1                                  mov r2,r7   ; call
2906   0E74 1209                                  sub r2,#18   ; call
2907   0E76 3CD89628                              jsr _printf   ; call
2908                                          ; force VR0 to 0   ; res
2909                                   dy148  ; anon
2910                                          ;     }
2911                                          ; 
2912                                          ;   return 0;
2913                                          ; 
2914   0E7A 6000                                  lod R0,#0   ; lti
2915                                          ; force VR0 to 0   ; loadtod0
2916   0E7C 7F8F                                  lod R6,[R7,#-2]   ; cr
2917   0E7E 808F                                  lod r7,[r7]   ; cr
2918   0E80 00F3                                  ret   ; cr
2919   0E82 2E2E2E20                       dy153  .data "... done",10,0
            646F6E650A00
2920   0E8C 466F756E                       dy152  .data "Found at %x ",0
            642061742025782000
2921                                          
2922                                          
2923                                          ; Routine mymon_bp
2924   0E99 00                                    .align 2 
2925                               _mymon_bp  .global
2926   0E9A 809B                                  str r7,[r2]
2927   0E9C E2D3                                  mov r7,r2
2928   0E9E 7F9F                                  str R6,[R7,#-2]
2929   0EA0 019C                                  str R0,[R7,#2]
2930                                          ; ------------------------------------------------- 
2931                                          ; local argv  [R7,#2]
2932                                          ; s
2933                                          ;   }
2934                                          ; 
2935                                          ; }
2936                                          ; 
2937                                          ; 
2938                                          ; 
2939                                          ; 
2940                                          ; 
2941                                          ; 
2942                                          ; 
2943                                          ; extern void clear_breakpoint();
2944                                          ; 
2945                                          ; extern void install_breakpoint(int);
2946                                          ; 
2947                                          ; extern int bptaddr;
2948                                          ; 
2949                                          ; mymon_bp(char **argv)
2950                                          ; 
2951                                          ; {
2952                                          ; 
2953                                          ;   if (argv[1] && strcmp(argv[1], "clear")==0)
2954                                          ; 
2955   0EA2 018C                                  lod  R0,[R7,#2]   ; risf
2956   0EA4 0A00                                  add R0,#2   ; alu_i
2957   0EA6 8080                                  lod  R1,[R0]   ; risf
2958   0EA8 A800                                  cmp R1,#0   ; gfv
2959   0EAA 00D8D20E                              beq dy154 ; fjmp1   ; cfj
2960   0EAE 818C                                  lod  R1,[R7,#2]   ; risf
2961   0EB0 8A00                                  add R1,#2   ; alu_i
2962   0EB2 0084                                  lod  R0,[R1]   ; risf
2963   0EB4 80F41E0F                              lod R1,#dy155   ; ltgd3
2964                                          ; force VR0 to 0   ; call
2965                                          ; force VR1 to 1   ; call
2966   0EB8 67D1                                  mov r2,r7   ; call
2967   0EBA 1005                                  sub r2,#8   ; call
2968   0EBC 3CD81822                              jsr _strcmp   ; call
2969                                          ; force VR0 to 0   ; res
2970   0EC0 2800                                  cmp R0,#0   ; gfv
2971   0EC2 04D8D20E                              bne dy154 ; fjump F   ; cfj
2972                                          ;     {
2973                                          ; 
2974                                          ;       clear_breakpoint();
2975                                          ; 
2976   0EC6 67D1                                  mov r2,r7   ; call
2977   0EC8 1005                                  sub r2,#8   ; call
2978   0ECA 3CD83400                              jsr _clear_breakpoint   ; call
2979                                          ; force VR0 to 0   ; res
2980   0ECE 28D80C0F                              bra dy156   ; anon
2981                                   dy154  ; anon
2982                                          ;     }
2983                                          ; 
2984                                          ;   else if (argv[1]) 
2985                                          ; 
2986   0ED2 018C                                  lod  R0,[R7,#2]   ; risf
2987   0ED4 0A00                                  add R0,#2   ; alu_i
2988   0ED6 8080                                  lod  R1,[R0]   ; risf
2989   0ED8 A800                                  cmp R1,#0   ; gfv
2990   0EDA 00D8FC0E                              beq dy157 ; fjmp1   ; cfj
2991                                          ;     {
2992                                          ; 
2993                                          ; local a  [R7,#-4]
2994                                          ; s
2995   0EDE 818C                                  lod  R1,[R7,#2]   ; risf
2996   0EE0 8A00                                  add R1,#2   ; alu_i
2997   0EE2 0084                                  lod  R0,[R1]   ; risf
2998                                          ; force VR0 to 0   ; call
2999   0EE4 67D1                                  mov r2,r7   ; call
3000   0EE6 1005                                  sub r2,#8   ; call
3001   0EE8 3CD80E1E                              jsr _rhex   ; call
3002                                          ; force VR0 to 0   ; res
3003   0EEC 7E9C                                  str  R0,[R7,#-4]   ; assign
3004                                          ;       int a = rhex(argv[1]);
3005                                          ; 
3006                                          ;       install_breakpoint(a);
3007                                          ; 
3008   0EEE 7E8C                                  lod  R0,[R7,#-4]   ; risf
3009                                          ; force VR0 to 0   ; call
3010   0EF0 67D1                                  mov r2,r7   ; call
3011   0EF2 1205                                  sub r2,#10   ; call
3012   0EF4 3CD83400                              jsr _install_breakpoint   ; call
3013                                          ; force VR0 to 0   ; res
3014   0EF8 28D80C0F                              bra dy158   ; anon
3015                                   dy157  ; anon
3016                                          ;     }
3017                                          ; 
3018                                          ;   else printf("bp at %08X\n", bptaddr);
3019                                          ; 
3020   0EFC 00F4120F                              lod R0,#dy159   ; ltgd3
3021   0F00 80D402DF                              lod  R1,_bptaddr   ; ris
3022                                          ; force VR0 to 0   ; call
3023                                          ; force VR1 to 1   ; call
3024   0F04 67D1                                  mov r2,r7   ; call
3025   0F06 1005                                  sub r2,#8   ; call
3026   0F08 3CD89628                              jsr _printf   ; call
3027                                          ; force VR0 to 0   ; res
3028                                   dy158  ; anon
3029                                   dy156  ; anon
3030   0F0C 7F8F                                  lod R6,[R7,#-2]   ; cr
3031   0F0E 808F                                  lod r7,[r7]   ; cr
3032   0F10 00F3                                  ret   ; cr
3033   0F12 62702061                       dy159  .data "bp at %08X",10,0
            7420253038580A00
3034   0F1E 636C6561                       dy155  .data "clear",0
            7200
3035                                          
3036                                          
3037                                          ; Routine mymon_mm
3038                                          ; forced litpool here
3039                                          .align 2 
3040                               _mymon_mm  .global
3041   0F24 809B                                  str r7,[r2]
3042   0F26 E2D3                                  mov r7,r2
3043   0F28 7F9F                                  str R6,[R7,#-2]
3044   0F2A 019C                                  str R0,[R7,#2]
3045                                          ; ------------------------------------------------- 
3046                                          ; local argv  [R7,#2]
3047                                          ; s
3048                                          ; local b  [R7,#-4]
3049                                          ; s
3050   0F2C 6000                                  lod R0,#0   ; lti
3051   0F2E 7E9C                                  str  R0,[R7,#-4]   ; assign
3052                                          ; local byte  [R7,#-6]
3053                                          ; s
3054                                          ; local fixf  [R7,#-8]
3055                                          ; s
3056   0F30 6000                                  lod R0,#0   ; lti
3057   0F32 7C9C                                  str  R0,[R7,#-8]   ; assign
3058                                          ; local m  [R7,#-10]
3059                                          ; s
3060                                          ; }
3061                                          ; 
3062                                          ; 
3063                                          ; 
3064                                          ; 
3065                                          ; 
3066                                          ; mymon_mm(char **argv)
3067                                          ; 
3068                                          ; {
3069                                          ; 
3070                                          ;   int b = 0;
3071                                          ; 
3072                                          ;   int byte;
3073                                          ; 
3074                                          ;   int fixf = 0;
3075                                          ; 
3076                                          ;   char m;
3077                                          ; 
3078                                          ;   if (!strcmp(argv[1], "-fix"))
3079                                          ; 
3080   0F34 818C                                  lod  R1,[R7,#2]   ; risf
3081   0F36 8A00                                  add R1,#2   ; alu_i
3082   0F38 0084                                  lod  R0,[R1]   ; risf
3083   0F3A 80F4A211                              lod R1,#dy160   ; ltgd3
3084                                          ; force VR0 to 0   ; call
3085                                          ; force VR1 to 1   ; call
3086   0F3E 67D1                                  mov r2,r7   ; call
3087   0F40 1009                                  sub r2,#16   ; call
3088   0F42 3CD81822                              jsr _strcmp   ; call
3089                                          ; force VR0 to 0   ; res
3090   0F46 E000                                  lod R1,#0   ; neg
3091   0F48 2800                                  cmp R0,#0   ; gfv
3092   0F4A 00D8500F                              beq dy161   ; anon
3093   0F4E 8900                                  add R1,#1   ; neg
3094                                   dy161  ; anon
3095   0F50 A800                                  cmp R1,#0   ; gfv
3096   0F52 00D86C0F                              beq dy162 ; fjmp1   ; cfj
3097                                          ;     {
3098                                          ; 
3099                                          ;       fixf = 1;
3100                                          ; 
3101   0F56 6100                                  lod R0,#1   ; lti
3102   0F58 7C9C                                  str  R0,[R7,#-8]   ; assign
3103                                          ;       printf("FIX\n");
3104                                          ; 
3105   0F5A 00F49D11                              lod R0,#dy163   ; ltgd3
3106                                          ; force VR0 to 0   ; call
3107   0F5E 67D1                                  mov r2,r7   ; call
3108   0F60 1009                                  sub r2,#16   ; call
3109   0F62 3CD89628                              jsr _printf   ; call
3110                                          ; force VR0 to 0   ; res
3111                                          ;       argv ++;
3112                                          ; 
3113   0F66 018C                                  lod  R0,[R7,#2]   ; risf
3114   0F68 0A00                                  add R0,#2   ; qas
3115   0F6A 019C                                  str  R0,[R7,#2]   ; qasmi
3116                                   dy162  ; anon
3117                                          ;     }
3118                                          ; 
3119                                          ;   m = tolower(argv[1][0]);
3120                                          ; 
3121   0F6C 018C                                  lod  R0,[R7,#2]   ; risf
3122   0F6E 0A00                                  add R0,#2   ; alu_i
3123   0F70 8080                                  lod  R1,[R0]   ; risf
3124   0F72 00A4                                  lodb R0,[R1]   ; risf
3125                                          ; force VR0 to 0   ; call
3126   0F74 67D1                                  mov r2,r7   ; call
3127   0F76 1009                                  sub r2,#16   ; call
3128   0F78 3CD8A821                              jsr _tolower   ; call
3129                                          ; force VR0 to 0   ; res
3130   0F7C 7BBC                                  strb R0,[R7,#-10]   ; assign
3131                                          ;   if (m != 'b' && m != 'w') 
3132                                          ; 
3133   0F7E 7BAC                                  lodb R0,[R7,#-10]   ; risf
3134   0F80 2A30                                  cmp R0,#98   ; alu_i
3135   0F82 00D8AC0F                              beq dy164 ; fjump F   ; cfj
3136   0F86 7BAC                                  lodb R0,[R7,#-10]   ; risf
3137   0F88 2F38                                  cmp R0,#119   ; alu_i
3138   0F8A 00D8AC0F                              beq dy164 ; fjump F   ; cfj
3139                                          ;   {
3140                                          ; 
3141                                          ;     printf("Syntax  mm [-fix] b addr    for byte access\n");
3142                                          ; 
3143   0F8E 00F47011                              lod R0,#dy165   ; ltgd3
3144                                          ; force VR0 to 0   ; call
3145   0F92 67D1                                  mov r2,r7   ; call
3146   0F94 1009                                  sub r2,#16   ; call
3147   0F96 3CD89628                              jsr _printf   ; call
3148                                          ; force VR0 to 0   ; res
3149                                          ;     printf("Syntax  mm [-fix] w addr    for word access\n");
3150                                          ; 
3151   0F9A 00F44311                              lod R0,#dy166   ; ltgd3
3152                                          ; force VR0 to 0   ; call
3153   0F9E 67D1                                  mov r2,r7   ; call
3154   0FA0 1009                                  sub r2,#16   ; call
3155   0FA2 3CD89628                              jsr _printf   ; call
3156                                          ; force VR0 to 0   ; res
3157                                          ;     return;
3158                                          ; 
3159   0FA6 7F8F                                  lod R6,[R7,#-2]   ; cr
3160   0FA8 808F                                  lod r7,[r7]   ; cr
3161   0FAA 00F3                                  ret   ; cr
3162                                   dy164  ; anon
3163                                          ;   }
3164                                          ; 
3165                                          ;   if (argv[2]) b = rhex(argv[2]);
3166                                          ; 
3167   0FAC 018C                                  lod  R0,[R7,#2]   ; risf
3168   0FAE 0C00                                  add R0,#4   ; alu_i
3169   0FB0 8080                                  lod  R1,[R0]   ; risf
3170   0FB2 A800                                  cmp R1,#0   ; gfv
3171   0FB4 00D8C80F                              beq dy167 ; fjmp1   ; cfj
3172   0FB8 818C                                  lod  R1,[R7,#2]   ; risf
3173   0FBA 8C00                                  add R1,#4   ; alu_i
3174   0FBC 0084                                  lod  R0,[R1]   ; risf
3175                                          ; force VR0 to 0   ; call
3176   0FBE 67D1                                  mov r2,r7   ; call
3177   0FC0 1009                                  sub r2,#16   ; call
3178   0FC2 3CD80E1E                              jsr _rhex   ; call
3179                                          ; force VR0 to 0   ; res
3180   0FC6 7E9C                                  str  R0,[R7,#-4]   ; assign
3181                                   dy167  ; anon
3182                                          ;   while (1)
3183                                          ; 
3184                                   dy168  ; anon
3185                                          ;   {
3186                                          ; 
3187                                          ; local ba  [R7,#-12]
3188                                          ; s
3189   0FC8 7E8C                                  lod  R0,[R7,#-4]   ; risf
3190   0FCA 7A9C                                  str  R0,[R7,#-12]   ; assign
3191                                          ; local wa  [R7,#-14]
3192                                          ; s
3193   0FCC 7E8C                                  lod  R0,[R7,#-4]   ; risf
3194   0FCE 799C                                  str  R0,[R7,#-14]   ; assign
3195                                          ;     volatile uchar *ba = (uchar *) b;
3196                                          ; 
3197                                          ;     volatile int *wa = (int *) b;
3198                                          ; 
3199                                          ;     printf("%08X ", b);
3200                                          ; 
3201   0FD0 00F43D11                              lod R0,#dy170   ; ltgd3
3202   0FD4 FE8C                                  lod  R1,[R7,#-4]   ; risf
3203                                          ; force VR0 to 0   ; call
3204                                          ; force VR1 to 1   ; call
3205   0FD6 67D1                                  mov r2,r7   ; call
3206   0FD8 1409                                  sub r2,#20   ; call
3207   0FDA 3CD89628                              jsr _printf   ; call
3208                                          ; force VR0 to 0   ; res
3209                                          ;     if (m == 'b') printf("%02X >", *ba);
3210                                          ; 
3211   0FDE 7BAC                                  lodb R0,[R7,#-10]   ; risf
3212   0FE0 2A30                                  cmp R0,#98   ; alu_i
3213   0FE2 04D8F60F                              bne dy171 ; fjump F   ; cfj
3214   0FE6 00F43611                              lod R0,#dy172   ; ltgd3
3215   0FEA 7A8D                                  lod  R2,[R7,#-12]   ; risf
3216   0FEC 80A8                                  lodb R1,[R2]   ; risf
3217                                          ; force VR0 to 0   ; call
3218                                          ; force VR1 to 1   ; call
3219   0FEE 67D1                                  mov r2,r7   ; call
3220   0FF0 1409                                  sub r2,#20   ; call
3221   0FF2 3CD89628                              jsr _printf   ; call
3222                                          ; force VR0 to 0   ; res
3223                                   dy171  ; anon
3224                                          ;     if (m == 'w') printf("%08X >", *wa);
3225                                          ; 
3226   0FF6 7BAC                                  lodb R0,[R7,#-10]   ; risf
3227   0FF8 2F38                                  cmp R0,#119   ; alu_i
3228   0FFA 04D80E10                              bne dy173 ; fjump F   ; cfj
3229   0FFE 00F42F11                              lod R0,#dy174   ; ltgd3
3230   1002 798D                                  lod  R2,[R7,#-14]   ; risf
3231   1004 8088                                  lod  R1,[R2]   ; risf
3232                                          ; force VR0 to 0   ; call
3233                                          ; force VR1 to 1   ; call
3234   1006 67D1                                  mov r2,r7   ; call
3235   1008 1409                                  sub r2,#20   ; call
3236   100A 3CD89628                              jsr _printf   ; call
3237                                          ; force VR0 to 0   ; res
3238                                   dy173  ; anon
3239                                          ;     argv = shell_parse(readcookedline_pe(0, 1));
3240                                          ; 
3241   100E 6000                                  lod R0,#0   ; lti
3242   1010 E100                                  lod R1,#1   ; lti
3243                                          ; force VR0 to 0   ; call
3244                                          ; force VR1 to 1   ; call
3245   1012 67D1                                  mov r2,r7   ; call
3246   1014 1409                                  sub r2,#20   ; call
3247   1016 3CD8FC16                              jsr _readcookedline_pe   ; call
3248                                          ; force VR0 to 0   ; res
3249                                          ; force VR0 to 0   ; call
3250   101A 67D1                                  mov r2,r7   ; call
3251   101C 1409                                  sub r2,#20   ; call
3252   101E 3CD87E16                              jsr _shell_parse   ; call
3253                                          ; force VR0 to 0   ; res
3254   1022 019C                                  str  R0,[R7,#2]   ; assign
3255                                          ;     if (argv[0][0] == '.' || argv[0][0] == 'q') return;
3256                                          ; 
3257   1024 018C                                  lod  R0,[R7,#2]   ; risf
3258   1026 8080                                  lod  R1,[R0]   ; risf
3259   1028 00A4                                  lodb R0,[R1]   ; risf
3260   102A 2E14                                  cmp R0,#46   ; alu_i
3261   102C 00D83C10                              beq dy175   ; ctj
3262   1030 018C                                  lod  R0,[R7,#2]   ; risf
3263   1032 8080                                  lod  R1,[R0]   ; risf
3264   1034 00A4                                  lodb R0,[R1]   ; risf
3265   1036 2938                                  cmp R0,#113   ; alu_i
3266   1038 04D84210                              bne dy176 ; fjump F   ; cfj
3267                                   dy175  ; anon
3268   103C 7F8F                                  lod R6,[R7,#-2]   ; cr
3269   103E 808F                                  lod r7,[r7]   ; cr
3270   1040 00F3                                  ret   ; cr
3271                                   dy176  ; anon
3272                                          ;     if (argv[0][0] == '-' || argv[0][0] == '^') 
3273                                          ; 
3274   1042 018C                                  lod  R0,[R7,#2]   ; risf
3275   1044 8080                                  lod  R1,[R0]   ; risf
3276   1046 00A4                                  lodb R0,[R1]   ; risf
3277   1048 2D14                                  cmp R0,#45   ; alu_i
3278   104A 00D85A10                              beq dy177   ; ctj
3279   104E 018C                                  lod  R0,[R7,#2]   ; risf
3280   1050 8080                                  lod  R1,[R0]   ; risf
3281   1052 00A4                                  lodb R0,[R1]   ; risf
3282   1054 2E2C                                  cmp R0,#94   ; alu_i
3283   1056 04D87410                              bne dy178 ; fjump F   ; cfj
3284                                   dy177  ; anon
3285                                          ;     {
3286                                          ; 
3287                                          ;       if (m == 'b') b -= 1; else b -= 4;
3288                                          ; 
3289   105A 7BAC                                  lodb R0,[R7,#-10]   ; risf
3290   105C 2A30                                  cmp R0,#98   ; alu_i
3291   105E 04D86C10                              bne dy179 ; fjump F   ; cfj
3292   1062 7E8C                                  lod  R0,[R7,#-4]   ; risf
3293   1064 1100                                  sub R0,#1   ; alu_i
3294   1066 7E9C                                  str  R0,[R7,#-4]   ; assign
3295   1068 28D87210                              bra dy180   ; anon
3296                                   dy179  ; anon
3297   106C 7E8C                                  lod  R0,[R7,#-4]   ; risf
3298   106E 1400                                  sub R0,#4   ; alu_i
3299   1070 7E9C                                  str  R0,[R7,#-4]   ; assign
3300                                   dy180  ; anon
3301                                          ;       continue;
3302                                          ; 
3303   1072 ABCA                                  bra dy168   ; anon
3304                                   dy178  ; anon
3305                                          ;     }
3306                                          ; 
3307                                          ;     if (strlen(argv[0])) 
3308                                          ; 
3309   1074 818C                                  lod  R1,[R7,#2]   ; risf
3310   1076 0084                                  lod  R0,[R1]   ; risf
3311                                          ; force VR0 to 0   ; call
3312   1078 67D1                                  mov r2,r7   ; call
3313   107A 1409                                  sub r2,#20   ; call
3314   107C 3CD8AA2A                              jsr _strlen   ; call
3315                                          ; force VR0 to 0   ; res
3316   1080 2800                                  cmp R0,#0   ; gfv
3317   1082 00D8FA10                              beq dy181 ; fjmp1   ; cfj
3318                                          ;     {
3319                                          ; 
3320                                          ; local e  [R7,#-16]
3321                                          ; s
3322   1086 6000                                  lod R0,#0   ; lti
3323   1088 789C                                  str  R0,[R7,#-16]   ; assign
3324                                          ; local v  [R7,#-18]
3325                                          ; s
3326   108A 818C                                  lod  R1,[R7,#2]   ; risf
3327   108C 0084                                  lod  R0,[R1]   ; risf
3328                                          ; force VR0 to 0   ; call
3329   108E 67D1                                  mov r2,r7   ; call
3330   1090 1609                                  sub r2,#22   ; call
3331   1092 3CD80E1E                              jsr _rhex   ; call
3332                                          ; force VR0 to 0   ; res
3333   1096 779C                                  str  R0,[R7,#-18]   ; assign
3334                                          ;       int e = 0;
3335                                          ; 
3336                                          ;       int v = rhex(argv[0]);
3337                                          ; 
3338                                          ;       if (m == 'b') *ba = v; else *wa = v;
3339                                          ; 
3340   1098 7BAC                                  lodb R0,[R7,#-10]   ; risf
3341   109A 2A30                                  cmp R0,#98   ; alu_i
3342   109C 04D8AA10                              bne dy182 ; fjump F   ; cfj
3343   10A0 F7AC                                  lodb R1,[R7,#-18]   ; risf
3344   10A2 7A8C                                  lod  R0,[R7,#-12]   ; risf
3345   10A4 80B0                                  strb R1,[R0]   ; assign
3346   10A6 28D8B210                              bra dy183   ; anon
3347                                   dy182  ; anon
3348   10AA F7AC                                  lodb R1,[R7,#-18]   ; risf
3349   10AC BF7C                                  and R1,#255   ; ccti
3350   10AE 798C                                  lod  R0,[R7,#-14]   ; risf
3351   10B0 8090                                  str  R1,[R0]   ; assign
3352                                   dy183  ; anon
3353                                          ;       if (m == 'b' && *ba != v) e = 1;
3354                                          ; 
3355   10B2 7BAC                                  lodb R0,[R7,#-10]   ; risf
3356   10B4 2A30                                  cmp R0,#98   ; alu_i
3357   10B6 04D8CA10                              bne dy184 ; fjump F   ; cfj
3358   10BA 7A8C                                  lod  R0,[R7,#-12]   ; risf
3359   10BC 80A0                                  lodb R1,[R0]   ; risf
3360   10BE 77AC                                  lodb R0,[R7,#-18]   ; risf
3361   10C0 A8D0                                  cmp R1,R0   ; alu-l
3362   10C2 00D8CA10                              beq dy184 ; fjump F   ; cfj
3363   10C6 6100                                  lod R0,#1   ; lti
3364   10C8 789C                                  str  R0,[R7,#-16]   ; assign
3365                                   dy184  ; anon
3366                                          ;       if (m == 'w' && *wa != v) e = 1;
3367                                          ; 
3368   10CA 7BAC                                  lodb R0,[R7,#-10]   ; risf
3369   10CC 2F38                                  cmp R0,#119   ; alu_i
3370   10CE 04D8E210                              bne dy185 ; fjump F   ; cfj
3371   10D2 798C                                  lod  R0,[R7,#-14]   ; risf
3372   10D4 8080                                  lod  R1,[R0]   ; risf
3373   10D6 77AC                                  lodb R0,[R7,#-18]   ; risf
3374   10D8 A8D0                                  cmp R1,R0   ; alu-l
3375   10DA 00D8E210                              beq dy185 ; fjump F   ; cfj
3376   10DE 6100                                  lod R0,#1   ; lti
3377   10E0 789C                                  str  R0,[R7,#-16]   ; assign
3378                                   dy185  ; anon
3379                                          ;       if (e) {  printf("ERROR "); continue; }
3380                                          ; 
3381   10E2 788C                                  lod  R0,[R7,#-16]   ; risf
3382   10E4 2800                                  cmp R0,#0   ; gfv
3383   10E6 00D8FA10                              beq dy186 ; fjmp1   ; cfj
3384   10EA 00F42811                              lod R0,#dy187   ; ltgd3
3385                                          ; force VR0 to 0   ; call
3386   10EE 67D1                                  mov r2,r7   ; call
3387   10F0 100D                                  sub r2,#24   ; call
3388   10F2 3CD89628                              jsr _printf   ; call
3389                                          ; force VR0 to 0   ; res
3390   10F6 28D8C80F                              bra dy168   ; anon
3391                                   dy186  ; anon
3392                                   dy181  ; anon
3393                                          ;     }
3394                                          ; 
3395                                          ;     if (fixf == 0) { if (m == 'b') b += 1; else b += 4; }
3396                                          ; 
3397   10FA 7C8C                                  lod  R0,[R7,#-8]   ; risf
3398   10FC 2800                                  cmp R0,#0   ; gfv
3399   10FE 04D81A11                              bne dy188 ; fjump F   ; cfj
3400   1102 7BAC                                  lodb R0,[R7,#-10]   ; risf
3401   1104 2A30                                  cmp R0,#98   ; alu_i
3402   1106 04D81411                              bne dy189 ; fjump F   ; cfj
3403   110A 7E8C                                  lod  R0,[R7,#-4]   ; risf
3404   110C 0900                                  add R0,#1   ; alu_i
3405   110E 7E9C                                  str  R0,[R7,#-4]   ; assign
3406   1110 28D81A11                              bra dy190   ; anon
3407                                   dy189  ; anon
3408   1114 7E8C                                  lod  R0,[R7,#-4]   ; risf
3409   1116 0C00                                  add R0,#4   ; alu_i
3410   1118 7E9C                                  str  R0,[R7,#-4]   ; assign
3411                                   dy190  ; anon
3412                                   dy188  ; anon
3413   111A 28D81E11                              bra dy191   ; anon
3414                                   dy191  ; anon
3415   111E 28D8C80F                              bra dy168   ; anon
3416                                   dy169  ; anon
3417   1122 7F8F                                  lod R6,[R7,#-2]   ; cr
3418   1124 808F                                  lod r7,[r7]   ; cr
3419   1126 00F3                                  ret   ; cr
3420   1128 4552524F                       dy187  .data "ERROR ",0
            522000
3421   112F 25303858                       dy174  .data "%08X >",0
            203E00
3422   1136 25303258                       dy172  .data "%02X >",0
            203E00
3423   113D 25303858                       dy170  .data "%08X ",0
            2000
3424   1143 53796E74                       dy166  .data "Syntax  mm [-fix] w addr    for word access",10,0
            617820206D6D205B2D6669785D2077206164647220202020666F7220776F7264206163636573730A00
3425   1170 53796E74                       dy165  .data "Syntax  mm [-fix] b addr    for byte access",10,0
            617820206D6D205B2D6669785D2062206164647220202020666F722062797465206163636573730A00
3426   119D 4649580A                       dy163  .data "FIX",10,0
            00
3427   11A2 2D666978                       dy160  .data "-fix",0
            00
3428                                          
3429                                          
3430                                          ; Routine mymon_help
3431                                          ; forced litpool here
3432                                          ; forced litpool here
3433   11A7 00                                    .align 2 
3434                             _mymon_help  .global
3435   11A8 809B                                  str r7,[r2]
3436   11AA E2D3                                  mov r7,r2
3437   11AC 7F9F                                  str R6,[R7,#-2]
3438   11AE 019C                                  str R0,[R7,#2]
3439                                          ; ------------------------------------------------- 
3440                                          ; local argv  [R7,#2]
3441                                          ; s
3442                                          ;   }
3443                                          ; 
3444                                          ; }
3445                                          ; 
3446                                          ; 
3447                                          ; 
3448                                          ; 
3449                                          ; 
3450                                          ; 
3451                                          ; 
3452                                          ; mymon_help(char **argv)
3453                                          ; 
3454                                          ; {
3455                                          ; 
3456                                          ;   printf("MYMON commands are:\n");
3457                                          ; 
3458   11B0 00F47915                              lod R0,#dy192   ; ltgd3
3459                                          ; force VR0 to 0   ; call
3460   11B4 67D1                                  mov r2,r7   ; call
3461   11B6 1005                                  sub r2,#8   ; call
3462   11B8 3CD89628                              jsr _printf   ; call
3463                                          ; force VR0 to 0   ; res
3464                                          ;   printf("md addr [ lines ]              memory display in hex/ascii\n");
3465                                          ; 
3466   11BC 00F43D15                              lod R0,#dy193   ; ltgd3
3467                                          ; force VR0 to 0   ; call
3468   11C0 67D1                                  mov r2,r7   ; call
3469   11C2 1005                                  sub r2,#8   ; call
3470   11C4 3CD89628                              jsr _printf   ; call
3471                                          ; force VR0 to 0   ; res
3472                                          ;   printf("mdw addr [ lines ]             as md but displays in 32 bit words\n");
3473                                          ; 
3474   11C8 00F4FA14                              lod R0,#dy194   ; ltgd3
3475                                          ; force VR0 to 0   ; call
3476   11CC 67D1                                  mov r2,r7   ; call
3477   11CE 1005                                  sub r2,#8   ; call
3478   11D0 3CD89628                              jsr _printf   ; call
3479                                          ; force VR0 to 0   ; res
3480                                          ;   printf("mm [-fix] b/w addr             interactive memory update\n");
3481                                          ; 
3482   11D4 00F4C014                              lod R0,#dy195   ; ltgd3
3483                                          ; force VR0 to 0   ; call
3484   11D8 67D1                                  mov r2,r7   ; call
3485   11DA 1005                                  sub r2,#8   ; call
3486   11DC 3CD89628                              jsr _printf   ; call
3487                                          ; force VR0 to 0   ; res
3488                                          ; 
3489                                          ; 
3490                                          ; 
3491                                          ; 
3492                                          ;   printf("mmr  b/w addr [ times ]        memory read loop\n");
3493                                          ; 
3494   11E0 00F48F14                              lod R0,#dy196   ; ltgd3
3495                                          ; force VR0 to 0   ; call
3496   11E4 67D1                                  mov r2,r7   ; call
3497   11E6 1005                                  sub r2,#8   ; call
3498   11E8 3CD89628                              jsr _printf   ; call
3499                                          ; force VR0 to 0   ; res
3500                                          ;   printf("mmw  b/w addr [ times ]        memory write loop\n");
3501                                          ; 
3502   11EC 00F45D14                              lod R0,#dy197   ; ltgd3
3503                                          ; force VR0 to 0   ; call
3504   11F0 67D1                                  mov r2,r7   ; call
3505   11F2 1005                                  sub r2,#8   ; call
3506   11F4 3CD89628                              jsr _printf   ; call
3507                                          ; force VR0 to 0   ; res
3508   11F8 28D8FC11                              bra dy198   ; anon
3509                                   dy198  ; anon
3510                                          ;   printf("go addr                        jump\n");
3511                                          ; 
3512   11FC 00F43814                              lod R0,#dy199   ; ltgd3
3513                                          ; force VR0 to 0   ; call
3514   1200 67D1                                  mov r2,r7   ; call
3515   1202 1005                                  sub r2,#8   ; call
3516   1204 3CD89628                              jsr _printf   ; call
3517                                          ; force VR0 to 0   ; res
3518                                          ;   printf("dis b n                        disassemble N lines from base\n");
3519                                          ; 
3520   1208 00F4FA13                              lod R0,#dy200   ; ltgd3
3521                                          ; force VR0 to 0   ; call
3522   120C 67D1                                  mov r2,r7   ; call
3523   120E 1005                                  sub r2,#8   ; call
3524   1210 3CD89628                              jsr _printf   ; call
3525                                          ; force VR0 to 0   ; res
3526                                          ;   printf("bp [ n ] [ clear ]             breakpoint install or clear \n");
3527                                          ; 
3528   1214 00F4BD13                              lod R0,#dy201   ; ltgd3
3529                                          ; force VR0 to 0   ; call
3530   1218 67D1                                  mov r2,r7   ; call
3531   121A 1005                                  sub r2,#8   ; call
3532   121C 3CD89628                              jsr _printf   ; call
3533                                          ; force VR0 to 0   ; res
3534                                          ;   printf("fill start end [val]           fill memory with zero or value\n");
3535                                          ; 
3536   1220 00F47E13                              lod R0,#dy202   ; ltgd3
3537                                          ; force VR0 to 0   ; call
3538   1224 67D1                                  mov r2,r7   ; call
3539   1226 1005                                  sub r2,#8   ; call
3540   1228 3CD89628                              jsr _printf   ; call
3541                                          ; force VR0 to 0   ; res
3542                                          ;   printf("findb start end val            find memory with this byte\n");
3543                                          ; 
3544   122C 00F44313                              lod R0,#dy203   ; ltgd3
3545                                          ; force VR0 to 0   ; call
3546   1230 67D1                                  mov r2,r7   ; call
3547   1232 1005                                  sub r2,#8   ; call
3548   1234 3CD89628                              jsr _printf   ; call
3549                                          ; force VR0 to 0   ; res
3550                                          ;   printf("findl start end val            find memory with this word\n");
3551                                          ; 
3552   1238 00F40813                              lod R0,#dy204   ; ltgd3
3553                                          ; force VR0 to 0   ; call
3554   123C 67D1                                  mov r2,r7   ; call
3555   123E 1005                                  sub r2,#8   ; call
3556   1240 3CD89628                              jsr _printf   ; call
3557                                          ; force VR0 to 0   ; res
3558   1244 28D84812                              bra dy205   ; anon
3559                                   dy205  ; anon
3560                                          ; 
3561                                          ; 
3562                                          ; 
3563                                          ; 
3564                                          ;   printf("\n:<valid mcs line to store>\n");
3565                                          ; 
3566   1248 00F4EB12                              lod R0,#dy206   ; ltgd3
3567                                          ; force VR0 to 0   ; call
3568   124C 67D1                                  mov r2,r7   ; call
3569   124E 1005                                  sub r2,#8   ; call
3570   1250 3CD89628                              jsr _printf   ; call
3571                                          ; force VR0 to 0   ; res
3572                                          ;   printf("offset [ v ]                   set or display download offset\n");
3573                                          ; 
3574   1254 00F4AC12                              lod R0,#dy207   ; ltgd3
3575                                          ; force VR0 to 0   ; call
3576   1258 67D1                                  mov r2,r7   ; call
3577   125A 1005                                  sub r2,#8   ; call
3578   125C 3CD89628                              jsr _printf   ; call
3579                                          ; force VR0 to 0   ; res
3580                                          ;   printf("clear                          clear download error flag\n");
3581                                          ; 
3582   1260 00F47212                              lod R0,#dy208   ; ltgd3
3583                                          ; force VR0 to 0   ; call
3584   1264 67D1                                  mov r2,r7   ; call
3585   1266 1005                                  sub r2,#8   ; call
3586   1268 3CD89628                              jsr _printf   ; call
3587                                          ; force VR0 to 0   ; res
3588   126C 7F8F                                  lod R6,[R7,#-2]   ; cr
3589   126E 808F                                  lod r7,[r7]   ; cr
3590   1270 00F3                                  ret   ; cr
3591   1272 636C6561                       dy208  .data "clear                          clear download error flag",10,0
            722020202020202020202020202020202020202020202020202020636C65617220646F776E6C6F6164206572726F7220666C61670A00
3592   12AC 6F666673                       dy207  .data "offset [ v ]                   set or display download offset",10,0
            6574205B2076205D20202020202020202020202020202020202020736574206F7220646973706C617920646F776E6C6F6164206F66667365740A00
3593   12EB 0A3A3C76                       dy206  .data 10,58,60,118,97,108,105,100,32,109,99,115,32,108,105,110,101,32,116,111,32,115,116,111,114,101,62,10,0
            616C6964206D6373206C696E6520746F2073746F72653E0A00
3594   1308 66696E64                       dy204  .data "findl start end val            find memory with this word",10,0
            6C20737461727420656E642076616C20202020202020202020202066696E64206D656D6F72792077697468207468697320776F72640A00
3595   1343 66696E64                       dy203  .data "findb start end val            find memory with this byte",10,0
            6220737461727420656E642076616C20202020202020202020202066696E64206D656D6F72792077697468207468697320627974650A00
3596   137E 66696C6C                       dy202  .data "fill start end [val]           fill memory with zero or value",10,0
            20737461727420656E64205B76616C5D202020202020202020202066696C6C206D656D6F72792077697468207A65726F206F722076616C75650A00
3597   13BD 6270205B                       dy201  .data "bp [ n ] [ clear ]             breakpoint install or clear ",10,0
            206E205D205B20636C656172205D20202020202020202020202020627265616B706F696E7420696E7374616C6C206F7220636C656172200A00
3598   13FA 64697320                       dy200  .data "dis b n                        disassemble N lines from base",10,0
            62206E202020202020202020202020202020202020202020202020646973617373656D626C65204E206C696E65732066726F6D20626173650A00
3599   1438 676F2061                       dy199  .data "go addr                        jump",10,0
            6464722020202020202020202020202020202020202020202020206A756D700A00
3600   145D 6D6D7720                       dy197  .data "mmw  b/w addr [ times ]        memory write loop",10,0
            20622F772061646472205B2074696D6573205D20202020202020206D656D6F7279207772697465206C6F6F700A00
3601   148F 6D6D7220                       dy196  .data "mmr  b/w addr [ times ]        memory read loop",10,0
            20622F772061646472205B2074696D6573205D20202020202020206D656D6F72792072656164206C6F6F700A00
3602   14C0 6D6D205B                       dy195  .data "mm [-fix] b/w addr             interactive memory update",10,0
            2D6669785D20622F77206164647220202020202020202020202020696E746572616374697665206D656D6F7279207570646174650A00
3603   14FA 6D647720                       dy194  .data "mdw addr [ lines ]             as md but displays in 32 bit words",10,0
            61646472205B206C696E6573205D202020202020202020202020206173206D642062757420646973706C61797320696E2033322062697420776F7264730A00
3604   153D 6D642061                       dy193  .data "md addr [ lines ]              memory display in hex/ascii",10,0
            646472205B206C696E6573205D20202020202020202020202020206D656D6F727920646973706C617920696E206865782F61736369690A00
3605   1579 4D594D4F                       dy192  .data "MYMON commands are:",10,0
            4E20636F6D6D616E6473206172653A0A00
3606                                          
3607                                          
3608                                          ; Routine mymon_main
3609                                          ; forced litpool here
3610                                          .align 2 
3611                             _mymon_main  .global
3612   158E 809B                                  str r7,[r2]
3613   1590 E2D3                                  mov r7,r2
3614   1592 7F9F                                  str R6,[R7,#-2]
3615                                          ; ------------------------------------------------- 
3616                                          ; local prompt  [R7,#-4]
3617                                          ; s
3618   1594 6100                                  lod R0,#1   ; lti
3619   1596 7E9C                                  str  R0,[R7,#-4]   ; assign
3620                                          ; 
3621                                          ; 
3622                                          ; 
3623                                          ; 
3624                                          ; 
3625                                          ; 
3626                                          ; 
3627                                          ; 
3628                                          ; 
3629                                          ; 
3630                                          ; 
3631                                          ; 
3632                                          ; 
3633                                          ; 
3634                                          ; 
3635                                          ; 
3636                                          ; 
3637                                          ; 
3638                                          ; 
3639                                          ; 
3640                                          ; 
3641                                          ; 
3642                                          ;  
3643                                          ; 
3644                                          ; 
3645                                          ; 
3646                                          ; 
3647                                          ; 
3648                                          ; 
3649                                          ; 
3650                                          ; 
3651                                          ; 
3652                                          ; 
3653                                          ; 
3654                                          ; 
3655                                          ; 
3656                                          ; typedef unsigned char uchar;
3657                                          ; 
3658                                          ; 
3659                                          ; 
3660                                          ; 
3661                                          ; 
3662                                          ; 
3663                                          ; 
3664                                          ; 
3665                                          ; 
3666                                          ; 
3667                                          ; 
3668                                          ; typedef struct stdio 
3669                                          ; 
3670                                          ; {
3671                                          ; 
3672                                          ;   int flags;
3673                                          ; 
3674                                          ;   int sysfd;
3675                                          ; 
3676                                          ;   int mode;
3677                                          ; 
3678                                          ;   int bytes;
3679                                          ; 
3680                                          ;   char *poi;
3681                                          ; 
3682                                          ;   int error;
3683                                          ; 
3684                                          ;   int index;
3685                                          ; 
3686                                          ;   char data[32 ];
3687                                          ; 
3688                                          ; } STDIO;
3689                                          ; 
3690                                          ; 
3691                                          ; 
3692                                          ; 
3693                                          ; 
3694                                          ; extern int open(char *, int);
3695                                          ; 
3696                                          ; extern int close(char *, int);
3697                                          ; 
3698                                          ; extern int main(int, char **);
3699                                          ; 
3700                                          ; extern void _sa_wrch(char);
3701                                          ; 
3702                                          ; extern char _sa_rdch();
3703                                          ; 
3704                                          ; 
3705                                          ; 
3706                                          ; extern char getchar();
3707                                          ; 
3708                                          ; extern void putchar(char);
3709                                          ; 
3710                                          ; extern char toupper(char);
3711                                          ; 
3712                                          ; extern char tolower(char);
3713                                          ; 
3714                                          ; extern int strlen(const char *);
3715                                          ; 
3716                                          ; extern int strcmp(const char *, const char *);
3717                                          ; 
3718                                          ; extern int strncmp(char *, char *, int);
3719                                          ; 
3720                                          ; extern int console_flags;
3721                                          ; 
3722                                          ; extern void exit(int);
3723                                          ; 
3724                                          ; extern char *malloc(int);
3725                                          ; 
3726                                          ; extern int _exit(int);
3727                                          ; 
3728                                          ; extern int strlen(char *);
3729                                          ; 
3730                                          ; extern int isdigit(char);
3731                                          ; 
3732                                          ; extern int atoi(char *);
3733                                          ; 
3734                                          ; extern int checkend();
3735                                          ; 
3736                                          ; extern char *strncpy(char *, char *, int);
3737                                          ; 
3738                                          ; extern void flush_dtoi();
3739                                          ; 
3740                                          ; extern void printf();
3741                                          ; 
3742                                          ; 
3743                                          ; 
3744                                          ; 
3745                                          ; 
3746                                          ; 
3747                                          ; 
3748                                          ; 
3749                                          ; 
3750                                          ; extern void init_mylinein
3751                                          ; 
3752                                          ; ();
3753                                          ; 
3754                                          ; extern int rhex(char *);
3755                                          ; 
3756                                          ; extern char *readcookedline_pe(int, int);
3757                                          ; 
3758                                          ; extern char **shell_parse();
3759                                          ; 
3760                                          ; extern int myvict_main(int, char **);
3761                                          ; 
3762                                          ; extern int init_myvict();
3763                                          ; 
3764                                          ; static int errorf;
3765                                          ; 
3766                                          ; static uchar *ihex_offset;
3767                                          ; 
3768                                          ; extern int deb;
3769                                          ; 
3770                                          ; static int last_addr;
3771                                          ; 
3772                                          ; static int bytes_loaded;
3773                                          ; 
3774                                          ; int monmode;
3775                                          ; 
3776                                          ; 
3777                                          ; 
3778                                          ; extern int read_cpu_control_reg();
3779                                          ; 
3780                                          ; extern void flush_dtoi1();
3781                                          ; 
3782                                          ; 
3783                                          ; 
3784                                          ; void mymon_main()
3785                                          ; 
3786                                          ; {
3787                                          ; 
3788                                          ;   int prompt = 1;
3789                                          ; 
3790                                          ;   bytes_loaded = 0;
3791                                          ; 
3792   1598 6000                                  lod R0,#0   ; lti
3793   159A 20D40ADF                              str  R0,_bytes_loaded   ; assign
3794                                          ;   errorf = 0;
3795                                          ; 
3796   159E 6000                                  lod R0,#0   ; lti
3797   15A0 20D404DF                              str  R0,_errorf   ; assign
3798                                          ;   ihex_offset = 0;
3799                                          ; 
3800   15A4 6000                                  lod R0,#0   ; lti
3801   15A6 20D406DF                              str  R0,_ihex_offset   ; assign
3802                                          ;   printf("CBG mymon low-level monitor. Aug-98\n");
3803                                          ; 
3804   15AA 00F45816                              lod R0,#dy209   ; ltgd3
3805                                          ; force VR0 to 0   ; call
3806   15AE 67D1                                  mov r2,r7   ; call
3807   15B0 1205                                  sub r2,#10   ; call
3808   15B2 3CD89628                              jsr _printf   ; call
3809                                          ; force VR0 to 0   ; res
3810                                          ;     
3811                                          ; 
3812                                          ; 
3813                                          ; 
3814                                          ;   init_mylinein();
3815                                          ; 
3816   15B6 67D1                                  mov r2,r7   ; call
3817   15B8 1205                                  sub r2,#10   ; call
3818   15BA 3CD8901C                              jsr _init_mylinein   ; call
3819                                          ; force VR0 to 0   ; res
3820                                          ; 
3821                                          ; 
3822                                          ; 
3823                                          ; 
3824                                          ;   while(1)
3825                                          ; 
3826                                   dy210  ; anon
3827                                          ;   {
3828                                          ; 
3829                                          ; local cmd  [R7,#-6]
3830                                          ; s
3831                                          ; local argv  [R7,#-8]
3832                                          ; s
3833                                          ;     char *cmd, **argv;
3834                                          ; 
3835                                          ;     monmode = 0;
3836                                          ; 
3837   15BE 6000                                  lod R0,#0   ; lti
3838   15C0 20D40CDF                              str  R0,_monmode   ; assign
3839                                          ;     cmd = readcookedline_pe(prompt, prompt);
3840                                          ; 
3841   15C4 7E8C                                  lod  R0,[R7,#-4]   ; risf
3842   15C6 FE8C                                  lod  R1,[R7,#-4]   ; risf
3843                                          ; force VR0 to 0   ; call
3844                                          ; force VR1 to 1   ; call
3845   15C8 67D1                                  mov r2,r7   ; call
3846   15CA 1605                                  sub r2,#14   ; call
3847   15CC 3CD8FC16                              jsr _readcookedline_pe   ; call
3848                                          ; force VR0 to 0   ; res
3849   15D0 7D9C                                  str  R0,[R7,#-6]   ; assign
3850                                          ;  
3851                                          ; 
3852                                          ;     if (cmd[0] == ':')
3853                                          ; 
3854   15D2 7D8C                                  lod  R0,[R7,#-6]   ; risf
3855   15D4 80A0                                  lodb R1,[R0]   ; risf
3856   15D6 AA1C                                  cmp R1,#58   ; alu_i
3857   15D8 04D8EC15                              bne dy212 ; fjump F   ; cfj
3858                                          ;     {
3859                                          ; 
3860                                          ;       prompt = 0;
3861                                          ; 
3862   15DC 6000                                  lod R0,#0   ; lti
3863   15DE 7E9C                                  str  R0,[R7,#-4]   ; assign
3864                                          ;       intel_hex(cmd);
3865                                          ; 
3866   15E0 7D8C                                  lod  R0,[R7,#-6]   ; risf
3867                                          ; force VR0 to 0   ; call
3868   15E2 67D1                                  mov r2,r7   ; call
3869   15E4 1605                                  sub r2,#14   ; call
3870   15E6 3CD8CC00                              jsr _intel_hex   ; call
3871                                          ; force VR0 to 0   ; res
3872                                          ;       continue;
3873                                          ; 
3874   15EA EACA                                  bra dy210   ; anon
3875                                   dy212  ; anon
3876                                          ;     }
3877                                          ; 
3878                                          ; 
3879                                          ; 
3880                                          ;     prompt = 1;
3881                                          ; 
3882   15EC 6100                                  lod R0,#1   ; lti
3883   15EE 7E9C                                  str  R0,[R7,#-4]   ; assign
3884                                          ;     if (errorf) printf("\n\nDownload error\n\n");
3885                                          ; 
3886   15F0 00D404DF                              lod  R0,_errorf   ; ris
3887   15F4 2800                                  cmp R0,#0   ; gfv
3888   15F6 00D80616                              beq dy213 ; fjmp1   ; cfj
3889   15FA 00F44516                              lod R0,#dy214   ; ltgd3
3890                                          ; force VR0 to 0   ; call
3891   15FE 67D1                                  mov r2,r7   ; call
3892   1600 1605                                  sub r2,#14   ; call
3893   1602 3CD89628                              jsr _printf   ; call
3894                                          ; force VR0 to 0   ; res
3895                                   dy213  ; anon
3896                                          ;     if (strcmp(cmd, "quit")==0) break;
3897                                          ; 
3898   1606 7D8C                                  lod  R0,[R7,#-6]   ; risf
3899   1608 80F44016                              lod R1,#dy215   ; ltgd3
3900                                          ; force VR0 to 0   ; call
3901                                          ; force VR1 to 1   ; call
3902   160C 67D1                                  mov r2,r7   ; call
3903   160E 1605                                  sub r2,#14   ; call
3904   1610 3CD81822                              jsr _strcmp   ; call
3905                                          ; force VR0 to 0   ; res
3906   1614 2800                                  cmp R0,#0   ; gfv
3907   1616 04D81E16                              bne dy216 ; fjump F   ; cfj
3908   161A 28D83A16                              bra dy211   ; anon
3909                                   dy216  ; anon
3910                                          ;      ;
3911                                          ; 
3912                                          ;     argv = shell_parse(cmd);
3913                                          ; 
3914   161E 7D8C                                  lod  R0,[R7,#-6]   ; risf
3915                                          ; force VR0 to 0   ; call
3916   1620 67D1                                  mov r2,r7   ; call
3917   1622 1605                                  sub r2,#14   ; call
3918   1624 3CD87E16                              jsr _shell_parse   ; call
3919                                          ; force VR0 to 0   ; res
3920   1628 7C9C                                  str  R0,[R7,#-8]   ; assign
3921   162A 28D82E16                              bra dy217   ; anon
3922                                   dy217  ; anon
3923                                          ;     mymon_dispatch(argv);
3924                                          ; 
3925   162E 7C8C                                  lod  R0,[R7,#-8]   ; risf
3926                                          ; force VR0 to 0   ; call
3927   1630 67D1                                  mov r2,r7   ; call
3928   1632 1605                                  sub r2,#14   ; call
3929   1634 3CD85403                              jsr _mymon_dispatch   ; call
3930                                          ; force VR0 to 0   ; res
3931   1638 C3CA                                  bra dy210   ; anon
3932                                   dy211  ; anon
3933   163A 7F8F                                  lod R6,[R7,#-2]   ; cr
3934   163C 808F                                  lod r7,[r7]   ; cr
3935   163E 00F3                                  ret   ; cr
3936   1640 71756974                       dy215  .data "quit",0
            00
3937   1645 0A0A446F                       dy214  .data 10,10,68,111,119,110,108,111,97,100,32,101,114,114,111,114,10,10,0
            776E6C6F6164206572726F720A0A00
3938   1658 43424720                       dy209  .data "CBG mymon low-level monitor. Aug-98",10,0
            6D796D6F6E206C6F772D6C6576656C206D6F6E69746F722E204175672D39380A00
3939                                          ; _open  .extern
3940                                          ; _close  .extern
3941                                          ; _main  .extern
3942                                          ; __sa_wrch  .extern
3943                                          ; __sa_rdch  .extern
3944                                          ; _getchar  .extern
3945                                          ; _putchar  .extern
3946                                          ; _toupper  .extern
3947                                          ; _tolower  .extern
3948                                          ; _strlen  .extern
3949                                          ; _strcmp  .extern
3950                                          ; _strncmp  .extern
3951                                          .bss
3952                                          ;_console_flags  .extern
3953                                          ; _exit  .extern
3954                                          ; _malloc  .extern
3955                                          ; __exit  .extern
3956                                          ; _strlen  .extern
3957                                          ; _isdigit  .extern
3958                                          ; _atoi  .extern
3959                                          ; _checkend  .extern
3960                                          ; _strncpy  .extern
3961                                          ; _flush_dtoi  .extern
3962                                          ; _printf  .extern
3963                                _pointer  .global
3964   DF12 0000                                  .defs 2
3967                                _lineidx  .global
3968   DF14 0000                                  .defs 2
3971                             _linebuffer  .global
3972   DF16 0000                                  .defs 2
3975                                  _lines  .global
3976   DF18 00000000                              .defs 8
            00000000
3985                               _histline  .global
3986   DF20 0000                                  .defs 2
3989                                          ; _sayprompt  .extern
3990                              _comp_char  .global
3991   DF22 0000                                  .defs 2
3994                              _comp_line  .global
3995   DF24 0000                                  .defs 2
3998                                   _argv  .global
3999   DF26 00000000                              .defs 32
            00000000000000000000000000000000000000000000000000000000
4032                                          .text
4033                                          
4034                                          
4035                                          ; Routine shell_parse
4036   167D 00                                    .align 2 
4037                            _shell_parse  .global
4038   167E 809B                                  str r7,[r2]
4039   1680 E2D3                                  mov r7,r2
4040                                          ; ------------------------------------------------- 
4041                                          ; local p  R100
4042                                          ; s
4043                                          ; force VR0 to 0   ; pram
4044                                          ; local i  [R7,#-4]
4045                                          ; s
4046                                          ; force VR0 to 0   ; pram
4047                                          ;       }
4048                                          ; 
4049                                          ;   }
4050                                          ; 
4051                                          ; }
4052                                          ; 
4053                                          ; 
4054                                          ; 
4055                                          ; 
4056                                          ; 
4057                                          ; 
4058                                          ; 
4059                                          ; 
4060                                          ; 
4061                                          ; char *argv[(16) ];
4062                                          ; 
4063                                          ; 
4064                                          ; 
4065                                          ; char **shell_parse(char *p)
4066                                          ; 
4067                                          ; {
4068                                          ; 
4069                                          ;   int i;
4070                                          ; 
4071                                          ; 
4072                                          ; 
4073                                          ;   for (i=0; i<(16) ; i++) argv[i] = 0 ;
4074                                          ; 
4075   1682 E000                                  lod R1,#0   ; lti
4076   1684 FE9C                                  str  R1,[R7,#-4]   ; assign
4077                                    ay10  ; anon
4078   1686 FE8C                                  lod  R1,[R7,#-4]   ; risf
4079   1688 A808                                  cmp R1,#16   ; alu_i
4080   168A 0CD8A416                              bge ay11 ; fjump F   ; cfj
4081   168E 7E8D                                  lod  R2,[R7,#-4]   ; risf
4082   1690 4901                                  asl R2,#1   ; anon
4083   1692 80F426DF                              lod R1,#_argv   ; ltgd2
4084   1696 8AD0                                  add R1,R2   ; alu-l
4085   1698 6001                                  lod R2,#0   ; lti
4086   169A 0095                                  str  R2,[R1]   ; assign
4087   169C FE8C                                  lod  R1,[R7,#-4]   ; risf
4088   169E 8900                                  add R1,#1   ; qas
4089   16A0 FE9C                                  str  R1,[R7,#-4]   ; qasmi
4090   16A2 F2CA                                  bra ay10   ; anon
4091                                    ay11  ; anon
4092                                          ;   i = 0;
4093                                          ; 
4094   16A4 E000                                  lod R1,#0   ; lti
4095   16A6 FE9C                                  str  R1,[R7,#-4]   ; assign
4096                                          ;   while(1)
4097                                          ; 
4098                                    ay12  ; anon
4099                                          ;   {
4100                                          ; 
4101                                          ; local start  [R7,#-6]
4102                                          ; s
4103                                          ; force VR0 to 0   ; pram
4104                                          ;     char *start;
4105                                          ; 
4106                                          ;     while (*p == ' ') p++;
4107                                          ; 
4108                                    ay14  ; anon
4109   16A8 80A0                                  lodb R1,[R0]   ; risf
4110   16AA A810                                  cmp R1,#32   ; alu_i
4111   16AC 04D8B416                              bne ay15 ; fjump F   ; cfj
4112   16B0 0900                                  add R0,#1   ; qas
4113                                          ; mov R0,R0 redundant    ; qasmi
4114   16B2 FBCA                                  bra ay14   ; anon
4115                                    ay15  ; anon
4116                                          ;     start = p;
4117                                          ; 
4118   16B4 7D9C                                  str  R0,[R7,#-6]   ; assign
4119                                          ;     while (*p != ' ' && *p) p++;
4120                                          ; 
4121                                    ay16  ; anon
4122   16B6 80A0                                  lodb R1,[R0]   ; risf
4123   16B8 A810                                  cmp R1,#32   ; alu_i
4124   16BA 00D8CA16                              beq ay17 ; fjump F   ; cfj
4125   16BE 80A0                                  lodb R1,[R0]   ; risf
4126   16C0 A800                                  cmp R1,#0   ; gfv
4127   16C2 00D8CA16                              beq ay17 ; fjmp1   ; cfj
4128   16C6 0900                                  add R0,#1   ; qas
4129                                          ; mov R0,R0 redundant    ; qasmi
4130   16C8 F7CA                                  bra ay16   ; anon
4131                                    ay17  ; anon
4132                                          ;     argv[i] = start;
4133                                          ; 
4134   16CA 7E8D                                  lod  R2,[R7,#-4]   ; risf
4135   16CC 4901                                  asl R2,#1   ; anon
4136   16CE 80F426DF                              lod R1,#_argv   ; ltgd2
4137   16D2 8AD0                                  add R1,R2   ; alu-l
4138   16D4 7D8D                                  lod  R2,[R7,#-6]   ; risf
4139   16D6 0095                                  str  R2,[R1]   ; assign
4140                                          ;     i++;
4141                                          ; 
4142   16D8 FE8C                                  lod  R1,[R7,#-4]   ; risf
4143   16DA 8900                                  add R1,#1   ; qas
4144   16DC FE9C                                  str  R1,[R7,#-4]   ; qasmi
4145                                          ;     if (*p == 0) break;
4146                                          ; 
4147   16DE 80A0                                  lodb R1,[R0]   ; risf
4148   16E0 A800                                  cmp R1,#0   ; gfv
4149   16E2 04D8EA16                              bne ay18 ; fjump F   ; cfj
4150   16E6 28D8F216                              bra ay13   ; anon
4151                                    ay18  ; anon
4152                                          ;     *p = 0;
4153                                          ; 
4154   16EA E000                                  lod R1,#0   ; lti
4155   16EC 80B0                                  strb R1,[R0]   ; assign
4156                                          ;     p++;
4157                                          ; 
4158   16EE 0900                                  add R0,#1   ; qas
4159                                          ; mov R0,R0 redundant    ; qasmi
4160   16F0 DCCA                                  bra ay12   ; anon
4161                                    ay13  ; anon
4162                                          ;   }
4163                                          ; 
4164                                          ; 
4165                                          ; 
4166                                          ;   return argv;
4167                                          ; 
4168   16F2 80F426DF                              lod R1,#_argv   ; ltgd2
4169   16F6 61D0                                  mov R0,R1   ; forceresolve
4170   16F8 808F                                  lod r7,[r7]   ; cr
4171   16FA 00F3                                  ret   ; cr
4172                                          ; force VR0 to 0   ; pram
4173                                          
4174                                          
4175                                          ; Routine readcookedline_pe
4176                                          .align 2 
4177                      _readcookedline_pe  .global
4178   16FC 809B                                  str r7,[r2]
4179   16FE E2D3                                  mov r7,r2
4180   1700 7F9F                                  str R6,[R7,#-2]
4181   1702 019C                                  str R0,[R7,#2]
4182   1704 829C                                  str R1,[R7,#4]
4183                                          ; ------------------------------------------------- 
4184                                          ; local prompt  [R7,#2]
4185                                          ; s
4186                                          ; local echo  [R7,#4]
4187                                          ; s
4188                                          ; local tab  [R7,#-4]
4189                                          ; s
4190   1706 6000                                  lod R0,#0   ; lti
4191   1708 7E9C                                  str  R0,[R7,#-4]   ; assign
4192                                          ; local t  [R7,#-6]
4193                                          ; s
4194                                          ; local length  [R7,#-8]
4195                                          ; s
4196   170A 6000                                  lod R0,#0   ; lti
4197   170C 7C9C                                  str  R0,[R7,#-8]   ; assign
4198                                          ; local recalpos  [R7,#-10]
4199                                          ; s
4200   170E 00D420DF                              lod  R0,_histline   ; ris
4201   1712 7B9C                                  str  R0,[R7,#-10]   ; assign
4202                                          ; }
4203                                          ; 
4204                                          ; 
4205                                          ; 
4206                                          ; 
4207                                          ; 
4208                                          ; char *readcookedline_pe(int prompt, int echo)
4209                                          ; 
4210                                          ; {
4211                                          ; 
4212                                          ;   int tab = 0;
4213                                          ; 
4214                                          ;   int t;
4215                                          ; 
4216                                          ;   int length = 0;
4217                                          ; 
4218                                          ;   int recalpos = histline;
4219                                          ; 
4220                                          ;   pointer = 0;
4221                                          ; 
4222   1714 6000                                  lod R0,#0   ; lti
4223   1716 20D412DF                              str  R0,_pointer   ; assign
4224                                          ; 
4225                                          ; 
4226                                          ;    ;
4227                                          ; 
4228                                          ; 
4229                                          ; 
4230                                          ;   lineidx = 0;
4231                                          ; 
4232   171A 6000                                  lod R0,#0   ; lti
4233   171C 20D414DF                              str  R0,_lineidx   ; assign
4234                                          ;   if (prompt) sayprompt();
4235                                          ; 
4236   1720 018C                                  lod  R0,[R7,#2]   ; risf
4237   1722 2800                                  cmp R0,#0   ; gfv
4238   1724 00D83017                              beq ay19 ; fjmp1   ; cfj
4239   1728 67D1                                  mov r2,r7   ; call
4240   172A 1009                                  sub r2,#16   ; call
4241   172C 3CD87000                              jsr _sayprompt   ; call
4242                                          ; force VR0 to 0   ; res
4243                                    ay19  ; anon
4244                                          ; 
4245                                          ; 
4246                                          ;   while(1)
4247                                          ; 
4248                                    ay20  ; anon
4249                                          ;   {
4250                                          ; 
4251                                          ; local c  [R7,#-12]
4252                                          ; s
4253   1730 67D1                                  mov r2,r7   ; call
4254   1732 1009                                  sub r2,#16   ; call
4255   1734 3CD8EC1D                              jsr _cookcharin   ; call
4256                                          ; force VR0 to 0   ; res
4257   1738 7ABC                                  strb R0,[R7,#-12]   ; assign
4258                                          ;     unsigned char c = cookcharin();
4259                                          ; 
4260                                          ;      ;
4261                                          ; 
4262                                          ;     if (c==27)                     
4263                                          ; 
4264   173A 7AAC                                  lodb R0,[R7,#-12]   ; risf
4265   173C 2B0C                                  cmp R0,#27   ; alu_i
4266   173E 04D88817                              bne ay22; fjump U   ; cfj
4267                                          ;     {
4268                                          ; 
4269                                          ;        do
4270                                          ; 
4271                                    ay23  ; anon
4272                                          ;        {
4273                                          ; 
4274                                          ;          c = cookcharin();
4275                                          ; 
4276   1742 67D1                                  mov r2,r7   ; call
4277   1744 1209                                  sub r2,#18   ; call
4278   1746 3CD8EC1D                              jsr _cookcharin   ; call
4279                                          ; force VR0 to 0   ; res
4280   174A 7ABC                                  strb R0,[R7,#-12]   ; assign
4281   174C 7AAC                                  lodb R0,[R7,#-12]   ; risf
4282   174E 2F24                                  cmp R0,#79   ; alu_i
4283   1750 F9C0                                  beq ay23 ; Uns   ; ctj
4284   1752 7AAC                                  lodb R0,[R7,#-12]   ; risf
4285   1754 2B2C                                  cmp R0,#91   ; alu_i
4286   1756 F6C0                                  beq ay23 ; Uns   ; ctj
4287                                          ;        } while (c == 'O' || c == '[');
4288                                          ; 
4289                                          ;        if (c == 'D') c = 8;       
4290                                          ; 
4291   1758 7AAC                                  lodb R0,[R7,#-12]   ; risf
4292   175A 2C20                                  cmp R0,#68   ; alu_i
4293   175C 04D86417                              bne ay24; fjump U   ; cfj
4294   1760 6004                                  lod R0,#8   ; lti
4295   1762 7ABC                                  strb R0,[R7,#-12]   ; assign
4296                                    ay24  ; anon
4297                                          ;        if (c == 'C') c = 9+128;   
4298                                          ; 
4299   1764 7AAC                                  lodb R0,[R7,#-12]   ; risf
4300   1766 2B20                                  cmp R0,#67   ; alu_i
4301   1768 04D87017                              bne ay25; fjump U   ; cfj
4302   176C 6144                                  lod R0,#137   ; lti
4303   176E 7ABC                                  strb R0,[R7,#-12]   ; assign
4304                                    ay25  ; anon
4305                                          ;        if (c == 'A') c = 11;      
4306                                          ; 
4307   1770 7AAC                                  lodb R0,[R7,#-12]   ; risf
4308   1772 2920                                  cmp R0,#65   ; alu_i
4309   1774 04D87C17                              bne ay26; fjump U   ; cfj
4310   1778 6304                                  lod R0,#11   ; lti
4311   177A 7ABC                                  strb R0,[R7,#-12]   ; assign
4312                                    ay26  ; anon
4313                                          ;        if (c == 'B') c = 10+128;  
4314                                          ; 
4315   177C 7AAC                                  lodb R0,[R7,#-12]   ; risf
4316   177E 2A20                                  cmp R0,#66   ; alu_i
4317   1780 04D88817                              bne ay27; fjump U   ; cfj
4318   1784 6244                                  lod R0,#138   ; lti
4319   1786 7ABC                                  strb R0,[R7,#-12]   ; assign
4320                                    ay27  ; anon
4321                                    ay22  ; anon
4322                                          ;      }
4323                                          ; 
4324                                          ;     
4325                                          ; 
4326                                          ; 
4327                                          ; 
4328                                          ;      ;
4329                                          ; 
4330                                          ; 
4331                                          ; 
4332                                          ;     switch(c)
4333                                          ; 
4334   1788 FAAC                                  lodb R1,[R7,#-12]   ; risf
4335   178A 6305                                  lod R2,#11   ; scan
4336   178C 00F4AE17                              lod R0,#ay29   ; scan
4337                                    ay44  ; anon
4338   1790 80A1                                  lodb R3,[R0]   ; scan
4339   1792 A9D1                                  cmp R3,R1   ; scan
4340   1794 00D8A217                              beq ay43   ; scan
4341   1798 0900                                  add R0,#1   ; scan
4342   179A 1101                                  sub R2,#1   ; scan
4343   179C FAC1                                  bne ay44   ; scan
4344   179E 28D8DC17                              bra ay32   ; scan
4345                                    ay43  ; anon
4346   17A2 0AD1                                  add R2,R2   ; scan
4347   17A4 00F4B817                              lod R0, #(ay28-2)   ; scan
4348   17A8 0AD0                                  add R0,R2   ; scan
4349   17AA 0081                                  lod R2,[R0]   ; scan
4350   17AC 00F1                                  bx R2   ; scan
4351                                    ay29  ; anon
4352   17AE 20                                    .byte 32   ; ci
4353   17AF 0B                                    .byte 11   ; ci
4354   17B0 8A                                    .byte 138   ; ci
4355   17B1 1D                                    .byte 29   ; ci
4356   17B2 09                                    .byte 9   ; ci
4357   17B3 03                                    .byte 3   ; ci
4358   17B4 7F                                    .byte 127   ; ci
4359   17B5 08                                    .byte 8   ; ci
4360   17B6 89                                    .byte 137   ; ci
4361   17B7 0D                                    .byte 13   ; ci
4362   17B8 0A                                    .byte 10   ; ci
4363   17B9 00                                    .align 2   ; ci
4364                                    ay28  ; anon
4365   17BA 0A1B                                  .word ay42   ; vp
4366   17BC 0A1B                                  .word ay41   ; vp
4367   17BE BA1A                                  .word ay40   ; vp
4368   17C0 9A1A                                  .word ay39   ; vp
4369   17C2 061A                                  .word ay38   ; vp
4370   17C4 E819                                  .word ay37   ; vp
4371   17C6 4A19                                  .word ay36   ; vp
4372   17C8 4A19                                  .word ay35   ; vp
4373   17CA 7C18                                  .word ay34   ; vp
4374   17CC 7C18                                  .word ay33   ; vp
4375   17CE D017                                  .word ay31   ; vp
4376                                    ay31  ; anon
4377                                          ;       { 
4378                                          ; 
4379                                          ;       case ' ':
4380                                          ; 
4381                                          ;  if (length == 0) break;  
4382                                          ; 
4383   17D0 7C8C                                  lod  R0,[R7,#-8]   ; risf
4384   17D2 2800                                  cmp R0,#0   ; gfv
4385   17D4 04D8DC17                              bne ay45 ; fjump F   ; cfj
4386   17D8 28D8741B                              bra ay30   ; anon
4387                                    ay45  ; anon
4388                                    ay32  ; anon
4389                                          ;  
4390                                          ; 
4391                                          ;       default:
4392                                          ; 
4393                                          ;      ;
4394                                          ; 
4395                                          ;  if (c < ' ') break;
4396                                          ; 
4397   17DC 7AAC                                  lodb R0,[R7,#-12]   ; risf
4398   17DE 2810                                  cmp R0,#32   ; alu_i
4399   17E0 18D8E817                              bcs ay46; fjump U   ; cfj
4400   17E4 28D8741B                              bra ay30   ; anon
4401                                    ay46  ; anon
4402                                          ;   ;
4403                                          ; 
4404                                          ;  if (echo) shellecho(c);
4405                                          ; 
4406   17E8 028C                                  lod  R0,[R7,#4]   ; risf
4407   17EA 2800                                  cmp R0,#0   ; gfv
4408   17EC 00D8FA17                              beq ay47 ; fjmp1   ; cfj
4409   17F0 7AAC                                  lodb R0,[R7,#-12]   ; risf
4410                                          ; force VR0 to 0   ; call
4411   17F2 67D1                                  mov r2,r7   ; call
4412   17F4 1209                                  sub r2,#18   ; call
4413   17F6 3CD8821B                              jsr _shellecho   ; call
4414                                          ; force VR0 to 0   ; res
4415                                    ay47  ; anon
4416                                          ;   ;
4417                                          ; 
4418                                          ;  { 
4419                                          ; 
4420                                          ; local i  [R7,#-14]
4421                                          ; s
4422                                          ;    int i;
4423                                          ; 
4424                                          ;   for(i=tab; i<length; i++)  
4425                                          ; 
4426   17FA 7E8C                                  lod  R0,[R7,#-4]   ; risf
4427   17FC 799C                                  str  R0,[R7,#-14]   ; assign
4428                                    ay48  ; anon
4429   17FE 798C                                  lod  R0,[R7,#-14]   ; risf
4430   1800 FC8C                                  lod  R1,[R7,#-8]   ; risf
4431   1802 29D0                                  cmp R0,R1   ; alu-l
4432   1804 0CD82218                              bge ay49 ; fjump F   ; cfj
4433                                          ;     { 
4434                                          ; 
4435                                          ;       putchar(linebuffer[i]);
4436                                          ; 
4437   1808 80D416DF                              lod  R1,_linebuffer   ; ris
4438   180C 798C                                  lod  R0,[R7,#-14]   ; risf
4439   180E 88D0                                  add R1,R0   ; alu-l
4440   1810 00A4                                  lodb R0,[R1]   ; risf
4441                                          ; force VR0 to 0   ; call
4442   1812 67D1                                  mov r2,r7   ; call
4443   1814 1409                                  sub r2,#20   ; call
4444   1816 3CD8CE2B                              jsr _putchar   ; call
4445                                          ; force VR0 to 0   ; res
4446   181A 798C                                  lod  R0,[R7,#-14]   ; risf
4447   181C 0900                                  add R0,#1   ; qas
4448   181E 799C                                  str  R0,[R7,#-14]   ; qasmi
4449   1820 EFCA                                  bra ay48   ; anon
4450                                    ay49  ; anon
4451                                          ;     }
4452                                          ; 
4453                                          ;   for(i=length; i>tab; i--)
4454                                          ; 
4455   1822 7C8C                                  lod  R0,[R7,#-8]   ; risf
4456   1824 799C                                  str  R0,[R7,#-14]   ; assign
4457                                    ay50  ; anon
4458   1826 798C                                  lod  R0,[R7,#-14]   ; risf
4459   1828 FE8C                                  lod  R1,[R7,#-4]   ; risf
4460   182A 29D0                                  cmp R0,R1   ; alu-l
4461   182C 14D85818                              ble ay51 ; fjump F   ; cfj
4462                                          ;     { 
4463                                          ; 
4464                                          ;       linebuffer[i] = linebuffer[i-1];
4465                                          ; 
4466   1830 F98C                                  lod  R1,[R7,#-14]   ; risf
4467   1832 9100                                  sub R1,#1   ; alu_i
4468   1834 00D416DF                              lod  R0,_linebuffer   ; ris
4469   1838 09D0                                  add R0,R1   ; alu-l
4470   183A 80D416DF                              lod  R1,_linebuffer   ; ris
4471   183E 798D                                  lod  R2,[R7,#-14]   ; risf
4472   1840 8AD0                                  add R1,R2   ; alu-l
4473   1842 00A1                                  lodb R2,[R0]   ; risf
4474   1844 00B5                                  strb R2,[R1]   ; assign
4475                                          ;       putchar(8);            
4476                                          ; 
4477   1846 6004                                  lod R0,#8   ; lti
4478                                          ; force VR0 to 0   ; call
4479   1848 67D1                                  mov r2,r7   ; call
4480   184A 1409                                  sub r2,#20   ; call
4481   184C 3CD8CE2B                              jsr _putchar   ; call
4482                                          ; force VR0 to 0   ; res
4483   1850 798C                                  lod  R0,[R7,#-14]   ; risf
4484   1852 1100                                  sub R0,#1   ; qas
4485   1854 799C                                  str  R0,[R7,#-14]   ; qasmi
4486   1856 E8CA                                  bra ay50   ; anon
4487                                    ay51  ; anon
4488                                          ;     }
4489                                          ; 
4490                                          ;  }
4491                                          ; 
4492                                          ;         ;
4493                                          ; 
4494                                          ;        linebuffer[tab] = c;
4495                                          ; 
4496   1858 00D416DF                              lod  R0,_linebuffer   ; ris
4497   185C FE8C                                  lod  R1,[R7,#-4]   ; risf
4498   185E 09D0                                  add R0,R1   ; alu-l
4499   1860 FAAC                                  lodb R1,[R7,#-12]   ; risf
4500   1862 80B0                                  strb R1,[R0]   ; assign
4501                                          ;         ;
4502                                          ; 
4503                                          ;        if (tab < (132) ) { tab++; length++; }
4504                                          ; 
4505   1864 7E8C                                  lod  R0,[R7,#-4]   ; risf
4506   1866 2C40                                  cmp R0,#132   ; alu_i
4507   1868 0CD87818                              bge ay52 ; fjump F   ; cfj
4508   186C 7E8C                                  lod  R0,[R7,#-4]   ; risf
4509   186E 0900                                  add R0,#1   ; qas
4510   1870 7E9C                                  str  R0,[R7,#-4]   ; qasmi
4511   1872 7C8C                                  lod  R0,[R7,#-8]   ; risf
4512   1874 0900                                  add R0,#1   ; qas
4513   1876 7C9C                                  str  R0,[R7,#-8]   ; qasmi
4514                                    ay52  ; anon
4515                                          ;        break;
4516                                          ; 
4517   1878 28D8741B                              bra ay30   ; anon
4518                                    ay33  ; anon
4519                                    ay34  ; anon
4520                                          ;        
4521                                          ; 
4522                                          ;       case 11:  case 10+128:       
4523                                          ; 
4524                                          ;  linebuffer[tab] = 0;
4525                                          ; 
4526   187C 00D416DF                              lod  R0,_linebuffer   ; ris
4527   1880 FE8C                                  lod  R1,[R7,#-4]   ; risf
4528   1882 09D0                                  add R0,R1   ; alu-l
4529   1884 E000                                  lod R1,#0   ; lti
4530   1886 80B0                                  strb R1,[R0]   ; assign
4531                                          ;  putchar(0x0D);
4532                                          ; 
4533   1888 6504                                  lod R0,#13   ; lti
4534                                          ; force VR0 to 0   ; call
4535   188A 67D1                                  mov r2,r7   ; call
4536   188C 1209                                  sub r2,#18   ; call
4537   188E 3CD8CE2B                              jsr _putchar   ; call
4538                                          ; force VR0 to 0   ; res
4539                                          ;  sayprompt();
4540                                          ; 
4541   1892 67D1                                  mov r2,r7   ; call
4542   1894 1209                                  sub r2,#18   ; call
4543   1896 3CD87000                              jsr _sayprompt   ; call
4544                                          ; force VR0 to 0   ; res
4545                                          ;  
4546                                          ; 
4547                                          ;  if (c==11) recalpos = backlines(recalpos);
4548                                          ; 
4549   189A 7AAC                                  lodb R0,[R7,#-12]   ; risf
4550   189C 2B04                                  cmp R0,#11   ; alu_i
4551   189E 04D8B218                              bne ay53; fjump U   ; cfj
4552   18A2 7B8C                                  lod  R0,[R7,#-10]   ; risf
4553                                          ; force VR0 to 0   ; call
4554   18A4 67D1                                  mov r2,r7   ; call
4555   18A6 1209                                  sub r2,#18   ; call
4556   18A8 3CD8461D                              jsr _backlines   ; call
4557                                          ; force VR0 to 0   ; res
4558   18AC 7B9C                                  str  R0,[R7,#-10]   ; assign
4559   18AE 28D8BE18                              bra ay54   ; anon
4560                                    ay53  ; anon
4561                                          ;  else recalpos = forwardlines(recalpos);
4562                                          ; 
4563   18B2 7B8C                                  lod  R0,[R7,#-10]   ; risf
4564                                          ; force VR0 to 0   ; call
4565   18B4 67D1                                  mov r2,r7   ; call
4566   18B6 1209                                  sub r2,#18   ; call
4567   18B8 3CD8041D                              jsr _forwardlines   ; call
4568                                          ; force VR0 to 0   ; res
4569   18BC 7B9C                                  str  R0,[R7,#-10]   ; assign
4570                                    ay54  ; anon
4571                                          ;  for(t=0; t < (132) ; t++)
4572                                          ; 
4573   18BE 6000                                  lod R0,#0   ; lti
4574   18C0 7D9C                                  str  R0,[R7,#-6]   ; assign
4575                                    ay55  ; anon
4576   18C2 7D8C                                  lod  R0,[R7,#-6]   ; risf
4577   18C4 2C40                                  cmp R0,#132   ; alu_i
4578   18C6 0CD8F818                              bge ay56 ; fjump F   ; cfj
4579                                          ;    { 
4580                                          ; 
4581                                          ;      c = linebuffer[t];
4582                                          ; 
4583   18CA 00D416DF                              lod  R0,_linebuffer   ; ris
4584   18CE FD8C                                  lod  R1,[R7,#-6]   ; risf
4585   18D0 09D0                                  add R0,R1   ; alu-l
4586   18D2 80A0                                  lodb R1,[R0]   ; risf
4587   18D4 FABC                                  strb R1,[R7,#-12]   ; assign
4588                                          ;      if (c) shellecho(c);
4589                                          ; 
4590   18D6 7AAC                                  lodb R0,[R7,#-12]   ; risf
4591   18D8 2800                                  cmp R0,#0   ; gfv
4592   18DA 00D8EC18                              beq ay57 ; fjmp1   ; cfj
4593   18DE 7AAC                                  lodb R0,[R7,#-12]   ; risf
4594                                          ; force VR0 to 0   ; call
4595   18E0 67D1                                  mov r2,r7   ; call
4596   18E2 1209                                  sub r2,#18   ; call
4597   18E4 3CD8821B                              jsr _shellecho   ; call
4598                                          ; force VR0 to 0   ; res
4599   18E8 28D8F018                              bra ay58   ; anon
4600                                    ay57  ; anon
4601                                          ;      else break;
4602                                          ; 
4603   18EC 28D8F818                              bra ay56   ; anon
4604                                    ay58  ; anon
4605   18F0 7D8C                                  lod  R0,[R7,#-6]   ; risf
4606   18F2 0900                                  add R0,#1   ; qas
4607   18F4 7D9C                                  str  R0,[R7,#-6]   ; qasmi
4608   18F6 E6CA                                  bra ay55   ; anon
4609                                    ay56  ; anon
4610                                          ;    }
4611                                          ; 
4612                                          ;  tab = t;
4613                                          ; 
4614   18F8 7D8C                                  lod  R0,[R7,#-6]   ; risf
4615   18FA 7E9C                                  str  R0,[R7,#-4]   ; assign
4616                                          ;  if (t > length) length = t;
4617                                          ; 
4618   18FC 7D8C                                  lod  R0,[R7,#-6]   ; risf
4619   18FE FC8C                                  lod  R1,[R7,#-8]   ; risf
4620   1900 29D0                                  cmp R0,R1   ; alu-l
4621   1902 14D80E19                              ble ay59 ; fjump F   ; cfj
4622   1906 7D8C                                  lod  R0,[R7,#-6]   ; risf
4623   1908 7C9C                                  str  R0,[R7,#-8]   ; assign
4624   190A 28D82A19                              bra ay60   ; anon
4625                                    ay59  ; anon
4626                                          ;  else while (t < length)       
4627                                          ; 
4628                                    ay61  ; anon
4629   190E 7D8C                                  lod  R0,[R7,#-6]   ; risf
4630   1910 FC8C                                  lod  R1,[R7,#-8]   ; risf
4631   1912 29D0                                  cmp R0,R1   ; alu-l
4632   1914 0CD82A19                              bge ay62 ; fjump F   ; cfj
4633                                          ;    {
4634                                          ; 
4635                                          ;      t++;
4636                                          ; 
4637   1918 7D8C                                  lod  R0,[R7,#-6]   ; risf
4638   191A 0900                                  add R0,#1   ; qas
4639   191C 7D9C                                  str  R0,[R7,#-6]   ; qasmi
4640                                          ;      putchar(' ');
4641                                          ; 
4642   191E 6010                                  lod R0,#32   ; lti
4643                                          ; force VR0 to 0   ; call
4644   1920 67D1                                  mov r2,r7   ; call
4645   1922 1209                                  sub r2,#18   ; call
4646   1924 3CD8CE2B                              jsr _putchar   ; call
4647                                          ; force VR0 to 0   ; res
4648   1928 F3CA                                  bra ay61   ; anon
4649                                    ay62  ; anon
4650                                    ay60  ; anon
4651                                          ;    }
4652                                          ; 
4653                                          ;  while (length > tab)     
4654                                          ; 
4655                                    ay63  ; anon
4656   192A 7C8C                                  lod  R0,[R7,#-8]   ; risf
4657   192C FE8C                                  lod  R1,[R7,#-4]   ; risf
4658   192E 29D0                                  cmp R0,R1   ; alu-l
4659   1930 14D84619                              ble ay64 ; fjump F   ; cfj
4660                                          ;    {
4661                                          ; 
4662                                          ;      putchar(8);
4663                                          ; 
4664   1934 6004                                  lod R0,#8   ; lti
4665                                          ; force VR0 to 0   ; call
4666   1936 67D1                                  mov r2,r7   ; call
4667   1938 1209                                  sub r2,#18   ; call
4668   193A 3CD8CE2B                              jsr _putchar   ; call
4669                                          ; force VR0 to 0   ; res
4670                                          ;      length --;
4671                                          ; 
4672   193E 7C8C                                  lod  R0,[R7,#-8]   ; risf
4673   1940 1100                                  sub R0,#1   ; qas
4674   1942 7C9C                                  str  R0,[R7,#-8]   ; qasmi
4675   1944 F3CA                                  bra ay63   ; anon
4676                                    ay64  ; anon
4677                                          ;    }
4678                                          ; 
4679                                          ;  break;
4680                                          ; 
4681   1946 28D8741B                              bra ay30   ; anon
4682                                    ay35  ; anon
4683                                    ay36  ; anon
4684                                          ;  
4685                                          ; 
4686                                          ;       case (']' & 31):  
4687                                          ; 
4688                                          ;  
4689                                          ; 
4690                                          ;       case 9:
4691                                          ; 
4692                                          ;  {
4693                                          ; 
4694                                          ; local eot  [R7,#-14]
4695                                          ; s
4696   194A 00D416DF                              lod  R0,_linebuffer   ; ris
4697   194E FE8C                                  lod  R1,[R7,#-4]   ; risf
4698   1950 09D0                                  add R0,R1   ; alu-l
4699   1952 799C                                  str  R0,[R7,#-14]   ; assign
4700                                          ; local tag  [R7,#-16]
4701                                          ; s
4702   1954 798C                                  lod  R0,[R7,#-14]   ; risf
4703   1956 789C                                  str  R0,[R7,#-16]   ; assign
4704                                          ; local completion  [R7,#-18]
4705                                          ; s
4706                                          ; local j  [R7,#-20]
4707                                          ; s
4708   1958 7E8C                                  lod  R0,[R7,#-4]   ; risf
4709   195A 769C                                  str  R0,[R7,#-20]   ; assign
4710                                          ;    char *eot = &linebuffer[tab];
4711                                          ; 
4712                                          ;    char *tag = eot;
4713                                          ; 
4714                                          ;    char *completion;
4715                                          ; 
4716                                          ;    int j = tab;
4717                                          ; 
4718                                          ;    tag--;
4719                                          ; 
4720   195C 788C                                  lod  R0,[R7,#-16]   ; risf
4721   195E 1100                                  sub R0,#1   ; qas
4722   1960 789C                                  str  R0,[R7,#-16]   ; qasmi
4723                                          ;    while (*tag > ' ' && j > 0) {  tag--; j--; }
4724                                          ; 
4725                                    ay65  ; anon
4726   1962 788C                                  lod  R0,[R7,#-16]   ; risf
4727   1964 80A0                                  lodb R1,[R0]   ; risf
4728   1966 A810                                  cmp R1,#32   ; alu_i
4729   1968 14D88219                              ble ay66 ; fjump F   ; cfj
4730   196C 768C                                  lod  R0,[R7,#-20]   ; risf
4731   196E 2800                                  cmp R0,#0   ; gfv
4732   1970 14D88219                              ble ay66 ; fjump F   ; cfj
4733   1974 788C                                  lod  R0,[R7,#-16]   ; risf
4734   1976 1100                                  sub R0,#1   ; qas
4735   1978 789C                                  str  R0,[R7,#-16]   ; qasmi
4736   197A 768C                                  lod  R0,[R7,#-20]   ; risf
4737   197C 1100                                  sub R0,#1   ; qas
4738   197E 769C                                  str  R0,[R7,#-20]   ; qasmi
4739   1980 F1CA                                  bra ay65   ; anon
4740                                    ay66  ; anon
4741                                          ;    tag++;
4742                                          ; 
4743   1982 788C                                  lod  R0,[R7,#-16]   ; risf
4744   1984 0900                                  add R0,#1   ; qas
4745   1986 789C                                  str  R0,[R7,#-16]   ; qasmi
4746                                          ;    *eot = (char) 0;
4747                                          ; 
4748   1988 E000                                  lod R1,#0   ; lti
4749   198A 798C                                  lod  R0,[R7,#-14]   ; risf
4750   198C 80B0                                  strb R1,[R0]   ; assign
4751                                          ;    completion = findcomp(tag);
4752                                          ; 
4753   198E 788C                                  lod  R0,[R7,#-16]   ; risf
4754                                          ; force VR0 to 0   ; call
4755   1990 67D1                                  mov r2,r7   ; call
4756   1992 120D                                  sub r2,#26   ; call
4757   1994 3CD8C21B                              jsr _findcomp   ; call
4758                                          ; force VR0 to 0   ; res
4759   1998 779C                                  str  R0,[R7,#-18]   ; assign
4760                                          ;    while(*completion > ' ')
4761                                          ; 
4762                                    ay67  ; anon
4763   199A 778C                                  lod  R0,[R7,#-18]   ; risf
4764   199C 80A0                                  lodb R1,[R0]   ; risf
4765   199E A810                                  cmp R1,#32   ; alu_i
4766   19A0 14D8E419                              ble ay68 ; fjump F   ; cfj
4767                                          ;      {
4768                                          ; 
4769                                          ; local x  [R7,#-22]
4770                                          ; s
4771   19A4 778C                                  lod  R0,[R7,#-18]   ; risf
4772   19A6 E0D0                                  mov R1,R0   ; qasp1
4773   19A8 8900                                  add R1,#1   ; qasp
4774   19AA F79C                                  str  R1,[R7,#-18]   ; qasp
4775   19AC 80A0                                  lodb R1,[R0]   ; risf
4776   19AE F5BC                                  strb R1,[R7,#-22]   ; assign
4777                                          ;        char x = *(completion++);
4778                                          ; 
4779                                          ;        shellecho(x);
4780                                          ; 
4781   19B0 75AC                                  lodb R0,[R7,#-22]   ; risf
4782                                          ; force VR0 to 0   ; call
4783   19B2 67D1                                  mov r2,r7   ; call
4784   19B4 140D                                  sub r2,#28   ; call
4785   19B6 3CD8821B                              jsr _shellecho   ; call
4786                                          ; force VR0 to 0   ; res
4787                                          ;        linebuffer[tab] = x;
4788                                          ; 
4789   19BA 00D416DF                              lod  R0,_linebuffer   ; ris
4790   19BE FE8C                                  lod  R1,[R7,#-4]   ; risf
4791   19C0 09D0                                  add R0,R1   ; alu-l
4792   19C2 F5AC                                  lodb R1,[R7,#-22]   ; risf
4793   19C4 80B0                                  strb R1,[R0]   ; assign
4794                                          ;        if (tab < (132) ) tab++;
4795                                          ; 
4796   19C6 7E8C                                  lod  R0,[R7,#-4]   ; risf
4797   19C8 2C40                                  cmp R0,#132   ; alu_i
4798   19CA 0CD8D419                              bge ay69 ; fjump F   ; cfj
4799   19CE 7E8C                                  lod  R0,[R7,#-4]   ; risf
4800   19D0 0900                                  add R0,#1   ; qas
4801   19D2 7E9C                                  str  R0,[R7,#-4]   ; qasmi
4802                                    ay69  ; anon
4803                                          ;        if (tab > length) length = tab;
4804                                          ; 
4805   19D4 7E8C                                  lod  R0,[R7,#-4]   ; risf
4806   19D6 FC8C                                  lod  R1,[R7,#-8]   ; risf
4807   19D8 29D0                                  cmp R0,R1   ; alu-l
4808   19DA 14D8E219                              ble ay70 ; fjump F   ; cfj
4809   19DE 7E8C                                  lod  R0,[R7,#-4]   ; risf
4810   19E0 7C9C                                  str  R0,[R7,#-8]   ; assign
4811                                    ay70  ; anon
4812   19E2 DCCA                                  bra ay67   ; anon
4813                                    ay68  ; anon
4814                                          ;      }
4815                                          ; 
4816                                          ;    break;
4817                                          ; 
4818   19E4 28D8741B                              bra ay30   ; anon
4819                                    ay37  ; anon
4820                                          ;  }
4821                                          ; 
4822                                          ;       
4823                                          ; 
4824                                          ;       case 3:
4825                                          ; 
4826                                          ;  linebuffer[0] = 0;
4827                                          ; 
4828   19E8 E000                                  lod R1,#0   ; lti
4829   19EA 00D416DF                              lod  R0,_linebuffer   ; ris
4830   19EE 80B0                                  strb R1,[R0]   ; assign
4831                                          ;  printf("\\\n");
4832                                          ; 
4833   19F0 00F47E1B                              lod R0,#ay71   ; ltgd3
4834                                          ; force VR0 to 0   ; call
4835   19F4 67D1                                  mov r2,r7   ; call
4836   19F6 1209                                  sub r2,#18   ; call
4837   19F8 3CD89628                              jsr _printf   ; call
4838                                          ; force VR0 to 0   ; res
4839                                          ;  return linebuffer;
4840                                          ; 
4841   19FC 00D416DF                              lod  R0,_linebuffer   ; ris
4842                                          ; force VR0 to 0   ; loadtod0
4843   1A00 7F8F                                  lod R6,[R7,#-2]   ; cr
4844   1A02 808F                                  lod r7,[r7]   ; cr
4845   1A04 00F3                                  ret   ; cr
4846                                    ay38  ; anon
4847                                          ;   
4848                                          ; 
4849                                          ;  
4850                                          ; 
4851                                          ;       case 127:                   
4852                                          ; 
4853                                          ;  if (tab==0) break;
4854                                          ; 
4855   1A06 7E8C                                  lod  R0,[R7,#-4]   ; risf
4856   1A08 2800                                  cmp R0,#0   ; gfv
4857   1A0A 04D8121A                              bne ay72 ; fjump F   ; cfj
4858   1A0E 28D8741B                              bra ay30   ; anon
4859                                    ay72  ; anon
4860                                          ;  putchar(8);
4861                                          ; 
4862   1A12 6004                                  lod R0,#8   ; lti
4863                                          ; force VR0 to 0   ; call
4864   1A14 67D1                                  mov r2,r7   ; call
4865   1A16 1209                                  sub r2,#18   ; call
4866   1A18 3CD8CE2B                              jsr _putchar   ; call
4867                                          ; force VR0 to 0   ; res
4868                                          ;  tab--; length--;
4869                                          ; 
4870   1A1C 7E8C                                  lod  R0,[R7,#-4]   ; risf
4871   1A1E 1100                                  sub R0,#1   ; qas
4872   1A20 7E9C                                  str  R0,[R7,#-4]   ; qasmi
4873   1A22 7C8C                                  lod  R0,[R7,#-8]   ; risf
4874   1A24 1100                                  sub R0,#1   ; qas
4875   1A26 7C9C                                  str  R0,[R7,#-8]   ; qasmi
4876                                          ;  { int i, backs = length-tab;
4877                                          ; 
4878                                          ; local i  [R7,#-14]
4879                                          ; s
4880                                          ; local backs  [R7,#-16]
4881                                          ; s
4882   1A28 7C8C                                  lod  R0,[R7,#-8]   ; risf
4883   1A2A FE8C                                  lod  R1,[R7,#-4]   ; risf
4884   1A2C 11D0                                  sub R0,R1   ; alu-l
4885   1A2E 789C                                  str  R0,[R7,#-16]   ; assign
4886                                          ;  for (i=tab; i<length; i++)
4887                                          ; 
4888   1A30 7E8C                                  lod  R0,[R7,#-4]   ; risf
4889   1A32 799C                                  str  R0,[R7,#-14]   ; assign
4890                                    ay73  ; anon
4891   1A34 798C                                  lod  R0,[R7,#-14]   ; risf
4892   1A36 FC8C                                  lod  R1,[R7,#-8]   ; risf
4893   1A38 29D0                                  cmp R0,R1   ; alu-l
4894   1A3A 0CD86E1A                              bge ay74 ; fjump F   ; cfj
4895                                          ;    { 
4896                                          ; 
4897                                          ;      linebuffer[i] = linebuffer[i+1];
4898                                          ; 
4899   1A3E F98C                                  lod  R1,[R7,#-14]   ; risf
4900   1A40 8900                                  add R1,#1   ; alu_i
4901   1A42 00D416DF                              lod  R0,_linebuffer   ; ris
4902   1A46 09D0                                  add R0,R1   ; alu-l
4903   1A48 80D416DF                              lod  R1,_linebuffer   ; ris
4904   1A4C 798D                                  lod  R2,[R7,#-14]   ; risf
4905   1A4E 8AD0                                  add R1,R2   ; alu-l
4906   1A50 00A1                                  lodb R2,[R0]   ; risf
4907   1A52 00B5                                  strb R2,[R1]   ; assign
4908                                          ;      putchar(linebuffer[i]);
4909                                          ; 
4910   1A54 80D416DF                              lod  R1,_linebuffer   ; ris
4911   1A58 798C                                  lod  R0,[R7,#-14]   ; risf
4912   1A5A 88D0                                  add R1,R0   ; alu-l
4913   1A5C 00A4                                  lodb R0,[R1]   ; risf
4914                                          ; force VR0 to 0   ; call
4915   1A5E 67D1                                  mov r2,r7   ; call
4916   1A60 1609                                  sub r2,#22   ; call
4917   1A62 3CD8CE2B                              jsr _putchar   ; call
4918                                          ; force VR0 to 0   ; res
4919   1A66 798C                                  lod  R0,[R7,#-14]   ; risf
4920   1A68 0900                                  add R0,#1   ; qas
4921   1A6A 799C                                  str  R0,[R7,#-14]   ; qasmi
4922   1A6C E4CA                                  bra ay73   ; anon
4923                                    ay74  ; anon
4924                                          ;    }
4925                                          ; 
4926                                          ;  putchar(32); 
4927                                          ; 
4928   1A6E 6010                                  lod R0,#32   ; lti
4929                                          ; force VR0 to 0   ; call
4930   1A70 67D1                                  mov r2,r7   ; call
4931   1A72 1609                                  sub r2,#22   ; call
4932   1A74 3CD8CE2B                              jsr _putchar   ; call
4933                                          ; force VR0 to 0   ; res
4934                                          ;  for (i=backs; i>=0; i--) putchar(8); 
4935                                          ; 
4936   1A78 788C                                  lod  R0,[R7,#-16]   ; risf
4937   1A7A 799C                                  str  R0,[R7,#-14]   ; assign
4938                                    ay75  ; anon
4939   1A7C 798C                                  lod  R0,[R7,#-14]   ; risf
4940   1A7E 2800                                  cmp R0,#0   ; gfv
4941   1A80 08D8961A                              blt ay76 ; fjump F   ; cfj
4942   1A84 6004                                  lod R0,#8   ; lti
4943                                          ; force VR0 to 0   ; call
4944   1A86 67D1                                  mov r2,r7   ; call
4945   1A88 1609                                  sub r2,#22   ; call
4946   1A8A 3CD8CE2B                              jsr _putchar   ; call
4947                                          ; force VR0 to 0   ; res
4948   1A8E 798C                                  lod  R0,[R7,#-14]   ; risf
4949   1A90 1100                                  sub R0,#1   ; qas
4950   1A92 799C                                  str  R0,[R7,#-14]   ; qasmi
4951   1A94 F4CA                                  bra ay75   ; anon
4952                                    ay76  ; anon
4953                                          ;  }
4954                                          ; 
4955                                          ;  break;
4956                                          ; 
4957   1A96 28D8741B                              bra ay30   ; anon
4958                                    ay39  ; anon
4959                                          ;  
4960                                          ; 
4961                                          ;       case 8:
4962                                          ; 
4963                                          ;  if (tab==0) break;
4964                                          ; 
4965   1A9A 7E8C                                  lod  R0,[R7,#-4]   ; risf
4966   1A9C 2800                                  cmp R0,#0   ; gfv
4967   1A9E 04D8A61A                              bne ay77 ; fjump F   ; cfj
4968   1AA2 28D8741B                              bra ay30   ; anon
4969                                    ay77  ; anon
4970                                          ;  putchar(8);
4971                                          ; 
4972   1AA6 6004                                  lod R0,#8   ; lti
4973                                          ; force VR0 to 0   ; call
4974   1AA8 67D1                                  mov r2,r7   ; call
4975   1AAA 1209                                  sub r2,#18   ; call
4976   1AAC 3CD8CE2B                              jsr _putchar   ; call
4977                                          ; force VR0 to 0   ; res
4978                                          ;  tab--;
4979                                          ; 
4980   1AB0 7E8C                                  lod  R0,[R7,#-4]   ; risf
4981   1AB2 1100                                  sub R0,#1   ; qas
4982   1AB4 7E9C                                  str  R0,[R7,#-4]   ; qasmi
4983                                          ;  break;
4984                                          ; 
4985   1AB6 28D8741B                              bra ay30   ; anon
4986                                    ay40  ; anon
4987                                          ;  
4988                                          ; 
4989                                          ;       case 9+128:                 
4990                                          ; 
4991                                          ;  c = linebuffer[tab];
4992                                          ; 
4993   1ABA 00D416DF                              lod  R0,_linebuffer   ; ris
4994   1ABE FE8C                                  lod  R1,[R7,#-4]   ; risf
4995   1AC0 09D0                                  add R0,R1   ; alu-l
4996   1AC2 80A0                                  lodb R1,[R0]   ; risf
4997   1AC4 FABC                                  strb R1,[R7,#-12]   ; assign
4998                                          ;  if (tab >= length)       
4999                                          ; 
5000   1AC6 7E8C                                  lod  R0,[R7,#-4]   ; risf
5001   1AC8 FC8C                                  lod  R1,[R7,#-8]   ; risf
5002   1ACA 29D0                                  cmp R0,R1   ; alu-l
5003   1ACC 08D8E01A                              blt ay78 ; fjump F   ; cfj
5004                                          ;    {
5005                                          ; 
5006                                          ;      c = ' ';               
5007                                          ; 
5008   1AD0 6010                                  lod R0,#32   ; lti
5009   1AD2 7ABC                                  strb R0,[R7,#-12]   ; assign
5010                                          ;      linebuffer[tab] = c;
5011                                          ; 
5012   1AD4 00D416DF                              lod  R0,_linebuffer   ; ris
5013   1AD8 FE8C                                  lod  R1,[R7,#-4]   ; risf
5014   1ADA 09D0                                  add R0,R1   ; alu-l
5015   1ADC FAAC                                  lodb R1,[R7,#-12]   ; risf
5016   1ADE 80B0                                  strb R1,[R0]   ; assign
5017                                    ay78  ; anon
5018                                          ;    }
5019                                          ; 
5020                                          ;  putchar(c);
5021                                          ; 
5022   1AE0 7AAC                                  lodb R0,[R7,#-12]   ; risf
5023                                          ; force VR0 to 0   ; call
5024   1AE2 67D1                                  mov r2,r7   ; call
5025   1AE4 1209                                  sub r2,#18   ; call
5026   1AE6 3CD8CE2B                              jsr _putchar   ; call
5027                                          ; force VR0 to 0   ; res
5028                                          ;  if (tab < (132) ) tab++;
5029                                          ; 
5030   1AEA 7E8C                                  lod  R0,[R7,#-4]   ; risf
5031   1AEC 2C40                                  cmp R0,#132   ; alu_i
5032   1AEE 0CD8F81A                              bge ay79 ; fjump F   ; cfj
5033   1AF2 7E8C                                  lod  R0,[R7,#-4]   ; risf
5034   1AF4 0900                                  add R0,#1   ; qas
5035   1AF6 7E9C                                  str  R0,[R7,#-4]   ; qasmi
5036                                    ay79  ; anon
5037                                          ;  if (tab > length) length = tab;
5038                                          ; 
5039   1AF8 7E8C                                  lod  R0,[R7,#-4]   ; risf
5040   1AFA FC8C                                  lod  R1,[R7,#-8]   ; risf
5041   1AFC 29D0                                  cmp R0,R1   ; alu-l
5042   1AFE 14D8061B                              ble ay80 ; fjump F   ; cfj
5043   1B02 7E8C                                  lod  R0,[R7,#-4]   ; risf
5044   1B04 7C9C                                  str  R0,[R7,#-8]   ; assign
5045                                    ay80  ; anon
5046                                          ;  break;
5047                                          ; 
5048   1B06 28D8741B                              bra ay30   ; anon
5049                                    ay41  ; anon
5050                                    ay42  ; anon
5051                                          ;  
5052                                          ; 
5053                                          ;       case 13: 
5054                                          ; 
5055                                          ;       case '\n': 
5056                                          ; 
5057                                          ;  
5058                                          ; 
5059                                          ;  
5060                                          ; 
5061                                          ;  linebuffer[length] = (char) 0;
5062                                          ; 
5063   1B0A 00D416DF                              lod  R0,_linebuffer   ; ris
5064   1B0E FC8C                                  lod  R1,[R7,#-8]   ; risf
5065   1B10 09D0                                  add R0,R1   ; alu-l
5066   1B12 E000                                  lod R1,#0   ; lti
5067   1B14 80B0                                  strb R1,[R0]   ; assign
5068                                          ;  putchar(10);
5069                                          ; 
5070   1B16 6204                                  lod R0,#10   ; lti
5071                                          ; force VR0 to 0   ; call
5072   1B18 67D1                                  mov r2,r7   ; call
5073   1B1A 1209                                  sub r2,#18   ; call
5074   1B1C 3CD8CE2B                              jsr _putchar   ; call
5075                                          ; force VR0 to 0   ; res
5076                                          ;  putchar(13);
5077                                          ; 
5078   1B20 6504                                  lod R0,#13   ; lti
5079                                          ; force VR0 to 0   ; call
5080   1B22 67D1                                  mov r2,r7   ; call
5081   1B24 1209                                  sub r2,#18   ; call
5082   1B26 3CD8CE2B                              jsr _putchar   ; call
5083                                          ; force VR0 to 0   ; res
5084                                          ;  if (length)  
5085                                          ; 
5086   1B2A 7C8C                                  lod  R0,[R7,#-8]   ; risf
5087   1B2C 2800                                  cmp R0,#0   ; gfv
5088   1B2E 00D86A1B                              beq ay81 ; fjmp1   ; cfj
5089                                          ;    {
5090                                          ; 
5091                                          ;      lbcopy(linebuffer, lines[histline], (132) +1);
5092                                          ; 
5093   1B32 6540                                  lod R0,#133   ; lti
5094   1B34 799C                                  str  R0,[R7,#-14]   ; assign
5095   1B36 00D416DF                              lod  R0,_linebuffer   ; ris
5096   1B3A 80D420DF                              lod  R1,_histline   ; ris
5097   1B3E C900                                  asl R1,#1   ; anon
5098   1B40 00F518DF                              lod R2,#_lines   ; ltgd2
5099   1B44 09D1                                  add R2,R1   ; alu-l
5100   1B46 8088                                  lod  R1,[R2]   ; risf
5101                                          ; force VR0 to 0   ; call
5102                                          ; force VR1 to 1   ; call
5103   1B48 67D1                                  mov r2,r7   ; call
5104   1B4A 1409                                  sub r2,#20   ; call
5105   1B4C 3CD8881D                              jsr _lbcopy   ; call
5106                                          ; force VR0 to 0   ; res
5107                                          ;      histline ++;
5108                                          ; 
5109   1B50 00D420DF                              lod  R0,_histline   ; ris
5110   1B54 0900                                  add R0,#1   ; qas
5111   1B56 20D420DF                              str  R0,_histline   ; qasmi
5112                                          ;      if (histline == (4) ) histline = 0;
5113                                          ; 
5114   1B5A 00D420DF                              lod  R0,_histline   ; ris
5115   1B5E 2C00                                  cmp R0,#4   ; alu_i
5116   1B60 04D86A1B                              bne ay82 ; fjump F   ; cfj
5117   1B64 6000                                  lod R0,#0   ; lti
5118   1B66 20D420DF                              str  R0,_histline   ; assign
5119                                    ay82  ; anon
5120                                    ay81  ; anon
5121                                          ;    }
5122                                          ; 
5123                                          ;  
5124                                          ; 
5125                                          ;  
5126                                          ; 
5127                                          ;  return linebuffer;
5128                                          ; 
5129   1B6A 00D416DF                              lod  R0,_linebuffer   ; ris
5130                                          ; force VR0 to 0   ; loadtod0
5131   1B6E 7F8F                                  lod R6,[R7,#-2]   ; cr
5132   1B70 808F                                  lod r7,[r7]   ; cr
5133   1B72 00F3                                  ret   ; cr
5134                                    ay30  ; anon
5135   1B74 28D83017                              bra ay20   ; anon
5136                                    ay21  ; anon
5137   1B78 7F8F                                  lod R6,[R7,#-2]   ; cr
5138   1B7A 808F                                  lod r7,[r7]   ; cr
5139   1B7C 00F3                                  ret   ; cr
5140   1B7E 5C0A00                          ay71  .data "\\",10,0
5141                                          
5142                                          
5143                                          ; Routine shellecho
5144   1B81 00                                    .align 2 
5145                              _shellecho  .global
5146   1B82 809B                                  str r7,[r2]
5147   1B84 E2D3                                  mov r7,r2
5148   1B86 7F9F                                  str R6,[R7,#-2]
5149   1B88 019C                                  str R0,[R7,#2]
5150                                          ; ------------------------------------------------- 
5151                                          ; local c  [R7,#2]
5152                                          ; s
5153                                          ;     }
5154                                          ; 
5155                                          ;   }
5156                                          ; 
5157                                          ; }
5158                                          ; 
5159                                          ; 
5160                                          ; 
5161                                          ; 
5162                                          ; 
5163                                          ; void shellecho(char c)
5164                                          ; 
5165                                          ; {
5166                                          ; 
5167                                          ;   if ((c >= 32) && (c < 127))
5168                                          ; 
5169   1B8A 01AC                                  lodb R0,[R7,#2]   ; risf
5170   1B8C 2810                                  cmp R0,#32   ; alu_i
5171   1B8E 08D8AA1B                              blt ay83 ; fjump F   ; cfj
5172   1B92 01AC                                  lodb R0,[R7,#2]   ; risf
5173   1B94 2F3C                                  cmp R0,#127   ; alu_i
5174   1B96 0CD8AA1B                              bge ay83 ; fjump F   ; cfj
5175                                          ;   {
5176                                          ; 
5177                                          ;     putchar(c);
5178                                          ; 
5179   1B9A 01AC                                  lodb R0,[R7,#2]   ; risf
5180                                          ; force VR0 to 0   ; call
5181   1B9C 67D1                                  mov r2,r7   ; call
5182   1B9E 1005                                  sub r2,#8   ; call
5183   1BA0 3CD8CE2B                              jsr _putchar   ; call
5184                                          ; force VR0 to 0   ; res
5185                                          ;     return;
5186                                          ; 
5187   1BA4 7F8F                                  lod R6,[R7,#-2]   ; cr
5188   1BA6 808F                                  lod r7,[r7]   ; cr
5189   1BA8 00F3                                  ret   ; cr
5190                                    ay83  ; anon
5191                                          ;   }
5192                                          ; 
5193                                          ;   printf("^%X", c);
5194                                          ; 
5195   1BAA 00F4BE1B                              lod R0,#ay84   ; ltgd3
5196   1BAE 81AC                                  lodb R1,[R7,#2]   ; risf
5197                                          ; force VR0 to 0   ; call
5198                                          ; force VR1 to 1   ; call
5199   1BB0 67D1                                  mov r2,r7   ; call
5200   1BB2 1005                                  sub r2,#8   ; call
5201   1BB4 3CD89628                              jsr _printf   ; call
5202                                          ; force VR0 to 0   ; res
5203   1BB8 7F8F                                  lod R6,[R7,#-2]   ; cr
5204   1BBA 808F                                  lod r7,[r7]   ; cr
5205   1BBC 00F3                                  ret   ; cr
5206   1BBE 5E255800                        ay84  .data "^%X",0
5207                                          
5208                                          
5209                                          ; Routine findcomp
5210                                          .align 2 
5211                               _findcomp  .global
5212   1BC2 809B                                  str r7,[r2]
5213   1BC4 E2D3                                  mov r7,r2
5214                                          ; ------------------------------------------------- 
5215                                          ; local tag  R349
5216                                          ; s
5217                                          ; force VR0 to 0   ; pram
5218                                          ; local p  [R7,#-4]
5219                                          ; s
5220                                          ; local q  [R7,#-6]
5221                                          ; s
5222                                          ; force VR0 to 0   ; pram
5223                                          ; local start_search_line  [R7,#-8]
5224                                          ; s
5225   1BC6 80D424DF                              lod  R1,_comp_line   ; ris
5226   1BCA FC9C                                  str  R1,[R7,#-8]   ; assign
5227                                          ; force VR0 to 0   ; pram
5228                                          ; }
5229                                          ; 
5230                                          ; 
5231                                          ; 
5232                                          ; 
5233                                          ; 
5234                                          ; char *findcomp(char *tag)
5235                                          ; 
5236                                          ; {
5237                                          ; 
5238                                          ;   char *p, *q;
5239                                          ; 
5240                                          ;   int start_search_line = comp_line;
5241                                          ; 
5242                                          ;   while(1)
5243                                          ; 
5244                                    ay85  ; anon
5245                                          ;   {
5246                                          ; 
5247                                          ;     while (*comp_char > ' ') comp_char++;
5248                                          ; 
5249                                    ay87  ; anon
5250   1BCC 80D422DF                              lod  R1,_comp_char   ; ris
5251   1BD0 00A5                                  lodb R2,[R1]   ; risf
5252   1BD2 2811                                  cmp R2,#32   ; alu_i
5253   1BD4 14D8E41B                              ble ay88 ; fjump F   ; cfj
5254   1BD8 80D422DF                              lod  R1,_comp_char   ; ris
5255   1BDC 8900                                  add R1,#1   ; qas
5256   1BDE A0D422DF                              str  R1,_comp_char   ; qasmi
5257   1BE2 F5CA                                  bra ay87   ; anon
5258                                    ay88  ; anon
5259                                          ;     while (*comp_char == 0)
5260                                          ; 
5261                                    ay89  ; anon
5262   1BE4 80D422DF                              lod  R1,_comp_char   ; ris
5263   1BE8 00A5                                  lodb R2,[R1]   ; risf
5264   1BEA 2801                                  cmp R2,#0   ; gfv
5265   1BEC 04D8361C                              bne ay90 ; fjump F   ; cfj
5266                                          ;     {
5267                                          ; 
5268                                          ;       comp_line = (comp_line >= (4) -1) ? 0 : comp_line + 1;
5269                                          ; 
5270   1BF0 80D424DF                              lod  R1,_comp_line   ; ris
5271   1BF4 AB00                                  cmp R1,#3   ; alu_i
5272   1BF6 08D8001C                              blt ay91 ; fjump F   ; cfj
5273   1BFA E000                                  lod R1,#0   ; lti
5274   1BFC 28D8081C                              bra ay92   ; anon
5275                                    ay91  ; anon
5276   1C00 00D524DF                              lod  R2,_comp_line   ; ris
5277   1C04 0901                                  add R2,#1   ; alu_i
5278   1C06 E2D0                                  mov R1,R2   ; ltmv
5279                                    ay92  ; anon
5280   1C08 A0D424DF                              str  R1,_comp_line   ; assign
5281                                          ;       if (comp_line == start_search_line) return ""; 
5282                                          ; 
5283   1C0C 80D424DF                              lod  R1,_comp_line   ; ris
5284   1C10 7C8D                                  lod  R2,[R7,#-8]   ; risf
5285   1C12 AAD0                                  cmp R1,R2   ; alu-l
5286   1C14 04D8221C                              bne ay93 ; fjump F   ; cfj
5287   1C18 80F48E1C                              lod R1,#ay94   ; ltgd3
5288   1C1C 61D0                                  mov R0,R1   ; forceresolve
5289   1C1E 808F                                  lod r7,[r7]   ; cr
5290   1C20 00F3                                  ret   ; cr
5291                                    ay93  ; anon
5292                                          ;       comp_char = lines[comp_line];
5293                                          ; 
5294   1C22 00D524DF                              lod  R2,_comp_line   ; ris
5295   1C26 4901                                  asl R2,#1   ; anon
5296   1C28 80F418DF                              lod R1,#_lines   ; ltgd2
5297   1C2C 8AD0                                  add R1,R2   ; alu-l
5298   1C2E 0085                                  lod  R2,[R1]   ; risf
5299   1C30 20D522DF                              str  R2,_comp_char   ; assign
5300   1C34 D8CA                                  bra ay89   ; anon
5301                                    ay90  ; anon
5302                                          ;     }
5303                                          ; 
5304                                          ;     while (*comp_char <= ' ') comp_char++; 
5305                                          ; 
5306                                    ay95  ; anon
5307   1C36 80D422DF                              lod  R1,_comp_char   ; ris
5308   1C3A 00A5                                  lodb R2,[R1]   ; risf
5309   1C3C 2811                                  cmp R2,#32   ; alu_i
5310   1C3E 10D84E1C                              bgt ay96 ; fjump F   ; cfj
5311   1C42 80D422DF                              lod  R1,_comp_char   ; ris
5312   1C46 8900                                  add R1,#1   ; qas
5313   1C48 A0D422DF                              str  R1,_comp_char   ; qasmi
5314   1C4C F5CA                                  bra ay95   ; anon
5315                                    ay96  ; anon
5316                                          ;     p = tag;
5317                                          ; 
5318   1C4E 7E9C                                  str  R0,[R7,#-4]   ; assign
5319                                          ;     q = comp_char;
5320                                          ; 
5321   1C50 80D422DF                              lod  R1,_comp_char   ; ris
5322   1C54 FD9C                                  str  R1,[R7,#-6]   ; assign
5323                                          ;     while(1)
5324                                          ; 
5325                                    ay97  ; anon
5326                                          ;     {
5327                                          ; 
5328                                          ;       if (*p <= ' ') return q;  
5329                                          ; 
5330   1C56 FE8C                                  lod  R1,[R7,#-4]   ; risf
5331   1C58 00A5                                  lodb R2,[R1]   ; risf
5332   1C5A 2811                                  cmp R2,#32   ; alu_i
5333   1C5C 10D8681C                              bgt ay99 ; fjump F   ; cfj
5334   1C60 FD8C                                  lod  R1,[R7,#-6]   ; risf
5335   1C62 61D0                                  mov R0,R1   ; forceresolve
5336   1C64 808F                                  lod r7,[r7]   ; cr
5337   1C66 00F3                                  ret   ; cr
5338                                    ay99  ; anon
5339                                          ;       if (*p != *q) break;
5340                                          ; 
5341   1C68 FE8C                                  lod  R1,[R7,#-4]   ; risf
5342   1C6A 00A5                                  lodb R2,[R1]   ; risf
5343   1C6C FD8C                                  lod  R1,[R7,#-6]   ; risf
5344   1C6E 80A5                                  lodb R3,[R1]   ; risf
5345   1C70 2BD1                                  cmp R2,R3   ; alu-l
5346   1C72 00D87A1C                              beq ay100 ; fjump F   ; cfj
5347   1C76 28D8881C                              bra ay98   ; anon
5348                                   ay100  ; anon
5349                                          ;       p++; q++;
5350                                          ; 
5351   1C7A FE8C                                  lod  R1,[R7,#-4]   ; risf
5352   1C7C 8900                                  add R1,#1   ; qas
5353   1C7E FE9C                                  str  R1,[R7,#-4]   ; qasmi
5354   1C80 FD8C                                  lod  R1,[R7,#-6]   ; risf
5355   1C82 8900                                  add R1,#1   ; qas
5356   1C84 FD9C                                  str  R1,[R7,#-6]   ; qasmi
5357   1C86 E8CA                                  bra ay97   ; anon
5358                                    ay98  ; anon
5359   1C88 A2CA                                  bra ay85   ; anon
5360                                    ay86  ; anon
5361                                          ; force VR0 to 0   ; pram
5362   1C8A 808F                                  lod r7,[r7]   ; cr
5363   1C8C 00F3                                  ret   ; cr
5364   1C8E 00                              ay94  .data 0
5365                                          
5366                                          
5367                                          ; Routine init_mylinein
5368   1C8F 00                                    .align 2 
5369                          _init_mylinein  .global
5370   1C90 809B                                  str r7,[r2]
5371   1C92 E2D3                                  mov r7,r2
5372   1C94 7F9F                                  str R6,[R7,#-2]
5373                                          ; ------------------------------------------------- 
5374                                          ; local i  [R7,#-4]
5375                                          ; s
5376                                          ; }
5377                                          ; 
5378                                          ; 
5379                                          ; 
5380                                          ; 
5381                                          ; 
5382                                          ; char *comp_char;
5383                                          ; 
5384                                          ; int comp_line;
5385                                          ; 
5386                                          ; 
5387                                          ; 
5388                                          ; void init_mylinein()
5389                                          ; 
5390                                          ; { 
5391                                          ; 
5392                                          ;   int i;
5393                                          ; 
5394                                          ;   pointer = 0;
5395                                          ; 
5396   1C96 6000                                  lod R0,#0   ; lti
5397   1C98 20D412DF                              str  R0,_pointer   ; assign
5398                                          ;   lineidx = 0;
5399                                          ; 
5400   1C9C 6000                                  lod R0,#0   ; lti
5401   1C9E 20D414DF                              str  R0,_lineidx   ; assign
5402                                          ;   for (i=0; i<(4) ; i++) 
5403                                          ; 
5404   1CA2 6000                                  lod R0,#0   ; lti
5405   1CA4 7E9C                                  str  R0,[R7,#-4]   ; assign
5406                                   ay101  ; anon
5407   1CA6 7E8C                                  lod  R0,[R7,#-4]   ; risf
5408   1CA8 2C00                                  cmp R0,#4   ; alu_i
5409   1CAA 0CD8DC1C                              bge ay102 ; fjump F   ; cfj
5410                                          ;     {
5411                                          ; 
5412                                          ;       lines[i] = (char *) malloc((132) +1);
5413                                          ; 
5414   1CAE 6540                                  lod R0,#133   ; lti
5415                                          ; force VR0 to 0   ; call
5416   1CB0 67D1                                  mov r2,r7   ; call
5417   1CB2 1205                                  sub r2,#10   ; call
5418   1CB4 3CD8F81F                              jsr _malloc   ; call
5419                                          ; force VR0 to 0   ; res
5420   1CB8 7E8D                                  lod  R2,[R7,#-4]   ; risf
5421   1CBA 4901                                  asl R2,#1   ; anon
5422   1CBC 80F418DF                              lod R1,#_lines   ; ltgd2
5423   1CC0 8AD0                                  add R1,R2   ; alu-l
5424   1CC2 0094                                  str  R0,[R1]   ; assign
5425                                          ;       lines[i][0] = (char) 0;
5426                                          ; 
5427   1CC4 FE8C                                  lod  R1,[R7,#-4]   ; risf
5428   1CC6 C900                                  asl R1,#1   ; anon
5429   1CC8 00F418DF                              lod R0,#_lines   ; ltgd2
5430   1CCC 09D0                                  add R0,R1   ; alu-l
5431   1CCE 6001                                  lod R2,#0   ; lti
5432   1CD0 8080                                  lod  R1,[R0]   ; risf
5433   1CD2 00B5                                  strb R2,[R1]   ; assign
5434   1CD4 7E8C                                  lod  R0,[R7,#-4]   ; risf
5435   1CD6 0900                                  add R0,#1   ; qas
5436   1CD8 7E9C                                  str  R0,[R7,#-4]   ; qasmi
5437   1CDA E6CA                                  bra ay101   ; anon
5438                                   ay102  ; anon
5439                                          ;     }
5440                                          ; 
5441                                          ;   linebuffer = (char *) malloc((132) +1);
5442                                          ; 
5443   1CDC 6540                                  lod R0,#133   ; lti
5444                                          ; force VR0 to 0   ; call
5445   1CDE 67D1                                  mov r2,r7   ; call
5446   1CE0 1205                                  sub r2,#10   ; call
5447   1CE2 3CD8F81F                              jsr _malloc   ; call
5448                                          ; force VR0 to 0   ; res
5449   1CE6 20D416DF                              str  R0,_linebuffer   ; assign
5450                                          ;   histline = 0;
5451                                          ; 
5452   1CEA 6000                                  lod R0,#0   ; lti
5453   1CEC 20D420DF                              str  R0,_histline   ; assign
5454                                          ;   comp_line = 0;
5455                                          ; 
5456   1CF0 6000                                  lod R0,#0   ; lti
5457   1CF2 20D424DF                              str  R0,_comp_line   ; assign
5458                                          ;   comp_char = linebuffer;
5459                                          ; 
5460   1CF6 00D416DF                              lod  R0,_linebuffer   ; ris
5461   1CFA 20D422DF                              str  R0,_comp_char   ; assign
5462   1CFE 7F8F                                  lod R6,[R7,#-2]   ; cr
5463   1D00 808F                                  lod r7,[r7]   ; cr
5464   1D02 00F3                                  ret   ; cr
5465                                          
5466                                          
5467                                          ; Routine forwardlines
5468                                          .align 2 
5469                           _forwardlines  .global
5470   1D04 809B                                  str r7,[r2]
5471   1D06 E2D3                                  mov r7,r2
5472   1D08 7F9F                                  str R6,[R7,#-2]
5473   1D0A 019C                                  str R0,[R7,#2]
5474                                          ; ------------------------------------------------- 
5475                                          ; local v  [R7,#2]
5476                                          ; s
5477                                          ; }
5478                                          ; 
5479                                          ; 
5480                                          ; 
5481                                          ; int forwardlines(v)
5482                                          ; 
5483                                          ; {
5484                                          ; 
5485                                          ;   v = (v==((4) -1)) ? 0 : v + 1;
5486                                          ; 
5487   1D0C 018C                                  lod  R0,[R7,#2]   ; risf
5488   1D0E 2B00                                  cmp R0,#3   ; alu_i
5489   1D10 04D81A1D                              bne ay103 ; fjump F   ; cfj
5490   1D14 6000                                  lod R0,#0   ; lti
5491   1D16 28D8201D                              bra ay104   ; anon
5492                                   ay103  ; anon
5493   1D1A 818C                                  lod  R1,[R7,#2]   ; risf
5494   1D1C 8900                                  add R1,#1   ; alu_i
5495   1D1E 61D0                                  mov R0,R1   ; ltmv
5496                                   ay104  ; anon
5497   1D20 019C                                  str  R0,[R7,#2]   ; assign
5498                                          ;   lbcopy(lines[v], linebuffer, (132) +1);
5499                                          ; 
5500   1D22 6540                                  lod R0,#133   ; lti
5501   1D24 7E9C                                  str  R0,[R7,#-4]   ; assign
5502   1D26 018C                                  lod  R0,[R7,#2]   ; risf
5503   1D28 4900                                  asl R0,#1   ; anon
5504   1D2A 80F418DF                              lod R1,#_lines   ; ltgd2
5505   1D2E 88D0                                  add R1,R0   ; alu-l
5506   1D30 0084                                  lod  R0,[R1]   ; risf
5507   1D32 80D416DF                              lod  R1,_linebuffer   ; ris
5508                                          ; force VR0 to 0   ; call
5509                                          ; force VR1 to 1   ; call
5510   1D36 67D1                                  mov r2,r7   ; call
5511   1D38 1205                                  sub r2,#10   ; call
5512   1D3A 3CD8881D                              jsr _lbcopy   ; call
5513                                          ; force VR0 to 0   ; res
5514                                          ;   return v;
5515                                          ; 
5516   1D3E 018C                                  lod  R0,[R7,#2]   ; risf
5517                                          ; force VR0 to 0   ; loadtod0
5518   1D40 7F8F                                  lod R6,[R7,#-2]   ; cr
5519   1D42 808F                                  lod r7,[r7]   ; cr
5520   1D44 00F3                                  ret   ; cr
5521                                          
5522                                          
5523                                          ; Routine backlines
5524                                          .align 2 
5525                              _backlines  .global
5526   1D46 809B                                  str r7,[r2]
5527   1D48 E2D3                                  mov r7,r2
5528   1D4A 7F9F                                  str R6,[R7,#-2]
5529   1D4C 019C                                  str R0,[R7,#2]
5530                                          ; ------------------------------------------------- 
5531                                          ; local v  [R7,#2]
5532                                          ; s
5533                                          ;   }
5534                                          ; 
5535                                          ; }
5536                                          ; 
5537                                          ; 
5538                                          ; 
5539                                          ; int backlines(v)
5540                                          ; 
5541                                          ; {
5542                                          ; 
5543                                          ;   v = (v==0) ? (4) -1 : v - 1;
5544                                          ; 
5545   1D4E 018C                                  lod  R0,[R7,#2]   ; risf
5546   1D50 2800                                  cmp R0,#0   ; gfv
5547   1D52 04D85C1D                              bne ay105 ; fjump F   ; cfj
5548   1D56 6300                                  lod R0,#3   ; lti
5549   1D58 28D8621D                              bra ay106   ; anon
5550                                   ay105  ; anon
5551   1D5C 818C                                  lod  R1,[R7,#2]   ; risf
5552   1D5E 9100                                  sub R1,#1   ; alu_i
5553   1D60 61D0                                  mov R0,R1   ; ltmv
5554                                   ay106  ; anon
5555   1D62 019C                                  str  R0,[R7,#2]   ; assign
5556                                          ;   lbcopy(lines[v], linebuffer, (132) +1);
5557                                          ; 
5558   1D64 6540                                  lod R0,#133   ; lti
5559   1D66 7E9C                                  str  R0,[R7,#-4]   ; assign
5560   1D68 018C                                  lod  R0,[R7,#2]   ; risf
5561   1D6A 4900                                  asl R0,#1   ; anon
5562   1D6C 80F418DF                              lod R1,#_lines   ; ltgd2
5563   1D70 88D0                                  add R1,R0   ; alu-l
5564   1D72 0084                                  lod  R0,[R1]   ; risf
5565   1D74 80D416DF                              lod  R1,_linebuffer   ; ris
5566                                          ; force VR0 to 0   ; call
5567                                          ; force VR1 to 1   ; call
5568   1D78 67D1                                  mov r2,r7   ; call
5569   1D7A 1205                                  sub r2,#10   ; call
5570   1D7C 3CD8881D                              jsr _lbcopy   ; call
5571                                          ; force VR0 to 0   ; res
5572                                          ;   return v;
5573                                          ; 
5574   1D80 018C                                  lod  R0,[R7,#2]   ; risf
5575                                          ; force VR0 to 0   ; loadtod0
5576   1D82 7F8F                                  lod R6,[R7,#-2]   ; cr
5577   1D84 808F                                  lod r7,[r7]   ; cr
5578   1D86 00F3                                  ret   ; cr
5579                                          
5580                                          
5581                                          ; Routine lbcopy
5582                                          .align 2 
5583                                 _lbcopy  .global
5584   1D88 809B                                  str r7,[r2]
5585   1D8A E2D3                                  mov r7,r2
5586   1D8C 7F9F                                  str R6,[R7,#-2]
5587   1D8E 019C                                  str R0,[R7,#2]
5588   1D90 829C                                  str R1,[R7,#4]
5589                                          ; ------------------------------------------------- 
5590                                          ; local src  [R7,#2]
5591                                          ; s
5592                                          ; local dest  [R7,#4]
5593                                          ; s
5594                                          ; local count  [R7,#6]
5595                                          ; s
5596                                          ;  
5597                                          ; 
5598                                          ; }
5599                                          ; 
5600                                          ; 
5601                                          ; 
5602                                          ; 
5603                                          ; 
5604                                          ; 
5605                                          ; 
5606                                          ; 
5607                                          ; 
5608                                          ; 
5609                                          ; 
5610                                          ; char *lines[(4) ];
5611                                          ; 
5612                                          ; int histline;
5613                                          ; 
5614                                          ; 
5615                                          ; 
5616                                          ; extern void sayprompt();
5617                                          ; 
5618                                          ; 
5619                                          ; 
5620                                          ; int lbcopy(char *src, char *dest, int count)
5621                                          ; 
5622                                          ; {
5623                                          ; 
5624                                          ;   while (count-- > 0)
5625                                          ; 
5626                                   ay109  ; anon
5627   1D92 038C                                  lod  R0,[R7,#6]   ; risf
5628   1D94 E0D0                                  mov R1,R0   ; qasp1
5629   1D96 9100                                  sub R1,#1   ; qasp
5630   1D98 839C                                  str  R1,[R7,#6]   ; qasp
5631   1D9A 2800                                  cmp R0,#0   ; gfv
5632   1D9C 14D8B61D                              ble ay110 ; fjump F   ; cfj
5633                                          ;   {
5634                                          ; 
5635                                          ;     *dest++ = *src++;
5636                                          ; 
5637   1DA0 018C                                  lod  R0,[R7,#2]   ; risf
5638   1DA2 E0D0                                  mov R1,R0   ; qasp1
5639   1DA4 8900                                  add R1,#1   ; qasp
5640   1DA6 819C                                  str  R1,[R7,#2]   ; qasp
5641   1DA8 828C                                  lod  R1,[R7,#4]   ; risf
5642   1DAA 61D1                                  mov R2,R1   ; qasp1
5643   1DAC 0901                                  add R2,#1   ; qasp
5644   1DAE 029D                                  str  R2,[R7,#4]   ; qasp
5645   1DB0 00A1                                  lodb R2,[R0]   ; risf
5646   1DB2 00B5                                  strb R2,[R1]   ; assign
5647   1DB4 EFCA                                  bra ay109   ; anon
5648                                   ay110  ; anon
5649   1DB6 7F8F                                  lod R6,[R7,#-2]   ; cr
5650   1DB8 808F                                  lod r7,[r7]   ; cr
5651   1DBA 00F3                                  ret   ; cr
5652                                          
5653                                          
5654                                          ; Routine cookedchar
5655                                          .align 2 
5656                             _cookedchar  .global
5657   1DBC 809B                                  str r7,[r2]
5658   1DBE E2D3                                  mov r7,r2
5659   1DC0 7F9F                                  str R6,[R7,#-2]
5660   1DC2 019C                                  str R0,[R7,#2]
5661                                          ; ------------------------------------------------- 
5662                                          ; local c  [R7,#2]
5663                                          ; s
5664                                          ;   }
5665                                          ; 
5666                                          ; }
5667                                          ; 
5668                                          ; 
5669                                          ; 
5670                                          ; 
5671                                          ; 
5672                                          ; void cookedchar (char c)
5673                                          ; 
5674                                          ; { 
5675                                          ; 
5676                                          ;   if (c != '\n')
5677                                          ; 
5678   1DC4 01AC                                  lodb R0,[R7,#2]   ; risf
5679   1DC6 2A04                                  cmp R0,#10   ; alu_i
5680   1DC8 00D8DC1D                              beq ay111 ; fjump F   ; cfj
5681                                          ;   {
5682                                          ; 
5683                                          ;     putchar(c);
5684                                          ; 
5685   1DCC 01AC                                  lodb R0,[R7,#2]   ; risf
5686                                          ; force VR0 to 0   ; call
5687   1DCE 67D1                                  mov r2,r7   ; call
5688   1DD0 1005                                  sub r2,#8   ; call
5689   1DD2 3CD8CE2B                              jsr _putchar   ; call
5690                                          ; force VR0 to 0   ; res
5691                                          ;     return;
5692                                          ; 
5693   1DD6 7F8F                                  lod R6,[R7,#-2]   ; cr
5694   1DD8 808F                                  lod r7,[r7]   ; cr
5695   1DDA 00F3                                  ret   ; cr
5696                                   ay111  ; anon
5697                                          ;   }
5698                                          ; 
5699                                          ; 
5700                                          ; 
5701                                          ;   putchar(c);
5702                                          ; 
5703   1DDC 01AC                                  lodb R0,[R7,#2]   ; risf
5704                                          ; force VR0 to 0   ; call
5705   1DDE 67D1                                  mov r2,r7   ; call
5706   1DE0 1005                                  sub r2,#8   ; call
5707   1DE2 3CD8CE2B                              jsr _putchar   ; call
5708                                          ; force VR0 to 0   ; res
5709                                          ;   return;
5710                                          ; 
5711   1DE6 7F8F                                  lod R6,[R7,#-2]   ; cr
5712   1DE8 808F                                  lod r7,[r7]   ; cr
5713   1DEA 00F3                                  ret   ; cr
5714                                          
5715                                          
5716                                          ; Routine cookcharin
5717                                          .align 2 
5718                             _cookcharin  .global
5719   1DEC 809B                                  str r7,[r2]
5720   1DEE E2D3                                  mov r7,r2
5721   1DF0 7F9F                                  str R6,[R7,#-2]
5722                                          ; ------------------------------------------------- 
5723                                          ; local c  [R7,#-4]
5724                                          ; s
5725                                          ; }
5726                                          ; 
5727                                          ; 
5728                                          ; 
5729                                          ; 
5730                                          ; 
5731                                          ; 
5732                                          ; 
5733                                          ; 
5734                                          ; 
5735                                          ; 
5736                                          ; 
5737                                          ; 
5738                                          ; 
5739                                          ; char cookcharin()
5740                                          ; 
5741                                          ; {
5742                                          ; 
5743                                          ;   char c;
5744                                          ; 
5745                                          ;    ;
5746                                          ; 
5747                                          ;   while(1)
5748                                          ; 
5749                                   ay112  ; anon
5750                                          ;   {
5751                                          ; 
5752                                          ;     c = getchar() & 0x7F;   
5753                                          ; 
5754   1DF2 67D1                                  mov r2,r7   ; call
5755   1DF4 1205                                  sub r2,#10   ; call
5756   1DF6 3CD8401F                              jsr _getchar   ; call
5757                                          ; force VR0 to 0   ; res
5758   1DFA 3F3C                                  and R0,#127   ; alu_i
5759   1DFC 7EBC                                  strb R0,[R7,#-4]   ; assign
5760                                          ;      ;
5761                                          ; 
5762                                          ;     return c;
5763                                          ; 
5764   1DFE 7EAC                                  lodb R0,[R7,#-4]   ; risf
5765                                          ; force VR0 to 0   ; loadtod0
5766   1E00 7F8F                                  lod R6,[R7,#-2]   ; cr
5767   1E02 808F                                  lod r7,[r7]   ; cr
5768   1E04 00F3                                  ret   ; cr
5769   1E06 F6CA                                  bra ay112   ; anon
5770                                   ay113  ; anon
5771   1E08 7F8F                                  lod R6,[R7,#-2]   ; cr
5772   1E0A 808F                                  lod r7,[r7]   ; cr
5773   1E0C 00F3                                  ret   ; cr
5774                                          
5775                                          
5776                                          ; Routine rhex
5777                                          .align 2 
5778                                   _rhex  .global
5779   1E0E 809B                                  str r7,[r2]
5780   1E10 E2D3                                  mov r7,r2
5781   1E12 7F9F                                  str R6,[R7,#-2]
5782   1E14 019C                                  str R0,[R7,#2]
5783                                          ; ------------------------------------------------- 
5784                                          ; local p  [R7,#2]
5785                                          ; s
5786                                          ; local v  [R7,#-4]
5787                                          ; s
5788   1E16 818C                                  lod  R1,[R7,#2]   ; risf
5789   1E18 61D0                                  mov R0,R1   ; qasp1
5790   1E1A 0900                                  add R0,#1   ; qasp
5791   1E1C 019C                                  str  R0,[R7,#2]   ; qasp
5792   1E1E 00A4                                  lodb R0,[R1]   ; risf
5793                                          ; force VR0 to 0   ; call
5794   1E20 67D1                                  mov r2,r7   ; call
5795   1E22 1005                                  sub r2,#8   ; call
5796   1E24 3CD8641E                              jsr _digit   ; call
5797                                          ; force VR0 to 0   ; res
5798   1E28 7E9C                                  str  R0,[R7,#-4]   ; assign
5799                                          ; local s  [R7,#-6]
5800                                          ; s
5801   1E2A 6000                                  lod R0,#0   ; lti
5802   1E2C 7D9C                                  str  R0,[R7,#-6]   ; assign
5803                                          ; }
5804                                          ; 
5805                                          ; 
5806                                          ; 
5807                                          ; 
5808                                          ; 
5809                                          ; 
5810                                          ; 
5811                                          ; int rhex(char *p)
5812                                          ; 
5813                                          ; { 
5814                                          ; 
5815                                          ;   int v = digit(*p++);
5816                                          ; 
5817                                          ;   int s = 0;
5818                                          ; 
5819                                          ;   while (v >= 0)
5820                                          ; 
5821                                   ay114  ; anon
5822   1E2E 7E8C                                  lod  R0,[R7,#-4]   ; risf
5823   1E30 2800                                  cmp R0,#0   ; gfv
5824   1E32 08D85C1E                              blt ay115 ; fjump F   ; cfj
5825                                          ;   {
5826                                          ; 
5827                                          ;     s = (s << 4) + v;
5828                                          ; 
5829   1E36 7D8C                                  lod  R0,[R7,#-6]   ; risf
5830   1E38 4900                                  asl R0,#1   ; fshif
5831   1E3A 4900                                  asl R0,#1   ; fshif
5832   1E3C 4900                                  asl R0,#1   ; fshif
5833   1E3E 4900                                  asl R0,#1   ; fshif
5834   1E40 FE8C                                  lod  R1,[R7,#-4]   ; risf
5835   1E42 09D0                                  add R0,R1   ; alu-l
5836   1E44 7D9C                                  str  R0,[R7,#-6]   ; assign
5837                                          ;     v = digit(*p++);
5838                                          ; 
5839   1E46 818C                                  lod  R1,[R7,#2]   ; risf
5840   1E48 61D0                                  mov R0,R1   ; qasp1
5841   1E4A 0900                                  add R0,#1   ; qasp
5842   1E4C 019C                                  str  R0,[R7,#2]   ; qasp
5843   1E4E 00A4                                  lodb R0,[R1]   ; risf
5844                                          ; force VR0 to 0   ; call
5845   1E50 67D1                                  mov r2,r7   ; call
5846   1E52 1405                                  sub r2,#12   ; call
5847   1E54 3CD8641E                              jsr _digit   ; call
5848                                          ; force VR0 to 0   ; res
5849   1E58 7E9C                                  str  R0,[R7,#-4]   ; assign
5850   1E5A EACA                                  bra ay114   ; anon
5851                                   ay115  ; anon
5852                                          ;   }
5853                                          ; 
5854                                          ;   return s;
5855                                          ; 
5856   1E5C 7D8C                                  lod  R0,[R7,#-6]   ; risf
5857                                          ; force VR0 to 0   ; loadtod0
5858   1E5E 7F8F                                  lod R6,[R7,#-2]   ; cr
5859   1E60 808F                                  lod r7,[r7]   ; cr
5860   1E62 00F3                                  ret   ; cr
5861                                          
5862                                          
5863                                          ; Routine digit
5864                                          .align 2 
5865                                  _digit  .global
5866   1E64 809B                                  str r7,[r2]
5867   1E66 E2D3                                  mov r7,r2
5868                                          ; ------------------------------------------------- 
5869                                          ; local c  R473
5870                                          ; s
5871                                          ; force VR0 to 0   ; pram
5872                                          ; }
5873                                          ; 
5874                                          ; 
5875                                          ; 
5876                                          ; int digit(char c) 
5877                                          ; 
5878                                          ; { 
5879                                          ; 
5880                                          ;   if (c <'0') return -1;
5881                                          ; 
5882   1E68 2818                                  cmp R0,#48   ; alu_i
5883   1E6A 0CD8781E                              bge ay116 ; fjump F   ; cfj
5884   1E6E 80F4FFFF                              lod R1,#-1   ; lti
5885   1E72 61D0                                  mov R0,R1   ; forceresolve
5886   1E74 808F                                  lod r7,[r7]   ; cr
5887   1E76 00F3                                  ret   ; cr
5888                                   ay116  ; anon
5889                                          ;   if (c <= '9') return c - '0';
5890                                          ; 
5891   1E78 291C                                  cmp R0,#57   ; alu_i
5892   1E7A 10D8841E                              bgt ay117 ; fjump F   ; cfj
5893   1E7E 1018                                  sub R0,#48   ; alu_i
5894                                          ; force VR0 to 0   ; loadtod0
5895   1E80 808F                                  lod r7,[r7]   ; cr
5896   1E82 00F3                                  ret   ; cr
5897                                   ay117  ; anon
5898                                          ;   if (c < 'A') return -1;
5899                                          ; 
5900   1E84 2920                                  cmp R0,#65   ; alu_i
5901   1E86 0CD8941E                              bge ay118 ; fjump F   ; cfj
5902   1E8A 80F4FFFF                              lod R1,#-1   ; lti
5903   1E8E 61D0                                  mov R0,R1   ; forceresolve
5904   1E90 808F                                  lod r7,[r7]   ; cr
5905   1E92 00F3                                  ret   ; cr
5906                                   ay118  ; anon
5907                                          ;   if (c <= 'F') return c - 'A' + 10;
5908                                          ; 
5909   1E94 2E20                                  cmp R0,#70   ; alu_i
5910   1E96 10D8A81E                              bgt ay119 ; fjump F   ; cfj
5911   1E9A 1120                                  sub R0,#65   ; alu_i
5912   1E9C E0D0                                  mov R1,R0   ; lt-u
5913   1E9E 8A04                                  add R1,#10   ; ltgr
5914   1EA0 61D1                                  mov R2,R1   ; ltmv
5915   1EA2 62D0                                  mov R0,R2   ; forceresolve
5916   1EA4 808F                                  lod r7,[r7]   ; cr
5917   1EA6 00F3                                  ret   ; cr
5918                                   ay119  ; anon
5919                                          ;   if (c < 'a') return -1;
5920                                          ; 
5921   1EA8 2930                                  cmp R0,#97   ; alu_i
5922   1EAA 0CD8B81E                              bge ay120 ; fjump F   ; cfj
5923   1EAE 80F4FFFF                              lod R1,#-1   ; lti
5924   1EB2 61D0                                  mov R0,R1   ; forceresolve
5925   1EB4 808F                                  lod r7,[r7]   ; cr
5926   1EB6 00F3                                  ret   ; cr
5927                                   ay120  ; anon
5928                                          ;   if (c <= 'f') return c - 'a' + 10;
5929                                          ; 
5930   1EB8 2E30                                  cmp R0,#102   ; alu_i
5931   1EBA 10D8CC1E                              bgt ay121 ; fjump F   ; cfj
5932   1EBE 1130                                  sub R0,#97   ; alu_i
5933   1EC0 E0D0                                  mov R1,R0   ; lt-u
5934   1EC2 8A04                                  add R1,#10   ; ltgr
5935   1EC4 61D1                                  mov R2,R1   ; ltmv
5936   1EC6 62D0                                  mov R0,R2   ; forceresolve
5937   1EC8 808F                                  lod r7,[r7]   ; cr
5938   1ECA 00F3                                  ret   ; cr
5939                                   ay121  ; anon
5940                                          ;   return -1;
5941                                          ; 
5942   1ECC 80F4FFFF                              lod R1,#-1   ; lti
5943   1ED0 61D0                                  mov R0,R1   ; forceresolve
5944   1ED2 808F                                  lod r7,[r7]   ; cr
5945   1ED4 00F3                                  ret   ; cr
5946                                          ; force VR0 to 0   ; pram
5947                                          
5948                                          
5949                                          ; Routine unnextch
5950                                          .align 2 
5951                               _unnextch  .global
5952   1ED6 809B                                  str r7,[r2]
5953   1ED8 E2D3                                  mov r7,r2
5954                                          ; ------------------------------------------------- 
5955                                          ; }
5956                                          ; 
5957                                          ; 
5958                                          ; 
5959                                          ; unnextch()
5960                                          ; 
5961                                          ; { 
5962                                          ; 
5963                                          ;   if (pointer) pointer -= 1;
5964                                          ; 
5965   1EDA 00D412DF                              lod  R0,_pointer   ; ris
5966   1EDE 2800                                  cmp R0,#0   ; gfv
5967   1EE0 00D8EE1E                              beq ay122 ; fjmp1   ; cfj
5968   1EE4 00D412DF                              lod  R0,_pointer   ; ris
5969   1EE8 1100                                  sub R0,#1   ; alu_i
5970   1EEA 20D412DF                              str  R0,_pointer   ; assign
5971                                   ay122  ; anon
5972   1EEE 808F                                  lod r7,[r7]   ; cr
5973   1EF0 00F3                                  ret   ; cr
5974                                          
5975                                          
5976                                          ; Routine nextch1
5977                                          .align 2 
5978                                _nextch1  .global
5979   1EF2 809B                                  str r7,[r2]
5980   1EF4 E2D3                                  mov r7,r2
5981                                          ; ------------------------------------------------- 
5982                                          ; }
5983                                          ; 
5984                                          ; 
5985                                          ; 
5986                                          ; char nextch1()
5987                                          ; 
5988                                          ; { 
5989                                          ; 
5990                                          ;   return linebuffer[pointer++];
5991                                          ; 
5992   1EF6 00D412DF                              lod  R0,_pointer   ; ris
5993   1EFA E0D0                                  mov R1,R0   ; qasp1
5994   1EFC 8900                                  add R1,#1   ; qasp
5995   1EFE A0D412DF                              str  R1,_pointer   ; qasp
5996   1F02 80D416DF                              lod  R1,_linebuffer   ; ris
5997   1F06 88D0                                  add R1,R0   ; alu-l
5998   1F08 00A4                                  lodb R0,[R1]   ; risf
5999                                          ; force VR0 to 0   ; loadtod0
6000   1F0A 808F                                  lod r7,[r7]   ; cr
6001   1F0C 00F3                                  ret   ; cr
6002                                          
6003                                          
6004                                          ; Routine nextch
6005                                          .align 2 
6006                                 _nextch  .global
6007   1F0E 809B                                  str r7,[r2]
6008   1F10 E2D3                                  mov r7,r2
6009                                          ; ------------------------------------------------- 
6010                                          ; local r  [R7,#-4]
6011                                          ; s
6012                                          ; 
6013                                          ; 
6014                                          ; 
6015                                          ; 
6016                                          ; 
6017                                          ; 
6018                                          ; 
6019                                          ; 
6020                                          ; 
6021                                          ; 
6022                                          ; typedef unsigned char uchar;
6023                                          ; 
6024                                          ; 
6025                                          ; 
6026                                          ; 
6027                                          ; 
6028                                          ; 
6029                                          ; 
6030                                          ; 
6031                                          ; 
6032                                          ; 
6033                                          ; 
6034                                          ; typedef struct stdio 
6035                                          ; 
6036                                          ; {
6037                                          ; 
6038                                          ;   int flags;
6039                                          ; 
6040                                          ;   int sysfd;
6041                                          ; 
6042                                          ;   int mode;
6043                                          ; 
6044                                          ;   int bytes;
6045                                          ; 
6046                                          ;   char *poi;
6047                                          ; 
6048                                          ;   int error;
6049                                          ; 
6050                                          ;   int index;
6051                                          ; 
6052                                          ;   char data[32 ];
6053                                          ; 
6054                                          ; } STDIO;
6055                                          ; 
6056                                          ; 
6057                                          ; 
6058                                          ; 
6059                                          ; 
6060                                          ; extern int open(char *, int);
6061                                          ; 
6062                                          ; extern int close(char *, int);
6063                                          ; 
6064                                          ; extern int main(int, char **);
6065                                          ; 
6066                                          ; extern void _sa_wrch(char);
6067                                          ; 
6068                                          ; extern char _sa_rdch();
6069                                          ; 
6070                                          ; 
6071                                          ; 
6072                                          ; extern char getchar();
6073                                          ; 
6074                                          ; extern void putchar(char);
6075                                          ; 
6076                                          ; extern char toupper(char);
6077                                          ; 
6078                                          ; extern char tolower(char);
6079                                          ; 
6080                                          ; extern int strlen(const char *);
6081                                          ; 
6082                                          ; extern int strcmp(const char *, const char *);
6083                                          ; 
6084                                          ; extern int strncmp(char *, char *, int);
6085                                          ; 
6086                                          ; extern int console_flags;
6087                                          ; 
6088                                          ; extern void exit(int);
6089                                          ; 
6090                                          ; extern char *malloc(int);
6091                                          ; 
6092                                          ; extern int _exit(int);
6093                                          ; 
6094                                          ; extern int strlen(char *);
6095                                          ; 
6096                                          ; extern int isdigit(char);
6097                                          ; 
6098                                          ; extern int atoi(char *);
6099                                          ; 
6100                                          ; extern int checkend();
6101                                          ; 
6102                                          ; extern char *strncpy(char *, char *, int);
6103                                          ; 
6104                                          ; extern void flush_dtoi();
6105                                          ; 
6106                                          ; extern void printf();
6107                                          ; 
6108                                          ; 
6109                                          ; 
6110                                          ; 
6111                                          ; 
6112                                          ; 
6113                                          ; 
6114                                          ; 
6115                                          ; 
6116                                          ; int pointer, lineidx;
6117                                          ; 
6118                                          ; char *linebuffer;
6119                                          ; 
6120                                          ; 
6121                                          ; 
6122                                          ; 
6123                                          ; 
6124                                          ; 
6125                                          ; 
6126                                          ; char nextch()
6127                                          ; 
6128                                          ; { 
6129                                          ; 
6130                                          ;   char r;
6131                                          ; 
6132                                          ;   do 
6133                                          ; 
6134                                   ay123  ; anon
6135                                          ;   { 
6136                                          ; 
6137                                          ;     r = linebuffer[pointer++]; 
6138                                          ; 
6139   1F12 80D412DF                              lod  R1,_pointer   ; ris
6140   1F16 61D0                                  mov R0,R1   ; qasp1
6141   1F18 0900                                  add R0,#1   ; qasp
6142   1F1A 20D412DF                              str  R0,_pointer   ; qasp
6143   1F1E 00D416DF                              lod  R0,_linebuffer   ; ris
6144   1F22 09D0                                  add R0,R1   ; alu-l
6145   1F24 80A0                                  lodb R1,[R0]   ; risf
6146   1F26 FEBC                                  strb R1,[R7,#-4]   ; assign
6147   1F28 7EAC                                  lodb R0,[R7,#-4]   ; risf
6148   1F2A 2810                                  cmp R0,#32   ; alu_i
6149   1F2C F3C0                                  beq ay123   ; ctj
6150                                          ;   } while (r == ' ');
6151                                          ; 
6152                                          ; 
6153                                          ; 
6154                                          ;   return r;
6155                                          ; 
6156   1F2E 7EAC                                  lodb R0,[R7,#-4]   ; risf
6157                                          ; force VR0 to 0   ; loadtod0
6158   1F30 808F                                  lod r7,[r7]   ; cr
6159   1F32 00F3                                  ret   ; cr
6160                                          ; _open  .extern
6161                                          ; _close  .extern
6162                                          ; _main  .extern
6163                                          ; __sa_wrch  .extern
6164                                          ; __sa_rdch  .extern
6165                                          ; _getchar  .extern
6166                                          ; _putchar  .extern
6167                                          ; _toupper  .extern
6168                                          ; _tolower  .extern
6169                                          ; _strlen  .extern
6170                                          ; _strcmp  .extern
6171                                          ; _strncmp  .extern
6172                                          .bss
6173                                          ;_console_flags  .extern
6174                                          ; _exit  .extern
6175                                          ; _malloc  .extern
6176                                          ; __exit  .extern
6177                                          ; _strlen  .extern
6178                                          ; _isdigit  .extern
6179                                          ; _atoi  .extern
6180                                          ; _checkend  .extern
6181                                          ; _strncpy  .extern
6182                                          ; _flush_dtoi  .extern
6183                                          ; _printf  .extern
6184                                  _stdin  .global
6185   DF46 0000                                  .defs 2
6188                                 _stdout  .global
6189   DF48 0000                                  .defs 2
6192                                 _stderr  .global
6193   DF4A 0000                                  .defs 2
6196                                  _errno  .global
6197   DF4C 0000                                  .defs 2
6200                                    _deb  .global
6201   DF4E 0000                                  .defs 2
6204                            _kmalloc_poi  .global
6205   DF50 0000                                  .defs 2
6208                                    _spf  
6209   DF52 0000                                  .defs 2
6212                                __spfbuf  
6213   DF54 00000000                              .defs 1024
            000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
7238                              __zeroflag  
7239   E354 00                                    .defs 1
7241                                          ;_kmalloc_poi  .extern
7242                                          .text
7243                                          
7244                                          
7245                                          ; Routine ioctl
7246                                          .align 2 
7247                                  _ioctl  .global
7248   1F34 809B                                  str r7,[r2]
7249   1F36 E2D3                                  mov r7,r2
7250                                          ; ------------------------------------------------- 
7251                                          ; }
7252                                          ; 
7253                                          ; 
7254                                          ; 
7255                                          ; 
7256                                          ; 
7257                                          ; int ioctl()
7258                                          ; 
7259                                          ; {
7260                                          ; 
7261                                          ;   return -1;
7262                                          ; 
7263   1F38 00F4FFFF                              lod R0,#-1   ; lti
7264                                          ; force VR0 to 0   ; loadtod0
7265   1F3C 808F                                  lod r7,[r7]   ; cr
7266   1F3E 00F3                                  ret   ; cr
7267                                          
7268                                          
7269                                          ; Routine getchar
7270                                          .align 2 
7271                                _getchar  .global
7272   1F40 809B                                  str r7,[r2]
7273   1F42 E2D3                                  mov r7,r2
7274   1F44 7F9F                                  str R6,[R7,#-2]
7275                                          ; ------------------------------------------------- 
7276                                          ; }
7277                                          ; 
7278                                          ; 
7279                                          ; 
7280                                          ; char getchar()
7281                                          ; 
7282                                          ; {
7283                                          ; 
7284                                          ;   return _sa_rdch ();
7285                                          ; 
7286   1F46 67D1                                  mov r2,r7   ; call
7287   1F48 1005                                  sub r2,#8   ; call
7288   1F4A 3CD81A00                              jsr __sa_rdch   ; call
7289                                          ; force VR0 to 0   ; res
7290                                          ; force VR0 to 0   ; loadtod0
7291   1F4E 7F8F                                  lod R6,[R7,#-2]   ; cr
7292   1F50 808F                                  lod r7,[r7]   ; cr
7293   1F52 00F3                                  ret   ; cr
7294                                          
7295                                          
7296                                          ; Routine read
7297                                          .align 2 
7298                                   _read  .global
7299   1F54 809B                                  str r7,[r2]
7300   1F56 E2D3                                  mov r7,r2
7301   1F58 7F9F                                  str R6,[R7,#-2]
7302   1F5A 019C                                  str R0,[R7,#2]
7303   1F5C 829C                                  str R1,[R7,#4]
7304                                          ; ------------------------------------------------- 
7305                                          ; local f  [R7,#2]
7306                                          ; s
7307                                          ; local buf  [R7,#4]
7308                                          ; s
7309                                          ; local len  [R7,#6]
7310                                          ; s
7311                                          ; local c  [R7,#-4]
7312                                          ; s
7313   1F5E 67D1                                  mov r2,r7   ; call
7314   1F60 1005                                  sub r2,#8   ; call
7315   1F62 3CD81A00                              jsr __sa_rdch   ; call
7316                                          ; force VR0 to 0   ; res
7317   1F66 7EBC                                  strb R0,[R7,#-4]   ; assign
7318                                          ; }
7319                                          ; 
7320                                          ; 
7321                                          ; 
7322                                          ; 
7323                                          ; 
7324                                          ; 
7325                                          ; 
7326                                          ; int read(int f, char *buf, int len)
7327                                          ; 
7328                                          ; {
7329                                          ; 
7330                                          ;   char c = _sa_rdch ();
7331                                          ; 
7332                                          ;   *buf = c;
7333                                          ; 
7334   1F68 FEAC                                  lodb R1,[R7,#-4]   ; risf
7335   1F6A 028C                                  lod  R0,[R7,#4]   ; risf
7336   1F6C 80B0                                  strb R1,[R0]   ; assign
7337                                          ;   return 1;
7338                                          ; 
7339   1F6E 6100                                  lod R0,#1   ; lti
7340                                          ; force VR0 to 0   ; loadtod0
7341   1F70 7F8F                                  lod R6,[R7,#-2]   ; cr
7342   1F72 808F                                  lod r7,[r7]   ; cr
7343   1F74 00F3                                  ret   ; cr
7344                                          
7345                                          
7346                                          ; Routine sa_write
7347                                          .align 2 
7348                               _sa_write  .global
7349   1F76 809B                                  str r7,[r2]
7350   1F78 E2D3                                  mov r7,r2
7351   1F7A 7F9F                                  str R6,[R7,#-2]
7352   1F7C 019C                                  str R0,[R7,#2]
7353   1F7E 829C                                  str R1,[R7,#4]
7354                                          ; ------------------------------------------------- 
7355                                          ; local buf  [R7,#2]
7356                                          ; s
7357                                          ; local len  [R7,#4]
7358                                          ; s
7359                                          ; local checksum  [R7,#-4]
7360                                          ; s
7361   1F80 6724                                  lod R0,#79   ; lti
7362   1F82 7EBC                                  strb R0,[R7,#-4]   ; assign
7363                                          ; }
7364                                          ; 
7365                                          ; 
7366                                          ; 
7367                                          ; 
7368                                          ; 
7369                                          ; int sa_write(char *buf, int len)
7370                                          ; 
7371                                          ; {
7372                                          ; 
7373                                          ;   unsigned char checksum='O';
7374                                          ; 
7375                                          ;    ;
7376                                          ; 
7377                                          ;   while (len >0)
7378                                          ; 
7379                                    br10  ; anon
7380   1F84 028C                                  lod  R0,[R7,#4]   ; risf
7381   1F86 2800                                  cmp R0,#0   ; gfv
7382   1F88 14D8BC1F                              ble br11 ; fjump F   ; cfj
7383                                          ;     {
7384                                          ; 
7385                                          ; local c  [R7,#-6]
7386                                          ; s
7387   1F8C 018C                                  lod  R0,[R7,#2]   ; risf
7388   1F8E E0D0                                  mov R1,R0   ; qasp1
7389   1F90 8900                                  add R1,#1   ; qasp
7390   1F92 819C                                  str  R1,[R7,#2]   ; qasp
7391   1F94 80A0                                  lodb R1,[R0]   ; risf
7392   1F96 FDBC                                  strb R1,[R7,#-6]   ; assign
7393                                          ;       char c=*buf++;
7394                                          ; 
7395                                          ;       if (c == '\n')
7396                                          ; 
7397   1F98 7DAC                                  lodb R0,[R7,#-6]   ; risf
7398   1F9A 2A04                                  cmp R0,#10   ; alu_i
7399   1F9C 04D8AA1F                              bne br12 ; fjump F   ; cfj
7400                                          ;  {
7401                                          ; 
7402                                          ;    _sa_wrch(13);
7403                                          ; 
7404   1FA0 6504                                  lod R0,#13   ; lti
7405                                          ; force VR0 to 0   ; call
7406   1FA2 67D1                                  mov r2,r7   ; call
7407   1FA4 1405                                  sub r2,#12   ; call
7408   1FA6 3CD80C00                              jsr __sa_wrch   ; call
7409                                          ; force VR0 to 0   ; res
7410                                    br12  ; anon
7411                                          ;  }
7412                                          ; 
7413                                          ;       _sa_wrch(c);
7414                                          ; 
7415   1FAA 7DAC                                  lodb R0,[R7,#-6]   ; risf
7416                                          ; force VR0 to 0   ; call
7417   1FAC 67D1                                  mov r2,r7   ; call
7418   1FAE 1405                                  sub r2,#12   ; call
7419   1FB0 3CD80C00                              jsr __sa_wrch   ; call
7420                                          ; force VR0 to 0   ; res
7421                                          ;       len -= 1;
7422                                          ; 
7423   1FB4 028C                                  lod  R0,[R7,#4]   ; risf
7424   1FB6 1100                                  sub R0,#1   ; alu_i
7425   1FB8 029C                                  str  R0,[R7,#4]   ; assign
7426   1FBA E5CA                                  bra br10   ; anon
7427                                    br11  ; anon
7428                                          ;     }
7429                                          ; 
7430                                          ;   return 0;
7431                                          ; 
7432   1FBC 6000                                  lod R0,#0   ; lti
7433                                          ; force VR0 to 0   ; loadtod0
7434   1FBE 7F8F                                  lod R6,[R7,#-2]   ; cr
7435   1FC0 808F                                  lod r7,[r7]   ; cr
7436   1FC2 00F3                                  ret   ; cr
7437                                          
7438                                          
7439                                          ; Routine write
7440                                          .align 2 
7441                                  _write  .global
7442   1FC4 809B                                  str r7,[r2]
7443   1FC6 E2D3                                  mov r7,r2
7444   1FC8 7F9F                                  str R6,[R7,#-2]
7445   1FCA 019C                                  str R0,[R7,#2]
7446   1FCC 829C                                  str R1,[R7,#4]
7447                                          ; ------------------------------------------------- 
7448                                          ; local fd  [R7,#2]
7449                                          ; s
7450                                          ; local buf  [R7,#4]
7451                                          ; s
7452                                          ; local len  [R7,#6]
7453                                          ; s
7454                                          ; }
7455                                          ; 
7456                                          ; 
7457                                          ; 
7458                                          ; 
7459                                          ; 
7460                                          ; int write(int fd, char *buf, int len)
7461                                          ; 
7462                                          ; {
7463                                          ; 
7464                                          ;    ;
7465                                          ; 
7466                                          ;   while (len >0)
7467                                          ; 
7468                                    br13  ; anon
7469   1FCE 038C                                  lod  R0,[R7,#6]   ; risf
7470   1FD0 2800                                  cmp R0,#0   ; gfv
7471   1FD2 14D8F01F                              ble br14 ; fjump F   ; cfj
7472                                          ;     {
7473                                          ; 
7474                                          ;       _sa_wrch(*buf++);
7475                                          ; 
7476   1FD6 828C                                  lod  R1,[R7,#4]   ; risf
7477   1FD8 61D0                                  mov R0,R1   ; qasp1
7478   1FDA 0900                                  add R0,#1   ; qasp
7479   1FDC 029C                                  str  R0,[R7,#4]   ; qasp
7480   1FDE 00A4                                  lodb R0,[R1]   ; risf
7481                                          ; force VR0 to 0   ; call
7482   1FE0 67D1                                  mov r2,r7   ; call
7483   1FE2 1005                                  sub r2,#8   ; call
7484   1FE4 3CD80C00                              jsr __sa_wrch   ; call
7485                                          ; force VR0 to 0   ; res
7486                                          ;       len -= 1;
7487                                          ; 
7488   1FE8 038C                                  lod  R0,[R7,#6]   ; risf
7489   1FEA 1100                                  sub R0,#1   ; alu_i
7490   1FEC 039C                                  str  R0,[R7,#6]   ; assign
7491   1FEE F0CA                                  bra br13   ; anon
7492                                    br14  ; anon
7493                                          ;     }
7494                                          ; 
7495                                          ;   return 0;
7496                                          ; 
7497   1FF0 6000                                  lod R0,#0   ; lti
7498                                          ; force VR0 to 0   ; loadtod0
7499   1FF2 7F8F                                  lod R6,[R7,#-2]   ; cr
7500   1FF4 808F                                  lod r7,[r7]   ; cr
7501   1FF6 00F3                                  ret   ; cr
7502                                          
7503                                          
7504                                          ; Routine malloc
7505                                          .align 2 
7506                                 _malloc  .global
7507   1FF8 809B                                  str r7,[r2]
7508   1FFA E2D3                                  mov r7,r2
7509                                          ; ------------------------------------------------- 
7510                                          ; local size  R131
7511                                          ; s
7512                                          ; force VR0 to 0   ; pram
7513                                          ; local r  [R7,#-4]
7514                                          ; s
7515   1FFC 80D450DF                              lod  R1,_kmalloc_poi   ; ris
7516   2000 FE9C                                  str  R1,[R7,#-4]   ; assign
7517                                          ; force VR0 to 0   ; pram
7518                                          ; }
7519                                          ; 
7520                                          ; 
7521                                          ; 
7522                                          ; 
7523                                          ; 
7524                                          ; 
7525                                          ; 
7526                                          ; 
7527                                          ; 
7528                                          ; 
7529                                          ; 
7530                                          ; 
7531                                          ; 
7532                                          ; extern uchar *kmalloc_poi;
7533                                          ; 
7534                                          ; char *malloc(int size)
7535                                          ; 
7536                                          ; {
7537                                          ; 
7538                                          ;   uchar *r = kmalloc_poi;
7539                                          ; 
7540                                          ; 
7541                                          ; 
7542                                          ;   size = (size + 1) & 0xfffE;
7543                                          ; 
7544   2002 E0D0                                  mov R1,R0   ; lt-u
7545   2004 8900                                  add R1,#1   ; ltgr
7546   2006 61D1                                  mov R2,R1   ; ltmv
7547   2008 80F4FEFF                              lod R1,#65534   ; lti
7548   200C 39D1                                  and R2,R1   ; alu-l
7549   200E 62D0                                  mov R0,R2   ; assign
7550                                          ;   kmalloc_poi += size;
7551                                          ; 
7552   2010 80D450DF                              lod  R1,_kmalloc_poi   ; ris
7553   2014 88D0                                  add R1,R0   ; alu-l
7554   2016 A0D450DF                              str  R1,_kmalloc_poi   ; assign
7555                                          ;   return r;
7556                                          ; 
7557   201A FE8C                                  lod  R1,[R7,#-4]   ; risf
7558   201C 61D0                                  mov R0,R1   ; forceresolve
7559   201E 808F                                  lod r7,[r7]   ; cr
7560   2020 00F3                                  ret   ; cr
7561                                          ; force VR0 to 0   ; pram
7562                                          
7563                                          
7564                                          ; Routine atoi
7565                                          .align 2 
7566                                   _atoi  .global
7567   2022 809B                                  str r7,[r2]
7568   2024 E2D3                                  mov r7,r2
7569                                          ; ------------------------------------------------- 
7570                                          ; local s  R140
7571                                          ; s
7572                                          ; force VR0 to 0   ; pram
7573                                          ; local r  [R7,#-4]
7574                                          ; s
7575   2026 E000                                  lod R1,#0   ; lti
7576   2028 FE9C                                  str  R1,[R7,#-4]   ; assign
7577                                          ; force VR0 to 0   ; pram
7578                                          ; local base  [R7,#-6]
7579                                          ; s
7580   202A E204                                  lod R1,#10   ; lti
7581   202C FD9C                                  str  R1,[R7,#-6]   ; assign
7582                                          ; force VR0 to 0   ; pram
7583                                          ; }
7584                                          ; 
7585                                          ; 
7586                                          ; 
7587                                          ; int atoi(char *s)
7588                                          ; 
7589                                          ; {
7590                                          ; 
7591                                          ;   int r = 0;
7592                                          ; 
7593                                          ;   int base = 10;
7594                                          ; 
7595                                          ;   if (s == 0 ) return 0;
7596                                          ; 
7597   202E 2800                                  cmp R0,#0   ; gfv
7598   2030 04D83C20                              bne br15 ; fjump F   ; cfj
7599   2034 E000                                  lod R1,#0   ; lti
7600   2036 61D0                                  mov R0,R1   ; forceresolve
7601   2038 808F                                  lod r7,[r7]   ; cr
7602   203A 00F3                                  ret   ; cr
7603                                    br15  ; anon
7604                                          ;   while (*s == ' ' || *s == 0) s++;  
7605                                          ; 
7606                                    br16  ; anon
7607   203C 80A0                                  lodb R1,[R0]   ; risf
7608   203E A810                                  cmp R1,#32   ; alu_i
7609   2040 00D84C20                              beq br17   ; ctj
7610   2044 80A0                                  lodb R1,[R0]   ; risf
7611   2046 A800                                  cmp R1,#0   ; gfv
7612   2048 04D85020                              bne br18 ; fjump F   ; cfj
7613                                    br17  ; anon
7614   204C 0900                                  add R0,#1   ; qas
7615                                          ; mov R0,R0 redundant    ; qasmi
7616   204E F7CA                                  bra br16   ; anon
7617                                    br18  ; anon
7618                                          ;   while (1)
7619                                          ; 
7620                                    br19  ; anon
7621                                          ;    { char c = *(s++);
7622                                          ; 
7623                                          ; local c  [R7,#-8]
7624                                          ; s
7625   2050 E0D0                                  mov R1,R0   ; qasp
7626   2052 0900                                  add R0,#1   ; qasp
7627   2054 00A5                                  lodb R2,[R1]   ; risf
7628   2056 7CBD                                  strb R2,[R7,#-8]   ; assign
7629                                          ; force VR0 to 0   ; pram
7630                                          ;      if (c >= '0' && c <= '9')
7631                                          ; 
7632   2058 FCAC                                  lodb R1,[R7,#-8]   ; risf
7633   205A A818                                  cmp R1,#48   ; alu_i
7634   205C 08D88C20                              blt br21 ; fjump F   ; cfj
7635   2060 FCAC                                  lodb R1,[R7,#-8]   ; risf
7636   2062 A91C                                  cmp R1,#57   ; alu_i
7637   2064 10D88C20                              bgt br21 ; fjump F   ; cfj
7638                                          ;        { r = r*base + c - '0';
7639                                          ; 
7640   2068 FD8C                                  lod  R1,[R7,#-6]   ; risf
7641   206A 7E8D                                  lod  R2,[R7,#-4]   ; risf
7642   206C E001                                  lod R3,#0   ; LM
7643                                    br22  ; anon
7644   206E A800                                  cmp R1,#0   ; gfv
7645   2070 00D88220                              beq br23   ; anon
7646   2074 E900                                  tst R1,#1   ; anon
7647   2076 00D87C20                              beq br24   ; anon
7648   207A 8AD1                                  add R3,R2   ; anon
7649                                    br24  ; anon
7650   207C D900                                  lsr R1,#1   ; anon
7651   207E 4901                                  lsl R2,#1   ; anon
7652   2080 F7CA                                  bra br22   ; anon
7653                                    br23  ; anon
7654   2082 FCAC                                  lodb R1,[R7,#-8]   ; risf
7655   2084 89D1                                  add R3,R1   ; alu-l
7656   2086 9019                                  sub R3,#48   ; alu_i
7657   2088 FE9D                                  str  R3,[R7,#-4]   ; assign
7658                                          ;        continue;
7659                                          ; 
7660   208A E3CA                                  bra br19   ; anon
7661                                    br21  ; anon
7662                                          ;        }
7663                                          ; 
7664                                          ;      if (c >= 'a') c = c - 32;
7665                                          ; 
7666   208C FCAC                                  lodb R1,[R7,#-8]   ; risf
7667   208E A930                                  cmp R1,#97   ; alu_i
7668   2090 08D89A20                              blt br25 ; fjump F   ; cfj
7669   2094 FCAC                                  lodb R1,[R7,#-8]   ; risf
7670   2096 9010                                  sub R1,#32   ; alu_i
7671   2098 FCBC                                  strb R1,[R7,#-8]   ; assign
7672                                    br25  ; anon
7673                                          ;      if (c =='X')
7674                                          ; 
7675   209A FCAC                                  lodb R1,[R7,#-8]   ; risf
7676   209C A82C                                  cmp R1,#88   ; alu_i
7677   209E 04D8A820                              bne br26 ; fjump F   ; cfj
7678                                          ;        { base = 16;
7679                                          ; 
7680   20A2 E008                                  lod R1,#16   ; lti
7681   20A4 FD9C                                  str  R1,[R7,#-6]   ; assign
7682                                          ;        continue;
7683                                          ; 
7684   20A6 D5CA                                  bra br19   ; anon
7685                                    br26  ; anon
7686                                          ;        }
7687                                          ; 
7688                                          ;      if (base >= 10 && c >= 'A' && c <= 'F')
7689                                          ; 
7690   20A8 FD8C                                  lod  R1,[R7,#-6]   ; risf
7691   20AA AA04                                  cmp R1,#10   ; alu_i
7692   20AC 08D8E420                              blt br27 ; fjump F   ; cfj
7693   20B0 FCAC                                  lodb R1,[R7,#-8]   ; risf
7694   20B2 A920                                  cmp R1,#65   ; alu_i
7695   20B4 08D8E420                              blt br27 ; fjump F   ; cfj
7696   20B8 FCAC                                  lodb R1,[R7,#-8]   ; risf
7697   20BA AE20                                  cmp R1,#70   ; alu_i
7698   20BC 10D8E420                              bgt br27 ; fjump F   ; cfj
7699                                          ;        {
7700                                          ; 
7701                                          ;   r = r*base + c - 55;
7702                                          ; 
7703   20C0 FD8C                                  lod  R1,[R7,#-6]   ; risf
7704   20C2 7E8D                                  lod  R2,[R7,#-4]   ; risf
7705   20C4 E001                                  lod R3,#0   ; LM
7706                                    br28  ; anon
7707   20C6 A800                                  cmp R1,#0   ; gfv
7708   20C8 00D8DA20                              beq br29   ; anon
7709   20CC E900                                  tst R1,#1   ; anon
7710   20CE 00D8D420                              beq br30   ; anon
7711   20D2 8AD1                                  add R3,R2   ; anon
7712                                    br30  ; anon
7713   20D4 D900                                  lsr R1,#1   ; anon
7714   20D6 4901                                  lsl R2,#1   ; anon
7715   20D8 F7CA                                  bra br28   ; anon
7716                                    br29  ; anon
7717   20DA FCAC                                  lodb R1,[R7,#-8]   ; risf
7718   20DC 89D1                                  add R3,R1   ; alu-l
7719   20DE 9719                                  sub R3,#55   ; alu_i
7720   20E0 FE9D                                  str  R3,[R7,#-4]   ; assign
7721                                          ;   continue;
7722                                          ; 
7723   20E2 B7CA                                  bra br19   ; anon
7724                                    br27  ; anon
7725                                          ;        }
7726                                          ; 
7727                                          ;      break;
7728                                          ; 
7729   20E4 28D8EA20                              bra br20   ; anon
7730   20E8 B4CA                                  bra br19   ; anon
7731                                    br20  ; anon
7732                                          ;    }
7733                                          ; 
7734                                          ;   return r;
7735                                          ; 
7736   20EA FE8C                                  lod  R1,[R7,#-4]   ; risf
7737   20EC 61D0                                  mov R0,R1   ; forceresolve
7738   20EE 808F                                  lod r7,[r7]   ; cr
7739   20F0 00F3                                  ret   ; cr
7740                                          ; force VR0 to 0   ; pram
7741                                          
7742                                          
7743                                          ; Routine isalpha
7744                                          .align 2 
7745                                _isalpha  .global
7746   20F2 809B                                  str r7,[r2]
7747   20F4 E2D3                                  mov r7,r2
7748                                          ; ------------------------------------------------- 
7749                                          ; local c  R170
7750                                          ; s
7751                                          ; force VR0 to 0   ; pram
7752                                          ; }
7753                                          ; 
7754                                          ; 
7755                                          ; 
7756                                          ; int isalpha(char c)
7757                                          ; 
7758                                          ; {
7759                                          ; 
7760                                          ;   if (c >= 'a' && c <= 'z') return 1;
7761                                          ; 
7762   20F6 2930                                  cmp R0,#97   ; alu_i
7763   20F8 08D80A21                              blt br31 ; fjump F   ; cfj
7764   20FC 2A3C                                  cmp R0,#122   ; alu_i
7765   20FE 10D80A21                              bgt br31 ; fjump F   ; cfj
7766   2102 E100                                  lod R1,#1   ; lti
7767   2104 61D0                                  mov R0,R1   ; forceresolve
7768   2106 808F                                  lod r7,[r7]   ; cr
7769   2108 00F3                                  ret   ; cr
7770                                    br31  ; anon
7771                                          ;   if (c >= 'A' && c <= 'Z') return 1;
7772                                          ; 
7773   210A 2920                                  cmp R0,#65   ; alu_i
7774   210C 08D81E21                              blt br32 ; fjump F   ; cfj
7775   2110 2A2C                                  cmp R0,#90   ; alu_i
7776   2112 10D81E21                              bgt br32 ; fjump F   ; cfj
7777   2116 E100                                  lod R1,#1   ; lti
7778   2118 61D0                                  mov R0,R1   ; forceresolve
7779   211A 808F                                  lod r7,[r7]   ; cr
7780   211C 00F3                                  ret   ; cr
7781                                    br32  ; anon
7782                                          ;   return 0;
7783                                          ; 
7784   211E E000                                  lod R1,#0   ; lti
7785   2120 61D0                                  mov R0,R1   ; forceresolve
7786   2122 808F                                  lod r7,[r7]   ; cr
7787   2124 00F3                                  ret   ; cr
7788                                          ; force VR0 to 0   ; pram
7789                                          
7790                                          
7791                                          ; Routine isalnum
7792                                          .align 2 
7793                                _isalnum  .global
7794   2126 809B                                  str r7,[r2]
7795   2128 E2D3                                  mov r7,r2
7796                                          ; ------------------------------------------------- 
7797                                          ; local c  R177
7798                                          ; s
7799                                          ; force VR0 to 0   ; pram
7800                                          ;  }
7801                                          ; 
7802                                          ; 
7803                                          ; 
7804                                          ; int isalnum(char c)
7805                                          ; 
7806                                          ; {
7807                                          ; 
7808                                          ;   if (c >= 'a' && c <= 'z') return 1;
7809                                          ; 
7810   212A 2930                                  cmp R0,#97   ; alu_i
7811   212C 08D83E21                              blt br33 ; fjump F   ; cfj
7812   2130 2A3C                                  cmp R0,#122   ; alu_i
7813   2132 10D83E21                              bgt br33 ; fjump F   ; cfj
7814   2136 E100                                  lod R1,#1   ; lti
7815   2138 61D0                                  mov R0,R1   ; forceresolve
7816   213A 808F                                  lod r7,[r7]   ; cr
7817   213C 00F3                                  ret   ; cr
7818                                    br33  ; anon
7819                                          ;   if (c >= 'A' && c <= 'Z') return 1;
7820                                          ; 
7821   213E 2920                                  cmp R0,#65   ; alu_i
7822   2140 08D85221                              blt br34 ; fjump F   ; cfj
7823   2144 2A2C                                  cmp R0,#90   ; alu_i
7824   2146 10D85221                              bgt br34 ; fjump F   ; cfj
7825   214A E100                                  lod R1,#1   ; lti
7826   214C 61D0                                  mov R0,R1   ; forceresolve
7827   214E 808F                                  lod r7,[r7]   ; cr
7828   2150 00F3                                  ret   ; cr
7829                                    br34  ; anon
7830                                          ;   if (c >= '0' && c <= '9') return 1; 
7831                                          ; 
7832   2152 2818                                  cmp R0,#48   ; alu_i
7833   2154 08D86621                              blt br35 ; fjump F   ; cfj
7834   2158 291C                                  cmp R0,#57   ; alu_i
7835   215A 10D86621                              bgt br35 ; fjump F   ; cfj
7836   215E E100                                  lod R1,#1   ; lti
7837   2160 61D0                                  mov R0,R1   ; forceresolve
7838   2162 808F                                  lod r7,[r7]   ; cr
7839   2164 00F3                                  ret   ; cr
7840                                    br35  ; anon
7841                                          ;   return 0;
7842                                          ; 
7843   2166 E000                                  lod R1,#0   ; lti
7844   2168 61D0                                  mov R0,R1   ; forceresolve
7845   216A 808F                                  lod r7,[r7]   ; cr
7846   216C 00F3                                  ret   ; cr
7847                                          ; force VR0 to 0   ; pram
7848                                          
7849                                          
7850                                          ; Routine islower
7851                                          .align 2 
7852                                _islower  .global
7853   216E 809B                                  str r7,[r2]
7854   2170 E2D3                                  mov r7,r2
7855                                          ; ------------------------------------------------- 
7856                                          ; local c  R186
7857                                          ; s
7858                                          ; force VR0 to 0   ; pram
7859                                          ; }
7860                                          ; 
7861                                          ; 
7862                                          ; 
7863                                          ; 
7864                                          ; 
7865                                          ; int islower(char c)
7866                                          ; 
7867                                          ; {
7868                                          ; 
7869                                          ;   if ((c >= 'a') && (c <= 'z')) return 1;
7870                                          ; 
7871   2172 2930                                  cmp R0,#97   ; alu_i
7872   2174 08D88621                              blt br36 ; fjump F   ; cfj
7873   2178 2A3C                                  cmp R0,#122   ; alu_i
7874   217A 10D88621                              bgt br36 ; fjump F   ; cfj
7875   217E E100                                  lod R1,#1   ; lti
7876   2180 61D0                                  mov R0,R1   ; forceresolve
7877   2182 808F                                  lod r7,[r7]   ; cr
7878   2184 00F3                                  ret   ; cr
7879                                    br36  ; anon
7880                                          ;   return 0;
7881                                          ; 
7882   2186 E000                                  lod R1,#0   ; lti
7883   2188 61D0                                  mov R0,R1   ; forceresolve
7884   218A 808F                                  lod r7,[r7]   ; cr
7885   218C 00F3                                  ret   ; cr
7886                                          ; force VR0 to 0   ; pram
7887                                          
7888                                          
7889                                          ; Routine toupper
7890                                          .align 2 
7891                                _toupper  .global
7892   218E 809B                                  str r7,[r2]
7893   2190 E2D3                                  mov r7,r2
7894                                          ; ------------------------------------------------- 
7895                                          ; local c  R191
7896                                          ; s
7897                                          ; force VR0 to 0   ; pram
7898                                          ; }
7899                                          ; 
7900                                          ; 
7901                                          ; 
7902                                          ; char toupper(char c)
7903                                          ; 
7904                                          ; {
7905                                          ; 
7906                                          ;   if ((c >='a') && (c <= 'z')) return c-32;
7907                                          ; 
7908   2192 2930                                  cmp R0,#97   ; alu_i
7909   2194 08D8A421                              blt br37 ; fjump F   ; cfj
7910   2198 2A3C                                  cmp R0,#122   ; alu_i
7911   219A 10D8A421                              bgt br37 ; fjump F   ; cfj
7912   219E 1010                                  sub R0,#32   ; alu_i
7913                                          ; force VR0 to 0   ; loadtod0
7914   21A0 808F                                  lod r7,[r7]   ; cr
7915   21A2 00F3                                  ret   ; cr
7916                                    br37  ; anon
7917                                          ;   return c;
7918                                          ; 
7919                                          ; force VR0 to 0   ; loadtod0
7920   21A4 808F                                  lod r7,[r7]   ; cr
7921   21A6 00F3                                  ret   ; cr
7922                                          ; force VR0 to 0   ; pram
7923                                          
7924                                          
7925                                          ; Routine tolower
7926                                          .align 2 
7927                                _tolower  .global
7928   21A8 809B                                  str r7,[r2]
7929   21AA E2D3                                  mov r7,r2
7930                                          ; ------------------------------------------------- 
7931                                          ; local c  R192
7932                                          ; s
7933                                          ; force VR0 to 0   ; pram
7934                                          ; }
7935                                          ; 
7936                                          ; 
7937                                          ; 
7938                                          ; 
7939                                          ; 
7940                                          ; 
7941                                          ; 
7942                                          ; char tolower(char c)
7943                                          ; 
7944                                          ; {
7945                                          ; 
7946                                          ;   if ((c >='A') && (c <= 'Z')) return c+32;
7947                                          ; 
7948   21AC 2920                                  cmp R0,#65   ; alu_i
7949   21AE 08D8C421                              blt br38 ; fjump F   ; cfj
7950   21B2 2A2C                                  cmp R0,#90   ; alu_i
7951   21B4 10D8C421                              bgt br38 ; fjump F   ; cfj
7952   21B8 E0D0                                  mov R1,R0   ; lt-u
7953   21BA 8810                                  add R1,#32   ; ltgr
7954   21BC 61D1                                  mov R2,R1   ; ltmv
7955   21BE 62D0                                  mov R0,R2   ; forceresolve
7956   21C0 808F                                  lod r7,[r7]   ; cr
7957   21C2 00F3                                  ret   ; cr
7958                                    br38  ; anon
7959                                          ;   return c;
7960                                          ; 
7961                                          ; force VR0 to 0   ; loadtod0
7962   21C4 808F                                  lod r7,[r7]   ; cr
7963   21C6 00F3                                  ret   ; cr
7964                                          ; force VR0 to 0   ; pram
7965                                          
7966                                          
7967                                          ; Routine strncmp
7968                                          .align 2 
7969                                _strncmp  .global
7970   21C8 809B                                  str r7,[r2]
7971   21CA E2D3                                  mov r7,r2
7972                                          ; ------------------------------------------------- 
7973                                          ; local a  R196
7974                                          ; s
7975                                          ; local b  R197
7976                                          ; s
7977                                          ; local n  [R7,#6]
7978                                          ; s
7979                                          ; force VR0 to 0   ; pram
7980                                          ; force VR1 to 1   ; pram
7981                                          ; }
7982                                          ; 
7983                                          ; 
7984                                          ; 
7985                                          ; 
7986                                          ; 
7987                                          ; 
7988                                          ; 
7989                                          ; int strncmp(char *a, char *b, int n) 
7990                                          ; 
7991                                          ; { 
7992                                          ; 
7993                                          ;   while(*a == *b && n > 0)
7994                                          ; 
7995                                    br39  ; anon
7996   21CC 00A1                                  lodb R2,[R0]   ; risf
7997   21CE 80A5                                  lodb R3,[R1]   ; risf
7998   21D0 2BD1                                  cmp R2,R3   ; alu-l
7999   21D2 04D8FA21                              bne br40 ; fjump F   ; cfj
8000   21D6 038D                                  lod  R2,[R7,#6]   ; risf
8001   21D8 2801                                  cmp R2,#0   ; gfv
8002   21DA 14D8FA21                              ble br40 ; fjump F   ; cfj
8003                                          ;   {
8004                                          ; 
8005                                          ;     if (*a == 0) return 0;
8006                                          ; 
8007   21DE 00A1                                  lodb R2,[R0]   ; risf
8008   21E0 2801                                  cmp R2,#0   ; gfv
8009   21E2 04D8EE21                              bne br41 ; fjump F   ; cfj
8010   21E6 6001                                  lod R2,#0   ; lti
8011   21E8 62D0                                  mov R0,R2   ; forceresolve
8012   21EA 808F                                  lod r7,[r7]   ; cr
8013   21EC 00F3                                  ret   ; cr
8014                                    br41  ; anon
8015                                          ;     a++; b++; n--;
8016                                          ; 
8017   21EE 0900                                  add R0,#1   ; qas
8018                                          ; mov R0,R0 redundant    ; qasmi
8019   21F0 8900                                  add R1,#1   ; qas
8020                                          ; mov R1,R1 redundant    ; qasmi
8021   21F2 038D                                  lod  R2,[R7,#6]   ; risf
8022   21F4 1101                                  sub R2,#1   ; qas
8023   21F6 039D                                  str  R2,[R7,#6]   ; qasmi
8024   21F8 EACA                                  bra br39   ; anon
8025                                    br40  ; anon
8026                                          ;   }
8027                                          ; 
8028                                          ;   if (n==0) return 0;
8029                                          ; 
8030   21FA 038D                                  lod  R2,[R7,#6]   ; risf
8031   21FC 2801                                  cmp R2,#0   ; gfv
8032   21FE 04D80A22                              bne br42 ; fjump F   ; cfj
8033   2202 6001                                  lod R2,#0   ; lti
8034   2204 62D0                                  mov R0,R2   ; forceresolve
8035   2206 808F                                  lod r7,[r7]   ; cr
8036   2208 00F3                                  ret   ; cr
8037                                    br42  ; anon
8038                                          ;   return *a - *b;
8039                                          ; 
8040   220A 00A1                                  lodb R2,[R0]   ; risf
8041   220C 80A5                                  lodb R3,[R1]   ; risf
8042   220E 13D1                                  sub R2,R3   ; alu-l
8043   2210 3F7D                                  and R2,#255   ; ccti
8044   2212 62D0                                  mov R0,R2   ; forceresolve
8045   2214 808F                                  lod r7,[r7]   ; cr
8046   2216 00F3                                  ret   ; cr
8047                                          ; force VR0 to 0   ; pram
8048                                          ; force VR1 to 1   ; pram
8049                                          
8050                                          
8051                                          ; Routine strcmp
8052                                          .align 2 
8053                                 _strcmp  .global
8054   2218 809B                                  str r7,[r2]
8055   221A E2D3                                  mov r7,r2
8056                                          ; ------------------------------------------------- 
8057                                          ; local a  R210
8058                                          ; s
8059                                          ; local b  R211
8060                                          ; s
8061                                          ; force VR0 to 0   ; pram
8062                                          ; force VR1 to 1   ; pram
8063                                          ; }
8064                                          ; 
8065                                          ; 
8066                                          ; 
8067                                          ; 
8068                                          ; 
8069                                          ; int strcmp(const char *a, const char *b)
8070                                          ; 
8071                                          ; { 
8072                                          ; 
8073                                          ;   while(*a == *b)
8074                                          ; 
8075                                    br43  ; anon
8076   221C 00A1                                  lodb R2,[R0]   ; risf
8077   221E 80A5                                  lodb R3,[R1]   ; risf
8078   2220 2BD1                                  cmp R2,R3   ; alu-l
8079   2222 04D83C22                              bne br44 ; fjump F   ; cfj
8080                                          ;   {
8081                                          ; 
8082                                          ;     if (*a == 0) return 0;
8083                                          ; 
8084   2226 00A1                                  lodb R2,[R0]   ; risf
8085   2228 2801                                  cmp R2,#0   ; gfv
8086   222A 04D83622                              bne br45 ; fjump F   ; cfj
8087   222E 6001                                  lod R2,#0   ; lti
8088   2230 62D0                                  mov R0,R2   ; forceresolve
8089   2232 808F                                  lod r7,[r7]   ; cr
8090   2234 00F3                                  ret   ; cr
8091                                    br45  ; anon
8092                                          ;     a++; b++;
8093                                          ; 
8094   2236 0900                                  add R0,#1   ; qas
8095                                          ; mov R0,R0 redundant    ; qasmi
8096   2238 8900                                  add R1,#1   ; qas
8097                                          ; mov R1,R1 redundant    ; qasmi
8098   223A F1CA                                  bra br43   ; anon
8099                                    br44  ; anon
8100                                          ;   }
8101                                          ; 
8102                                          ;   return *a - *b;
8103                                          ; 
8104   223C 00A1                                  lodb R2,[R0]   ; risf
8105   223E 80A5                                  lodb R3,[R1]   ; risf
8106   2240 13D1                                  sub R2,R3   ; alu-l
8107   2242 3F7D                                  and R2,#255   ; ccti
8108   2244 62D0                                  mov R0,R2   ; forceresolve
8109   2246 808F                                  lod r7,[r7]   ; cr
8110   2248 00F3                                  ret   ; cr
8111                                          ; force VR0 to 0   ; pram
8112                                          ; force VR1 to 1   ; pram
8113                                          
8114                                          
8115                                          ; Routine printx
8116                                          .align 2 
8117                                 _printx  .global
8118   224A 809B                                  str r7,[r2]
8119   224C E2D3                                  mov r7,r2
8120   224E 7F9F                                  str R6,[R7,#-2]
8121   2250 019C                                  str R0,[R7,#2]
8122   2252 829C                                  str R1,[R7,#4]
8123                                          ; ------------------------------------------------- 
8124                                          ; local x  [R7,#2]
8125                                          ; s
8126                                          ; local field  [R7,#4]
8127                                          ; s
8128                                          ; local i  [R7,#-4]
8129                                          ; s
8130                                          ; local r  [R7,#-6]
8131                                          ; s
8132   2254 018C                                  lod  R0,[R7,#2]   ; risf
8133   2256 5900                                  lsr R0,#1   ; fshif
8134   2258 5900                                  lsr R0,#1   ; fshif
8135   225A 5900                                  lsr R0,#1   ; fshif
8136   225C 5900                                  lsr R0,#1   ; fshif
8137   225E 5900                                  lsr R0,#1   ; fshif
8138   2260 5900                                  lsr R0,#1   ; fshif
8139   2262 5900                                  lsr R0,#1   ; fshif
8140   2264 5900                                  lsr R0,#1   ; fshif
8141   2266 7D9C                                  str  R0,[R7,#-6]   ; assign
8142                                          ; }
8143                                          ; 
8144                                          ; 
8145                                          ; 
8146                                          ; 
8147                                          ; 
8148                                          ; void printx(unsigned int x, int field)
8149                                          ; 
8150                                          ; {
8151                                          ; 
8152                                          ;   int i;
8153                                          ; 
8154                                          ;   unsigned int r = x >> 8;
8155                                          ; 
8156                                          ;   if (r) printx(r, field-2);
8157                                          ; 
8158   2268 7D8C                                  lod  R0,[R7,#-6]   ; risf
8159   226A 2800                                  cmp R0,#0   ; gfv
8160   226C 00D88222                              beq br46 ; fjmp1   ; cfj
8161   2270 7D8C                                  lod  R0,[R7,#-6]   ; risf
8162   2272 828C                                  lod  R1,[R7,#4]   ; risf
8163   2274 9200                                  sub R1,#2   ; alu_i
8164                                          ; force VR0 to 0   ; call
8165                                          ; force VR1 to 1   ; call
8166   2276 67D1                                  mov r2,r7   ; call
8167   2278 1405                                  sub r2,#12   ; call
8168   227A 3CD84A22                              jsr _printx   ; call
8169                                          ; force VR0 to 0   ; res
8170   227E 28D8A822                              bra br47   ; anon
8171                                    br46  ; anon
8172                                          ;   else for (i=2; i<field; i++) { *spf++ = ((char)('0' )); } ;
8173                                          ; 
8174   2282 6200                                  lod R0,#2   ; lti
8175   2284 7E9C                                  str  R0,[R7,#-4]   ; assign
8176                                    br48  ; anon
8177   2286 7E8C                                  lod  R0,[R7,#-4]   ; risf
8178   2288 828C                                  lod  R1,[R7,#4]   ; risf
8179   228A 29D0                                  cmp R0,R1   ; alu-l
8180   228C 0CD8A822                              bge br49 ; fjump F   ; cfj
8181   2290 00D452DF                              lod  R0,_spf   ; ris
8182   2294 E0D0                                  mov R1,R0   ; qasp1
8183   2296 8900                                  add R1,#1   ; qasp
8184   2298 A0D452DF                              str  R1,_spf   ; qasp
8185   229C E018                                  lod R1,#48   ; lti
8186   229E 80B0                                  strb R1,[R0]   ; assign
8187   22A0 7E8C                                  lod  R0,[R7,#-4]   ; risf
8188   22A2 0900                                  add R0,#1   ; qas
8189   22A4 7E9C                                  str  R0,[R7,#-4]   ; qasmi
8190   22A6 F0CA                                  bra br48   ; anon
8191                                    br49  ; anon
8192                                    br47  ; anon
8193                                          ;   hex2(x);
8194                                          ; 
8195   22A8 018C                                  lod  R0,[R7,#2]   ; risf
8196                                          ; force VR0 to 0   ; call
8197   22AA 67D1                                  mov r2,r7   ; call
8198   22AC 1405                                  sub r2,#12   ; call
8199   22AE 3CD85A23                              jsr _hex2   ; call
8200                                          ; force VR0 to 0   ; res
8201   22B2 7F8F                                  lod R6,[R7,#-2]   ; cr
8202   22B4 808F                                  lod r7,[r7]   ; cr
8203   22B6 00F3                                  ret   ; cr
8204                                          
8205                                          
8206                                          ; Routine isprint
8207                                          .align 2 
8208                                _isprint  .global
8209   22B8 809B                                  str r7,[r2]
8210   22BA E2D3                                  mov r7,r2
8211                                          ; ------------------------------------------------- 
8212                                          ; local c  R235
8213                                          ; s
8214                                          ; force VR0 to 0   ; pram
8215                                          ; }
8216                                          ; 
8217                                          ; 
8218                                          ; 
8219                                          ; int isprint (char c)
8220                                          ; 
8221                                          ; {
8222                                          ; 
8223                                          ;   if ((c >=' ') && (c <= 126)) return 1;
8224                                          ; 
8225   22BC 2810                                  cmp R0,#32   ; alu_i
8226   22BE 08D8D022                              blt br50 ; fjump F   ; cfj
8227   22C2 2E3C                                  cmp R0,#126   ; alu_i
8228   22C4 10D8D022                              bgt br50 ; fjump F   ; cfj
8229   22C8 E100                                  lod R1,#1   ; lti
8230   22CA 61D0                                  mov R0,R1   ; forceresolve
8231   22CC 808F                                  lod r7,[r7]   ; cr
8232   22CE 00F3                                  ret   ; cr
8233                                    br50  ; anon
8234                                          ;   return 0;
8235                                          ; 
8236   22D0 E000                                  lod R1,#0   ; lti
8237   22D2 61D0                                  mov R0,R1   ; forceresolve
8238   22D4 808F                                  lod r7,[r7]   ; cr
8239   22D6 00F3                                  ret   ; cr
8240                                          ; force VR0 to 0   ; pram
8241                                          
8242                                          
8243                                          ; Routine isdigit
8244                                          .align 2 
8245                                _isdigit  .global
8246   22D8 809B                                  str r7,[r2]
8247   22DA E2D3                                  mov r7,r2
8248                                          ; ------------------------------------------------- 
8249                                          ; local c  R240
8250                                          ; s
8251                                          ; force VR0 to 0   ; pram
8252                                          ; }
8253                                          ; 
8254                                          ; 
8255                                          ; 
8256                                          ; int isdigit (char c)
8257                                          ; 
8258                                          ; {
8259                                          ; 
8260                                          ;   if ((c >='0') && (c <= '9')) return 1;
8261                                          ; 
8262   22DC 2818                                  cmp R0,#48   ; alu_i
8263   22DE 08D8F022                              blt br51 ; fjump F   ; cfj
8264   22E2 291C                                  cmp R0,#57   ; alu_i
8265   22E4 10D8F022                              bgt br51 ; fjump F   ; cfj
8266   22E8 E100                                  lod R1,#1   ; lti
8267   22EA 61D0                                  mov R0,R1   ; forceresolve
8268   22EC 808F                                  lod r7,[r7]   ; cr
8269   22EE 00F3                                  ret   ; cr
8270                                    br51  ; anon
8271                                          ;   return 0;
8272                                          ; 
8273   22F0 E000                                  lod R1,#0   ; lti
8274   22F2 61D0                                  mov R0,R1   ; forceresolve
8275   22F4 808F                                  lod r7,[r7]   ; cr
8276   22F6 00F3                                  ret   ; cr
8277                                          ; force VR0 to 0   ; pram
8278                                          
8279                                          
8280                                          ; Routine isupper
8281                                          .align 2 
8282                                _isupper  .global
8283   22F8 809B                                  str r7,[r2]
8284   22FA E2D3                                  mov r7,r2
8285                                          ; ------------------------------------------------- 
8286                                          ; local c  R245
8287                                          ; s
8288                                          ; force VR0 to 0   ; pram
8289                                          ; }
8290                                          ; 
8291                                          ; 
8292                                          ; 
8293                                          ; int isupper (char c)
8294                                          ; 
8295                                          ; {
8296                                          ; 
8297                                          ;   if ((c >='A') && (c <= 'Z')) return 1;
8298                                          ; 
8299   22FC 2920                                  cmp R0,#65   ; alu_i
8300   22FE 08D81023                              blt br52 ; fjump F   ; cfj
8301   2302 2A2C                                  cmp R0,#90   ; alu_i
8302   2304 10D81023                              bgt br52 ; fjump F   ; cfj
8303   2308 E100                                  lod R1,#1   ; lti
8304   230A 61D0                                  mov R0,R1   ; forceresolve
8305   230C 808F                                  lod r7,[r7]   ; cr
8306   230E 00F3                                  ret   ; cr
8307                                    br52  ; anon
8308                                          ;   return 0;
8309                                          ; 
8310   2310 E000                                  lod R1,#0   ; lti
8311   2312 61D0                                  mov R0,R1   ; forceresolve
8312   2314 808F                                  lod r7,[r7]   ; cr
8313   2316 00F3                                  ret   ; cr
8314                                          ; force VR0 to 0   ; pram
8315                                          
8316                                          
8317                                          ; Routine debhex8
8318                                          .align 2 
8319                                _debhex8  .global
8320   2318 809B                                  str r7,[r2]
8321   231A E2D3                                  mov r7,r2
8322   231C 7F9F                                  str R6,[R7,#-2]
8323   231E 019C                                  str R0,[R7,#2]
8324                                          ; ------------------------------------------------- 
8325                                          ; local x  [R7,#2]
8326                                          ; s
8327                                          ; }
8328                                          ; 
8329                                          ; 
8330                                          ; 
8331                                          ; 
8332                                          ; 
8333                                          ; 
8334                                          ; 
8335                                          ; void debhex8(int x)
8336                                          ; 
8337                                          ; {
8338                                          ; 
8339                                          ;   hex2(x >> 8);
8340                                          ; 
8341   2320 018C                                  lod  R0,[R7,#2]   ; risf
8342   2322 5100                                  asr R0,#1   ; fshif
8343   2324 5100                                  asr R0,#1   ; fshif
8344   2326 5100                                  asr R0,#1   ; fshif
8345   2328 5100                                  asr R0,#1   ; fshif
8346   232A 5100                                  asr R0,#1   ; fshif
8347   232C 5100                                  asr R0,#1   ; fshif
8348   232E 5100                                  asr R0,#1   ; fshif
8349   2330 5100                                  asr R0,#1   ; fshif
8350                                          ; force VR0 to 0   ; call
8351   2332 67D1                                  mov r2,r7   ; call
8352   2334 1005                                  sub r2,#8   ; call
8353   2336 3CD85A23                              jsr _hex2   ; call
8354                                          ; force VR0 to 0   ; res
8355                                          ;   hex2(x >> 0);
8356                                          ; 
8357   233A 018C                                  lod  R0,[R7,#2]   ; risf
8358                                          ; force VR0 to 0   ; call
8359   233C 67D1                                  mov r2,r7   ; call
8360   233E 1005                                  sub r2,#8   ; call
8361   2340 3CD85A23                              jsr _hex2   ; call
8362                                          ; force VR0 to 0   ; res
8363                                          ;   { *spf++ = ((char)(' ' )); } ;
8364                                          ; 
8365   2344 00D452DF                              lod  R0,_spf   ; ris
8366   2348 E0D0                                  mov R1,R0   ; qasp1
8367   234A 8900                                  add R1,#1   ; qasp
8368   234C A0D452DF                              str  R1,_spf   ; qasp
8369   2350 E010                                  lod R1,#32   ; lti
8370   2352 80B0                                  strb R1,[R0]   ; assign
8371   2354 7F8F                                  lod R6,[R7,#-2]   ; cr
8372   2356 808F                                  lod r7,[r7]   ; cr
8373   2358 00F3                                  ret   ; cr
8374                                          
8375                                          
8376                                          ; Routine hex2
8377                                          .align 2 
8378                                   _hex2  .global
8379   235A 809B                                  str r7,[r2]
8380   235C E2D3                                  mov r7,r2
8381   235E 7F9F                                  str R6,[R7,#-2]
8382   2360 019C                                  str R0,[R7,#2]
8383                                          ; ------------------------------------------------- 
8384                                          ; local x  [R7,#2]
8385                                          ; s
8386                                          ; }
8387                                          ; 
8388                                          ; 
8389                                          ; 
8390                                          ; void hex2(int x)
8391                                          ; 
8392                                          ; {
8393                                          ; 
8394                                          ;   x = x & 255;
8395                                          ; 
8396   2362 018C                                  lod  R0,[R7,#2]   ; risf
8397   2364 3F7C                                  and R0,#255   ; alu_i
8398   2366 019C                                  str  R0,[R7,#2]   ; assign
8399                                          ;   hex1(x >> 4);
8400                                          ; 
8401   2368 018C                                  lod  R0,[R7,#2]   ; risf
8402   236A 5100                                  asr R0,#1   ; fshif
8403   236C 5100                                  asr R0,#1   ; fshif
8404   236E 5100                                  asr R0,#1   ; fshif
8405   2370 5100                                  asr R0,#1   ; fshif
8406                                          ; force VR0 to 0   ; call
8407   2372 67D1                                  mov r2,r7   ; call
8408   2374 1005                                  sub r2,#8   ; call
8409   2376 3CD88A23                              jsr _hex1   ; call
8410                                          ; force VR0 to 0   ; res
8411                                          ;   hex1(x);
8412                                          ; 
8413   237A 018C                                  lod  R0,[R7,#2]   ; risf
8414                                          ; force VR0 to 0   ; call
8415   237C 67D1                                  mov r2,r7   ; call
8416   237E 1005                                  sub r2,#8   ; call
8417   2380 3CD88A23                              jsr _hex1   ; call
8418                                          ; force VR0 to 0   ; res
8419   2384 7F8F                                  lod R6,[R7,#-2]   ; cr
8420   2386 808F                                  lod r7,[r7]   ; cr
8421   2388 00F3                                  ret   ; cr
8422                                          
8423                                          
8424                                          ; Routine hex1
8425                                          .align 2 
8426                                   _hex1  .global
8427   238A 809B                                  str r7,[r2]
8428   238C E2D3                                  mov r7,r2
8429                                          ; ------------------------------------------------- 
8430                                          ; local x  R263
8431                                          ; s
8432                                          ; force VR0 to 0   ; pram
8433                                          ; }
8434                                          ; 
8435                                          ; 
8436                                          ; 
8437                                          ; 
8438                                          ; 
8439                                          ; void hex1(int x)
8440                                          ; 
8441                                          ; {
8442                                          ; 
8443                                          ;   x = x & 15;
8444                                          ; 
8445   238E 3F04                                  and R0,#15   ; alu_i
8446                                          ; mov R0,R0 redundant    ; assign
8447                                          ;   { *spf++ = ((char)( x>9 ? x+('A'-10): x+'0' )); } ;
8448                                          ; 
8449   2390 2904                                  cmp R0,#9   ; alu_i
8450   2392 14D8A023                              ble br53 ; fjump F   ; cfj
8451   2396 E0D0                                  mov R1,R0   ; lt-u
8452   2398 8F18                                  add R1,#55   ; ltgr
8453   239A 61D1                                  mov R2,R1   ; ltmv
8454   239C 28D8A623                              bra br54   ; anon
8455                                    br53  ; anon
8456   23A0 E0D0                                  mov R1,R0   ; lt-u
8457   23A2 8818                                  add R1,#48   ; ltgr
8458   23A4 61D1                                  mov R2,R1   ; ltmv
8459                                    br54  ; anon
8460   23A6 80D452DF                              lod  R1,_spf   ; ris
8461   23AA E1D1                                  mov R3,R1   ; qasp1
8462   23AC 8901                                  add R3,#1   ; qasp
8463   23AE A0D552DF                              str  R3,_spf   ; qasp
8464   23B2 00B5                                  strb R2,[R1]   ; assign
8465                                          ; force VR0 to 0   ; pram
8466   23B4 808F                                  lod r7,[r7]   ; cr
8467   23B6 00F3                                  ret   ; cr
8468                                          
8469                                          
8470                                          ; Routine shi
8471                                          .align 2 
8472                                    _shi  .global
8473   23B8 809B                                  str r7,[r2]
8474   23BA E2D3                                  mov r7,r2
8475                                          ; ------------------------------------------------- 
8476                                          ; local p  R271
8477                                          ; s
8478                                          ; local d  R272
8479                                          ; s
8480                                          ; force VR0 to 0   ; pram
8481                                          ; force VR1 to 1   ; pram
8482                                          ; local r  [R7,#-4]
8483                                          ; s
8484   23BC 6001                                  lod R2,#0   ; lti
8485   23BE 7EBD                                  strb R2,[R7,#-4]   ; assign
8486                                          ; force VR0 to 0   ; pram
8487                                          ; force VR1 to 1   ; pram
8488                                          ; }
8489                                          ; 
8490                                          ; 
8491                                          ; 
8492                                          ; 
8493                                          ; 
8494                                          ; void shi(unsigned int *p, int d)
8495                                          ; 
8496                                          ; { 
8497                                          ; 
8498                                          ;   char r = 0;
8499                                          ; 
8500                                          ;   while (*p >= d)
8501                                          ; 
8502                                    br55  ; anon
8503   23C0 0081                                  lod  R2,[R0]   ; risf
8504   23C2 29D1                                  cmp R2,R1   ; alu-l
8505   23C4 1CD8D623                              bcc br56; fjump U   ; cfj
8506                                          ;     { r ++;
8507                                          ; 
8508   23C8 7EAD                                  lodb R2,[R7,#-4]   ; risf
8509   23CA 0901                                  add R2,#1   ; qas
8510   23CC 7EBD                                  strb R2,[R7,#-4]   ; qasmi
8511                                          ;       *p = *p - d;
8512                                          ; 
8513   23CE 0081                                  lod  R2,[R0]   ; risf
8514   23D0 11D1                                  sub R2,R1   ; alu-l
8515   23D2 0091                                  str  R2,[R0]   ; assign
8516   23D4 F6CA                                  bra br55   ; anon
8517                                    br56  ; anon
8518                                          ;     }
8519                                          ; 
8520                                          ;    if (r) _zeroflag = 1;
8521                                          ; 
8522   23D6 7EAD                                  lodb R2,[R7,#-4]   ; risf
8523   23D8 2801                                  cmp R2,#0   ; gfv
8524   23DA 00D8E423                              beq br57 ; fjmp1   ; cfj
8525   23DE 6101                                  lod R2,#1   ; lti
8526   23E0 60D554E3                              strb R2,__zeroflag   ; assign
8527                                    br57  ; anon
8528                                          ;    if (_zeroflag) { *spf++ = ((char)(r + '0' )); } ;
8529                                          ; 
8530   23E4 40D554E3                              lodb R2,__zeroflag   ; ris
8531   23E8 2801                                  cmp R2,#0   ; gfv
8532   23EA 00D80024                              beq br58 ; fjmp1   ; cfj
8533   23EE FEAD                                  lodb R3,[R7,#-4]   ; risf
8534   23F0 8819                                  add R3,#48   ; alu_i
8535   23F2 00D552DF                              lod  R2,_spf   ; ris
8536   23F6 62D2                                  mov R4,R2   ; qasp1
8537   23F8 0902                                  add R4,#1   ; qasp
8538   23FA 20D652DF                              str  R4,_spf   ; qasp
8539   23FE 80B9                                  strb R3,[R2]   ; assign
8540                                    br58  ; anon
8541                                          ; force VR0 to 0   ; pram
8542                                          ; force VR1 to 1   ; pram
8543   2400 808F                                  lod r7,[r7]   ; cr
8544   2402 00F3                                  ret   ; cr
8545                                          
8546                                          
8547                                          ; Routine printu
8548                                          .align 2 
8549                                 _printu  .global
8550   2404 809B                                  str r7,[r2]
8551   2406 E2D3                                  mov r7,r2
8552   2408 7F9F                                  str R6,[R7,#-2]
8553   240A 019C                                  str R0,[R7,#2]
8554                                          ; ------------------------------------------------- 
8555                                          ; local x  [R7,#2]
8556                                          ; s
8557                                          ; }
8558                                          ; 
8559                                          ;   
8560                                          ; 
8561                                          ; void printu(int x)
8562                                          ; 
8563                                          ; {
8564                                          ; 
8565                                          ;   if (x == 0)
8566                                          ; 
8567   240C 018C                                  lod  R0,[R7,#2]   ; risf
8568   240E 2800                                  cmp R0,#0   ; gfv
8569   2410 04D82A24                              bne br59 ; fjump F   ; cfj
8570                                          ;     { 
8571                                          ; 
8572                                          ;       { *spf++ = ((char)('0' )); } ;
8573                                          ; 
8574   2414 00D452DF                              lod  R0,_spf   ; ris
8575   2418 E0D0                                  mov R1,R0   ; qasp1
8576   241A 8900                                  add R1,#1   ; qasp
8577   241C A0D452DF                              str  R1,_spf   ; qasp
8578   2420 E018                                  lod R1,#48   ; lti
8579   2422 80B0                                  strb R1,[R0]   ; assign
8580                                          ;       return;
8581                                          ; 
8582   2424 7F8F                                  lod R6,[R7,#-2]   ; cr
8583   2426 808F                                  lod r7,[r7]   ; cr
8584   2428 00F3                                  ret   ; cr
8585                                    br59  ; anon
8586                                          ;     }
8587                                          ; 
8588                                          ;   _zeroflag = 0;
8589                                          ; 
8590   242A 6000                                  lod R0,#0   ; lti
8591   242C 60D454E3                              strb R0,__zeroflag   ; assign
8592                                          ;   
8593                                          ; 
8594                                          ;   shi(&x, 1000000000);
8595                                          ; 
8596   2430 E7D0                                  mov R1,R7   ; lt-u
8597   2432 8A00                                  add R1,#2   ; ltgr
8598   2434 61D0                                  mov R0,R1   ; ltmv
8599   2436 80F400CA                              lod R1,#1000000000   ; lti
8600                                          ; force VR0 to 0   ; call
8601                                          ; force VR1 to 1   ; call
8602   243A 67D1                                  mov r2,r7   ; call
8603   243C 1005                                  sub r2,#8   ; call
8604   243E 3CD8B823                              jsr _shi   ; call
8605                                          ; force VR0 to 0   ; res
8606                                          ;   shi(&x, 100000000);
8607                                          ; 
8608   2442 E7D0                                  mov R1,R7   ; lt-u
8609   2444 8A00                                  add R1,#2   ; ltgr
8610   2446 61D0                                  mov R0,R1   ; ltmv
8611   2448 80F400E1                              lod R1,#100000000   ; lti
8612                                          ; force VR0 to 0   ; call
8613                                          ; force VR1 to 1   ; call
8614   244C 67D1                                  mov r2,r7   ; call
8615   244E 1005                                  sub r2,#8   ; call
8616   2450 3CD8B823                              jsr _shi   ; call
8617                                          ; force VR0 to 0   ; res
8618                                          ;   shi(&x, 10000000);
8619                                          ; 
8620   2454 E7D0                                  mov R1,R7   ; lt-u
8621   2456 8A00                                  add R1,#2   ; ltgr
8622   2458 61D0                                  mov R0,R1   ; ltmv
8623   245A 80F48096                              lod R1,#10000000   ; lti
8624                                          ; force VR0 to 0   ; call
8625                                          ; force VR1 to 1   ; call
8626   245E 67D1                                  mov r2,r7   ; call
8627   2460 1005                                  sub r2,#8   ; call
8628   2462 3CD8B823                              jsr _shi   ; call
8629                                          ; force VR0 to 0   ; res
8630                                          ;   shi(&x, 1000000);
8631                                          ; 
8632   2466 E7D0                                  mov R1,R7   ; lt-u
8633   2468 8A00                                  add R1,#2   ; ltgr
8634   246A 61D0                                  mov R0,R1   ; ltmv
8635   246C 80F44042                              lod R1,#1000000   ; lti
8636                                          ; force VR0 to 0   ; call
8637                                          ; force VR1 to 1   ; call
8638   2470 67D1                                  mov r2,r7   ; call
8639   2472 1005                                  sub r2,#8   ; call
8640   2474 3CD8B823                              jsr _shi   ; call
8641                                          ; force VR0 to 0   ; res
8642                                          ;   shi(&x, 100000);
8643                                          ; 
8644   2478 E7D0                                  mov R1,R7   ; lt-u
8645   247A 8A00                                  add R1,#2   ; ltgr
8646   247C 61D0                                  mov R0,R1   ; ltmv
8647   247E 80F4A086                              lod R1,#100000   ; lti
8648                                          ; force VR0 to 0   ; call
8649                                          ; force VR1 to 1   ; call
8650   2482 67D1                                  mov r2,r7   ; call
8651   2484 1005                                  sub r2,#8   ; call
8652   2486 3CD8B823                              jsr _shi   ; call
8653                                          ; force VR0 to 0   ; res
8654                                          ;   shi(&x, 10000);
8655                                          ; 
8656   248A E7D0                                  mov R1,R7   ; lt-u
8657   248C 8A00                                  add R1,#2   ; ltgr
8658   248E 61D0                                  mov R0,R1   ; ltmv
8659   2490 80F41027                              lod R1,#10000   ; lti
8660                                          ; force VR0 to 0   ; call
8661                                          ; force VR1 to 1   ; call
8662   2494 67D1                                  mov r2,r7   ; call
8663   2496 1005                                  sub r2,#8   ; call
8664   2498 3CD8B823                              jsr _shi   ; call
8665                                          ; force VR0 to 0   ; res
8666                                          ;   shi(&x, 1000);
8667                                          ; 
8668   249C E7D0                                  mov R1,R7   ; lt-u
8669   249E 8A00                                  add R1,#2   ; ltgr
8670   24A0 61D0                                  mov R0,R1   ; ltmv
8671   24A2 80F4E803                              lod R1,#1000   ; lti
8672                                          ; force VR0 to 0   ; call
8673                                          ; force VR1 to 1   ; call
8674   24A6 67D1                                  mov r2,r7   ; call
8675   24A8 1005                                  sub r2,#8   ; call
8676   24AA 3CD8B823                              jsr _shi   ; call
8677                                          ; force VR0 to 0   ; res
8678                                          ;   shi(&x, 100);
8679                                          ; 
8680   24AE E7D0                                  mov R1,R7   ; lt-u
8681   24B0 8A00                                  add R1,#2   ; ltgr
8682   24B2 61D0                                  mov R0,R1   ; ltmv
8683   24B4 E430                                  lod R1,#100   ; lti
8684                                          ; force VR0 to 0   ; call
8685                                          ; force VR1 to 1   ; call
8686   24B6 67D1                                  mov r2,r7   ; call
8687   24B8 1005                                  sub r2,#8   ; call
8688   24BA 3CD8B823                              jsr _shi   ; call
8689                                          ; force VR0 to 0   ; res
8690                                          ;   shi(&x, 10);
8691                                          ; 
8692   24BE E7D0                                  mov R1,R7   ; lt-u
8693   24C0 8A00                                  add R1,#2   ; ltgr
8694   24C2 61D0                                  mov R0,R1   ; ltmv
8695   24C4 E204                                  lod R1,#10   ; lti
8696                                          ; force VR0 to 0   ; call
8697                                          ; force VR1 to 1   ; call
8698   24C6 67D1                                  mov r2,r7   ; call
8699   24C8 1005                                  sub r2,#8   ; call
8700   24CA 3CD8B823                              jsr _shi   ; call
8701                                          ; force VR0 to 0   ; res
8702                                          ;   shi(&x, 1);
8703                                          ; 
8704   24CE E7D0                                  mov R1,R7   ; lt-u
8705   24D0 8A00                                  add R1,#2   ; ltgr
8706   24D2 61D0                                  mov R0,R1   ; ltmv
8707   24D4 E100                                  lod R1,#1   ; lti
8708                                          ; force VR0 to 0   ; call
8709                                          ; force VR1 to 1   ; call
8710   24D6 67D1                                  mov r2,r7   ; call
8711   24D8 1005                                  sub r2,#8   ; call
8712   24DA 3CD8B823                              jsr _shi   ; call
8713                                          ; force VR0 to 0   ; res
8714   24DE 7F8F                                  lod R6,[R7,#-2]   ; cr
8715   24E0 808F                                  lod r7,[r7]   ; cr
8716   24E2 00F3                                  ret   ; cr
8717                                          
8718                                          
8719                                          ; Routine printi
8720                                          .align 2 
8721                                 _printi  .global
8722   24E4 809B                                  str r7,[r2]
8723   24E6 E2D3                                  mov r7,r2
8724   24E8 7F9F                                  str R6,[R7,#-2]
8725   24EA 019C                                  str R0,[R7,#2]
8726                                          ; ------------------------------------------------- 
8727                                          ; local x  [R7,#2]
8728                                          ; s
8729                                          ;      }
8730                                          ; 
8731                                          ;  }
8732                                          ; 
8733                                          ;     }
8734                                          ; 
8735                                          ; }
8736                                          ; 
8737                                          ; 
8738                                          ; 
8739                                          ; static char _zeroflag;
8740                                          ; 
8741                                          ; 
8742                                          ; 
8743                                          ; printi(int x) 
8744                                          ; 
8745                                          ; {
8746                                          ; 
8747                                          ;   if (x < 0)
8748                                          ; 
8749   24EC 018C                                  lod  R0,[R7,#2]   ; risf
8750   24EE 2800                                  cmp R0,#0   ; gfv
8751   24F0 0CD83025                              bge br60 ; fjump F   ; cfj
8752                                          ;   {
8753                                          ; 
8754                                          ;      { *spf++ = ((char)('-' )); } ;
8755                                          ; 
8756   24F4 00D452DF                              lod  R0,_spf   ; ris
8757   24F8 E0D0                                  mov R1,R0   ; qasp1
8758   24FA 8900                                  add R1,#1   ; qasp
8759   24FC A0D452DF                              str  R1,_spf   ; qasp
8760   2500 E514                                  lod R1,#45   ; lti
8761   2502 80B0                                  strb R1,[R0]   ; assign
8762                                          ;      if (x == 0x8000) 
8763                                          ; 
8764   2504 018C                                  lod  R0,[R7,#2]   ; risf
8765   2506 80F40080                              lod R1,#32768   ; lti
8766   250A 29D0                                  cmp R0,R1   ; alu-l
8767   250C 04D82825                              bne br61 ; fjump F   ; cfj
8768                                          ;      { 
8769                                          ; 
8770                                          ;        prstring("32768", 0, 100);
8771                                          ; 
8772   2510 6430                                  lod R0,#100   ; lti
8773   2512 7E9C                                  str  R0,[R7,#-4]   ; assign
8774   2514 00F44025                              lod R0,#br62   ; ltgd3
8775   2518 E000                                  lod R1,#0   ; lti
8776                                          ; force VR0 to 0   ; call
8777                                          ; force VR1 to 1   ; call
8778   251A 67D1                                  mov r2,r7   ; call
8779   251C 1205                                  sub r2,#10   ; call
8780   251E 3CD84625                              jsr _prstring   ; call
8781                                          ; force VR0 to 0   ; res
8782                                          ;        return;
8783                                          ; 
8784   2522 7F8F                                  lod R6,[R7,#-2]   ; cr
8785   2524 808F                                  lod r7,[r7]   ; cr
8786   2526 00F3                                  ret   ; cr
8787                                    br61  ; anon
8788                                          ;      }
8789                                          ; 
8790                                          ;      x = -x;
8791                                          ; 
8792   2528 6000                                  lod R0,#0   ; lti
8793   252A 818C                                  lod  R1,[R7,#2]   ; risf
8794   252C 11D0                                  sub R0,R1   ; alu-l
8795   252E 019C                                  str  R0,[R7,#2]   ; assign
8796                                    br60  ; anon
8797                                          ;   }
8798                                          ; 
8799                                          ;   printu(x);
8800                                          ; 
8801   2530 018C                                  lod  R0,[R7,#2]   ; risf
8802                                          ; force VR0 to 0   ; call
8803   2532 67D1                                  mov r2,r7   ; call
8804   2534 1005                                  sub r2,#8   ; call
8805   2536 3CD80424                              jsr _printu   ; call
8806                                          ; force VR0 to 0   ; res
8807   253A 7F8F                                  lod R6,[R7,#-2]   ; cr
8808   253C 808F                                  lod r7,[r7]   ; cr
8809   253E 00F3                                  ret   ; cr
8810   2540 33323736                        br62  .data "32768",0
            3800
8811                                          
8812                                          
8813                                          ; Routine prstring
8814                                          .align 2 
8815                               _prstring  .global
8816   2546 809B                                  str r7,[r2]
8817   2548 E2D3                                  mov r7,r2
8818   254A 7F9F                                  str R6,[R7,#-2]
8819   254C 019C                                  str R0,[R7,#2]
8820   254E 829C                                  str R1,[R7,#4]
8821                                          ; ------------------------------------------------- 
8822                                          ; local s  [R7,#2]
8823                                          ; s
8824                                          ; local prefield  [R7,#4]
8825                                          ; s
8826                                          ; local field  [R7,#6]
8827                                          ; s
8828                                          ;  }
8829                                          ; 
8830                                          ;      }
8831                                          ; 
8832                                          ;    }
8833                                          ; 
8834                                          ; }
8835                                          ; 
8836                                          ; 
8837                                          ; 
8838                                          ; void prstring(char *s, int prefield, int field) 
8839                                          ; 
8840                                          ; {
8841                                          ; 
8842                                          ;   if (s == 0 )
8843                                          ; 
8844   2550 018C                                  lod  R0,[R7,#2]   ; risf
8845   2552 2800                                  cmp R0,#0   ; gfv
8846   2554 04D87C25                              bne br75 ; fjump F   ; cfj
8847                                          ;     {
8848                                          ; 
8849                                          ;       { *spf++ = ((char)('<' )); } ;      { *spf++ = ((char)('>' )); } ;
8850                                          ; 
8851   2558 00D452DF                              lod  R0,_spf   ; ris
8852   255C E0D0                                  mov R1,R0   ; qasp1
8853   255E 8900                                  add R1,#1   ; qasp
8854   2560 A0D452DF                              str  R1,_spf   ; qasp
8855   2564 E41C                                  lod R1,#60   ; lti
8856   2566 80B0                                  strb R1,[R0]   ; assign
8857   2568 00D452DF                              lod  R0,_spf   ; ris
8858   256C E0D0                                  mov R1,R0   ; qasp1
8859   256E 8900                                  add R1,#1   ; qasp
8860   2570 A0D452DF                              str  R1,_spf   ; qasp
8861   2574 E61C                                  lod R1,#62   ; lti
8862   2576 80B0                                  strb R1,[R0]   ; assign
8863   2578 28D82A26                              bra br76   ; anon
8864                                    br75  ; anon
8865                                          ;     }
8866                                          ; 
8867                                          ;   else
8868                                          ; 
8869                                          ;     {
8870                                          ; 
8871                                          ;       if (prefield >= 0)  
8872                                          ; 
8873   257C 028C                                  lod  R0,[R7,#4]   ; risf
8874   257E 2800                                  cmp R0,#0   ; gfv
8875   2580 08D8E025                              blt br77 ; fjump F   ; cfj
8876                                          ;  {
8877                                          ; 
8878                                          ;    while(*s && field>0) 
8879                                          ; 
8880                                    br78  ; anon
8881   2584 018C                                  lod  R0,[R7,#2]   ; risf
8882   2586 80A0                                  lodb R1,[R0]   ; risf
8883   2588 A800                                  cmp R1,#0   ; gfv
8884   258A 00D8BC25                              beq br79 ; fjmp1   ; cfj
8885   258E 038C                                  lod  R0,[R7,#6]   ; risf
8886   2590 2800                                  cmp R0,#0   ; gfv
8887   2592 14D8BC25                              ble br79 ; fjump F   ; cfj
8888                                          ;      { 
8889                                          ; 
8890                                          ;        { *spf++ = ((char)(*s++ )); } ;
8891                                          ; 
8892   2596 018C                                  lod  R0,[R7,#2]   ; risf
8893   2598 E0D0                                  mov R1,R0   ; qasp1
8894   259A 8900                                  add R1,#1   ; qasp
8895   259C 819C                                  str  R1,[R7,#2]   ; qasp
8896   259E 80D452DF                              lod  R1,_spf   ; ris
8897   25A2 61D1                                  mov R2,R1   ; qasp1
8898   25A4 0901                                  add R2,#1   ; qasp
8899   25A6 20D552DF                              str  R2,_spf   ; qasp
8900   25AA 00A1                                  lodb R2,[R0]   ; risf
8901   25AC 00B5                                  strb R2,[R1]   ; assign
8902                                          ;        field--; 
8903                                          ; 
8904   25AE 038C                                  lod  R0,[R7,#6]   ; risf
8905   25B0 1100                                  sub R0,#1   ; qas
8906   25B2 039C                                  str  R0,[R7,#6]   ; qasmi
8907                                          ;        prefield--; 
8908                                          ; 
8909   25B4 028C                                  lod  R0,[R7,#4]   ; risf
8910   25B6 1100                                  sub R0,#1   ; qas
8911   25B8 029C                                  str  R0,[R7,#4]   ; qasmi
8912   25BA E5CA                                  bra br78   ; anon
8913                                    br79  ; anon
8914                                          ;      }
8915                                          ; 
8916                                          ;    while(prefield>0)
8917                                          ; 
8918                                    br80  ; anon
8919   25BC 028C                                  lod  R0,[R7,#4]   ; risf
8920   25BE 2800                                  cmp R0,#0   ; gfv
8921   25C0 14D8DC25                              ble br81 ; fjump F   ; cfj
8922                                          ;      {
8923                                          ; 
8924                                          ;        { *spf++ = ((char)(' ' )); } ; prefield--; 
8925                                          ; 
8926   25C4 00D452DF                              lod  R0,_spf   ; ris
8927   25C8 E0D0                                  mov R1,R0   ; qasp1
8928   25CA 8900                                  add R1,#1   ; qasp
8929   25CC A0D452DF                              str  R1,_spf   ; qasp
8930   25D0 E010                                  lod R1,#32   ; lti
8931   25D2 80B0                                  strb R1,[R0]   ; assign
8932   25D4 028C                                  lod  R0,[R7,#4]   ; risf
8933   25D6 1100                                  sub R0,#1   ; qas
8934   25D8 029C                                  str  R0,[R7,#4]   ; qasmi
8935   25DA F1CA                                  bra br80   ; anon
8936                                    br81  ; anon
8937   25DC 28D82A26                              bra br82   ; anon
8938                                    br77  ; anon
8939                                          ;      }
8940                                          ; 
8941                                          ;  }
8942                                          ; 
8943                                          ;       else
8944                                          ; 
8945                                          ;  {
8946                                          ; 
8947                                          ;    while(*s)
8948                                          ; 
8949                                    br83  ; anon
8950   25E0 018C                                  lod  R0,[R7,#2]   ; risf
8951   25E2 80A0                                  lodb R1,[R0]   ; risf
8952   25E4 A800                                  cmp R1,#0   ; gfv
8953   25E6 00D80A26                              beq br84 ; fjmp1   ; cfj
8954                                          ;      {
8955                                          ; 
8956                                          ;        { *spf++ = ((char)(*s++ )); } ; field--;
8957                                          ; 
8958   25EA 018C                                  lod  R0,[R7,#2]   ; risf
8959   25EC E0D0                                  mov R1,R0   ; qasp1
8960   25EE 8900                                  add R1,#1   ; qasp
8961   25F0 819C                                  str  R1,[R7,#2]   ; qasp
8962   25F2 80D452DF                              lod  R1,_spf   ; ris
8963   25F6 61D1                                  mov R2,R1   ; qasp1
8964   25F8 0901                                  add R2,#1   ; qasp
8965   25FA 20D552DF                              str  R2,_spf   ; qasp
8966   25FE 00A1                                  lodb R2,[R0]   ; risf
8967   2600 00B5                                  strb R2,[R1]   ; assign
8968   2602 038C                                  lod  R0,[R7,#6]   ; risf
8969   2604 1100                                  sub R0,#1   ; qas
8970   2606 039C                                  str  R0,[R7,#6]   ; qasmi
8971   2608 ECCA                                  bra br83   ; anon
8972                                    br84  ; anon
8973                                          ;      }
8974                                          ; 
8975                                          ;    while(field>0) 
8976                                          ; 
8977                                    br85  ; anon
8978   260A 038C                                  lod  R0,[R7,#6]   ; risf
8979   260C 2800                                  cmp R0,#0   ; gfv
8980   260E 14D82A26                              ble br86 ; fjump F   ; cfj
8981                                          ;      {
8982                                          ; 
8983                                          ;        { *spf++ = ((char)(' ' )); } ; field--;
8984                                          ; 
8985   2612 00D452DF                              lod  R0,_spf   ; ris
8986   2616 E0D0                                  mov R1,R0   ; qasp1
8987   2618 8900                                  add R1,#1   ; qasp
8988   261A A0D452DF                              str  R1,_spf   ; qasp
8989   261E E010                                  lod R1,#32   ; lti
8990   2620 80B0                                  strb R1,[R0]   ; assign
8991   2622 038C                                  lod  R0,[R7,#6]   ; risf
8992   2624 1100                                  sub R0,#1   ; qas
8993   2626 039C                                  str  R0,[R7,#6]   ; qasmi
8994   2628 F1CA                                  bra br85   ; anon
8995                                    br86  ; anon
8996                                    br82  ; anon
8997                                    br76  ; anon
8998   262A 7F8F                                  lod R6,[R7,#-2]   ; cr
8999   262C 808F                                  lod r7,[r7]   ; cr
9000   262E 00F3                                  ret   ; cr
9001                                          
9002                                          
9003                                          ; Routine dof
9004                                          .align 2 
9005                                    _dof  .global
9006   2630 809B                                  str r7,[r2]
9007   2632 E2D3                                  mov r7,r2
9008   2634 7F9F                                  str R6,[R7,#-2]
9009   2636 019C                                  str R0,[R7,#2]
9010   2638 829C                                  str R1,[R7,#4]
9011                                          ; ------------------------------------------------- 
9012                                          ; local s  [R7,#2]
9013                                          ; s
9014                                          ; local poi  [R7,#4]
9015                                          ; s
9016                                          ; local i  [R7,#-4]
9017                                          ; s
9018   263A 6000                                  lod R0,#0   ; lti
9019   263C 7E9C                                  str  R0,[R7,#-4]   ; assign
9020                                          ; local zeropad  [R7,#-6]
9021                                          ; s
9022   263E 6000                                  lod R0,#0   ; lti
9023   2640 7D9C                                  str  R0,[R7,#-6]   ; assign
9024                                          ; local c  [R7,#-8]
9025                                          ; s
9026   2642 018C                                  lod  R0,[R7,#2]   ; risf
9027   2644 80A0                                  lodb R1,[R0]   ; risf
9028   2646 FCBC                                  strb R1,[R7,#-8]   ; assign
9029                                          ; local prefield  [R7,#-10]
9030                                          ; s
9031                                          ; local field  [R7,#-12]
9032                                          ; s
9033                                          ; }
9034                                          ; 
9035                                          ; 
9036                                          ; 
9037                                          ; 
9038                                          ; 
9039                                          ; 
9040                                          ; 
9041                                          ; 
9042                                          ; 
9043                                          ; 
9044                                          ; 
9045                                          ; 
9046                                          ; 
9047                                          ; 
9048                                          ; 
9049                                          ; dof(char *s, int *poi)
9050                                          ; 
9051                                          ; {
9052                                          ; 
9053                                          ;   int i = 0;
9054                                          ; 
9055                                          ;   int zeropad = 0;
9056                                          ; 
9057                                          ;   char c = s[0];
9058                                          ; 
9059                                          ;   
9060                                          ; 
9061                                          ;   int prefield;
9062                                          ; 
9063                                          ;   int field;
9064                                          ; 
9065                                          ; 
9066                                          ; 
9067                                          ;   while (c)
9068                                          ; 
9069                                    br87  ; anon
9070   2648 7CAC                                  lodb R0,[R7,#-8]   ; risf
9071   264A 2800                                  cmp R0,#0   ; gfv
9072   264C 00D8F827                              beq br88 ; fjmp1   ; cfj
9073                                          ;    { 
9074                                          ; 
9075                                          ;      if (c !='%')
9076                                          ; 
9077   2650 7CAC                                  lodb R0,[R7,#-8]   ; risf
9078   2652 2D10                                  cmp R0,#37   ; alu_i
9079   2654 00D87826                              beq br89 ; fjump F   ; cfj
9080                                          ;      {
9081                                          ; 
9082                                          ;        { *spf++ = ((char)(c )); } ;
9083                                          ; 
9084   2658 00D452DF                              lod  R0,_spf   ; ris
9085   265C E0D0                                  mov R1,R0   ; qasp1
9086   265E 8900                                  add R1,#1   ; qasp
9087   2660 A0D452DF                              str  R1,_spf   ; qasp
9088   2664 FCAC                                  lodb R1,[R7,#-8]   ; risf
9089   2666 80B0                                  strb R1,[R0]   ; assign
9090                                          ;        c = s[++i];
9091                                          ; 
9092   2668 FE8C                                  lod  R1,[R7,#-4]   ; risf
9093   266A 8900                                  add R1,#1   ; qap
9094   266C FE9C                                  str  R1,[R7,#-4]   ; qasp
9095   266E 018C                                  lod  R0,[R7,#2]   ; risf
9096   2670 09D0                                  add R0,R1   ; alu-l
9097   2672 80A0                                  lodb R1,[R0]   ; risf
9098   2674 FCBC                                  strb R1,[R7,#-8]   ; assign
9099                                          ;        continue;
9100                                          ; 
9101   2676 E9CA                                  bra br87   ; anon
9102                                    br89  ; anon
9103                                          ;      }
9104                                          ; 
9105                                          ;      field = 0;
9106                                          ; 
9107   2678 6000                                  lod R0,#0   ; lti
9108   267A 7A9C                                  str  R0,[R7,#-12]   ; assign
9109                                          ;      prefield = -1;
9110                                          ; 
9111   267C 00F4FFFF                              lod R0,#-1   ; lti
9112   2680 7B9C                                  str  R0,[R7,#-10]   ; assign
9113                                          ;  sol:
9114                                          ; 
9115                                    _sol  ; labl
9116                                          ;      {
9117                                          ; 
9118                                          ; local t1  [R7,#-14]
9119                                          ; s
9120                                          ; local t  [R7,#-16]
9121                                          ; s
9122                                          ; local tc  [R7,#-18]
9123                                          ; s
9124                                          ;        uchar t1, t; 
9125                                          ; 
9126                                          ;        int tc;
9127                                          ; 
9128                                          ;        t = s[++i];
9129                                          ; 
9130   2682 FE8C                                  lod  R1,[R7,#-4]   ; risf
9131   2684 8900                                  add R1,#1   ; qap
9132   2686 FE9C                                  str  R1,[R7,#-4]   ; qasp
9133   2688 018C                                  lod  R0,[R7,#2]   ; risf
9134   268A 09D0                                  add R0,R1   ; alu-l
9135   268C 80A0                                  lodb R1,[R0]   ; risf
9136   268E F8BC                                  strb R1,[R7,#-16]   ; assign
9137                                          ; 
9138                                          ; 
9139                                          ; 
9140                                          ; 
9141                                          ;        if (t >= 'a') t = t - 32;
9142                                          ; 
9143   2690 78AC                                  lodb R0,[R7,#-16]   ; risf
9144   2692 2930                                  cmp R0,#97   ; alu_i
9145   2694 08D89E26                              blt br90 ; fjump F   ; cfj
9146   2698 78AC                                  lodb R0,[R7,#-16]   ; risf
9147   269A 1010                                  sub R0,#32   ; alu_i
9148   269C 78BC                                  strb R0,[R7,#-16]   ; assign
9149                                    br90  ; anon
9150                                          ;        if (t == 'L') goto sol;
9151                                          ; 
9152   269E 78AC                                  lodb R0,[R7,#-16]   ; risf
9153   26A0 2C24                                  cmp R0,#76   ; alu_i
9154   26A2 04D8AA26                              bne br91 ; fjump F   ; cfj
9155   26A6 28D88226                              jmp _sol   ; goto
9156                                    br91  ; anon
9157                                          ; 
9158                                          ; 
9159                                          ; 
9160                                          ; 
9161                                          ; 
9162                                          ; 
9163                                          ;        if (t == '%')
9164                                          ; 
9165   26AA 78AC                                  lodb R0,[R7,#-16]   ; risf
9166   26AC 2D10                                  cmp R0,#37   ; alu_i
9167   26AE 04D8C626                              bne br92 ; fjump F   ; cfj
9168                                          ;   {
9169                                          ; 
9170                                          ;     { *spf++ = ((char)('%' )); } ;
9171                                          ; 
9172   26B2 00D452DF                              lod  R0,_spf   ; ris
9173   26B6 E0D0                                  mov R1,R0   ; qasp1
9174   26B8 8900                                  add R1,#1   ; qasp
9175   26BA A0D452DF                              str  R1,_spf   ; qasp
9176   26BE E510                                  lod R1,#37   ; lti
9177   26C0 80B0                                  strb R1,[R0]   ; assign
9178   26C2 28D8F427                              bra br93   ; anon
9179                                    br92  ; anon
9180                                          ;   }
9181                                          ; 
9182                                          ;        else
9183                                          ; 
9184                                          ;   {
9185                                          ; 
9186                                          ;     switch(t)
9187                                          ; 
9188   26C6 F8AC                                  lodb R1,[R7,#-16]   ; risf
9189   26C8 6209                                  lod R2,#18   ; scan
9190   26CA 00F4EC26                              lod R0,#br95   ; scan
9191                                   br117  ; anon
9192   26CE 80A1                                  lodb R3,[R0]   ; scan
9193   26D0 A9D1                                  cmp R3,R1   ; scan
9194   26D2 00D8E026                              beq br116   ; scan
9195   26D6 0900                                  add R0,#1   ; scan
9196   26D8 1101                                  sub R2,#1   ; scan
9197   26DA FAC1                                  bne br117   ; scan
9198   26DC 28D8D227                              bra br115   ; scan
9199                                   br116  ; anon
9200   26E0 0AD1                                  add R2,R2   ; scan
9201   26E2 00F4FC26                              lod R0, #(br94-2)   ; scan
9202   26E6 0AD0                                  add R0,R2   ; scan
9203   26E8 0081                                  lod R2,[R0]   ; scan
9204   26EA 00F1                                  bx R2   ; scan
9205                                    br95  ; anon
9206   26EC 43                                    .byte 67   ; ci
9207   26ED 53                                    .byte 83   ; ci
9208   26EE 58                                    .byte 88   ; ci
9209   26EF 2A                                    .byte 42   ; ci
9210   26F0 49                                    .byte 73   ; ci
9211   26F1 44                                    .byte 68   ; ci
9212   26F2 55                                    .byte 85   ; ci
9213   26F3 30                                    .byte 48   ; ci
9214   26F4 31                                    .byte 49   ; ci
9215   26F5 32                                    .byte 50   ; ci
9216   26F6 33                                    .byte 51   ; ci
9217   26F7 34                                    .byte 52   ; ci
9218   26F8 35                                    .byte 53   ; ci
9219   26F9 36                                    .byte 54   ; ci
9220   26FA 37                                    .byte 55   ; ci
9221   26FB 38                                    .byte 56   ; ci
9222   26FC 39                                    .byte 57   ; ci
9223   26FD 2E                                    .byte 46   ; ci
9224                                          .align 2   ; ci
9225                                    br94  ; anon
9226   26FE C627                                  .word br114   ; vp
9227   2700 A027                                  .word br113   ; vp
9228   2702 A027                                  .word br112   ; vp
9229   2704 A027                                  .word br111   ; vp
9230   2706 A027                                  .word br110   ; vp
9231   2708 A027                                  .word br109   ; vp
9232   270A A027                                  .word br108   ; vp
9233   270C A027                                  .word br107   ; vp
9234   270E A027                                  .word br106   ; vp
9235   2710 A027                                  .word br105   ; vp
9236   2712 9427                                  .word br104   ; vp
9237   2714 8427                                  .word br103   ; vp
9238   2716 7427                                  .word br102   ; vp
9239   2718 7427                                  .word br101   ; vp
9240   271A 6427                                  .word br100   ; vp
9241   271C 5227                                  .word br99   ; vp
9242   271E 3C27                                  .word br98   ; vp
9243   2720 2227                                  .word br97   ; vp
9244                                    br97  ; anon
9245                                          ;      { 
9246                                          ; 
9247                                          ;      case 'C': tc = *poi; { *spf++ = ((char)(tc )); } ;
9248                                          ; 
9249   2722 028C                                  lod  R0,[R7,#4]   ; risf
9250   2724 8080                                  lod  R1,[R0]   ; risf
9251   2726 F79C                                  str  R1,[R7,#-18]   ; assign
9252   2728 00D452DF                              lod  R0,_spf   ; ris
9253   272C E0D0                                  mov R1,R0   ; qasp1
9254   272E 8900                                  add R1,#1   ; qasp
9255   2730 A0D452DF                              str  R1,_spf   ; qasp
9256   2734 F7AC                                  lodb R1,[R7,#-18]   ; risf
9257   2736 80B0                                  strb R1,[R0]   ; assign
9258                                          ;        break;
9259                                          ; 
9260   2738 28D8E027                              bra br96   ; anon
9261                                    br98  ; anon
9262                                          ; 
9263                                          ; 
9264                                          ;      case 'S': 
9265                                          ; 
9266                                          ;        prstring((char *) *poi, prefield, field);
9267                                          ; 
9268   273C 7A8C                                  lod  R0,[R7,#-12]   ; risf
9269   273E 769C                                  str  R0,[R7,#-20]   ; assign
9270   2740 828C                                  lod  R1,[R7,#4]   ; risf
9271   2742 0084                                  lod  R0,[R1]   ; risf
9272   2744 FB8C                                  lod  R1,[R7,#-10]   ; risf
9273                                          ; force VR0 to 0   ; call
9274                                          ; force VR1 to 1   ; call
9275   2746 67D1                                  mov r2,r7   ; call
9276   2748 120D                                  sub r2,#26   ; call
9277   274A 3CD84625                              jsr _prstring   ; call
9278                                          ; force VR0 to 0   ; res
9279                                          ;        break;
9280                                          ; 
9281   274E 28D8E027                              bra br96   ; anon
9282                                    br99  ; anon
9283                                          ;      
9284                                          ; 
9285                                          ;      case 'X': 
9286                                          ; 
9287                                          ;        printx(*poi, field);
9288                                          ; 
9289   2752 828C                                  lod  R1,[R7,#4]   ; risf
9290   2754 0084                                  lod  R0,[R1]   ; risf
9291   2756 FA8C                                  lod  R1,[R7,#-12]   ; risf
9292                                          ; force VR0 to 0   ; call
9293                                          ; force VR1 to 1   ; call
9294   2758 67D1                                  mov r2,r7   ; call
9295   275A 100D                                  sub r2,#24   ; call
9296   275C 3CD84A22                              jsr _printx   ; call
9297                                          ; force VR0 to 0   ; res
9298                                          ;        break;
9299                                          ; 
9300   2760 28D8E027                              bra br96   ; anon
9301                                   br100  ; anon
9302                                          ;        
9303                                          ; 
9304                                          ;      case '*': field = *poi; { poi ++; } ; goto sol;
9305                                          ; 
9306   2764 028C                                  lod  R0,[R7,#4]   ; risf
9307   2766 8080                                  lod  R1,[R0]   ; risf
9308   2768 FA9C                                  str  R1,[R7,#-12]   ; assign
9309   276A 028C                                  lod  R0,[R7,#4]   ; risf
9310   276C 0A00                                  add R0,#2   ; qas
9311   276E 029C                                  str  R0,[R7,#4]   ; qasmi
9312   2770 28D88226                              jmp _sol   ; goto
9313                                   br101  ; anon
9314                                   br102  ; anon
9315                                          ;        
9316                                          ; 
9317                                          ;      case 'I':
9318                                          ; 
9319                                          ;      case 'D':
9320                                          ; 
9321                                          ;        printi(*poi);
9322                                          ; 
9323   2774 828C                                  lod  R1,[R7,#4]   ; risf
9324   2776 0084                                  lod  R0,[R1]   ; risf
9325                                          ; force VR0 to 0   ; call
9326   2778 67D1                                  mov r2,r7   ; call
9327   277A 100D                                  sub r2,#24   ; call
9328   277C 3CD8E424                              jsr _printi   ; call
9329                                          ; force VR0 to 0   ; res
9330                                          ;        break;
9331                                          ; 
9332   2780 28D8E027                              bra br96   ; anon
9333                                   br103  ; anon
9334                                          ;      case 'U':
9335                                          ; 
9336                                          ;        printu(*poi);
9337                                          ; 
9338   2784 828C                                  lod  R1,[R7,#4]   ; risf
9339   2786 0084                                  lod  R0,[R1]   ; risf
9340                                          ; force VR0 to 0   ; call
9341   2788 67D1                                  mov r2,r7   ; call
9342   278A 100D                                  sub r2,#24   ; call
9343   278C 3CD80424                              jsr _printu   ; call
9344                                          ; force VR0 to 0   ; res
9345                                          ;        break;
9346                                          ; 
9347   2790 28D8E027                              bra br96   ; anon
9348                                   br104  ; anon
9349                                          ;        
9350                                          ; 
9351                                          ;      case '0':
9352                                          ; 
9353                                          ;        if (field==0) zeropad = 1;
9354                                          ; 
9355   2794 7A8C                                  lod  R0,[R7,#-12]   ; risf
9356   2796 2800                                  cmp R0,#0   ; gfv
9357   2798 04D8A027                              bne br118 ; fjump F   ; cfj
9358   279C 6100                                  lod R0,#1   ; lti
9359   279E 7D9C                                  str  R0,[R7,#-6]   ; assign
9360                                   br118  ; anon
9361                                   br105  ; anon
9362                                   br106  ; anon
9363                                   br107  ; anon
9364                                   br108  ; anon
9365                                   br109  ; anon
9366                                   br110  ; anon
9367                                   br111  ; anon
9368                                   br112  ; anon
9369                                   br113  ; anon
9370                                          ;      case '1': case '2': case '3': case '4':
9371                                          ; 
9372                                          ;      case '5': case '6': case '7': case '8': case '9':
9373                                          ; 
9374                                          ;        field = field*10 + t - '0';
9375                                          ; 
9376   27A0 6204                                  lod R0,#10   ; lti
9377   27A2 FA8C                                  lod  R1,[R7,#-12]   ; risf
9378   27A4 6001                                  lod R2,#0   ; LM
9379                                   br119  ; anon
9380   27A6 2800                                  cmp R0,#0   ; gfv
9381   27A8 00D8BA27                              beq br120   ; anon
9382   27AC 6900                                  tst R0,#1   ; anon
9383   27AE 00D8B427                              beq br121   ; anon
9384   27B2 09D1                                  add R2,R1   ; anon
9385                                   br121  ; anon
9386   27B4 5900                                  lsr R0,#1   ; anon
9387   27B6 C900                                  lsl R1,#1   ; anon
9388   27B8 F7CA                                  bra br119   ; anon
9389                                   br120  ; anon
9390   27BA 78AC                                  lodb R0,[R7,#-16]   ; risf
9391   27BC 08D1                                  add R2,R0   ; alu-l
9392   27BE 1019                                  sub R2,#48   ; alu_i
9393   27C0 7A9D                                  str  R2,[R7,#-12]   ; assign
9394                                          ;        goto sol;
9395                                          ; 
9396   27C2 28D88226                              jmp _sol   ; goto
9397                                   br114  ; anon
9398                                          ;        
9399                                          ; 
9400                                          ;      case '.': prefield = field; field = 0; goto sol;
9401                                          ; 
9402   27C6 7A8C                                  lod  R0,[R7,#-12]   ; risf
9403   27C8 7B9C                                  str  R0,[R7,#-10]   ; assign
9404   27CA 6000                                  lod R0,#0   ; lti
9405   27CC 7A9C                                  str  R0,[R7,#-12]   ; assign
9406   27CE 28D88226                              jmp _sol   ; goto
9407                                   br115  ; anon
9408                                          ;        
9409                                          ; 
9410                                          ;      default: printf("Bad printf selector '%c' \n", t);
9411                                          ; 
9412   27D2 00F4FE27                              lod R0,#br122   ; ltgd3
9413   27D6 F8AC                                  lodb R1,[R7,#-16]   ; risf
9414                                          ; force VR0 to 0   ; call
9415                                          ; force VR1 to 1   ; call
9416   27D8 67D1                                  mov r2,r7   ; call
9417   27DA 100D                                  sub r2,#24   ; call
9418   27DC 3CD89628                              jsr _printf   ; call
9419                                          ; force VR0 to 0   ; res
9420                                    br96  ; anon
9421                                          ;        
9422                                          ; 
9423                                          ;      }
9424                                          ; 
9425                                          ;    c = s[++i];
9426                                          ; 
9427   27E0 FE8C                                  lod  R1,[R7,#-4]   ; risf
9428   27E2 8900                                  add R1,#1   ; qap
9429   27E4 FE9C                                  str  R1,[R7,#-4]   ; qasp
9430   27E6 018C                                  lod  R0,[R7,#2]   ; risf
9431   27E8 09D0                                  add R0,R1   ; alu-l
9432   27EA 80A0                                  lodb R1,[R0]   ; risf
9433   27EC FCBC                                  strb R1,[R7,#-8]   ; assign
9434                                          ;    { poi ++; } ;
9435                                          ; 
9436   27EE 028C                                  lod  R0,[R7,#4]   ; risf
9437   27F0 0A00                                  add R0,#2   ; qas
9438   27F2 029C                                  str  R0,[R7,#4]   ; qasmi
9439                                    br93  ; anon
9440   27F4 28D84826                              bra br87   ; anon
9441                                    br88  ; anon
9442   27F8 7F8F                                  lod R6,[R7,#-2]   ; cr
9443   27FA 808F                                  lod r7,[r7]   ; cr
9444   27FC 00F3                                  ret   ; cr
9445   27FE 42616420                       br122  .data "Bad printf selector ",39,37,99,39,32,10,0
            7072696E74662073656C6563746F722027256327200A00
9446                                          
9447                                          
9448                                          ; Routine fprintf
9449   2819 00                                    .align 2 
9450                                _fprintf  .global
9451   281A 809B                                  str r7,[r2]
9452   281C E2D3                                  mov r7,r2
9453   281E 7F9F                                  str R6,[R7,#-2]
9454   2820 019C                                  str R0,[R7,#2]
9455   2822 829C                                  str R1,[R7,#4]
9456                                          ; ------------------------------------------------- 
9457                                          ; local fd  [R7,#2]
9458                                          ; s
9459                                          ; local s  [R7,#4]
9460                                          ; s
9461                                          ; local a  [R7,#6]
9462                                          ; s
9463                                          ; }
9464                                          ; 
9465                                          ; 
9466                                          ; 
9467                                          ; void fprintf(struct stdio *fd, char *s,  int a, ...)
9468                                          ; 
9469                                          ; { 
9470                                          ; 
9471                                          ;    ;
9472                                          ; 
9473                                          ;   fflush (fd);
9474                                          ; 
9475   2824 018C                                  lod  R0,[R7,#2]   ; risf
9476                                          ; force VR0 to 0   ; call
9477   2826 67D1                                  mov r2,r7   ; call
9478   2828 1005                                  sub r2,#8   ; call
9479   282A 3CD88E2B                              jsr _fflush   ; call
9480                                          ; force VR0 to 0   ; res
9481                                          ;   spf = _spfbuf;
9482                                          ; 
9483   282E 00F454DF                              lod R0,#__spfbuf   ; ltgd2
9484   2832 20D452DF                              str  R0,_spf   ; assign
9485                                          ;   dof(s, &a);
9486                                          ; 
9487   2836 028C                                  lod  R0,[R7,#4]   ; risf
9488   2838 67D1                                  mov R2,R7   ; lt-u
9489   283A 0E01                                  add R2,#6   ; ltgr
9490   283C E2D0                                  mov R1,R2   ; ltmv
9491                                          ; force VR0 to 0   ; call
9492                                          ; force VR1 to 1   ; call
9493   283E 67D1                                  mov r2,r7   ; call
9494   2840 1005                                  sub r2,#8   ; call
9495   2842 3CD83026                              jsr _dof   ; call
9496                                          ; force VR0 to 0   ; res
9497                                          ;   write(fd->sysfd, _spfbuf, spf-_spfbuf);
9498                                          ; 
9499   2846 00D452DF                              lod  R0,_spf   ; ris
9500   284A 80F454DF                              lod R1,#__spfbuf   ; ltgd2
9501   284E 11D0                                  sub R0,R1   ; alu-l
9502   2850 7E9C                                  str  R0,[R7,#-4]   ; assign
9503   2852 838C                                  lod  R1,[R7,#6]   ; risf
9504   2854 0084                                  lod  R0,[R1]   ; risf
9505   2856 80F454DF                              lod R1,#__spfbuf   ; ltgd2
9506                                          ; force VR0 to 0   ; call
9507                                          ; force VR1 to 1   ; call
9508   285A 67D1                                  mov r2,r7   ; call
9509   285C 1205                                  sub r2,#10   ; call
9510   285E 3CD8C41F                              jsr _write   ; call
9511                                          ; force VR0 to 0   ; res
9512   2862 7F8F                                  lod R6,[R7,#-2]   ; cr
9513   2864 808F                                  lod r7,[r7]   ; cr
9514   2866 00F3                                  ret   ; cr
9515                                          
9516                                          
9517                                          ; Routine sprintf
9518                                          .align 2 
9519                                _sprintf  .global
9520   2868 809B                                  str r7,[r2]
9521   286A E2D3                                  mov r7,r2
9522   286C 7F9F                                  str R6,[R7,#-2]
9523   286E 019C                                  str R0,[R7,#2]
9524   2870 829C                                  str R1,[R7,#4]
9525                                          ; ------------------------------------------------- 
9526                                          ; local string  [R7,#2]
9527                                          ; s
9528                                          ; local s  [R7,#4]
9529                                          ; s
9530                                          ; local a  [R7,#6]
9531                                          ; s
9532                                          ; }
9533                                          ; 
9534                                          ; 
9535                                          ; 
9536                                          ; 
9537                                          ; 
9538                                          ; void sprintf(char *string, char *s,  int a, ...)
9539                                          ; 
9540                                          ; {
9541                                          ; 
9542                                          ;   spf = string;
9543                                          ; 
9544   2872 018C                                  lod  R0,[R7,#2]   ; risf
9545   2874 20D452DF                              str  R0,_spf   ; assign
9546                                          ;   dof(s, &a);
9547                                          ; 
9548   2878 028C                                  lod  R0,[R7,#4]   ; risf
9549   287A 67D1                                  mov R2,R7   ; lt-u
9550   287C 0E01                                  add R2,#6   ; ltgr
9551   287E E2D0                                  mov R1,R2   ; ltmv
9552                                          ; force VR0 to 0   ; call
9553                                          ; force VR1 to 1   ; call
9554   2880 67D1                                  mov r2,r7   ; call
9555   2882 1005                                  sub r2,#8   ; call
9556   2884 3CD83026                              jsr _dof   ; call
9557                                          ; force VR0 to 0   ; res
9558                                          ;   *spf = (char) 0;
9559                                          ; 
9560   2888 E000                                  lod R1,#0   ; lti
9561   288A 00D452DF                              lod  R0,_spf   ; ris
9562   288E 80B0                                  strb R1,[R0]   ; assign
9563   2890 7F8F                                  lod R6,[R7,#-2]   ; cr
9564   2892 808F                                  lod r7,[r7]   ; cr
9565   2894 00F3                                  ret   ; cr
9566                                          
9567                                          
9568                                          ; Routine printf
9569                                          .align 2 
9570                                 _printf  .global
9571   2896 809B                                  str r7,[r2]
9572   2898 E2D3                                  mov r7,r2
9573   289A 7F9F                                  str R6,[R7,#-2]
9574   289C 019C                                  str R0,[R7,#2]
9575   289E 829C                                  str R1,[R7,#4]
9576                                          ; ------------------------------------------------- 
9577                                          ; local s  [R7,#2]
9578                                          ; s
9579                                          ; local a  [R7,#4]
9580                                          ; s
9581                                          ; }
9582                                          ; 
9583                                          ; 
9584                                          ; 
9585                                          ; 
9586                                          ; 
9587                                          ; void printf(char *s, int a, ...) 
9588                                          ; 
9589                                          ; {
9590                                          ; 
9591                                          ;   spf = _spfbuf;
9592                                          ; 
9593   28A0 00F454DF                              lod R0,#__spfbuf   ; ltgd2
9594   28A4 20D452DF                              str  R0,_spf   ; assign
9595                                          ;   dof(s, &a);
9596                                          ; 
9597   28A8 018C                                  lod  R0,[R7,#2]   ; risf
9598   28AA 67D1                                  mov R2,R7   ; lt-u
9599   28AC 0C01                                  add R2,#4   ; ltgr
9600   28AE E2D0                                  mov R1,R2   ; ltmv
9601                                          ; force VR0 to 0   ; call
9602                                          ; force VR1 to 1   ; call
9603   28B0 67D1                                  mov r2,r7   ; call
9604   28B2 1005                                  sub r2,#8   ; call
9605   28B4 3CD83026                              jsr _dof   ; call
9606                                          ; force VR0 to 0   ; res
9607                                          ;   sa_write(_spfbuf, spf-_spfbuf);
9608                                          ; 
9609   28B8 00F454DF                              lod R0,#__spfbuf   ; ltgd2
9610   28BC 80D452DF                              lod  R1,_spf   ; ris
9611   28C0 00F554DF                              lod R2,#__spfbuf   ; ltgd2
9612   28C4 92D0                                  sub R1,R2   ; alu-l
9613                                          ; force VR0 to 0   ; call
9614                                          ; force VR1 to 1   ; call
9615   28C6 67D1                                  mov r2,r7   ; call
9616   28C8 1005                                  sub r2,#8   ; call
9617   28CA 3CD8761F                              jsr _sa_write   ; call
9618                                          ; force VR0 to 0   ; res
9619   28CE 7F8F                                  lod R6,[R7,#-2]   ; cr
9620   28D0 808F                                  lod r7,[r7]   ; cr
9621   28D2 00F3                                  ret   ; cr
9622                                          
9623                                          
9624                                          ; Routine strcat
9625                                          .align 2 
9626                                 _strcat  .global
9627   28D4 809B                                  str r7,[r2]
9628   28D6 E2D3                                  mov r7,r2
9629   28D8 7F9F                                  str R6,[R7,#-2]
9630   28DA 019C                                  str R0,[R7,#2]
9631   28DC 829C                                  str R1,[R7,#4]
9632                                          ; ------------------------------------------------- 
9633                                          ; local dest  [R7,#2]
9634                                          ; s
9635                                          ; local src  [R7,#4]
9636                                          ; s
9637                                          ; }
9638                                          ; 
9639                                          ; 
9640                                          ; 
9641                                          ; char *strcat(char *dest, char *src)
9642                                          ; 
9643                                          ; {
9644                                          ; 
9645                                          ;   while (*dest) dest++;
9646                                          ; 
9647                                   br127  ; anon
9648   28DE 018C                                  lod  R0,[R7,#2]   ; risf
9649   28E0 80A0                                  lodb R1,[R0]   ; risf
9650   28E2 A800                                  cmp R1,#0   ; gfv
9651   28E4 00D8F028                              beq br128 ; fjmp1   ; cfj
9652   28E8 018C                                  lod  R0,[R7,#2]   ; risf
9653   28EA 0900                                  add R0,#1   ; qas
9654   28EC 019C                                  str  R0,[R7,#2]   ; qasmi
9655   28EE F8CA                                  bra br127   ; anon
9656                                   br128  ; anon
9657                                          ;   while (*src) { *(dest++) = *(src++); }
9658                                          ; 
9659                                   br129  ; anon
9660   28F0 028C                                  lod  R0,[R7,#4]   ; risf
9661   28F2 80A0                                  lodb R1,[R0]   ; risf
9662   28F4 A800                                  cmp R1,#0   ; gfv
9663   28F6 00D81029                              beq br130 ; fjmp1   ; cfj
9664   28FA 028C                                  lod  R0,[R7,#4]   ; risf
9665   28FC E0D0                                  mov R1,R0   ; qasp1
9666   28FE 8900                                  add R1,#1   ; qasp
9667   2900 829C                                  str  R1,[R7,#4]   ; qasp
9668   2902 818C                                  lod  R1,[R7,#2]   ; risf
9669   2904 61D1                                  mov R2,R1   ; qasp1
9670   2906 0901                                  add R2,#1   ; qasp
9671   2908 019D                                  str  R2,[R7,#2]   ; qasp
9672   290A 00A1                                  lodb R2,[R0]   ; risf
9673   290C 00B5                                  strb R2,[R1]   ; assign
9674   290E F1CA                                  bra br129   ; anon
9675                                   br130  ; anon
9676                                          ;   *dest = (char) 0;
9677                                          ; 
9678   2910 E000                                  lod R1,#0   ; lti
9679   2912 018C                                  lod  R0,[R7,#2]   ; risf
9680   2914 80B0                                  strb R1,[R0]   ; assign
9681                                          ;   return dest;
9682                                          ; 
9683   2916 018C                                  lod  R0,[R7,#2]   ; risf
9684                                          ; force VR0 to 0   ; loadtod0
9685   2918 7F8F                                  lod R6,[R7,#-2]   ; cr
9686   291A 808F                                  lod r7,[r7]   ; cr
9687   291C 00F3                                  ret   ; cr
9688                                          
9689                                          
9690                                          ; Routine bzero
9691                                          .align 2 
9692                                  _bzero  .global
9693   291E 809B                                  str r7,[r2]
9694   2920 E2D3                                  mov r7,r2
9695                                          ; ------------------------------------------------- 
9696                                          ; local b1  R582
9697                                          ; s
9698                                          ; local length  R583
9699                                          ; s
9700                                          ; force VR0 to 0   ; pram
9701                                          ; force VR1 to 1   ; pram
9702                                          ; }
9703                                          ; 
9704                                          ; 
9705                                          ; 
9706                                          ; void bzero(char *b1, int length) 
9707                                          ; 
9708                                          ; {
9709                                          ; 
9710                                          ;   while(--length >= 0) *(b1++) = (char) 0;
9711                                          ; 
9712                                   br131  ; anon
9713   2922 9100                                  sub R1,#1   ; qap
9714                                          ; mov R1,R1 redundant    ; qasp
9715   2924 A800                                  cmp R1,#0   ; gfv
9716   2926 08D83429                              blt br132 ; fjump F   ; cfj
9717   292A 60D1                                  mov R2,R0   ; qasp
9718   292C 0900                                  add R0,#1   ; qasp
9719   292E E001                                  lod R3,#0   ; lti
9720   2930 80B9                                  strb R3,[R2]   ; assign
9721   2932 F8CA                                  bra br131   ; anon
9722                                   br132  ; anon
9723                                          ; force VR0 to 0   ; pram
9724                                          ; force VR1 to 1   ; pram
9725   2934 808F                                  lod r7,[r7]   ; cr
9726   2936 00F3                                  ret   ; cr
9727                                          
9728                                          
9729                                          ; Routine bcmp
9730                                          .align 2 
9731                                   _bcmp  .global
9732   2938 809B                                  str r7,[r2]
9733   293A E2D3                                  mov r7,r2
9734   293C 7F9F                                  str R6,[R7,#-2]
9735   293E 019C                                  str R0,[R7,#2]
9736   2940 829C                                  str R1,[R7,#4]
9737                                          ; ------------------------------------------------- 
9738                                          ; local b1  [R7,#2]
9739                                          ; s
9740                                          ; local b2  [R7,#4]
9741                                          ; s
9742                                          ; local length  [R7,#6]
9743                                          ; s
9744                                          ; }
9745                                          ; 
9746                                          ; 
9747                                          ; 
9748                                          ; 
9749                                          ; 
9750                                          ; int bcmp(char *b1, char *b2, int length) 
9751                                          ; 
9752                                          ; {
9753                                          ; 
9754                                          ;   while(--length >= 0) if ( *(b1++) != *(b2++)) return 1;
9755                                          ; 
9756                                   br136  ; anon
9757   2942 038C                                  lod  R0,[R7,#6]   ; risf
9758   2944 1100                                  sub R0,#1   ; qap
9759   2946 039C                                  str  R0,[R7,#6]   ; qasp
9760   2948 2800                                  cmp R0,#0   ; gfv
9761   294A 08D87229                              blt br137 ; fjump F   ; cfj
9762   294E 018C                                  lod  R0,[R7,#2]   ; risf
9763   2950 E0D0                                  mov R1,R0   ; qasp1
9764   2952 8900                                  add R1,#1   ; qasp
9765   2954 819C                                  str  R1,[R7,#2]   ; qasp
9766   2956 828C                                  lod  R1,[R7,#4]   ; risf
9767   2958 61D1                                  mov R2,R1   ; qasp1
9768   295A 0901                                  add R2,#1   ; qasp
9769   295C 029D                                  str  R2,[R7,#4]   ; qasp
9770   295E 00A1                                  lodb R2,[R0]   ; risf
9771   2960 00A4                                  lodb R0,[R1]   ; risf
9772   2962 28D1                                  cmp R2,R0   ; alu-l
9773   2964 00D87029                              beq br138 ; fjump F   ; cfj
9774   2968 6100                                  lod R0,#1   ; lti
9775                                          ; force VR0 to 0   ; loadtod0
9776   296A 7F8F                                  lod R6,[R7,#-2]   ; cr
9777   296C 808F                                  lod r7,[r7]   ; cr
9778   296E 00F3                                  ret   ; cr
9779                                   br138  ; anon
9780   2970 E9CA                                  bra br136   ; anon
9781                                   br137  ; anon
9782                                          ;   return 0;
9783                                          ; 
9784   2972 6000                                  lod R0,#0   ; lti
9785                                          ; force VR0 to 0   ; loadtod0
9786   2974 7F8F                                  lod R6,[R7,#-2]   ; cr
9787   2976 808F                                  lod r7,[r7]   ; cr
9788   2978 00F3                                  ret   ; cr
9789                                          
9790                                          
9791                                          ; Routine bcopy
9792                                          .align 2 
9793                                  _bcopy  .global
9794   297A 809B                                  str r7,[r2]
9795   297C E2D3                                  mov r7,r2
9796   297E 7F9F                                  str R6,[R7,#-2]
9797   2980 019C                                  str R0,[R7,#2]
9798   2982 829C                                  str R1,[R7,#4]
9799                                          ; ------------------------------------------------- 
9800                                          ; local src  [R7,#2]
9801                                          ; s
9802                                          ; local dest  [R7,#4]
9803                                          ; s
9804                                          ; local length  [R7,#6]
9805                                          ; s
9806                                          ; }
9807                                          ; 
9808                                          ; 
9809                                          ; 
9810                                          ; void bcopy(char *src, char *dest, int length)
9811                                          ; 
9812                                          ; {
9813                                          ; 
9814                                          ;   while(--length >= 0) *(dest++) = *(src++);
9815                                          ; 
9816                                   br141  ; anon
9817   2984 038C                                  lod  R0,[R7,#6]   ; risf
9818   2986 1100                                  sub R0,#1   ; qap
9819   2988 039C                                  str  R0,[R7,#6]   ; qasp
9820   298A 2800                                  cmp R0,#0   ; gfv
9821   298C 08D8A629                              blt br142 ; fjump F   ; cfj
9822   2990 018C                                  lod  R0,[R7,#2]   ; risf
9823   2992 E0D0                                  mov R1,R0   ; qasp1
9824   2994 8900                                  add R1,#1   ; qasp
9825   2996 819C                                  str  R1,[R7,#2]   ; qasp
9826   2998 828C                                  lod  R1,[R7,#4]   ; risf
9827   299A 61D1                                  mov R2,R1   ; qasp1
9828   299C 0901                                  add R2,#1   ; qasp
9829   299E 029D                                  str  R2,[R7,#4]   ; qasp
9830   29A0 00A1                                  lodb R2,[R0]   ; risf
9831   29A2 00B5                                  strb R2,[R1]   ; assign
9832   29A4 F0CA                                  bra br141   ; anon
9833                                   br142  ; anon
9834   29A6 7F8F                                  lod R6,[R7,#-2]   ; cr
9835   29A8 808F                                  lod r7,[r7]   ; cr
9836   29AA 00F3                                  ret   ; cr
9837                                          
9838                                          
9839                                          ; Routine memcpy
9840                                          .align 2 
9841                                 _memcpy  .global
9842   29AC 809B                                  str r7,[r2]
9843   29AE E2D3                                  mov r7,r2
9844   29B0 7F9F                                  str R6,[R7,#-2]
9845   29B2 019C                                  str R0,[R7,#2]
9846   29B4 829C                                  str R1,[R7,#4]
9847                                          ; ------------------------------------------------- 
9848                                          ; local dest  [R7,#2]
9849                                          ; s
9850                                          ; local src  [R7,#4]
9851                                          ; s
9852                                          ; local length  [R7,#6]
9853                                          ; s
9854                                          ; local b1  [R7,#-4]
9855                                          ; s
9856   29B6 028C                                  lod  R0,[R7,#4]   ; risf
9857   29B8 7E9C                                  str  R0,[R7,#-4]   ; assign
9858                                          ; local b2  [R7,#-6]
9859                                          ; s
9860   29BA 018C                                  lod  R0,[R7,#2]   ; risf
9861   29BC 7D9C                                  str  R0,[R7,#-6]   ; assign
9862                                          ; local d  [R7,#-8]
9863                                          ; s
9864   29BE 018C                                  lod  R0,[R7,#2]   ; risf
9865   29C0 7C9C                                  str  R0,[R7,#-8]   ; assign
9866                                          ; }
9867                                          ; 
9868                                          ; 
9869                                          ; 
9870                                          ; 
9871                                          ; 
9872                                          ; 
9873                                          ; 
9874                                          ; void *memcpy(void *dest, void *src, int length)
9875                                          ; 
9876                                          ; {
9877                                          ; 
9878                                          ;   char *b1 = (char *) src;
9879                                          ; 
9880                                          ;   char *b2 = (char *) dest;
9881                                          ; 
9882                                          ;   void *d = dest;
9883                                          ; 
9884                                          ;   while(--length >= 0) *(b2++) = *(b1++);
9885                                          ; 
9886                                   br145  ; anon
9887   29C2 038C                                  lod  R0,[R7,#6]   ; risf
9888   29C4 1100                                  sub R0,#1   ; qap
9889   29C6 039C                                  str  R0,[R7,#6]   ; qasp
9890   29C8 2800                                  cmp R0,#0   ; gfv
9891   29CA 08D8E429                              blt br146 ; fjump F   ; cfj
9892   29CE 7E8C                                  lod  R0,[R7,#-4]   ; risf
9893   29D0 E0D0                                  mov R1,R0   ; qasp1
9894   29D2 8900                                  add R1,#1   ; qasp
9895   29D4 FE9C                                  str  R1,[R7,#-4]   ; qasp
9896   29D6 FD8C                                  lod  R1,[R7,#-6]   ; risf
9897   29D8 61D1                                  mov R2,R1   ; qasp1
9898   29DA 0901                                  add R2,#1   ; qasp
9899   29DC 7D9D                                  str  R2,[R7,#-6]   ; qasp
9900   29DE 00A1                                  lodb R2,[R0]   ; risf
9901   29E0 00B5                                  strb R2,[R1]   ; assign
9902   29E2 F0CA                                  bra br145   ; anon
9903                                   br146  ; anon
9904                                          ;   return d;
9905                                          ; 
9906   29E4 7C8C                                  lod  R0,[R7,#-8]   ; risf
9907                                          ; force VR0 to 0   ; loadtod0
9908   29E6 7F8F                                  lod R6,[R7,#-2]   ; cr
9909   29E8 808F                                  lod r7,[r7]   ; cr
9910   29EA 00F3                                  ret   ; cr
9911                                          
9912                                          
9913                                          ; Routine strncpy
9914                                          .align 2 
9915                                _strncpy  .global
9916   29EC 809B                                  str r7,[r2]
9917   29EE E2D3                                  mov r7,r2
9918   29F0 7F9F                                  str R6,[R7,#-2]
9919   29F2 019C                                  str R0,[R7,#2]
9920   29F4 829C                                  str R1,[R7,#4]
9921                                          ; ------------------------------------------------- 
9922                                          ; local dest  [R7,#2]
9923                                          ; s
9924                                          ; local src  [R7,#4]
9925                                          ; s
9926                                          ; local n  [R7,#6]
9927                                          ; s
9928                                          ; }
9929                                          ; 
9930                                          ; 
9931                                          ; 
9932                                          ; 
9933                                          ; 
9934                                          ; char *strncpy(char *dest, char *src, int n)
9935                                          ; 
9936                                          ; {
9937                                          ; 
9938                                          ;   while (n-- > 0)
9939                                          ; 
9940                                   br149  ; anon
9941   29F6 038C                                  lod  R0,[R7,#6]   ; risf
9942   29F8 E0D0                                  mov R1,R0   ; qasp1
9943   29FA 9100                                  sub R1,#1   ; qasp
9944   29FC 839C                                  str  R1,[R7,#6]   ; qasp
9945   29FE 2800                                  cmp R0,#0   ; gfv
9946   2A00 14D81A2A                              ble br150 ; fjump F   ; cfj
9947                                          ;     {
9948                                          ; 
9949                                          ;       *(dest++) = *(src++);
9950                                          ; 
9951   2A04 028C                                  lod  R0,[R7,#4]   ; risf
9952   2A06 E0D0                                  mov R1,R0   ; qasp1
9953   2A08 8900                                  add R1,#1   ; qasp
9954   2A0A 829C                                  str  R1,[R7,#4]   ; qasp
9955   2A0C 818C                                  lod  R1,[R7,#2]   ; risf
9956   2A0E 61D1                                  mov R2,R1   ; qasp1
9957   2A10 0901                                  add R2,#1   ; qasp
9958   2A12 019D                                  str  R2,[R7,#2]   ; qasp
9959   2A14 00A1                                  lodb R2,[R0]   ; risf
9960   2A16 00B5                                  strb R2,[R1]   ; assign
9961   2A18 EFCA                                  bra br149   ; anon
9962                                   br150  ; anon
9963                                          ;     }
9964                                          ; 
9965                                          ;   return dest;
9966                                          ; 
9967   2A1A 018C                                  lod  R0,[R7,#2]   ; risf
9968                                          ; force VR0 to 0   ; loadtod0
9969   2A1C 7F8F                                  lod R6,[R7,#-2]   ; cr
9970   2A1E 808F                                  lod r7,[r7]   ; cr
9971   2A20 00F3                                  ret   ; cr
9972                                          
9973                                          
9974                                          ; Routine strcpy
9975                                          .align 2 
9976                                 _strcpy  .global
9977   2A22 809B                                  str r7,[r2]
9978   2A24 E2D3                                  mov r7,r2
9979   2A26 7F9F                                  str R6,[R7,#-2]
9980   2A28 019C                                  str R0,[R7,#2]
9981   2A2A 829C                                  str R1,[R7,#4]
9982                                          ; ------------------------------------------------- 
9983                                          ; local dest  [R7,#2]
9984                                          ; s
9985                                          ; local src  [R7,#4]
9986                                          ; s
9987                                          ; }
9988                                          ; 
9989                                          ; 
9990                                          ; 
9991                                          ; 
9992                                          ; 
9993                                          ; char *strcpy(char *dest, const char *src)
9994                                          ; 
9995                                          ; {
9996                                          ; 
9997                                          ;   while (*src)
9998                                          ; 
9999                                   br153  ; anon
10000   2A2C 028C                                  lod  R0,[R7,#4]   ; risf
10001   2A2E 80A0                                  lodb R1,[R0]   ; risf
10002   2A30 A800                                  cmp R1,#0   ; gfv
10003   2A32 00D84C2A                              beq br154 ; fjmp1   ; cfj
10004                                          ;   { 
10005                                          ; 
10006                                          ;     *(dest++) = *(src++);
10007                                          ; 
10008   2A36 028C                                  lod  R0,[R7,#4]   ; risf
10009   2A38 E0D0                                  mov R1,R0   ; qasp1
10010   2A3A 8900                                  add R1,#1   ; qasp
10011   2A3C 829C                                  str  R1,[R7,#4]   ; qasp
10012   2A3E 818C                                  lod  R1,[R7,#2]   ; risf
10013   2A40 61D1                                  mov R2,R1   ; qasp1
10014   2A42 0901                                  add R2,#1   ; qasp
10015   2A44 019D                                  str  R2,[R7,#2]   ; qasp
10016   2A46 00A1                                  lodb R2,[R0]   ; risf
10017   2A48 00B5                                  strb R2,[R1]   ; assign
10018   2A4A F1CA                                  bra br153   ; anon
10019                                   br154  ; anon
10020                                          ;   }
10021                                          ; 
10022                                          ;   *dest = (char) 0;
10023                                          ; 
10024   2A4C E000                                  lod R1,#0   ; lti
10025   2A4E 018C                                  lod  R0,[R7,#2]   ; risf
10026   2A50 80B0                                  strb R1,[R0]   ; assign
10027                                          ;   return dest;
10028                                          ; 
10029   2A52 018C                                  lod  R0,[R7,#2]   ; risf
10030                                          ; force VR0 to 0   ; loadtod0
10031   2A54 7F8F                                  lod R6,[R7,#-2]   ; cr
10032   2A56 808F                                  lod r7,[r7]   ; cr
10033   2A58 00F3                                  ret   ; cr
10034                                          
10035                                          
10036                                          ; Routine strstr
10037                                          .align 2 
10038                                 _strstr  .global
10039   2A5A 809B                                  str r7,[r2]
10040   2A5C E2D3                                  mov r7,r2
10041                                          ; ------------------------------------------------- 
10042                                          ; local targ  R674
10043                                          ; s
10044                                          ; local pat  R675
10045                                          ; s
10046                                          ; force VR0 to 0   ; pram
10047                                          ; force VR1 to 1   ; pram
10048                                          ; }
10049                                          ; 
10050                                          ; 
10051                                          ; 
10052                                          ; 
10053                                          ; 
10054                                          ; char *strstr(char *targ, char *pat)
10055                                          ; 
10056                                          ; {
10057                                          ; 
10058                                          ;   while(*targ)
10059                                          ; 
10060                                   br155  ; anon
10061   2A5E 00A1                                  lodb R2,[R0]   ; risf
10062   2A60 2801                                  cmp R2,#0   ; gfv
10063   2A62 00D8A22A                              beq br156 ; fjmp1   ; cfj
10064                                          ;   {
10065                                          ; 
10066                                          ; local p  [R7,#-4]
10067                                          ; s
10068   2A66 FE9C                                  str  R1,[R7,#-4]   ; assign
10069                                          ; force VR0 to 0   ; pram
10070                                          ; force VR1 to 1   ; pram
10071                                          ; local q  [R7,#-6]
10072                                          ; s
10073   2A68 7D9C                                  str  R0,[R7,#-6]   ; assign
10074                                          ; force VR0 to 0   ; pram
10075                                          ; force VR1 to 1   ; pram
10076                                          ;     char *p = pat;
10077                                          ; 
10078                                          ;     char *q = targ;
10079                                          ; 
10080                                          ;     while (*p && *p == *q) { p++; q++; };
10081                                          ; 
10082                                   br157  ; anon
10083   2A6A 7E8D                                  lod  R2,[R7,#-4]   ; risf
10084   2A6C 80A9                                  lodb R3,[R2]   ; risf
10085   2A6E A801                                  cmp R3,#0   ; gfv
10086   2A70 00D8902A                              beq br158 ; fjmp1   ; cfj
10087   2A74 7E8D                                  lod  R2,[R7,#-4]   ; risf
10088   2A76 80A9                                  lodb R3,[R2]   ; risf
10089   2A78 7D8D                                  lod  R2,[R7,#-6]   ; risf
10090   2A7A 00AA                                  lodb R4,[R2]   ; risf
10091   2A7C ACD1                                  cmp R3,R4   ; alu-l
10092   2A7E 04D8902A                              bne br158 ; fjump F   ; cfj
10093   2A82 7E8D                                  lod  R2,[R7,#-4]   ; risf
10094   2A84 0901                                  add R2,#1   ; qas
10095   2A86 7E9D                                  str  R2,[R7,#-4]   ; qasmi
10096   2A88 7D8D                                  lod  R2,[R7,#-6]   ; risf
10097   2A8A 0901                                  add R2,#1   ; qas
10098   2A8C 7D9D                                  str  R2,[R7,#-6]   ; qasmi
10099   2A8E EECA                                  bra br157   ; anon
10100                                   br158  ; anon
10101                                          ;     if (*p == (char) 0) return targ;
10102                                          ; 
10103   2A90 7E8D                                  lod  R2,[R7,#-4]   ; risf
10104   2A92 80A9                                  lodb R3,[R2]   ; risf
10105   2A94 A801                                  cmp R3,#0   ; gfv
10106   2A96 04D89E2A                              bne br159 ; fjump F   ; cfj
10107                                          ; force VR0 to 0   ; loadtod0
10108   2A9A 808F                                  lod r7,[r7]   ; cr
10109   2A9C 00F3                                  ret   ; cr
10110                                   br159  ; anon
10111                                          ;     targ++;
10112                                          ; 
10113   2A9E 0900                                  add R0,#1   ; qas
10114                                          ; mov R0,R0 redundant    ; qasmi
10115   2AA0 DFCA                                  bra br155   ; anon
10116                                   br156  ; anon
10117                                          ;   }
10118                                          ; 
10119                                          ;   return 0 ;
10120                                          ; 
10121   2AA2 6001                                  lod R2,#0   ; lti
10122   2AA4 62D0                                  mov R0,R2   ; forceresolve
10123   2AA6 808F                                  lod r7,[r7]   ; cr
10124   2AA8 00F3                                  ret   ; cr
10125                                          ; force VR0 to 0   ; pram
10126                                          ; force VR1 to 1   ; pram
10127                                          
10128                                          
10129                                          ; Routine strlen
10130                                          .align 2 
10131                                 _strlen  .global
10132   2AAA 809B                                  str r7,[r2]
10133   2AAC E2D3                                  mov r7,r2
10134                                          ; ------------------------------------------------- 
10135                                          ; local s  R689
10136                                          ; s
10137                                          ; force VR0 to 0   ; pram
10138                                          ; local r  [R7,#-4]
10139                                          ; s
10140   2AAE E000                                  lod R1,#0   ; lti
10141   2AB0 FE9C                                  str  R1,[R7,#-4]   ; assign
10142                                          ; force VR0 to 0   ; pram
10143                                          ; }
10144                                          ; 
10145                                          ; 
10146                                          ; 
10147                                          ; 
10148                                          ; 
10149                                          ; 
10150                                          ; 
10151                                          ; int strlen(char *s)
10152                                          ; 
10153                                          ; {
10154                                          ; 
10155                                          ;   int r = 0;
10156                                          ; 
10157                                          ;   while(*s++) r++;
10158                                          ; 
10159                                   br160  ; anon
10160   2AB2 E0D0                                  mov R1,R0   ; qasp
10161   2AB4 0900                                  add R0,#1   ; qasp
10162   2AB6 00A5                                  lodb R2,[R1]   ; risf
10163   2AB8 2801                                  cmp R2,#0   ; gfv
10164   2ABA 00D8C62A                              beq br161 ; fjmp1   ; cfj
10165   2ABE FE8C                                  lod  R1,[R7,#-4]   ; risf
10166   2AC0 8900                                  add R1,#1   ; qas
10167   2AC2 FE9C                                  str  R1,[R7,#-4]   ; qasmi
10168   2AC4 F7CA                                  bra br160   ; anon
10169                                   br161  ; anon
10170                                          ;   return r;
10171                                          ; 
10172   2AC6 FE8C                                  lod  R1,[R7,#-4]   ; risf
10173   2AC8 61D0                                  mov R0,R1   ; forceresolve
10174   2ACA 808F                                  lod r7,[r7]   ; cr
10175   2ACC 00F3                                  ret   ; cr
10176                                          ; force VR0 to 0   ; pram
10177                                          
10178                                          
10179                                          ; Routine fread
10180                                          .align 2 
10181                                  _fread  .global
10182   2ACE 809B                                  str r7,[r2]
10183   2AD0 E2D3                                  mov r7,r2
10184   2AD2 7F9F                                  str R6,[R7,#-2]
10185   2AD4 019C                                  str R0,[R7,#2]
10186   2AD6 829C                                  str R1,[R7,#4]
10187                                          ; ------------------------------------------------- 
10188                                          ; local buf  [R7,#2]
10189                                          ; s
10190                                          ; local size  [R7,#4]
10191                                          ; s
10192                                          ; local nitems  [R7,#6]
10193                                          ; s
10194                                          ; local stream  [R7,#8]
10195                                          ; s
10196                                          ; }
10197                                          ; 
10198                                          ; 
10199                                          ; 
10200                                          ; int fread(char *buf, int size, int nitems, struct stdio *stream)
10201                                          ; 
10202                                          ; {
10203                                          ; 
10204                                          ;   return read(stream->sysfd, buf, size * nitems);
10205                                          ; 
10206   2AD8 038C                                  lod  R0,[R7,#6]   ; risf
10207   2ADA 828C                                  lod  R1,[R7,#4]   ; risf
10208   2ADC 6001                                  lod R2,#0   ; LM
10209                                   br162  ; anon
10210   2ADE 2800                                  cmp R0,#0   ; gfv
10211   2AE0 00D8F22A                              beq br163   ; anon
10212   2AE4 6900                                  tst R0,#1   ; anon
10213   2AE6 00D8EC2A                              beq br164   ; anon
10214   2AEA 09D1                                  add R2,R1   ; anon
10215                                   br164  ; anon
10216   2AEC 5900                                  lsr R0,#1   ; anon
10217   2AEE C900                                  lsl R1,#1   ; anon
10218   2AF0 F7CA                                  bra br162   ; anon
10219                                   br163  ; anon
10220   2AF2 7E9D                                  str  R2,[R7,#-4]   ; assign
10221   2AF4 868C                                  lod  R1,[R7,#12]   ; risf
10222   2AF6 0084                                  lod  R0,[R1]   ; risf
10223   2AF8 818C                                  lod  R1,[R7,#2]   ; risf
10224                                          ; force VR0 to 0   ; call
10225                                          ; force VR1 to 1   ; call
10226   2AFA 67D1                                  mov r2,r7   ; call
10227   2AFC 1205                                  sub r2,#10   ; call
10228   2AFE 3CD8541F                              jsr _read   ; call
10229                                          ; force VR0 to 0   ; res
10230                                          ; force VR0 to 0   ; loadtod0
10231   2B02 7F8F                                  lod R6,[R7,#-2]   ; cr
10232   2B04 808F                                  lod r7,[r7]   ; cr
10233   2B06 00F3                                  ret   ; cr
10234                                          
10235                                          
10236                                          ; Routine fwrite
10237                                          .align 2 
10238                                 _fwrite  .global
10239   2B08 809B                                  str r7,[r2]
10240   2B0A E2D3                                  mov r7,r2
10241   2B0C 7F9F                                  str R6,[R7,#-2]
10242   2B0E 019C                                  str R0,[R7,#2]
10243   2B10 829C                                  str R1,[R7,#4]
10244                                          ; ------------------------------------------------- 
10245                                          ; local buf  [R7,#2]
10246                                          ; s
10247                                          ; local size  [R7,#4]
10248                                          ; s
10249                                          ; local nitems  [R7,#6]
10250                                          ; s
10251                                          ; local stream  [R7,#8]
10252                                          ; s
10253                                          ; }
10254                                          ; 
10255                                          ; 
10256                                          ; 
10257                                          ; int fwrite(char *buf, int size, int nitems, struct stdio *stream)
10258                                          ; 
10259                                          ; {
10260                                          ; 
10261                                          ;   fflush (stream);
10262                                          ; 
10263   2B12 048C                                  lod  R0,[R7,#8]   ; risf
10264                                          ; force VR0 to 0   ; call
10265   2B14 67D1                                  mov r2,r7   ; call
10266   2B16 1005                                  sub r2,#8   ; call
10267   2B18 3CD88E2B                              jsr _fflush   ; call
10268                                          ; force VR0 to 0   ; res
10269                                          ;   return write(stream->sysfd, buf, size * nitems);
10270                                          ; 
10271   2B1C 038C                                  lod  R0,[R7,#6]   ; risf
10272   2B1E 828C                                  lod  R1,[R7,#4]   ; risf
10273   2B20 6001                                  lod R2,#0   ; LM
10274                                   br165  ; anon
10275   2B22 2800                                  cmp R0,#0   ; gfv
10276   2B24 00D8362B                              beq br166   ; anon
10277   2B28 6900                                  tst R0,#1   ; anon
10278   2B2A 00D8302B                              beq br167   ; anon
10279   2B2E 09D1                                  add R2,R1   ; anon
10280                                   br167  ; anon
10281   2B30 5900                                  lsr R0,#1   ; anon
10282   2B32 C900                                  lsl R1,#1   ; anon
10283   2B34 F7CA                                  bra br165   ; anon
10284                                   br166  ; anon
10285   2B36 7E9D                                  str  R2,[R7,#-4]   ; assign
10286   2B38 868C                                  lod  R1,[R7,#12]   ; risf
10287   2B3A 0084                                  lod  R0,[R1]   ; risf
10288   2B3C 818C                                  lod  R1,[R7,#2]   ; risf
10289                                          ; force VR0 to 0   ; call
10290                                          ; force VR1 to 1   ; call
10291   2B3E 67D1                                  mov r2,r7   ; call
10292   2B40 1205                                  sub r2,#10   ; call
10293   2B42 3CD8C41F                              jsr _write   ; call
10294                                          ; force VR0 to 0   ; res
10295                                          ; force VR0 to 0   ; loadtod0
10296   2B46 7F8F                                  lod R6,[R7,#-2]   ; cr
10297   2B48 808F                                  lod r7,[r7]   ; cr
10298   2B4A 00F3                                  ret   ; cr
10299                                          
10300                                          
10301                                          ; Routine fclose
10302                                          .align 2 
10303                                 _fclose  .global
10304   2B4C 809B                                  str r7,[r2]
10305   2B4E E2D3                                  mov r7,r2
10306   2B50 7F9F                                  str R6,[R7,#-2]
10307   2B52 019C                                  str R0,[R7,#2]
10308                                          ; ------------------------------------------------- 
10309                                          ; local f  [R7,#2]
10310                                          ; s
10311                                          ; }
10312                                          ; 
10313                                          ; 
10314                                          ; 
10315                                          ; 
10316                                          ; 
10317                                          ; int fclose(struct stdio * f)
10318                                          ; 
10319                                          ; {
10320                                          ; 
10321                                          ;   fflush (f);
10322                                          ; 
10323   2B54 018C                                  lod  R0,[R7,#2]   ; risf
10324                                          ; force VR0 to 0   ; call
10325   2B56 67D1                                  mov r2,r7   ; call
10326   2B58 1005                                  sub r2,#8   ; call
10327   2B5A 3CD88E2B                              jsr _fflush   ; call
10328                                          ; force VR0 to 0   ; res
10329   2B5E 7F8F                                  lod R6,[R7,#-2]   ; cr
10330   2B60 808F                                  lod r7,[r7]   ; cr
10331   2B62 00F3                                  ret   ; cr
10332                                          
10333                                          
10334                                          ; Routine exit
10335                                          .align 2 
10336                                   _exit  .global
10337   2B64 809B                                  str r7,[r2]
10338   2B66 E2D3                                  mov r7,r2
10339   2B68 7F9F                                  str R6,[R7,#-2]
10340   2B6A 019C                                  str R0,[R7,#2]
10341                                          ; ------------------------------------------------- 
10342                                          ; local c  [R7,#2]
10343                                          ; s
10344                                          ;   }
10345                                          ; 
10346                                          ; }
10347                                          ; 
10348                                          ; 
10349                                          ; 
10350                                          ; void exit(c)
10351                                          ; 
10352                                          ; {
10353                                          ; 
10354                                          ;   fflush (stderr);
10355                                          ; 
10356   2B6C 00D44ADF                              lod  R0,_stderr   ; ris
10357                                          ; force VR0 to 0   ; call
10358   2B70 67D1                                  mov r2,r7   ; call
10359   2B72 1005                                  sub r2,#8   ; call
10360   2B74 3CD88E2B                              jsr _fflush   ; call
10361                                          ; force VR0 to 0   ; res
10362                                          ;   fflush (stdout);
10363                                          ; 
10364   2B78 00D448DF                              lod  R0,_stdout   ; ris
10365                                          ; force VR0 to 0   ; call
10366   2B7C 67D1                                  mov r2,r7   ; call
10367   2B7E 1005                                  sub r2,#8   ; call
10368   2B80 3CD88E2B                              jsr _fflush   ; call
10369                                          ; force VR0 to 0   ; res
10370                                          ;   while (1) continue;
10371                                          ; 
10372                                   br168  ; anon
10373   2B84 00CA                                  bra br168   ; anon
10374   2B86 FFCA                                  bra br168   ; anon
10375                                   br169  ; anon
10376   2B88 7F8F                                  lod R6,[R7,#-2]   ; cr
10377   2B8A 808F                                  lod r7,[r7]   ; cr
10378   2B8C 00F3                                  ret   ; cr
10379                                          
10380                                          
10381                                          ; Routine fflush
10382                                          .align 2 
10383                                 _fflush  .global
10384   2B8E 809B                                  str r7,[r2]
10385   2B90 E2D3                                  mov r7,r2
10386   2B92 7F9F                                  str R6,[R7,#-2]
10387   2B94 019C                                  str R0,[R7,#2]
10388                                          ; ------------------------------------------------- 
10389                                          ; local f  [R7,#2]
10390                                          ; s
10391                                          ; }
10392                                          ; 
10393                                          ; 
10394                                          ; 
10395                                          ; 
10396                                          ; 
10397                                          ; fflush(struct stdio *f)
10398                                          ; 
10399                                          ; {
10400                                          ; 
10401                                          ;   if (f && f->mode == 'w')
10402                                          ; 
10403   2B96 018C                                  lod  R0,[R7,#2]   ; risf
10404   2B98 2800                                  cmp R0,#0   ; gfv
10405   2B9A 00D8C82B                              beq br170 ; fjmp1   ; cfj
10406   2B9E 058C                                  lod  R0,[R7,#10]   ; risf
10407   2BA0 8080                                  lod  R1,[R0]   ; risf
10408   2BA2 AF38                                  cmp R1,#119   ; alu_i
10409   2BA4 04D8C82B                              bne br170 ; fjump F   ; cfj
10410                                          ;   {
10411                                          ; 
10412                                          ;     write(f->sysfd, f->data, f->bytes);
10413                                          ; 
10414   2BA8 078C                                  lod  R0,[R7,#14]   ; risf
10415   2BAA 8080                                  lod  R1,[R0]   ; risf
10416   2BAC FE9C                                  str  R1,[R7,#-4]   ; assign
10417   2BAE 838C                                  lod  R1,[R7,#6]   ; risf
10418   2BB0 0084                                  lod  R0,[R1]   ; risf
10419   2BB2 8F8C                                  lod  R1,[R7,#30]   ; risf
10420                                          ; force VR0 to 0   ; call
10421                                          ; force VR1 to 1   ; call
10422   2BB4 67D1                                  mov r2,r7   ; call
10423   2BB6 1205                                  sub r2,#10   ; call
10424   2BB8 3CD8C41F                              jsr _write   ; call
10425                                          ; force VR0 to 0   ; res
10426                                          ;     f->bytes = 0;
10427                                          ; 
10428   2BBC E000                                  lod R1,#0   ; lti
10429   2BBE 078C                                  lod  R0,[R7,#14]   ; risf
10430   2BC0 8090                                  str  R1,[R0]   ; assign
10431                                          ;     f->poi = f->data;
10432                                          ; 
10433   2BC2 8F8C                                  lod  R1,[R7,#30]   ; risf
10434   2BC4 098C                                  lod  R0,[R7,#18]   ; risf
10435   2BC6 8090                                  str  R1,[R0]   ; assign
10436                                   br170  ; anon
10437   2BC8 7F8F                                  lod R6,[R7,#-2]   ; cr
10438   2BCA 808F                                  lod r7,[r7]   ; cr
10439   2BCC 00F3                                  ret   ; cr
10440                                          
10441                                          
10442                                          ; Routine putchar
10443                                          .align 2 
10444                                _putchar  .global
10445   2BCE 809B                                  str r7,[r2]
10446   2BD0 E2D3                                  mov r7,r2
10447   2BD2 7F9F                                  str R6,[R7,#-2]
10448   2BD4 019C                                  str R0,[R7,#2]
10449                                          ; ------------------------------------------------- 
10450                                          ; local c  [R7,#2]
10451                                          ; s
10452                                          ; }
10453                                          ; 
10454                                          ; 
10455                                          ; 
10456                                          ; void putchar(char c)
10457                                          ; 
10458                                          ; {
10459                                          ; 
10460                                          ;   _sa_wrch(c);
10461                                          ; 
10462   2BD6 01AC                                  lodb R0,[R7,#2]   ; risf
10463                                          ; force VR0 to 0   ; call
10464   2BD8 67D1                                  mov r2,r7   ; call
10465   2BDA 1005                                  sub r2,#8   ; call
10466   2BDC 3CD80C00                              jsr __sa_wrch   ; call
10467                                          ; force VR0 to 0   ; res
10468   2BE0 7F8F                                  lod R6,[R7,#-2]   ; cr
10469   2BE2 808F                                  lod r7,[r7]   ; cr
10470   2BE4 00F3                                  ret   ; cr
10471                                          
10472                                          
10473                                          ; Routine putc
10474                                          .align 2 
10475                                   _putc  .global
10476   2BE6 809B                                  str r7,[r2]
10477   2BE8 E2D3                                  mov r7,r2
10478   2BEA 7F9F                                  str R6,[R7,#-2]
10479   2BEC 019C                                  str R0,[R7,#2]
10480   2BEE 829C                                  str R1,[R7,#4]
10481                                          ; ------------------------------------------------- 
10482                                          ; local c  [R7,#2]
10483                                          ; s
10484                                          ; local f  [R7,#4]
10485                                          ; s
10486                                          ; } 
10487                                          ; 
10488                                          ; 
10489                                          ; 
10490                                          ; void putc(char c, struct stdio *f)
10491                                          ; 
10492                                          ; {
10493                                          ; 
10494                                          ;   while (f->bytes == 32 ) fflush (f);
10495                                          ; 
10496                                   br171  ; anon
10497   2BF0 088C                                  lod  R0,[R7,#16]   ; risf
10498   2BF2 8080                                  lod  R1,[R0]   ; risf
10499   2BF4 A810                                  cmp R1,#32   ; alu_i
10500   2BF6 04D8062C                              bne br172 ; fjump F   ; cfj
10501   2BFA 028C                                  lod  R0,[R7,#4]   ; risf
10502                                          ; force VR0 to 0   ; call
10503   2BFC 67D1                                  mov r2,r7   ; call
10504   2BFE 1005                                  sub r2,#8   ; call
10505   2C00 3CD88E2B                              jsr _fflush   ; call
10506                                          ; force VR0 to 0   ; res
10507   2C04 F6CA                                  bra br171   ; anon
10508                                   br172  ; anon
10509                                          ;   *(f->poi)++ = c;
10510                                          ; 
10511   2C06 0A8C                                  lod  R0,[R7,#20]   ; risf
10512   2C08 8080                                  lod  R1,[R0]   ; risf
10513   2C0A 61D1                                  mov R2,R1   ; qasp1
10514   2C0C 0901                                  add R2,#1   ; qasp
10515   2C0E 0091                                  str  R2,[R0]   ; qasp
10516   2C10 01AC                                  lodb R0,[R7,#2]   ; risf
10517   2C12 00B4                                  strb R0,[R1]   ; assign
10518                                          ;   f->bytes ++;
10519                                          ; 
10520   2C14 088C                                  lod  R0,[R7,#16]   ; risf
10521   2C16 8080                                  lod  R1,[R0]   ; risf
10522   2C18 8900                                  add R1,#1   ; qas
10523   2C1A 8090                                  str  R1,[R0]   ; qasmi
10524                                          ;   if (c == '\n') fflush (f);
10525                                          ; 
10526   2C1C 01AC                                  lodb R0,[R7,#2]   ; risf
10527   2C1E 2A04                                  cmp R0,#10   ; alu_i
10528   2C20 04D82E2C                              bne br173 ; fjump F   ; cfj
10529   2C24 028C                                  lod  R0,[R7,#4]   ; risf
10530                                          ; force VR0 to 0   ; call
10531   2C26 67D1                                  mov r2,r7   ; call
10532   2C28 1005                                  sub r2,#8   ; call
10533   2C2A 3CD88E2B                              jsr _fflush   ; call
10534                                          ; force VR0 to 0   ; res
10535                                   br173  ; anon
10536   2C2E 7F8F                                  lod R6,[R7,#-2]   ; cr
10537   2C30 808F                                  lod r7,[r7]   ; cr
10538   2C32 00F3                                  ret   ; cr
10539                                          
10540                                          
10541                                          ; Routine getc
10542                                          .align 2 
10543                                   _getc  .global
10544   2C34 809B                                  str r7,[r2]
10545   2C36 E2D3                                  mov r7,r2
10546   2C38 7F9F                                  str R6,[R7,#-2]
10547   2C3A 019C                                  str R0,[R7,#2]
10548                                          ; ------------------------------------------------- 
10549                                          ; local f  [R7,#2]
10550                                          ; s
10551                                          ; }
10552                                          ; 
10553                                          ; 
10554                                          ; 
10555                                          ; 
10556                                          ; 
10557                                          ; 
10558                                          ; 
10559                                          ; 
10560                                          ; 
10561                                          ; 
10562                                          ; 
10563                                          ; char getc(struct stdio *f)
10564                                          ; 
10565                                          ; {
10566                                          ; 
10567                                          ;   if (f->bytes == 0)
10568                                          ; 
10569   2C3C 078C                                  lod  R0,[R7,#14]   ; risf
10570   2C3E 8080                                  lod  R1,[R0]   ; risf
10571   2C40 A800                                  cmp R1,#0   ; gfv
10572   2C42 04D8922C                              bne br174 ; fjump F   ; cfj
10573                                          ;   {
10574                                          ; 
10575                                          ; local b  [R7,#-4]
10576                                          ; s
10577                                          ;     int b;
10578                                          ; 
10579                                          ;     if (f->flags) return -1 ;
10580                                          ; 
10581   2C46 018C                                  lod  R0,[R7,#2]   ; risf
10582   2C48 8080                                  lod  R1,[R0]   ; risf
10583   2C4A A800                                  cmp R1,#0   ; gfv
10584   2C4C 00D85A2C                              beq br175 ; fjmp1   ; cfj
10585   2C50 00F4FFFF                              lod R0,#-1   ; lti
10586                                          ; force VR0 to 0   ; loadtod0
10587   2C54 7F8F                                  lod R6,[R7,#-2]   ; cr
10588   2C56 808F                                  lod r7,[r7]   ; cr
10589   2C58 00F3                                  ret   ; cr
10590                                   br175  ; anon
10591                                          ;     b = read(f->sysfd, f->data, 32 );    
10592                                          ; 
10593   2C5A 6010                                  lod R0,#32   ; lti
10594   2C5C 7D9C                                  str  R0,[R7,#-6]   ; assign
10595   2C5E 838C                                  lod  R1,[R7,#6]   ; risf
10596   2C60 0084                                  lod  R0,[R1]   ; risf
10597   2C62 8F8C                                  lod  R1,[R7,#30]   ; risf
10598                                          ; force VR0 to 0   ; call
10599                                          ; force VR1 to 1   ; call
10600   2C64 67D1                                  mov r2,r7   ; call
10601   2C66 1405                                  sub r2,#12   ; call
10602   2C68 3CD8541F                              jsr _read   ; call
10603                                          ; force VR0 to 0   ; res
10604   2C6C 7E9C                                  str  R0,[R7,#-4]   ; assign
10605                                          ;     if (b == 0)
10606                                          ; 
10607   2C6E 7E8C                                  lod  R0,[R7,#-4]   ; risf
10608   2C70 2800                                  cmp R0,#0   ; gfv
10609   2C72 04D8862C                              bne br176 ; fjump F   ; cfj
10610                                          ;     {
10611                                          ; 
10612                                          ;       f->flags = 1;
10613                                          ; 
10614   2C76 E100                                  lod R1,#1   ; lti
10615   2C78 018C                                  lod  R0,[R7,#2]   ; risf
10616   2C7A 8090                                  str  R1,[R0]   ; assign
10617                                          ;       return -1 ;
10618                                          ; 
10619   2C7C 00F4FFFF                              lod R0,#-1   ; lti
10620                                          ; force VR0 to 0   ; loadtod0
10621   2C80 7F8F                                  lod R6,[R7,#-2]   ; cr
10622   2C82 808F                                  lod r7,[r7]   ; cr
10623   2C84 00F3                                  ret   ; cr
10624                                   br176  ; anon
10625                                          ;     }
10626                                          ; 
10627                                          ;     f->bytes = b;
10628                                          ; 
10629   2C86 FE8C                                  lod  R1,[R7,#-4]   ; risf
10630   2C88 078C                                  lod  R0,[R7,#14]   ; risf
10631   2C8A 8090                                  str  R1,[R0]   ; assign
10632                                          ;     f->poi = f->data;
10633                                          ; 
10634   2C8C 8F8C                                  lod  R1,[R7,#30]   ; risf
10635   2C8E 098C                                  lod  R0,[R7,#18]   ; risf
10636   2C90 8090                                  str  R1,[R0]   ; assign
10637                                   br174  ; anon
10638                                          ;   }
10639                                          ; 
10640                                          ;   f->bytes --;
10641                                          ; 
10642   2C92 078C                                  lod  R0,[R7,#14]   ; risf
10643   2C94 8080                                  lod  R1,[R0]   ; risf
10644   2C96 9100                                  sub R1,#1   ; qas
10645   2C98 8090                                  str  R1,[R0]   ; qasmi
10646                                          ;   return *(f->poi)++;
10647                                          ; 
10648   2C9A 098C                                  lod  R0,[R7,#18]   ; risf
10649   2C9C 8080                                  lod  R1,[R0]   ; risf
10650   2C9E 61D1                                  mov R2,R1   ; qasp1
10651   2CA0 0901                                  add R2,#1   ; qasp
10652   2CA2 0091                                  str  R2,[R0]   ; qasp
10653   2CA4 00A4                                  lodb R0,[R1]   ; risf
10654                                          ; force VR0 to 0   ; loadtod0
10655   2CA6 7F8F                                  lod R6,[R7,#-2]   ; cr
10656   2CA8 808F                                  lod r7,[r7]   ; cr
10657   2CAA 00F3                                  ret   ; cr
10658                                          
10659                                          
10660                                          ; Routine fgets
10661                                          .align 2 
10662                                  _fgets  .global
10663   2CAC 809B                                  str r7,[r2]
10664   2CAE E2D3                                  mov r7,r2
10665   2CB0 7F9F                                  str R6,[R7,#-2]
10666   2CB2 019C                                  str R0,[R7,#2]
10667   2CB4 829C                                  str R1,[R7,#4]
10668                                          ; ------------------------------------------------- 
10669                                          ; local buf  [R7,#2]
10670                                          ; s
10671                                          ; local maxn  [R7,#4]
10672                                          ; s
10673                                          ; local f  [R7,#6]
10674                                          ; s
10675                                          ; local p  [R7,#-4]
10676                                          ; s
10677   2CB6 018C                                  lod  R0,[R7,#2]   ; risf
10678   2CB8 7E9C                                  str  R0,[R7,#-4]   ; assign
10679                                          ; }
10680                                          ; 
10681                                          ; 
10682                                          ; 
10683                                          ; 
10684                                          ; 
10685                                          ; 
10686                                          ; 
10687                                          ; char *fgets(char *buf, int maxn, struct stdio *f)
10688                                          ; 
10689                                          ; {
10690                                          ; 
10691                                          ;   char *p = buf;
10692                                          ; 
10693                                          ;   if (f->flags & 1)
10694                                          ; 
10695   2CBA 038C                                  lod  R0,[R7,#6]   ; risf
10696   2CBC 8080                                  lod  R1,[R0]   ; risf
10697   2CBE B900                                  and R1,#1   ; alu_i
10698   2CC0 00D8D22C                              beq br177 ; fjmp1   ; cfj
10699                                          ;   {
10700                                          ; 
10701                                          ;     *p = (char) 0;
10702                                          ; 
10703   2CC4 E000                                  lod R1,#0   ; lti
10704   2CC6 7E8C                                  lod  R0,[R7,#-4]   ; risf
10705   2CC8 80B0                                  strb R1,[R0]   ; assign
10706                                          ;     return (char *) 0 ;  
10707                                          ; 
10708   2CCA 6000                                  lod R0,#0   ; lti
10709                                          ; force VR0 to 0   ; loadtod0
10710   2CCC 7F8F                                  lod R6,[R7,#-2]   ; cr
10711   2CCE 808F                                  lod r7,[r7]   ; cr
10712   2CD0 00F3                                  ret   ; cr
10713                                   br177  ; anon
10714                                          ;   }
10715                                          ; 
10716                                          ; 
10717                                          ; 
10718                                          ;   maxn--; 
10719                                          ; 
10720   2CD2 028C                                  lod  R0,[R7,#4]   ; risf
10721   2CD4 1100                                  sub R0,#1   ; qas
10722   2CD6 029C                                  str  R0,[R7,#4]   ; qasmi
10723                                          ;   while(maxn>0)
10724                                          ; 
10725                                   br178  ; anon
10726   2CD8 028C                                  lod  R0,[R7,#4]   ; risf
10727   2CDA 2800                                  cmp R0,#0   ; gfv
10728   2CDC 14D8AC2D                              ble br179 ; fjump F   ; cfj
10729                                          ;   {
10730                                          ; 
10731                                          ; local sn  [R7,#-6]
10732                                          ; s
10733   2CE0 098C                                  lod  R0,[R7,#18]   ; risf
10734   2CE2 8080                                  lod  R1,[R0]   ; risf
10735   2CE4 FD9C                                  str  R1,[R7,#-6]   ; assign
10736                                          ; local c  [R7,#-8]
10737                                          ; s
10738   2CE6 6000                                  lod R0,#0   ; lti
10739   2CE8 7CBC                                  strb R0,[R7,#-8]   ; assign
10740                                          ; local n  [R7,#-10]
10741                                          ; s
10742                                          ; local d  [R7,#-12]
10743                                          ; s
10744                                          ;     int sn = f->bytes;
10745                                          ; 
10746                                          ;     char c = 0;
10747                                          ; 
10748                                          ;     int n, d;
10749                                          ; 
10750                                          ;     if (sn > maxn) sn = maxn;  
10751                                          ; 
10752   2CEA 7D8C                                  lod  R0,[R7,#-6]   ; risf
10753   2CEC 828C                                  lod  R1,[R7,#4]   ; risf
10754   2CEE 29D0                                  cmp R0,R1   ; alu-l
10755   2CF0 14D8F82C                              ble br180 ; fjump F   ; cfj
10756   2CF4 028C                                  lod  R0,[R7,#4]   ; risf
10757   2CF6 7D9C                                  str  R0,[R7,#-6]   ; assign
10758                                   br180  ; anon
10759                                          ;     n = sn;
10760                                          ; 
10761   2CF8 7D8C                                  lod  R0,[R7,#-6]   ; risf
10762   2CFA 7B9C                                  str  R0,[R7,#-10]   ; assign
10763                                          ;     while(n > 0)  
10764                                          ; 
10765                                   br181  ; anon
10766   2CFC 7B8C                                  lod  R0,[R7,#-10]   ; risf
10767   2CFE 2800                                  cmp R0,#0   ; gfv
10768   2D00 14D8322D                              ble br182 ; fjump F   ; cfj
10769                                          ;     {
10770                                          ; 
10771                                          ;       c = *(f->poi)++;
10772                                          ; 
10773   2D04 0B8C                                  lod  R0,[R7,#22]   ; risf
10774   2D06 8080                                  lod  R1,[R0]   ; risf
10775   2D08 61D1                                  mov R2,R1   ; qasp1
10776   2D0A 0901                                  add R2,#1   ; qasp
10777   2D0C 0091                                  str  R2,[R0]   ; qasp
10778   2D0E 00A4                                  lodb R0,[R1]   ; risf
10779   2D10 7CBC                                  strb R0,[R7,#-8]   ; assign
10780                                          ;       *p++ = c;
10781                                          ; 
10782   2D12 7E8C                                  lod  R0,[R7,#-4]   ; risf
10783   2D14 E0D0                                  mov R1,R0   ; qasp1
10784   2D16 8900                                  add R1,#1   ; qasp
10785   2D18 FE9C                                  str  R1,[R7,#-4]   ; qasp
10786   2D1A FCAC                                  lodb R1,[R7,#-8]   ; risf
10787   2D1C 80B0                                  strb R1,[R0]   ; assign
10788                                          ;       n--;
10789                                          ; 
10790   2D1E 7B8C                                  lod  R0,[R7,#-10]   ; risf
10791   2D20 1100                                  sub R0,#1   ; qas
10792   2D22 7B9C                                  str  R0,[R7,#-10]   ; qasmi
10793                                          ;       if (c == '\n') break;
10794                                          ; 
10795   2D24 7CAC                                  lodb R0,[R7,#-8]   ; risf
10796   2D26 2A04                                  cmp R0,#10   ; alu_i
10797   2D28 04D8302D                              bne br183 ; fjump F   ; cfj
10798   2D2C 28D8322D                              bra br182   ; anon
10799                                   br183  ; anon
10800   2D30 E6CA                                  bra br181   ; anon
10801                                   br182  ; anon
10802                                          ;     }
10803                                          ; 
10804                                          ;     d = sn - n;     
10805                                          ; 
10806   2D32 7D8C                                  lod  R0,[R7,#-6]   ; risf
10807   2D34 FB8C                                  lod  R1,[R7,#-10]   ; risf
10808   2D36 11D0                                  sub R0,R1   ; alu-l
10809   2D38 7A9C                                  str  R0,[R7,#-12]   ; assign
10810                                          ;     f->bytes -= d;
10811                                          ; 
10812   2D3A 098C                                  lod  R0,[R7,#18]   ; risf
10813   2D3C 8080                                  lod  R1,[R0]   ; risf
10814   2D3E 7A8C                                  lod  R0,[R7,#-12]   ; risf
10815   2D40 90D0                                  sub R1,R0   ; alu-l
10816   2D42 098C                                  lod  R0,[R7,#18]   ; risf
10817   2D44 8090                                  str  R1,[R0]   ; assign
10818                                          ;     maxn -= d;
10819                                          ; 
10820   2D46 028C                                  lod  R0,[R7,#4]   ; risf
10821   2D48 FA8C                                  lod  R1,[R7,#-12]   ; risf
10822   2D4A 11D0                                  sub R0,R1   ; alu-l
10823   2D4C 029C                                  str  R0,[R7,#4]   ; assign
10824                                          ;     if (c == '\n') break;
10825                                          ; 
10826   2D4E 7CAC                                  lodb R0,[R7,#-8]   ; risf
10827   2D50 2A04                                  cmp R0,#10   ; alu_i
10828   2D52 04D85A2D                              bne br184 ; fjump F   ; cfj
10829   2D56 28D8AC2D                              bra br179   ; anon
10830                                   br184  ; anon
10831                                          ;     if (f->bytes == 0 && f->flags == 0)
10832                                          ; 
10833   2D5A 098C                                  lod  R0,[R7,#18]   ; risf
10834   2D5C 8080                                  lod  R1,[R0]   ; risf
10835   2D5E A800                                  cmp R1,#0   ; gfv
10836   2D60 04D89C2D                              bne br185 ; fjump F   ; cfj
10837   2D64 038C                                  lod  R0,[R7,#6]   ; risf
10838   2D66 8080                                  lod  R1,[R0]   ; risf
10839   2D68 A800                                  cmp R1,#0   ; gfv
10840   2D6A 04D89C2D                              bne br185 ; fjump F   ; cfj
10841                                          ;     {
10842                                          ; 
10843                                          ; local b  [R7,#-14]
10844                                          ; s
10845                                          ;       int b;
10846                                          ; 
10847                                          ;       b = read(f->sysfd, f->data, 32 );    
10848                                          ; 
10849   2D6E 6010                                  lod R0,#32   ; lti
10850   2D70 789C                                  str  R0,[R7,#-16]   ; assign
10851   2D72 858C                                  lod  R1,[R7,#10]   ; risf
10852   2D74 0084                                  lod  R0,[R1]   ; risf
10853   2D76 918C                                  lod  R1,[R7,#34]   ; risf
10854                                          ; force VR0 to 0   ; call
10855                                          ; force VR1 to 1   ; call
10856   2D78 67D1                                  mov r2,r7   ; call
10857   2D7A 1609                                  sub r2,#22   ; call
10858   2D7C 3CD8541F                              jsr _read   ; call
10859                                          ; force VR0 to 0   ; res
10860   2D80 799C                                  str  R0,[R7,#-14]   ; assign
10861                                          ;       if (b == 0)
10862                                          ; 
10863   2D82 798C                                  lod  R0,[R7,#-14]   ; risf
10864   2D84 2800                                  cmp R0,#0   ; gfv
10865   2D86 04D8902D                              bne br186 ; fjump F   ; cfj
10866                                          ;        {
10867                                          ; 
10868                                          ;         f->flags = 1;
10869                                          ; 
10870   2D8A E100                                  lod R1,#1   ; lti
10871   2D8C 038C                                  lod  R0,[R7,#6]   ; risf
10872   2D8E 8090                                  str  R1,[R0]   ; assign
10873                                   br186  ; anon
10874                                          ;       }
10875                                          ; 
10876                                          ;       f->bytes = b;
10877                                          ; 
10878   2D90 F98C                                  lod  R1,[R7,#-14]   ; risf
10879   2D92 098C                                  lod  R0,[R7,#18]   ; risf
10880   2D94 8090                                  str  R1,[R0]   ; assign
10881                                          ;       f->poi = f->data;
10882                                          ; 
10883   2D96 918C                                  lod  R1,[R7,#34]   ; risf
10884   2D98 0B8C                                  lod  R0,[R7,#22]   ; risf
10885   2D9A 8090                                  str  R1,[R0]   ; assign
10886                                   br185  ; anon
10887                                          ;     }
10888                                          ; 
10889                                          ;     if (f->flags & 1) break;  
10890                                          ; 
10891   2D9C 038C                                  lod  R0,[R7,#6]   ; risf
10892   2D9E 8080                                  lod  R1,[R0]   ; risf
10893   2DA0 B900                                  and R1,#1   ; alu_i
10894   2DA2 00D8AA2D                              beq br187 ; fjmp1   ; cfj
10895   2DA6 28D8AC2D                              bra br179   ; anon
10896                                   br187  ; anon
10897   2DAA 97CA                                  bra br178   ; anon
10898                                   br179  ; anon
10899                                          ;   }
10900                                          ; 
10901                                          ;   *p = (char) 0;
10902                                          ; 
10903   2DAC E000                                  lod R1,#0   ; lti
10904   2DAE 7E8C                                  lod  R0,[R7,#-4]   ; risf
10905   2DB0 80B0                                  strb R1,[R0]   ; assign
10906                                          ;   return buf;
10907                                          ; 
10908   2DB2 018C                                  lod  R0,[R7,#2]   ; risf
10909                                          ; force VR0 to 0   ; loadtod0
10910   2DB4 7F8F                                  lod R6,[R7,#-2]   ; cr
10911   2DB6 808F                                  lod r7,[r7]   ; cr
10912   2DB8 00F3                                  ret   ; cr
10913                                          
10914                                          
10915                                          ; Routine _crt0
10916                                          .align 2 
10917                                  __crt0  .global
10918   2DBA 809B                                  str r7,[r2]
10919   2DBC E2D3                                  mov r7,r2
10920   2DBE 7F9F                                  str R6,[R7,#-2]
10921                                          ; ------------------------------------------------- 
10922                                          ;  
10923                                          ; 
10924                                          ; 
10925                                          ; 
10926                                          ; 
10927                                          ; 
10928                                          ; 
10929                                          ; 
10930                                          ; 
10931                                          ; 
10932                                          ; 
10933                                          ; 
10934                                          ; 
10935                                          ; 
10936                                          ; 
10937                                          ; 
10938                                          ; 
10939                                          ; 
10940                                          ; 
10941                                          ; 
10942                                          ; 
10943                                          ; 
10944                                          ; 
10945                                          ; 
10946                                          ; 
10947                                          ; 
10948                                          ; 
10949                                          ; 
10950                                          ; 
10951                                          ; 
10952                                          ; 
10953                                          ; 
10954                                          ; 
10955                                          ; 
10956                                          ;  
10957                                          ; 
10958                                          ; 
10959                                          ; 
10960                                          ; 
10961                                          ; 
10962                                          ; 
10963                                          ; 
10964                                          ; 
10965                                          ; 
10966                                          ; 
10967                                          ; 
10968                                          ; 
10969                                          ; 
10970                                          ; typedef unsigned char uchar;
10971                                          ; 
10972                                          ; 
10973                                          ; 
10974                                          ; 
10975                                          ; 
10976                                          ; 
10977                                          ; 
10978                                          ; 
10979                                          ; 
10980                                          ; 
10981                                          ; 
10982                                          ; typedef struct stdio 
10983                                          ; 
10984                                          ; {
10985                                          ; 
10986                                          ;   int flags;
10987                                          ; 
10988                                          ;   int sysfd;
10989                                          ; 
10990                                          ;   int mode;
10991                                          ; 
10992                                          ;   int bytes;
10993                                          ; 
10994                                          ;   char *poi;
10995                                          ; 
10996                                          ;   int error;
10997                                          ; 
10998                                          ;   int index;
10999                                          ; 
11000                                          ;   char data[32 ];
11001                                          ; 
11002                                          ; } STDIO;
11003                                          ; 
11004                                          ; 
11005                                          ; 
11006                                          ; 
11007                                          ; 
11008                                          ; extern int open(char *, int);
11009                                          ; 
11010                                          ; extern int close(char *, int);
11011                                          ; 
11012                                          ; extern int main(int, char **);
11013                                          ; 
11014                                          ; extern void _sa_wrch(char);
11015                                          ; 
11016                                          ; extern char _sa_rdch();
11017                                          ; 
11018                                          ; 
11019                                          ; 
11020                                          ; extern char getchar();
11021                                          ; 
11022                                          ; extern void putchar(char);
11023                                          ; 
11024                                          ; extern char toupper(char);
11025                                          ; 
11026                                          ; extern char tolower(char);
11027                                          ; 
11028                                          ; extern int strlen(const char *);
11029                                          ; 
11030                                          ; extern int strcmp(const char *, const char *);
11031                                          ; 
11032                                          ; extern int strncmp(char *, char *, int);
11033                                          ; 
11034                                          ; extern int console_flags;
11035                                          ; 
11036                                          ; extern void exit(int);
11037                                          ; 
11038                                          ; extern char *malloc(int);
11039                                          ; 
11040                                          ; extern int _exit(int);
11041                                          ; 
11042                                          ; extern int strlen(char *);
11043                                          ; 
11044                                          ; extern int isdigit(char);
11045                                          ; 
11046                                          ; extern int atoi(char *);
11047                                          ; 
11048                                          ; extern int checkend();
11049                                          ; 
11050                                          ; extern char *strncpy(char *, char *, int);
11051                                          ; 
11052                                          ; extern void flush_dtoi();
11053                                          ; 
11054                                          ; extern void printf();
11055                                          ; 
11056                                          ; 
11057                                          ; 
11058                                          ; 
11059                                          ; 
11060                                          ; 
11061                                          ; 
11062                                          ; 
11063                                          ; 
11064                                          ; 
11065                                          ; 
11066                                          ; 
11067                                          ; 
11068                                          ; struct stdio *fopen();
11069                                          ; 
11070                                          ; struct stdio *stdin;
11071                                          ; 
11072                                          ; struct stdio *stdout;
11073                                          ; 
11074                                          ; struct stdio *stderr;
11075                                          ; 
11076                                          ; void prstring(char *s, int prefield, int field);
11077                                          ; 
11078                                          ; void printu(int x);
11079                                          ; 
11080                                          ; void shi(unsigned int *p, int d);
11081                                          ; 
11082                                          ; void printx(unsigned int x, int field);
11083                                          ; 
11084                                          ; 
11085                                          ; 
11086                                          ; int errno;  
11087                                          ; 
11088                                          ; int deb;
11089                                          ; 
11090                                          ; uchar *kmalloc_poi;
11091                                          ; 
11092                                          ; 
11093                                          ; 
11094                                          ; static char *spf;
11095                                          ; 
11096                                          ; static char _spfbuf[1024];
11097                                          ; 
11098                                          ; 
11099                                          ; 
11100                                          ; 
11101                                          ; 
11102                                          ; int _crt0()
11103                                          ; 
11104                                          ; {
11105                                          ; 
11106                                          ;   kmalloc_poi = (char *) 0xE000 ;
11107                                          ; 
11108   2DC0 00F400E0                              lod R0,#57344   ; lti
11109   2DC4 20D450DF                              str  R0,_kmalloc_poi   ; assign
11110                                          ;   errno = 0;
11111                                          ; 
11112   2DC8 6000                                  lod R0,#0   ; lti
11113   2DCA 20D44CDF                              str  R0,_errno   ; assign
11114                                          ;   stdin = 0 ; 
11115                                          ; 
11116   2DCE 6000                                  lod R0,#0   ; lti
11117   2DD0 20D446DF                              str  R0,_stdin   ; assign
11118                                          ;   stdout = 0 ; 
11119                                          ; 
11120   2DD4 6000                                  lod R0,#0   ; lti
11121   2DD6 20D448DF                              str  R0,_stdout   ; assign
11122                                          ;   stderr = 0 ; 
11123                                          ; 
11124   2DDA 6000                                  lod R0,#0   ; lti
11125   2DDC 20D44ADF                              str  R0,_stderr   ; assign
11126                                          ;   return main(0, 0);
11127                                          ; 
11128   2DE0 6000                                  lod R0,#0   ; lti
11129   2DE2 E000                                  lod R1,#0   ; lti
11130                                          ; force VR0 to 0   ; call
11131                                          ; force VR1 to 1   ; call
11132   2DE4 67D1                                  mov r2,r7   ; call
11133   2DE6 1005                                  sub r2,#8   ; call
11134   2DE8 3CD83600                              jsr _main   ; call
11135                                          ; force VR0 to 0   ; res
11136                                          ; force VR0 to 0   ; loadtod0
11137   2DEC 7F8F                                  lod R6,[R7,#-2]   ; cr
11138   2DEE 808F                                  lod r7,[r7]   ; cr
11139   2DF0 00F3                                  ret   ; cr
11140   2DF2 00F3                                  ret   ; cr


ERRORS = 0,   SRC CARDS READ = 10031

