;------------------------------------------------------------------------------ ; ; 1541 ; ; This source code generates the ROM for the 1541 in the address ; range $E000-$FFFF. The code for this version is: ; ; 901229-01 ; ;------------------------------------------------------------------------------ .ba $E5B6 ;** Cbm dos v2.6 1541 .by $73 ; 73 .tz 'CBM DOS V2.6 1541' .ba $E979 lda VIC20mode ; VIC-20 ? bne A_E980 ; yes, no slowdown needed, -> jsr DelayC64 ; delay for serial bus for C64 A_E980: ; [E980] jsr P_FEFB ; set DATA OUT and CLOCK OUT .ba $FC86 inx ; X := 1 WHY? is said to be bug .ba $FEE6 .by $FD ; checksum .ba $FEF3 ;** Delay loop for serial bus in 1541 mode from $E97D DelayC64: ; [FEF3] txa ldx #$05 ; about 40 microseconds Delay2: ; [FEF6] dex bne Delay2 tax rts ;** Patch for data output to serial bus from $E980 P_FEFB: ; [FEFB] jsr ClkOut_H ; CLOCK OUT hi jmp DataOut_L ; DATA OUT lo ;** U9 vector, switch 1540/1541 UI_U9: lda CMDBUF+2 cmp #'-' beq A_FF0D ; if parameter is '+', then at A_FF0D result is 0 sec sbc #'+' bne NMI ; indirect jump over ($0065) A_FF0D: ; [FF0D] sta VIC20mode rts .ba $FFFA .wo UI_U9 ;** UI, U9 .ba $FFFC ;** Hardware vectors ;******************************************************************************