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


   0000                    ORG     0
                   ;
                   ; 2SIO LOADER FOR ALTAIR BASIC
                   ;
                   ;  ** FOR VERSIONS < 4.0 SET SENSE SWITCHES A11, A10 ON **
                   ;  ** FOR VERSIONS >= 4.0 SET SENSE SWITCHES OFF **
                   ;
   0000   3E03             MVI     A,3             ;RESET THEN INIT ACIA
   0002   D310             OUT     010H
   0004   3E15             MVI     A,015H          ;015H FOR 8N1, 011H FOR 8N2
   0006   D310             OUT     010H
                    
                   ; 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
   0008   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
                    
   000B   311A00   LOOP:   LXI     SP,STACK        ;INIT SP SO A RET JUMPS TO LOOP
   000E   DB10             IN      010H            ;GET 2SIO STATUS
   0010   0F               RRC                     ;NEW BYTE AVAILABLE?
   0011   D0               RNC                     ;NO (JUMPS BACK TO LOOP)
   0012   DB11             IN      011H            ;GET THE BYTE
   0014   BD               CMP     L               ;NEW BYTE = LEADER BYTE?
   0015   C8               RZ                      ;YES (JUMPS BACK TO LOOP)
   0016   2D               DCR     L               ;NOT LEADER, DECREMENT ADDRESS
   0017   77               MOV     M,A             ;STORE THE BYTE (REVERSE ORDER)
   0018   C0               RNZ                     ;LOOP UNTIL L = 0
   0019   E9               PCHL                    ;JUMP TO CODE JUST DOWNLOADED
                    
   001A   0B00     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   000B      
  M      0006      PSW    0006      SP     0006      STACK  001A      
  
