mirror of
https://github.com/mi57730/a2d.git
synced 2025-02-20 02:29:11 +00:00
DeskTop: Avoid frequent STATUS calls on Laser 128. Maybe fixes #138
Also adjust double-click timing on Laser 128, assuming acceleration.
This commit is contained in:
parent
b257e03fae
commit
2905a5c930
@ -79,6 +79,7 @@ file, then select the appropriate command from the Apple menu.
|
||||
* Sort Directory: don't need to click before sorting. (#17)
|
||||
* Hardware/Emulator Specific:
|
||||
* IIc Plus: don't spin slot 5 drives constantly. (Use Special > Check Drive) (#25)
|
||||
* Laser 128: avoid hangs checking SmartPort status. (Use Special > Check Drive) (#138)
|
||||
* IIgs: color DHR is re-enabled on exit. (#43)
|
||||
* Macintosh LC IIe Option Card: don't crash on startup. (#93)
|
||||
* Macintosh LC IIe Option Card: correct problems with interrupts affecting AppleTalk. (#129)
|
||||
|
@ -646,6 +646,8 @@ L44A6: MGTK_RELAY_CALL MGTK::SelectWindow, findwindow_window_id
|
||||
|
||||
;;; ============================================================
|
||||
|
||||
;;; TODO: Move this to init block, since it isn't needed afterwards
|
||||
|
||||
.proc initialize_disks_in_devices_tables
|
||||
ldx #0
|
||||
ldy DEVCNT
|
||||
@ -677,6 +679,15 @@ append: lda DEVLST,y ; add it to the list
|
||||
and #%01110000 ; mask off slot
|
||||
cmp #$50 ; is it slot 5?
|
||||
beq next ; if so, ignore
|
||||
|
||||
;; Don't issue STATUS calls to Laser 128 Slot 7 firmware, as it causes
|
||||
;; hangs in some cases. https://github.com/inexorabletash/a2d/issues/138
|
||||
: bit is_laser128_flag
|
||||
bpl :+
|
||||
and #%01110000 ; mask off slot
|
||||
cmp #$70 ; is it slot 7?
|
||||
beq next ; if so, ignore
|
||||
|
||||
: lda DEVLST,y
|
||||
|
||||
inx
|
||||
@ -15366,7 +15377,7 @@ str_preview_txt:
|
||||
;;; Segment loaded into MAIN $800-$FFF
|
||||
;;; ============================================================
|
||||
|
||||
;;; Appears to be init sequence - machine identification, etc
|
||||
;;; Init sequence - machine identification, etc
|
||||
|
||||
.proc desktop_800
|
||||
|
||||
@ -15393,6 +15404,7 @@ start:
|
||||
copy ID_BYTE_FBB3, id_FBB3 ; $06 = IIe or later
|
||||
copy ID_BYTE_FBC0, id_FBC0 ; $00 = IIc or later
|
||||
copy ID_BYTE_FBBF, id_FBBF ; IIc ROM version (IIc+ = $05)
|
||||
copy ID_BYTE_FB1E, id_FB1E ; $AC = Laser 128
|
||||
|
||||
;; ... and page in LCBANK1
|
||||
sta ALTZPON
|
||||
@ -15412,20 +15424,29 @@ start:
|
||||
|
||||
;; Identify machine type (double-click timer, other flags)
|
||||
copy #0, is_iic_plus_flag
|
||||
copy #0, is_laser128_flag
|
||||
|
||||
lda id_FBC0
|
||||
beq is_iic ; $FBC0 = $00 -> is IIc or IIc+
|
||||
bit iigs_flag
|
||||
bmi is_iigs
|
||||
|
||||
;; IIe (or IIe Option Card, or Laser 128)
|
||||
copy #$96, machine_type ; IIe
|
||||
jmp end
|
||||
|
||||
lda id_FB1E ; Is it a Laser 128?
|
||||
cmp #$AC
|
||||
bne :+
|
||||
copy #$80, is_laser128_flag
|
||||
copy #$FD, machine_type ; Assume accelerated?
|
||||
: jmp end
|
||||
|
||||
;; IIgs
|
||||
is_iigs:
|
||||
copy #$FD, machine_type ; IIgs
|
||||
jmp end
|
||||
|
||||
|
||||
;; IIc or IIc+
|
||||
is_iic: copy #$FA, machine_type ; IIc
|
||||
lda id_FBBF ; ROM version
|
||||
cmp #$05 ; IIc Plus = $05
|
||||
@ -15436,6 +15457,7 @@ is_iic: copy #$FA, machine_type ; IIc
|
||||
iigs_flag: ; High bit set if IIgs detected.
|
||||
.byte 0
|
||||
|
||||
id_FB1E: .byte 0
|
||||
id_FBB3: .byte 0
|
||||
id_FBC0: .byte 0
|
||||
id_FBBF: .byte 0
|
||||
|
@ -816,6 +816,9 @@ str_clock:
|
||||
is_iic_plus_flag:
|
||||
.byte 0
|
||||
|
||||
is_laser128_flag:
|
||||
.byte 0
|
||||
|
||||
;;; ============================================================
|
||||
|
||||
;;; 5.25" Floppy Disk
|
||||
|
@ -61,6 +61,7 @@ F8VERSION := $06
|
||||
;;; Miscellaneous
|
||||
IRQ_VECTOR := $3FE
|
||||
|
||||
ID_BYTE_FB1E := $FB1E ; $AC = Laser 128
|
||||
ID_BYTE_FBB3 := $FBB3 ; $06 = IIe or later
|
||||
ID_BYTE_FBC0 := $FBC0 ; $EA = IIe, $E0 = IIe enh/IIgs, $00 = IIc/IIc+
|
||||
ID_BYTE_FBBF := $FBBF ; IIc ROM version ($05 = IIc+)
|
||||
|
Loading…
x
Reference in New Issue
Block a user