Subversion Repositories NedoOS

Rev

Rev 126 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download

  1.                 device  zxspectrum48
  2.  
  3.  
  4. ; BASIC block
  5.         module bas
  6. line10:         db      0, 10
  7.                 dw      .len
  8. .cmds           ; BORDER NOT PI:
  9.                 db      $E7, $C3, $A7, ':'
  10.                 ; PAPER NOT PI:
  11.                 db      $DA, $C3, $A7, ':'
  12.                 ; INK VAL "7":
  13.                 db      $D9, $B0, '"7":'
  14.                 ; CLEAR VAL "32767"
  15.                 db      $FD, $B0, '"32767"', $0D
  16. .len = $ - .cmds
  17.  
  18. line20:         db      0, 20
  19.                 dw      .len
  20. .cmds           ; POKE VAL "23739",CODE "o":
  21.                 db      $F4, $B0, '"23739",', $AF, '"o":'
  22.                 ; LOAD ""SCREEN$: LOAD ""CODE
  23.                 db      $EF, '""', $AA, ':', $EF, '""', $AF, $0D
  24. .len = $ - .cmds
  25.  
  26. line30:         db      0, 30
  27.                 dw      .len
  28. .cmds           ; RANDOMIZE USR VAL "32768"
  29.                 db      $F9, $C0, $B0, '"32768"', $0D
  30. .len = $ - .cmds
  31.  
  32. total = $ - line10
  33.         endmodule
  34.  
  35.  
  36. ; CHARS block
  37. chars:          db      1
  38.                 dw      .datalen
  39. .data:          db      "SAVETAP testing character array"
  40. .datalen = $ - .data
  41.  
  42. .len = $ - chars
  43.  
  44.  
  45. ; SCREEN$ block
  46.                 org     $4000
  47. screen:
  48.         rept 12
  49.                 block   256,$AA
  50.                 block   256,$55
  51.         endm
  52.         rept 24
  53.                 db      $07, $06, $06, $16, $05, $05, $0D, $04, $04, $14, $03, $03, $11, $02, $02, $29
  54.                 db      $29, $02, $02, $11, $03, $03, $14, $04, $04, $0D, $05, $05, $16, $06, $06, $07
  55.         endm
  56. .len = $ - screen
  57.  
  58.  
  59. ; CODE block
  60.                 org     $8000
  61.  
  62. demo:           ei
  63.                 halt
  64.                 djnz    demo
  65. .loop           ei
  66.                 halt
  67.                 ld      hl,$5801
  68.                 ld      de,$5800
  69.                 ld      bc,$300
  70.                 ld      a,(de)
  71.                 ld      ($5B00),a
  72.                 ldir
  73.                 call    .rnd
  74.                 ld      c,a
  75.                 and     $0C
  76.                 sub     $0B
  77.                 jr      nc,.not12
  78.                 ld      a,2
  79. .not12          ld      d,a
  80.                 call    .rnd
  81.                 ld      e,a
  82.                 ld      hl,$5800
  83.                 add     hl,de
  84.                 ld      a,c
  85.                 and     $7F
  86.                 xor     (hl)
  87.                 ld      (hl),a
  88.                 jr      .loop
  89.  
  90. .rnd            ld      a,$8729
  91.                 ld      b,a
  92.                 rrca
  93.                 rrca
  94.                 rrca
  95.                 xor     $1F
  96.                 add     a,b
  97.                 sbc     a,$FF
  98.                 ld      (.rnd+1),a
  99.                 ret
  100. .len = $ - demo
  101.  
  102.  
  103.                 emptytap "savetap_test.tap"
  104. ; store BASIC
  105.                 savetap "savetap_test.tap",BASIC,"tstSAVETAP", bas.line10, bas.total, 10
  106. ; store SCREEN$
  107.                 savetap "savetap_test.tap",CODE,"intro", screen, screen.len
  108. ; store CODE
  109.                 savetap "savetap_test.tap",CODE,"demo", demo, demo.len
  110. ; store CHARS
  111.                 savetap "savetap_test.tap",CHARS,"t$", chars, chars.len, 't'
  112. ; store HEADLESS
  113.                 savetap "savetap_test.tap",HEADLESS, (screen + $1800), 32, 66 ; custom flag
  114.