Classic Computer Magazine Archive PROGRAM LISTING: 89-09a/RAMDISK.SRC


                    ATARI Macro Assembler Ver: 2.0A, RAMDISK.SRC


                    ******* SmartRAM 2.5
                    ******* by Tim Patrick, the Happy Hacker
                    ;
                    ******* (c)1989 Antic Publishing, Inc.
                    ;
                    ******* RAMDISK DRIVE NUMBER
        = 0008      RAMDRV  = 8             ;DOS 2.5=D8:
                    ;
                    ******* ZERO PAGE
        = 0014      RTCLOK  = $14
        = 0021      ICDNOZ  = $21
        = 0032      BUFRLO  = $32
        = 0033      BUFRHI  = $33
        = 0034      BFENLO  = $34
        = 0035      BFENHI  = $35
                    ;
                    ******* OTHER RAM
        = 03FA      GINTLK  = $3FA          ;CARTRIDGE?
        = 03F8      BASICF  = $3F8          ;ROM BASIC?
        = 02E0      RUNAD   = $2E0
        = 02E2      INITAD  = $2E2
        = 02EA      DVSTAT  = $2EA
        = 070A      DRVBYT  = $70A          ;DRIVE MASK
        = 070C      SASA    = $70C          ;END FMS CODE
        = 07E0      DINT    = $7E0          ;FMS INIT
        = 4000      TSTLC   = $4000
        = 7400      VTOCP1  = $7400         ;RD1050 VTOC1
        = 4000      VTOCP2  = $4000         ;RD1050 VTOC2
        = 009B      CR      = $9B
        = 001C      UP      = $1C
        = 007D      CLR     = 125
        = 00FD      BELL    = 253
        = 001D      DOWN    = $1D
        = 001E      LEFT    = $1E
        = 001F      RIGHT   = $1F
        = 1481      GETBANK = $1481         ;DOS ROUTINES
        = 12CB      SETBANK = $12CB
        = 07DF      FASTRAM = $07DF         ;SYNC W'VBI
        = 14C4      RAM_OUT = $14C4         ;RAMDISK EXIT
        = 0043      ZBUFP   = $43
        = 0042      CRITIC  = $42
        = 0B87      FIX_1   = $B87
        = 105D      S_FIX   = $105D
        = 0780      DVLOC_1 = $780          ;BSIO
        = 0B89      DVLOC_2 = $B89          ;FORMAT
        = 105F      DVLOC_3 = $105F         ;STATUS
        = 0004      READ    = 4
        = 0008      WRITE   = 8
        = 0003      OPEN    = 3
        = 000C      CLOSE   = 12
        = 0007      GET     = 7
        = 000B      PUT     = 11
        = 153F      MEMDUP  = $153F         ;MEM.SAV/DUP
        = 008B      NAK_ERR = 139
        = 183A      M_ADDR  = $183A
        = 1863      T_ADDR  = M_ADDR+MEMEND-MEMFIX
                    ;
                    ******* OS ROM VECTORS
        = E453      DSKINV  = $E453
        = E456      CIOV    = $E456
        = E459      SIOV    = $E459
                    ;
                    ******* CHIP REGISTERS
        = D301      PORTB   = $D301
        = D40E      NMIEN   = $D40E
                    ;
                    ******* DCB/IOCB
        = 0300      DDEVIC  = $300
        = 0301      DUNIT   = $301
        = 0302      DCOMND  = $302
        = 0303      DSTATS  = $303
        = 0304      DBUFLO  = $304
        = 0305      DBUFHI  = $305
        = 030A      DAUX1   = $30A
        = 030B      DAUX2   = $30B
                    ;
        = 0342      ICCOM   = $342
        = 0344      ICBAL   = $344
        = 0345      ICBAH   = $345
        = 0348      ICBLL   = $348
        = 0349      ICBLH   = $349
        = 034A      ICAX1   = $34A
        = 034B      ICAX2   = $34B
                    ;
                    ******* MACROS
                    SKW     MACRO           ;SKIP WORD
                            DB  $FC         ;BRANCH +2
                            ENDM
                    SKB     MACRO           ;SKIP BYTE
                            DB  $F4         ;BRANCH +1
                            ENDM
                    ;
                    ******* INSTALLATION ROUTINE
                    ;
  0000  = 3000              ORG  $3000
                    ;
                    ******* 256K EXTENDED MEMORY TEST
                    ;
  3000  AD01D3      INSTAL  LDA  PORTB
  3003  09FC                ORA #$FC        ;SET ALL BITS
  3005  48                  PHA             ;(SAVE IT)
  3006  AA                  TAX             ;NORMAL IN X
  3007  ACAD33              LDY  BIT_X      ;XE BANK IN Y
  300A  20EC32              JSR  MEMTST     ;TEST IT
  300D  1002 ^3011          BPL  TEST6
                    ;
  300F  68                  PLA             ;NO EXTRA RAM
  3010  60                  RTS             ;BYE!
                    ;
  3011  AE9C33      TEST6   LDX  BIT_6      ;ANY AT 6?
  3014  20EC32              JSR  MEMTST
  3017  8DB133              STA  EXTRA      ;192K FLAG(0)
                    ;
  301A  AEA033      TEST5   LDX  BIT_5      ;HOW ABOUT 5?
  301D  20EC32              JSR  MEMTST
  3020  3012 ^3034          BMI  TEST7
                    ;
                    ******* NEWELL/RAMBO?
                    ;
  3022  EEB133              INC  EXTRA      ;BIT-6(+)?
  3025  D023 ^304A          BNE  MEMX       ;YUP, RAMBOXL
                    ;
  3027  A203                LDX #3
  3029  BDA933      LPN     LDA  NEWELL,X   ;FIX TABLE
  302C  9D9C33              STA  TABLE,X    ;FOR NEWELL
  302F  CA                  DEX
  3030  10F7 ^3029          BPL  LPN
  3032  3013 ^3047          BMI  EXIT
                    ;
                    ******* TEST FOR BIT-7
                    ;
  3034  AEA533      TEST_7  LDX  BIT_7
  3037  20EC32              JSR  MEMTST
  303A  300E ^304A          BMI  MEMX
                    ;
  303C  A203                LDX #3
  303E  BDA533      LP7     LDA  BIT_7,X    ;FIX TABLE
  3041  9DA033              STA  TABLE2,X   ;FOR BIT-7
  3044  CA                  DEX
  3045  10F7 ^303E          BPL  LP7
                    ;
                    ******* RAM TEST EXIT
                    ;
  3047  EEB133      EXIT    INC EXTRA       ;256K FLAG(+)
                    ;
  304A  68          MEMX    PLA             ;FIX $D301
  304B  8D01D3              STA  PORTB
  304E  ADB133              LDA  EXTRA      ;(-) = 128K
  3051  F024 ^3077          BEQ  FIX_192    ;(0) = 192K
  3053  1025 ^307A          BPL  FIX_DOS    ;(+) = 256K
                    ;
                    ******* 130XE RAMDISK INITIALIZATION
                    ;
  3055  A0CA        XE_TYPE LDY #$CA        ;(DEX)
  3057  8CDA30              STY  V_TST1
  305A  EEE230              INC  V_TST2+1
                    ;
  305D  A003                LDY #3
  305F  8CED30              STY  CLEAR+1    ;ONLY 4 BANKS
  3062  B9AD33      XE_FIX  LDA  BIT_X,Y    ;FIX TABLE
  3065  999C33              STA  TABLE,Y    ;AND MESSAGE
  3068  B97330              LDA  XE_MSG,Y   ;FOR 130XE
  306B  993333              STA  MSG1+24+2,Y
  306E  88                  DEY
  306F  10F1 ^3062          BPL  XE_FIX
  3071  300A ^307D          BMI  MERGE
                    ;
  3073  4449534B    XE_MSG  DB  'DISK'
                    ;
                    ******* PATCH DOS 2.5 FOR 192/256K
                    ;
  3077  20D632      FIX_192 JSR  SIXFIX     ;ONLY 192K
                    ;
  307A  203A32      FIX_DOS JSR  DOSFIX     ;PATCH DOS
                    ;
                    ******* MERGE RAMDISK WITH DOS
                    ;
  307D  A908        MERGE   LDA #RAMDRV     ;INSTALL
  307F  AA                  TAX
  3080  8D8007              STA  DVLOC_1    ;DRIVE
  3083  8D890B              STA  DVLOC_2    ;NUMBER
  3086  8D5F10              STA  DVLOC_3    ;(DECIMAL)
  3089  18                  CLC
  308A  6930                ADC #'0'        ;(ASCII)
  308C  8D9933              STA  DRIVE+1
  308F  8D3133              STA  MSG1+24
  3092  8D7031              STA  DRIVE_1+1
  3095  8DD631              STA  DRIVE_2+1
                    ;
  3098  A900                LDA #0
  309A  38                  SEC             ;SET 1 BIT,
  309B  2A          DRVLP   ROL  A          ;THEN SHIFT
  309C  CA                  DEX             ;TO POSITION
  309D  D0FC ^309B          BNE  DRVLP
  309F  0D0A07              ORA  DRVBYT
  30A2  8D0A07              STA  DRVBYT     ;ADD TO TABLE
  30A5  20E007              JSR  DINT
                    ;
                    ******* PRINT SMARTRAM MESSAGE
                    ;
  30A8  A219                LDX #LOW MSG1
  30AA  A033                LDY #HIGH MSG1
  30AC  A94F                LDA #[MSGEND-MSG1]
  30AE  8D4803              STA  ICBLL
  30B1  8E4403              STX  ICBAL
  30B4  8C4503              STY  ICBAH
  30B7  A200                LDX #0
  30B9  8E4903              STX  ICBLH
  30BC  A90B                LDA #PUT
  30BE  8D4203              STA  ICCOM
  30C1  2056E4              JSR  CIOV
                    ;
                    ******* CHECK IF PREVIOUSLY FORMATTED
                    ;
  30C4  A202                LDX #2
  30C6  AD01D3              LDA  PORTB
  30C9  48                  PHA
  30CA  09FC                ORA #$FC
  30CC  3D9C33              AND  TABLE,X    ;SELECT VTOC
  30CF  8D01D3              STA  PORTB      ;RAMDISK BANK
                    ;
  30D2  A000                LDY #0          ;COMPARE
  30D4  EC0074      V_TST0  CPX  VTOCP1     ;VTOC BYTE-1
  30D7  F001 ^30DA          BEQ  V_TST1
  30D9  C8                  INY
  30DA  E8          V_TST1  INX
  30DB  EC0274              CPX  VTOCP1+2   ;VTOC BYTE-3
  30DE  F001 ^30E1          BEQ  V_TST2
  30E0  C8                  INY
  30E1  A2F2        V_TST2  LDX #$F2
  30E3  EC0174              CPX  VTOCP1+1   ;VTOC BYTE-2
  30E6  F001 ^30E9          BEQ  V_DONE
  30E8  C8                  INY
  30E9  98          V_DONE  TYA             ;FORMATTED?
  30EA  F042 ^312E          BEQ  NO_FMT
                    ;
                    ******* CLEAR EXTRA RAM
                    ;
  30EC  A207        CLEAR   LDX #7          ;BANKS 0->7
  30EE  AD01D3      FLP1    LDA  PORTB
  30F1  09FC                ORA #$FC
  30F3  3D9C33              AND  TABLE,X    ;GET FIRST
  30F6  8D01D3              STA  PORTB
  30F9  A240                LDX #$40        ;SET UP
  30FB  8633                STX  BUFRHI     ;INDIRECT
  30FD  A000                LDY #0          ;ADDRESS
  30FF  8432                STY  BUFRLO
  3101  98                  TYA             ;CLEAR "A"
  3102  9132        FLP2    STA (BUFRLO),Y  ;CLEAR A PAGE
  3104  C8                  INY
  3105  D0FB ^3102          BNE  FLP2
  3107  E633                INC  BUFRHI     ;NEXT PAGE
  3109  CA                  DEX
  310A  D0F6 ^3102          BNE  FLP2
  310C  CEED30              DEC  CLEAR+1    ;NEXT BANK
  310F  10DB ^30EC          BPL  CLEAR
                    ;
                    ******* SET UP XIO TO FORMAT
                    ;
  3111  203032      XIOFMT  JSR  DO_CLOSE   ;CHANNEL-4
  3114  A9FE                LDA #254        ;XIO FORMAT
  3116  9D4203              STA  ICCOM,X
  3119  A998                LDA #LOW DRIVE
  311B  9D4403              STA ICBAL,X
  311E  A933                LDA #HIGH DRIVE
  3120  9D4503              STA ICBAH,X
  3123  A900                LDA #0
  3125  9D4B03              STA  ICAX2,X
  3128  9D4A03              STA  ICAX1,X
  312B  2056E4              JSR  CIOV
                    ;
  312E  68          NO_FMT  PLA
  312F  8D01D3              STA  PORTB
                    ;
                    ******* MOVE DUP.SYS TO D8:
                    ;
  3132  203032              JSR  DO_CLOSE   ;CLOSE FIRST
  3135  A903                LDA #OPEN       ;OPEN
  3137  9D4203              STA  ICCOM,X
  313A  A904                LDA #READ       ;FOR READ
  313C  9D4A03              STA  ICAX1,X
  313F  A982                LDA #LOW FILE   ;D1:DUP.SYS
  3141  9D4403              STA  ICBAL,X
  3144  A933                LDA #HIGH FILE
  3146  9D4503              STA  ICBAH,X
  3149  2056E4              JSR  CIOV
  314C  301C ^316A          BMI  OOPS_1     ;NO DUP(?)
                    ;
                    ******* READ IT IN TO BUFFER
                    ;
  314E  A907                LDA #GET        ;COPY FILE
  3150  9D4203              STA  ICCOM,X
  3153  A906                LDA #LOW SIZE
  3155  9D4803              STA  ICBLL,X
  3158  A914                LDA #HIGH SIZE
  315A  9D4903              STA  ICBLH,X
  315D  A9B3                LDA #LOW BUFFER
  315F  9D4403              STA  ICBAL,X    ;TO BUFFER
  3162  A933                LDA #HIGH BUFFER
  3164  9D4503              STA  ICBAH,X
  3167  2056E4              JSR  CIOV
  316A  3022 ^318E  OOPS_1  BMI  OOPS_2
  316C  203032              JSR  DO_CLOSE
                    ;
                    ******* SWITCH TO D8: (#RAMDRV)
                    ;
  316F  A938        DRIVE_1 LDA #8+'0'      ;SET RAMDRIVE
  3171  8D8333              STA  FILE+1
  3174  8D8E33              STA  MEM_SAV+1
                    ;
                    ******* NOW OPEN FOR WRITE
                    ;
  3177  A903        OPEN_8  LDA #OPEN       ;OPEN
  3179  9D4203              STA  ICCOM,X
  317C  A908                LDA #WRITE      ;FOR WRITE
  317E  9D4A03              STA  ICAX1,X
  3181  A982                LDA #LOW FILE   ;D8:DUP.SYS
  3183  9D4403              STA  ICBAL,X
  3186  A933                LDA #HIGH FILE
  3188  9D4503              STA  ICBAH,X
  318B  2056E4              JSR  CIOV
  318E  301C ^31AC  OOPS_2  BMI  OOPS_3
                    ;
                    ******* WRITE DUP.SYS TO D8:
                    ;
  3190  A90B        WRTDUP  LDA #PUT        ;PUT BYTES
  3192  9D4203              STA  ICCOM,X
  3195  A906                LDA #LOW SIZE
  3197  9D4803              STA  ICBLL,X
  319A  A914                LDA #HIGH SIZE
  319C  9D4903              STA  ICBLH,X
  319F  A9B3                LDA #LOW BUFFER ;FROM BUFFER
  31A1  9D4403              STA  ICBAL,X
  31A4  A933                LDA #HIGH BUFFER
  31A6  9D4503              STA  ICBAH,X
  31A9  2056E4              JSR  CIOV       ;WRITE FILE
  31AC  3064 ^3212  OOPS_3  BMI  OOPS_4     ;(NEVER!)
                    ;
                    ******* CREATE MEM.SAV FILE
                    ;
  31AE  203032              JSR  DO_CLOSE
  31B1  ADFA03              LDA  GINTLK
  31B4  D005 ^31BB          BNE  MEM_FIL
  31B6  ADF803              LDA  BASICF
  31B9  D017 ^31D2          BNE  DUP_MEM
  31BB  A903        MEM_FIL LDA #OPEN       ;OPEN
  31BD  9D4203              STA  ICCOM,X
  31C0  A908                LDA #WRITE      ;FOR WRITE
  31C2  9D4A03              STA  ICAX1,X
  31C5  A98D                LDA #LOW MEMSAV ;D8:MEM.SAV
  31C7  9D4403              STA  ICBAL,X
  31CA  A933                LDA #HIGH MEMSAV
  31CC  9D4503              STA  ICBAH,X
  31CF  2056E4              JSR  CIOV
                    ;
                    ******* USE D8:DUP.SYS/MEM.SAV
                    ;
  31D2  203032      DUP_MEM JSR  DO_CLOSE
  31D5  A938        DRIVE_2 LDA #8+'0'
  31D7  8D3F15              STA  MEMDUP
                    ;
                    ******* IF 130XE, EXIT HERE
                    ;
  31DA  ADB133              LDA  EXTRA
  31DD  3051 ^3230          BMI  DO_CLOSE
                    ;
                    ******* UPDATE DUP.SYS MENU
                    ;
  31DF  A903                LDA #OPEN       ;OPEN
  31E1  9D4203              STA  ICCOM,X
  31E4  A90C                LDA #READ+WRITE ;FOR UPDATE
  31E6  9D4A03              STA  ICAX1,X
  31E9  A982                LDA #LOW FILE   ;D8:DUP.SYS
  31EB  9D4403              STA  ICBAL,X
  31EE  A933                LDA #HIGH FILE
  31F0  9D4503              STA  ICBAH,X
  31F3  2056E4              JSR  CIOV
                    ;
                    ******* POINT TO DUP MENU TITLE
                    ;
  31F6  A907                LDA #GET        ;GET
  31F8  9D4203              STA  ICCOM,X
  31FB  A930                LDA #LOW 48     ;48 BYTES
  31FD  9D4803              STA  ICBLL,X
  3200  A900                LDA #HIGH 48
  3202  9D4903              STA  ICBLH,X
  3205  A9B3                LDA #LOW BUFFER
  3207  9D4403              STA  ICBAL,X
  320A  A933                LDA #HIGH BUFFER
  320C  9D4503              STA  ICBAH,X
  320F  2056E4              JSR  CIOV
  3212  301C ^3230  OOPS_4  BMI  DO_CLOSE   ;(HUH?)
                    ;
                    ******* WRITE THE NEW TEXT DATA
                    ;
  3214  A90B                LDA #PUT        ;NOW, PUT
  3216  9D4203              STA  ICCOM,X
  3219  A91A                LDA #LOW [FILE-DUPMOD]
  321B  9D4803              STA  ICBLL,X
  321E  A900                LDA #HIGH [FILE-DUPMOD]
  3220  9D4903              STA  ICBLH,X
  3223  A968                LDA #LOW DUPMOD ;NEW TEXT
  3225  9D4403              STA  ICBAL,X
  3228  A933                LDA #HIGH DUPMOD
  322A  9D4503              STA  ICBAH,X
  322D  2056E4              JSR  CIOV       ;INTO MENU
                    ;
                    ******* BE NEAT, CLOSE IT UP.
                    ;
  3230  A240        DOCLOSE LDX #$40
  3232  A90C                LDA #CLOSE
  3234  9D4203              STA  ICCOM,X
  3237  4C56E4              JMP  CIOV       ;BYE, BYE
                    ;
                    *********************
                    *******             *
                    ******* SUBROUTINES *
                    *******             *
                    *********************
                    ;
                    ******* PATCH DOS 2.5 FOR 256K
                    ;
  323A  A909        DOS_FIX LDA #9
  323C  8D8E14              STA  $148E
  323F  A941                LDA #$41
  3241  8D9514              STA  $1495
                    ;
  3244  A00A                LDY #SETEND-SETFIX-1
  3246  B98E32      ST_FIX  LDA  SETFIX,Y
  3249  99DE12              STA  $12DE,Y
  324C  88                  DEY
  324D  10F7 ^3246          BPL  ST_FIX
                    ;
  324F  A013                LDY #RAMEND-RAMFIX-1
  3251  B99932      RM_FIX  LDA  RAMFIX,Y
  3254  99C414              STA  RAMOUT,Y
  3257  88                  DEY
  3258  10F7 ^3251          BPL  RM_FIX
                    ;
  325A  A008                LDY #8
  325C  B99C33      T_MOVE  LDA  TABLE,Y
  325F  996318              STA  T_ADDR,Y
  3262  88                  DEY
  3263  10F7 ^325C          BPL  T_MOVE
  3265  A963                LDA #LOW T_ADDR
  3267  8DE712              STA  T_FIX+1
  326A  A918                LDA #HIGH T_ADDR
  326C  8DE812              STA  T_FIX+2
                    ;
  326F  ADC317              LDA  $17C3
  3272  18                  CLC
  3273  6902                ADC #MF_2-MEMFIX
  3275  8DCA17              STA  $17CA
  3278  A028                LDY #MEMEND-MEMFIX-1
  327A  B9AD32      M_MOVE  LDA  MEMFIX,Y
  327D  993A18              STA  M_ADDR,Y
  3280  88                  DEY
  3281  10F7 ^327A          BPL  M_MOVE
                    ;
                    ******* DRIVE FORMAT TABLE FIX
                    ;
  3283  A98A                LDA #$8A
  3285  8D5D10              STA  S_FIX
  3288  A906                LDA #6          ;OFFSET-6
  328A  8D870B              STA  FIX_1
  328D  60                  RTS
                    ;
                    *********************
                    *******             *
                    *******  THE FIXES  *
                    *******             *
                    *********************
                    ;
                    ******* SET-BANK ROUTINE
                    ;
  328E  = 12DE#     SETFIX  LOC  $12DE
  12DE# 2907                AND #%00000111  ;1024 = 0
  12E0# A8          FINISH  TAY
  12E1# AD01D3              LDA  PORTB
  12E4# 09FC                ORA #$FC        ;SET ALL
  12E6# 399C33      T_FIX   AND  TABLE,Y    ;SELECT BANK
                    ;
  12E9# = 3299              ORG  *O
        = 3299      SETEND  = *
                    ;
                    ******* RAMDISK I/O EXIT
                    ;
  3299  = 14C4#     RAMFIX  LOC  RAM_OUT    ;($14C4)
  14C4# AD01D3              LDA  PORT_B
  14C7# 09FC                ORA #$FC        ;SET NO BANK
  14C9# 8D01D3              STA  PORT_B
  14CC# A0C0                LDY #$C0
  14CE# 8C0ED4              STY  NMIEN      ;RESTORE NMI
  14D1# A000                LDY #0
  14D3# 8442                STY  CRITIC     ;CLEAR CRITIC
  14D5# 58                  CLI             ;RESTORE IRQ
  14D6# C8                  INY             ;GOOD STATUS
  14D7# 60          NEW_OUT RTS             ;(+3 BYTES)
                    ;
  14D8# = 32AD              ORG  *O
        = 32AD      RAMEND  = *
                    ;
  32AD  FD9B        MEMFIX  DB BELL,CR
  32AF  1C4552524F  MF_2    DB UP,'ERROR WRITING MEM.SAV - Y TO RUN DOS!',CR
        = 32D6      MEMEND  = *
                    ;
                    ******* 192K RAMDISK INITIALIZATION
                    ;
  32D6  A003        SIX_FIX LDY #3
  32D8  B9AD33      FIX_6   LDA  BIT_X,Y    ;FIX TABLE
  32DB  99A033              STA  TABLE2,Y   ;AND MESSAGE
  32DE  B9E832              LDA  MSG_192,Y  ;FOR 192K
  32E1  997533              STA  DUPMOD+13,Y
  32E4  88                  DEY
  32E5  10F1 ^32D8          BPL  FIX_6
  32E7  60                  RTS
                    ;
  32E8  B1B9B2CB    MSG_192 DC  '1','9','2','K'
                    ;
                    ******* MEMORY TEST
                    ;
  32EC  8C01D3      MEMTST  STY  PORTB
  32EF  AD0040              LDA  TSTLC      ;GET BYTE
  32F2  48                  PHA             ;AND SAVE IT
  32F3  8E01D3              STX  PORTB      ;SWAP BANKS
  32F6  CD0040              CMP  TSTLC      ;THEN COMPARE
  32F9  D013 ^330E          BNE  YUP
  32FB  8C01D3              STY  PORTB      ;INCASE DATA
  32FE  49FF                EOR #$FF        ;IS SAME
  3300  8D0040              STA  TSTLC      ;INVERT IT
  3303  8E01D3              STX  PORTB      ;AND COMPARE
  3306  CD0040              CMP  TSTLC      ;AGAIN...
  3309  D003 ^330E          BNE  YUP
  330B  A2FF        NOPE    LDX #$FF        ;FAILED FLAG
  330D                      SKW             ;(SKIP WORD)
  330D +FC                  DB  $FC         ;(BRANCH +2)
  330E  A200        YUP     LDX #0          ;PASSED FLAG
  3310  8C01D3              STY  PORTB
  3313  68                  PLA             ;RESTORE BYTE
  3314  8D0040              STA  TSTLC
  3317  8A                  TXA             ;SET FLAG
  3318  60                  RTS
                    ;
                    ******* SMARTRAM MESSAGE
                    ;
                    ;SmartRAM-II DOS 2.5 D8:1050 EMULATOR
                    ;by Tim Patrick, COPYRIGHT 1989 ANTIC
                    ;
  3319  7D1C1C      MSG1    DB CLR,UP,UP
  331C  536D617274          DB 'SmartRAM-II DOS 2.5 D8:1050 EMULATOR'
  3340  9B                  DB CR
  3341  6279205469          DB 'by Tim Patrick, COPYRIGHT 1989 ANTIC'
  3365  1F1F1D              DB RIGHT,RIGHT,DOWN
        = 3368      MSGEND  =  *
                    ;
                    ******* FILENAMES AND DATA
                    ;
  3368  CDCFC4C9C6  DUPMOD  DC 'M','O','D','I','F','I'
  336E  C5C4A0C6CF          DC 'E','D',' ','F','O','R'
  3374  A0B2B5B6CB          DC ' ','2','5','6','K',' '
  337A  CDC1C3C8C9          DC 'M','A','C','H','I','N'
  3380  C5A1                DC 'E','!'
  3382  44313A4455  FILE    DB 'D1:DUP.SYS',CR
  338D  44383A4D45  MEM_SAV DB 'D8:MEM.SAV',CR
        = 1406      SIZE    =   5126
  3398  44383A9B    DRIVE   DB  'D8:',$9B
                    ;
                    ******* MASTER BANK CONTROL TABLE
                    ;
  339C  A3A7ABAF    TABLE   DB  $A3,$A7,$AB,$AF
  33A0  C3C7CBCF    TABLE2  DB  $C3,$C7,$CB,$CF
  33A4  FF          NORMAL  DB  $FF
        = 339C      BIT_6 = TABLE
        = 33A0      BIT_5 = TABLE2
                    ;
                    ******* EXTRA RAM CONTROL BYTES
                    ;
  33A5  63676B6F    BIT_7   DB $63,$67,$6B,$6F
  33A9  83878B8F    NEWELL  DB $83,$87,$8B,$8F
  33AD  E3E7EBEF    BIT_X   DB $E3,$E7,$EB,$EF
  33B1  00          EXTRA   DB 0
                    ;
                    ******* DUP.SYS COPY BUFFER
                    ;
        = 33B3      BUFFER  =  *+1

  33B2                      END  INSTAL


                    no ERRORs,  139 Labels, $43F2 free.


                    Tim Patrick * Kailua, HI 96734

Back to previous page