Stockly.com Forums  

Go Back   Stockly.com Forums > Altair 680 > Altair 680
FAQ Community Calendar Today's Posts Search

Notices

 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
  #2  
Old 01-30-2008, 07:20 AM
Grant Stockly Grant Stockly is offline
Administrator
 
Join Date: Jan 2005
Posts: 447
Default

Assembled Listing
Code:
    0 : =$100               MIVEC         EQU   $100
    0 : =$104               NMIVEC  EQU   $104
    0 : =$F002              STRAPS  EQU   $F002
    0 : =$0                 NOTERM  EQU   0
    0 : =$F000              ACIACS  EQU   $F000
    0 : =$F001              ACIADA  EQU   $F001
    0 :                     ;**
    0 :                     ;**MONITOR STACK AND FLAGS
    0 :                     ;**
   F1 :                       ORG $F1
   F1 :                     STACK         RMB 1       ;BOTTOM OF MONITOR'S STACK
   F2 :                     BRKADR  RMB 1       ;BREAKPOINT ADDRESS FLAG
   F3 :                     ECHO          RMB 1       ;TTY ECHO FLAG
   F4 :                     EXTFLG  RMB 1       ;ENTENDED CHARACTER FLAG
   F5 :                     BUFULL  RMB 1       ;BUFFER FULL FLAG
   F6 :                     SAVSTK  RMB 2       ;TEMP FOR STACK POINTER
   F8 :                     TEMP          RMB 1       ;TEMPORARY STORAGE
   F9 :                     BYTECT  RMB 1       ;BYTE COUNT
   FA :                     XHI           RMB 1       ;XREG HIGH
   FB :                     XLOW          RMB 1       ;XREG LOW
   FC :                     SHIFT         RMB 1       ;BAUDOT SHIFT FLAG
   FD :                     SAVEX         RMB 2       ;TEMP FOR INDEX RG
   FF :                     BUFFER  RMB 1       ;BAUDOT CHARACTER FLAG
  100 :                     ;**
  100 :                     ;* START OF PROM
  100 :                     ;**
 FF00 :                       ORG $FF00
 FF00 :                     ;**
 FF00 :                     ;* INPUT ONE CHAR INTO A-REGISTER
 FF00 :                     ;* ECHO CHARACTER IF BIT 7 OF ECHO FLAG IS CLEAR
 FF00 :                     ;**
 FF00 : 8D 22               INCH    BSR   POLCAT      ;ACIA STATUC TO A REG
 FF02 : 24 FC                 BCC   INCH        ;RECEIVE NOT READY
 FF04 : C6 7F                 LDA   B, #$7F     ;MASK FOR PARITY REMOVAL
 FF06 : D1 F3                 CMP   B, ECHO     ;CHECK ECHO FLAG
 FF08 : F4 F0 01              AND   B, ACIADA   ;GET CARACTER
 FF0B : 24 74                 BCC   OUTCH       ;ECHO
 FF0D : 39                    RTS               ;NO ECHO
 FF0E :                     ;**
 FF0E :                     ;* THE FOLLOWING NOP LINES LINES UP THE ENTRY
 FF0E :                     ;* POINTS TO POLCAT IN THE TWO VERSIONS
 FF0E :                     ;* OF THE MONITOR
 FF0E :                     ;**
 FF0E : 01                    NOP
 FF0F :                     ;**
 FF0F :                     ;* INPUT ONE HEX DIGIT INTO B REG
 FF0F :                     ;* RETURN TO CALLING PROGRAM IF
 FF0F :                     ;* CHARACTER RECEIVED IS A HEX
 FF0F :                     ;* DIGIT. IF NOT HEX, GO TO CRLF
 FF0F :                     ;**
 FF0F : 8D EF               INHEX BSR     INCH        ;GET A CHARACTER
 FF11 : C0 30                 SUB   B, #'0'
 FF13 : 2B 3C                 BMI   C1          ;NOT HEX
 FF15 : C1 09                 CMP   B, #$09
 FF17 : 2F 0A                 BLE   IN1HG       ;NOT HEX
 FF19 : C1 11                 CMP   B, #$11
 FF1B : 2B 34                 BMI   C1          ;NOT HEX 
 FF1D : C1 16                 CMP   B, #$16
 FF1F : 2E 30                 BGT   C1          ;NOT HEX
 FF21 : C0 07                 SUB   B, #$07     ;IT'S A LETTER-GET BCD
 FF23 : 39                  IN1HG   RTS               ;RETURN
 FF24 :                     ;**
 FF24 :                     ;* POLE FOR CHARACTER
 FF24 :                     ;* SETS CARRY IF CHARACTER IS IN BUFFER
 FF24 :                     ;* CLOBBERS 8 REG
 FF24 :                     ;**
 FF24 : F6 F0 00            POLCAT LDA    B, ACIACS   ;ACIA STATUS T0 B
 FF27 : 57                    ASRB              ;ROTATE RDRF BIT INTO CARRY
 FF28 : 39                    RTS               ;RETURN
 FF29 :                     ;**
 FF29 :                     ;* LOAD PAPER TAPE
 FF29 :                     ;* LOAD ONLY S1 TYPE RECORDS 
 FF29 :                     ;* TERMINATE ON S9 OR CHECKSUM ERROR
 FF29 :                     ;**
 FF29 : 8D D5               LOAD    BSR   INCH        ;READ FRAME
 FF2B : C0 53                 SUB   B, #'S'
 FF2D : 26 FA                 BNE   LOAD        ;FIRST CHAR NOT (S)
 FF2F : 8D CF                 BSR   INCH        ;READ FRAME
 FF31 : C1 39                 CMP   B, #'9'
 FF33 : 27 1C                 BEQ   C1          ;S9 END OF FILE
 FF35 : C1 31                 CMP   B, #'1'
 FF37 : 26 F0                 BNE   LOAD        ;SECOND CHAR NOT (1)
 FF39 : 4F                    CLR   A           ;ZERO THE CHECKSUM
 FF3A : 8D 17                 BSR   BYTE        ;READ BYTE
 FF3C : C0 02                 SUB   B, #$02
 FF3E : D7 F9                 STA   B, BYTECT   ;BYTE COUNT
 FF40 : 8D 20                 BSR   BADDR       ;GET ADDRESS OF BLOCK
 FF42 : 8D 0F               LOAD11 BSR    BYTE        ;GET DATA BYTE
 FF44 : 7A 00 F9              DEC   BYTECT      ;DECREMENT BYTE COUNT
 FF47 : 27 05                 BEQ   LOAD15      ;DONE WITH THIS BLOCK
 FF49 : E7 00                 STA   B, 0, X     ;STORE DATA
 FF4B : 08                    INX               ;BUMP POINTER
 FF4C : 20 F4                 BRA   LOAD11      ;GO BACK FOR MORE
 FF4E : 4C                  LOAD15 INC    A           ;INCREMENT CHECKSUM
 FF4F : 27 D8               LLOAD   BEQ   LOAD        ;ALL OK - IT'S ZERO
 FF51 : 20 58               C1      BRA   CRLF        ;CHECKSUM ERROR - QUIT
 FF53 :                     ;**
 FF53 :                     ;* READ BYTE (2 HEX DIGITS)
 FF53 :                     ;* INTO B REG
 FF53 :                     ;* A IS USED FOR PAPER TAPE CHECKSUM
 FF53 :                     ;**
 FF53 : 8D BA               BYTE    BSR   INHEX       ;GET FIRST HEX DIG
 FF55 : 58                    ASL   B           ;GET SHIFT TO HIGH ORDER 4 BITS
 FF56 : 58                    ASL   B
 FF57 : 58                    ASL   B
 FF58 : 58                    ASL   B
 FF59 : 1B                    ABA               ;ADD TO CHEKSUM
 FF5A : D7 F8                 STA   B, TEMP     ;STORE DIGIT
 FF5C : 8D B1                 BSR   INHEX       ;GET 2ND HEX DIG
 FF5E : 1B                    ABA               ;ADD TO CHECKSUM
 FF5F : DB F8                 ADD   B, TEMP     ;COMBINE DIGITS TO GET BYTE
 FF61 : 39                    RTS               ;RETURN
 FF62 :                     ;**
 FF62 :                     ;* READ 16 BIT ADDRESS INTO X
 FF62 :                     ;* STORE SAME ADDRESS IN XHI & XLO
 FF62 :                     ;* CLOBBERS B REG
 FF62 :                     ;**
 FF62 : 8D EF               BADDR BSR     BYTE        ;GET HIGH ORDER ADDRESS
 FF64 : D7 FA                 STA   B, XHI      ;STORE IT
 FF66 : 8D EB                 BSR   BYTE        ;GET LOW ORDER ADDRESS
 FF68 : D7 FB                 STA   B, XLOW     ;STORE IT
 FF6A : DE FA                 LDX   XHI         ;LOAD X WITH ADDRESS BUILT
 FF6C : 39                    RTS               ;RETURN
 FF6D :                     ;**
 FF6D :                     ;* PRINT BYTE IN A REG
 FF6D :                     ;* CLOBBERS B REG
 FF6D :                     ;**
 FF6D : 16                  OUT2H   TAB               ;COPY BYTE TO B
 FF6E : 54                    LSR   B           ;SHIFT TO RIGHT
 FF6F : 54                    LSR   B
 FF70 : 54                    LSR   B
 FF71 : 54                    LSR   B
 FF72 : 8D 01                 BSR   OUTHR       ;OUTPUT FIRST DIGIT
 FF74 : 16                    TAB               ;BYTE INTO B AGAIN
 FF75 : C4 0F               OUTHR AND     B, #$0F     ;GET RID OF LEFT DIG
 FF77 : CB 30                 ADD   B, #$30     ;GET ASCII
 FF79 : C1 39                 CMP   B, #$39
 FF7B : 23 04                 BLS   OUTCH
 FF7D : CB 07                 ADD   B, #$07     ;IF IT'S A LETTER ADD 7
 FF7F : 01                    NOP               ;LINE UP OUTCH ENTRY POINTS
 FF80 : 01                    NOP
 FF81 : 8C                  OUTCH   FCB   $8C         ;USE CPX SKIP TRICK
 FF82 : C6 20               OUTS    LDA   B, #$20     ;OUTS PRINTS A SPACE
 FF84 :                     ;**
 FF84 :                     ;* OUTCH OUTPUTS CHARACTER IN B
 FF84 :                     ;**
 FF84 : 37                    PSH   B           ;SAVE CHAR
 FF85 : 8D 9D               OUTC1 BSR     POLCAT      ;ACIA STATUS TO B REG
 FF87 : 57                    ASR   B
 FF88 : 24 FB                 BCC   OUTC1       ;XMIT NOT READY
 FF8A : 33                    PUL   B           ;CHAR BACK TO B REG
 FF8B : F7 F0 01              STA   B, ACIADA   ;OUTPUT CHARACTER
 FF8E : 39                    RTS
 FF8F :                     ;**
 FF8F :                     ;* EXAMINE AND DEPOSIT NEXT
 FF8F :                     ;* USES CONTENTS OF XHI & XLO AS POINTER
 FF8F :                     ;**
 FF8F : DE FA               NCHANG LDX    XHI         ;INCREMENT POINTER
 FF91 : 08                    INX
 FF92 : DF FA                 STX   XHI
 FF94 : 96 FA                 LDA   A, XHI
 FF96 : 8D D5                 BSR   OUT2H       ;PRINT OUT ADDRESS
 FF98 : 96 FB                 LDA   A, XLOW
 FF9A : 8D D1                 BSR   OUT2H
 FF9C : 8C                    FCB   $8C         ;USE CPX SKIP TRICK
 FF9D :                     ;**
 FF9D :                     ;* EXAMINE & DEPOSIT
 FF9D :                     ;**
 FF9D : 8D C3               CHANGE BSR    BADDR       ;BUILD ADDRESS
 FF9F : 8D E1                 BSR   OUTS        ;PRINT SPACE
 FFA1 : A6 00                 LDA   A, 0, X     ;BYTE INTO A
 FFA3 : 8D C8                 BSR   OUT2H       ;PRINT BYTE
 FFA5 : 8D DB                 BSR   OUTS        ;PRINT SPACE
 FFA7 : 8D AA                 BSR   BYTE        ;GET NEW BYTE
 FFA9 : E7 00                 STA   B, 0, X     ;STORE NEW BYTE
 FFAB :                     ;**
 FFAB :                     ;* COMMAND DECODING SECTION
 FFAB :                     ;**
 FFAB : 9E F6               CRLF    LDS   SAVSTK
 FFAD : C6 0D                 LDA   B, #$0D     ;CARRIAGE RETURN
 FFAF : 8D D0                 BSR   OUTCH
 FFB1 : C6 0A                 LDA   B, #$0A     ;LINE FEED
 FFB3 : 8D CC                 BSR   OUTCH
 FFB5 : C6 2E                 LDA   B, #'.'     ;PROMPT CHARACTER
 FFB7 : 8D C8                 BSR   OUTCH
 FFB9 : BD FF 00              JSR   INCH        ;READ CHARACTER
 FFBC : 17                    TBA               ;MAKE A COPY
 FFBD : 8D C3                 BSR   OUTS        ;PRINT SPACE
 FFBF : 81 4C                 CMP   A, #'L'
 FFC1 : 27 8C                 BEQ   LLOAD       ;LOAD PAPER TAPE
 FFC3 : 81 4A                 CMP   A, #'J'
 FFC5 : 26 04                 BNE   NOTJ
 FFC7 : 8D 99                 BSR   BADDR       ;GET ADDRESS TO JUMP TO
 FFC9 : 6E 00                 JMP   0, X        ;JUMP TO IT
 FFCB : 81 4D               NOTJ    CMP   A, #'M'
 FFCD : 27 CE                 BEQ   CHANGE      ;EXAMINE & DEPOSIT
 FFCF : 81 4E                 CMP   A, #'N'
 FFD1 : 27 BC                 BEQ   NCHANG      ;E & D NEXT
 FFD3 : 81 50                 CMP   A, #'P'
 FFD5 : 26 D4                 BNE   CRLF
 FFD7 : 3B                    RTI               ;PROCEDE FROM BREAKPOINT
 FFD8 :                     ;**
 FFD8 :                     ;* RESET ENTRY POINT
 FFD8 :                     ;**
 FFD8 : 8E 00 F3            RESET LDS     #ECHO       ;INITIALIZE STACK POINTER
 FFDB : C6 03                 LDA   B, #$03     ;INIT ECHO AND BRKADR FLAGS
 FFDD : 37                    PSH   B
 FFDE : 37                    PSH   B
 FFDF : F7 F0 00              STA   B, ACIACS   ;MASTER RESET ACIA
 FFE2 : F6 F0 02              LDA   B, STRAPS   ;LOOK AT STRAPS
 FFE5 : 2B 19                 BMI   NOTERM      ;NO TERM - JUMP TO 0
 FFE7 : C4 04                 AND   B, #$04     ;GET # OF STOP BITS
 FFE9 : CA D1                 ORA   B, #$D1
 FFEB : F7 F0 00              STA   B, ACIACS   ;INIT ACIA PORT
 FFEE :                     ;**
 FFEE :                     ;* SOFTWARE INTERRUPT ENTRY POINT
 FFEE :                     ;**
 FFEE : 9F F6               INTRPT STS    SAVSTK      ;SAVE STACK POINTER
 FFF0 : 9F FA                 STS   XHI         ;SAVE SP FOR N COMMAND
 FFF2 : D6 F2                 LDA   B, BRKADR   ;IF BIT 7 OF BRKADR IS SET
 FFF4 : 2B 0A                 BMI   NOTERM      ;JUMP TO 0
 FFF6 : 20 B3                 BRA   CRLF        ;GOTO COMMAND DECODER
 FFF8 :                     ;**
 FFF8 :                     ;* NOW COME THE INTERRUPT VECTORS
 FFF8 :                     ;**
 FFF8 :                       ORG   $FFF8
 FFF8 : 01 00                 FDB   MIVEC       ;MI VECTOR
 FFFA : FF EE                 FDB   INTRPT      ;SWI VECTOR
 FFFC : 01 04                 FDB   NMIVEC      ;NMI VECTOR
 FFFE : FF D8                 FDB   RESET       ;RESET VECTOR
