1
 8080 MACRO ASSEMBLER, VER 3.0        ERRORS = 0      
+                                                      07:34  07/16/2019
+                                                                                      PAGE 1
      


   0000                    ORG     0
                   ;
                   ; SIO REV 1 LOADER FOR ALTAIR BASIC
                   ;
                   ;  ** FOR VERSIONS < 4.0 SET SENSE SWITCHES A11, A10 ON **
                   ;  ** FOR VERSIONS >= 4.0 SET SENSE SWITCHES OFF **
                   ;
                   ; H = MSB OF LOAD ADDRESS
                   ; L = LSB OF LOAD ADDRESS = LENGTH OF LOADER = LEADER BYTE
                    
                   ;       LXI     H,00F7DH        ;4K BASIC V3.0
                   ;       LXI     H,00FAEH        ;4K BASIC V3.2
                   ;       LXI     H,00FC2H        ;4K BASIC V4.0
                   ;       LXI     H,01F7DH        ;8K BASIC V3.0, V3.1
                   ;       LXI     H,01FAEH        ;8K BASIC V3.2
                   ;       LXI     H,01FC2H        ;8K BASIC V4.0
   0000   21AE2F           LXI     H,02FAEH        ;EXTENDED BASIC V3.2
                   ;       LXI     H,03FC2H        ;EXTENDED BASIC V4.0, V4.1
                   ;       LXI     H,07EC2H        ;EXTENDED DISK BASIC V5.0
                    
   0003   311200   LOOP:   LXI     SP,STACK        ;INIT SP SO A RET JUMPS TO LOOP
   0006   DB00             IN      00H             ;GET SIO STATUS
   0008   0F               RRC                     ;NEW BYTE AVAILABLE?
   0009   D8               RC                      ;NO (JUMPS BACK TO LOOP)
   000A   DB01             IN      01H             ;GET THE BYTE
   000C   BD               CMP     L               ;NEW BYTE = LEADER BYTE?
   000D   C8               RZ                      ;YES (JUMPS BACK TO LOOP)
   000E   2D               DCR     L               ;NOT LEADER, DECREMENT ADDRESS
   000F   77               MOV     M,A             ;STORE THE BYTE (REVERSE ORDER)
   0010   C0               RNZ                     ;LOOP UNTIL L = 0
   0011   E9               PCHL                    ;JUMP TO CODE JUST DOWNLOADED
                    
   0012   0300     STACK:  DW      LOOP
                    
                           END
 NO PROGRAM ERRORS
1
 8080 MACRO ASSEMBLER, VER 3.0        ERRORS = 0      
+                                                      07:34  07/16/2019
+                                                                                      PAGE 2
      


                        SYMBOL TABLE

  * 01

  A      0007      B      0000      C      0001      D      0002      
  E      0003      H      0004      L      0005      LOOP   0003      
  M      0006      PSW    0006      SP     0006      STACK  0012      
  
