head	1.2;
access;
symbols;
locks; strict;
comment	@# @;


1.2
date	2008.03.14.15.26.37;	author dilbert57;	state dead;
branches;
next	1.1;
commitid	509c47da99224567;

1.1
date	2007.12.09.16.06.10;	author dilbert57;	state Exp;
branches;
next	;
commitid	15a2475c11894567;


desc
@@


1.2
log
@Removing old source code
@
text
@ TTL BOOT
 NAM FLEX LOADER FOR COMPACT FLASH
 PAG
* 6809 BOOTSTRAP FLEX LOADER
* FOR SYSTEM09 FPGA SYSTEM

* EQUATES:
STACK EQU $C0FF
SCTBUF EQU $C300

 ORG $C000
BOOT BRA LOAD0
 FCB 0
 FCB 0
 FCB 0
TRK FCB 1
SCT FCB 0
TADR FDB 0
LADR FDB 0


LOAD0 LDS #STACK
 LDD TRK
 STD SCTBUF
 LDY #SCTBUF+256

LOAD1 BSR GETCH
 CMPA #2
 BEQ LOAD2
 CMPA #$16
 BNE LOAD1
 BSR GETCH
 STA TADR
 BSR GETCH
 STA TADR+1
 BRA LOAD1
LOAD2 BSR GETCH
 STA LADR
 BSR GETCH
 STA LADR+1
 BSR GETCH
 TFR A,B
 BEQ LOAD1
 LDX LADR
LOAD3 PSHS B,X
 BSR GETCH
 PULS B,X
 STA ,X+
 DECB
 BNE LOAD3
 BRA LOAD1
  PAG
GETCH CMPY #SCTBUF+256
 BNE GETCH4
GETCH2 LDX #SCTBUF
 LDD 0,X
 BEQ GO
 BSR READ
 BNE LDERR
 LDY #SCTBUF+4
GETCH4 LDA ,Y+
 RTS

GO JMP [TADR]

LDERR JMP [$FFFE]

*
** COMPACT FLASH DISK READ ROUTINE
*
* FOR SYS09BUG 1.2 ON THE BURCHED B5-X300
* WITH I/O MAPPED AT $XE000
* AND ROM MAPPED AT $XF000
* THE BURCHED B5-X300 HAS 256KBYTES OF SRAM
* THE FIRST 64K IS USED BY FLEX,
* THE SECOND 192K MAY BE USED AS A RAM DISK
*
*
IMASK  EQU $10     IRQ MASK CC
FMASK  EQU $40     FIRQ MASK CC
DATREG EQU $FFF0   DAT REGISTERS
*
CF_BASE    EQU $E040
CF_DATA    EQU CF_BASE+0
CF_ERROR   EQU CF_BASE+1 ; read error
CF_FEATURE EQU CF_BASE+1 ; write feature
CF_SECCNT  EQU CF_BASE+2
CF_SECNUM  EQU CF_BASE+3
CF_CYLLO   EQU CF_BASE+4
CF_CYLHI   EQU CF_BASE+5
CF_HEAD    EQU CF_BASE+6
CF_STATUS  EQU CF_BASE+7 ; read status
CF_COMAND  EQU CF_BASE+7 ; write command
*
* Command Equates
*
CMDREAD    EQU $20 ; Read Single sector
CMDWRITE   EQU $30 ; Write Single sector
CMDFEATURE EQU $EF
FEAT8BIT   EQU $01 ; enable 8 bit transfers
HEADLBA    EQU $E0
*
* Status bit equates
*
BSY        EQU $80
DRDY       EQU $40
DRQ        EQU $08
ERR        EQU $01
*
* READ SECTOR FROM CF
* ACCA = TRACK
* ACCB = SECTOR
* X    = BUFFER POINTER
*
READ   STA  CF_CYLLO
       DECB
       STB  CF_SECNUM
       LDA  #$01
       STA  CF_SECCNT
       CLRA
       STA  CF_CYLHI
*
       LDA  #CMDREAD ; IDE READ MULTIPLE
       STA  CF_COMAND
       JSR  WAITRDY
*
* READ LOOP
*
       CLRB
RDLP1  JSR  WAITDRQ
       LDA  CF_DATA
       STA  ,X+
       DECB
       BNE  RDLP1
*
       CLRB
RDLP2  JSR  WAITDRQ
       LDA  CF_DATA
       DECB
       BNE  RDLP2
*
       JSR  WAITRDY
       CLRB
       RTS
*
* WAIT UNTIL READY
*
WAITRDY LDA  CF_STATUS
        BITA #BSY
        BNE  WAITRDY
        LDA  CF_STATUS
        BITA #DRDY
        BEQ  WAITRDY
        RTS
*
* WAIT FOR DATA REQUEST
*
WAITDRQ LDA  CF_STATUS
        BITA #DRQ
        BEQ  WAITDRQ
        RTS
*
        END
@


1.1
log
@New directory structure
@
text
@@