10000 :                     
10000 :                       END

  symbol table (* = unused):
  ------------------------

 ACIACS :                      F000 - |  ACIADA :                      F001 - |
*ARCHITECTURE :  i386-unknown-win32 - |  BADDR :                       FF62 C |
*BIGENDIAN :                      0 - | *BRANCHEXT :                      0 - |
 BRKADR :                        F2 C | *BUFFER :                        FF C |
*BUFULL :                        F5 C |  BYTE :                        FF53 C |
 BYTECT :                        F9 C |  C1 :                          FF51 C |
*CASESENSITIVE :                  0 - |  CHANGE :                      FF9D C |
*CONSTPI :        3.141592653589793 - |  CRLF :                        FFAB C |
*DATE :                   1/29/2008 - |  ECHO :                          F3 C |
*EXTFLG :                        F4 C | *FALSE :                          0 - |
*FULLPMMU :                       1 - | *HAS64 :                          1 - |
*HASDSP :                         0 - | *HASFPU :                         0 - |
*HASPMMU :                        0 - |  IN1HG :                       FF23 C |
 INCH :                        FF00 C | *INEXTMODE :                      0 - |
 INHEX :                       FF0F C | *INLWORDMODE :                    0 - |
*INMAXMODE :                      0 - | *INSRCMODE :                      0 - |
*INSUPMODE :                      0 - |  INTRPT :                      FFEE C |
*LISTON :                         1 - |  LLOAD :                       FF4F C |
 LOAD :                        FF29 C |  LOAD11 :                      FF42 C |
 LOAD15 :                      FF4E C | *MACEXP :                         1 - |
 MIVEC :                        100 - | *MOMCPU :                      6800 - |
