'
'
' SCRAP-Buffer-Beispiel-Accessory/-Programm fr CRACK ART
'
'
$m3000                          ! Minimum memory consumption
ap_id&=APPL_INIT()
IF ap_id&
  me_id&=MENU_REGISTER(ap_id&,"  READ SRAP")
  DO
    ~EVNT_MESAG(0)
    IF MENU(1)=40               ! Accessory wurde aufgerufen
      @main
    ENDIF
  LOOP
ELSE                            ! Aufruf als Prgramm
  @main
ENDIF
'
END
'
> PROCEDURE main
  buffer$=STRING$(10,0)
  IF SCRP_READ(buffer$)<>0          ! kann SCRAP-Buffer ausgelesen werden?
    IF LEFT$(buffer$,2)="CA"        ! CRACK ART-Kennung vorhanden?
      '
      scrapadr%=VAL("&H"+RIGHT$(buffer$,8))     ! strukturadresse auslesen
      '
      alert$="| Structure Adr: "+HEX$(scrapadr%,8)+" |"
      ALERT 3,alert$,1," OK ",i&
      '
      alert$="| Number of Screens: "+STR$(DPEEK(scrapadr%))+" | Current Screen:    "+STR$(DPEEK(scrapadr%+2))+"|"
      ALERT 3,alert$,1," OK ",i&
      '
      ALERT 2,"| Invert Current Workscreen |",1,"Invert|Cancel",i&
      IF i&=1                                       ! Bildschirm invertieren
        adr%=LPEEK(scrapadr%+4)                     ! Bildschirmadresse
        DEFMOUSE 2                                  ! Busy Bee
        FOR i&=0 TO 7999                            ! 8000 Langworte
          LPOKE adr%,LPEEK(adr%) XOR &HFFFFFFFF     ! invertieren
          ADD adr%,4                                ! Adresse erhhen
        NEXT i&
        DEFMOUSE 0                                  ! Mauspfeil
      ENDIF
      '
    ELSE
      ALERT 1,"| No CRACK ART | SCRAP-Entry! |",1,"Cancel",i&
    ENDIF
  ELSE
    ALERT 1,"| SCRAP_READ Error! |",1,"Cancel",i&
  ENDIF
RETURN
