?login_element?

Subversion Repositories NedoOS

Rev

Blame | Last modification | View Log | Download | RSS feed

  1. vers
  2.  
  3. ;Return Spectrum type by 48k ROM. Requires ROM 3 to be paged in.
  4.  
  5. ;Returns H=0 for 16/48/+         L=0 for Sinclair, 2 for TK95,
  6.                                   ;3 for GROOT
  7.                                   ;4 for IMC
  8. ;          1 for 128/+2          L=0 for Sinclair, 1 for Amstrad
  9. ;          2 for +3              L=1 for Amstrad, 4 for 48KDB
  10. ;        #FF for unknown
  11.  
  12.         PUSH    AF
  13.         LD      HL,#FFFF
  14.         LD      A,(#0B52)       ;Trap in 128k versions
  15.         CP      #C3
  16.         JR      Z,NON48
  17.         CP      #D6
  18.         JR      Z,IS48
  19. VRSRET
  20.         POP     AF
  21.         RET ;Unknown - #FFFF
  22.  
  23. IS48
  24.         LD      A,(#04AA)
  25.         INC     L               ;0
  26.         CP      #CD
  27.         JR      Z,VRSRET
  28.         INC     L
  29.         INC     L
  30.         CP      #11            ;TK95
  31.         JR      Z,VRSRET
  32.         INC     L
  33.         CP      #3E            ;GROOT
  34.         JR      Z,VRSRET
  35.         INC     L
  36.         CP      #CA            ;IMC
  37.         JR      Z,VRSRET
  38.         LD      L,#FF
  39.         POP     AF
  40.         RET
  41. ;
  42. NON48
  43.         LD      A,(#0B53)
  44.         CP      #9F            ;128/+2
  45.         JR      Z,TYP128
  46.         CP      #7E
  47.         JR      NZ,VRSRET       ;+2a/+3
  48.         LD      H,2
  49.         LD      A,(#004C)
  50.         LD      L,1             ;Amstrad
  51.         CP      #38
  52.         JR      Z,VRSRET
  53.         CP      #3B
  54.         LD      L,4
  55.         JR      Z,VRSRET
  56.         LD      L,#FF
  57.         POP     AF
  58.         RET
  59. ;
  60. TYP128
  61.         LD      H,1
  62.         LD      A,(#1540)       ;(c) message
  63.         CP      "A"
  64.         LD      L,1
  65.         JR      Z,VRSRET        ;Amstrad
  66.         DEC     L
  67.         CP      "S"             ;Sinclair
  68.         JR      Z,VRSRET
  69.         DEC     L
  70.         POP     AF
  71.         RET
  72.