*MOMCPUNAME :                  6800 - |  NCHANG :                      FF8F C |
*NESTMAX :                      100 - |  NMIVEC :                       104 - |
 NOTERM :                         0 - |  NOTJ :                        FFCB C |
 OUT2H :                       FF6D C |  OUTC1 :                       FF85 C |
 OUTCH :                       FF81 C |  OUTHR :                       FF75 C |
 OUTS :                        FF82 C | *PACKING :                        0 - |
*PADDING :                        0 - |  POLCAT :                      FF24 C |
*RELAXED :                        1 - |  RESET :                       FFD8 C |
*SAVEX :                         FD C |  SAVSTK :                        F6 C |
*SHIFT :                         FC C | *STACK :                         F1 C |
 STRAPS :                      F002 - |  TEMP :                          F8 C |
*TIME :                    23:17:26 - | *TRUE :                           1 - |
*VERSION :                     142F - |  XHI :                           FA C |
 XLOW :                          FB C |

     69 symbols
     34 unused symbols

 AS V1.42 Beta [Bld 55] - source file flash_mon.asm - page 7 - 1/29/2008 23:17:26


  codepages:
  ----------

STANDARD (0 changed characters)


0.03 seconds assembly time

    242 lines source file
      2 passes
      0 errors
      0 warnings
Reply With Quote
 


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Original Complete MITS Altair 680 for Sale transient Altair 680 0 06-15-2011 10:42 PM
Altair 8800 VS 680 lovenewyawkcity Altair 8800 1 06-19-2010 01:52 PM
Mini680 Altair 680 Memory Expansion Board Grant Stockly Altair 680 10 10-31-2009 10:15 PM
Altair 680 paint r.alex Altair 680 0 04-27-2009 06:04 PM
Altair 680 rear panel cpmuseum Altair 680 1 01-05-2008 08:18 PM


All times are GMT. The time now is 10:50 PM.


Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2024, vBulletin Solutions, Inc.