From fe7cc0e135c338fc9f2375bf218fe5c6fd2c2ddd Mon Sep 17 00:00:00 2001 From: Joshua Bell Date: Mon, 9 Apr 2018 21:19:34 -0700 Subject: [PATCH] this.apple DA: Add Laser 128 detection --- desk.acc/this.apple.s | 103 ++++++++++++++++++++++-------------------- 1 file changed, 54 insertions(+), 49 deletions(-) diff --git a/desk.acc/this.apple.s b/desk.acc/this.apple.s index f6875bd..07ac9eb 100644 --- a/desk.acc/this.apple.s +++ b/desk.acc/this.apple.s @@ -465,7 +465,26 @@ textfont: .addr 0 ;;; ============================================================ -;;; Per Tech Note: Apple II Miscellaneous #7: Apple II Family Identification +;;; Per Tech Note: Apple II Miscellaneous #7: Apple II Family Identification, +;;; and c/o JohnMBrooks + +;;; Machine $FBB3 $FB1E $FBC0 $FBDD $FBBE $FBBF +;;; ----------------------------------------------------------------------------- +;;; Apple ][ $38 [$AD] [$60] [$2F] +;;; Apple ][+ $EA $AD [$EA] [$EA] +;;; Apple /// (emulation) $EA $8A +;;; Apple IIe $06 [$AD] $E0 [$00] +;;; Apple IIe (enhanced) $06 [$AD] $E0 [$00] +;;; Apple IIe Option Card $06 [$AD] $E0 $02 $00 +;;; Apple IIc $06 $00 $FF +;;; Apple IIc (3.5 ROM) $06 $00 $00 +;;; Apple IIc (Org. Mem. Exp.) $06 $00 $03 +;;; Apple IIc (Rev. Mem. Exp.) $06 $00 $04 +;;; Apple IIc Plus $06 $00 $05 +;;; Apple IIgs $06 [$4C] $E0 (and SEC, JSR $FE1F, CC=IIgs) +;;; Laser 128 $06 $AC [$E0] +;;; +;;; (Values in [] are for reference, not needed for compatibility check) .scope model ii := 0 @@ -495,69 +514,55 @@ model_pix_table: ;; Read from ROM lda ROMIN2 + ;; ][, ][+ or /// lda $FBB3 cmp #$38 - beq ii - cmp #$EA - beq iiplus_or_iii - - lda $FBC0 - cmp #$EA - beq iie - cmp #$E0 - beq iie_or_iigs - bne iic_or_iic_plus - -iiplus_or_iii: + bne :+ + lda #model::ii + bpl done +: cmp #$EA + bne iie_or_later lda $FB1E cmp #$AD - beq iiplus - bne iii - -ii: lda #model::ii + bne :+ + lda #model::iiplus + bpl done +: lda #model::iii bpl done -iiplus: lda #model::iiplus - bpl done +iie_or_later: + lda $FBC0 + beq iic_or_plus -iii: lda #model::iii + ;; IIe, IIe card, IIgs or Laser 128 + lda $FB1E + cmp #$AC + bne :+ + lda #model::laser128 bpl done - -iie: lda #model::iie - bpl done - -iie_or_iigs: - ;; TODO: Identify Laser 128 - sec +: sec jsr $FE1F - bcc iigs - - lda $FBDD + bcs :+ + lda #model::iigs + bpl done +: lda $FBDD cmp #$02 - beq iie_card -iie_e: lda #model::iie_enhanced - bpl done - -iic_or_iic_plus: - lda $FBBF - cmp #$05 - bcs iic_plus -iic: lda #model::iic - bpl done - -iic_plus: - lda #model::iic_plus - bpl done - -iie_card: + bne :+ lda #model::iie_card bpl done +: lda #model::iie + bpl done -iigs: lda #model::iigs +iic_or_plus: + lda $FBBF + cmp #5 + bne :+ + lda #model::iic + bpl done +: lda #model::iic_plus ;; fall through... -done: - asl +done: asl tax copy16 model_str_table,x, model_str_ptr copy16 model_pix_table,x, model_pix_ptr