⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 txt.pas

📁 dos下经典游戏超级马力的完整源代码
💻 PAS
📖 第 1 页 / 共 3 页
字号:
  @0d175:
    db 5,8
    db $88,$10,$21,$42,$00
  @0d176:
    db 6,8
    db $4E,$14,$45,$51,$E4,$00
  @0d177:
    db 6,8
    db $84,$41,$10,$04,$E1,$00
  @0d178:
    db 6,8
    db $4E,$04,$31,$42,$F0,$01
  @0d179:
    db 6,8
    db $4E,$04,$31,$50,$E4,$00
  @0d180:
    db 6,8
    db $08,$A3,$24,$1F,$82,$00
  @0d181:
    db 6,8
    db $5F,$F0,$40,$50,$E4,$00
  @0d182:
    db 6,8
    db $8C,$10,$3C,$51,$E4,$00
  @0d183:
    db 6,8
    db $1F,$04,$21,$04,$41,$00
  @0d184:
    db 6,8
    db $4E,$14,$39,$51,$E4,$00
  @0d185:
    db 6,8
    db $4E,$14,$79,$10,$62,$00
  @0d186:
    db 2,8
    db $10,$10
  @0d187:
    db 3,8
    db $80,$00,$28
  @0d188:
    db 5,8
    db $88,$88,$20,$08,$02
  @0d189:
    db 6,8
    db $00,$F0,$01,$C0,$07,$00
  @0d190:
    db 5,8
    db $41,$10,$44,$44,$00
  @0d191:
    db 6,8
    db $4E,$04,$21,$04,$40,$00
  @0d192:
    db 6,8
    db $4E,$D4,$55,$5D,$E0,$00
  @0d193:
    db 6,8
    db $84,$12,$45,$5F,$14,$01
  @0d194:
    db 6,8
    db $4F,$14,$3D,$51,$F4,$00
  @0d195:
    db 7,8
    db $1C,$51,$20,$10,$10,$71,$00
  @0d196:
    db 7,8
    db $8F,$48,$28,$14,$8A,$3C,$00
  @0d197:
    db 6,8
    db $5F,$10,$3C,$41,$F0,$01
  @0d198:
    db 6,8
    db $5F,$10,$3C,$41,$10,$00
  @0d199:
    db 7,8
    db $1C,$51,$20,$10,$13,$F1,$00
  @0d200:
    db 6,8
    db $51,$14,$7D,$51,$14,$01
  @0d201:
    db 2,8
    db $55,$15
  @0d202:
    db 6,8
    db $1E,$04,$41,$51,$E4,$00
  @0d203:
    db 6,8
    db $51,$52,$0C,$45,$12,$01
  @0d204:
    db 6,8
    db $41,$10,$04,$41,$F0,$01
  @0d205:
    db 8,8
    db $41,$63,$55,$49,$41,$41,$41,$00
  @0d206:
    db 6,8
    db $D1,$54,$65,$51,$14,$01
  @0d207:
    db 8,8
    db $1C,$22,$41,$41,$41,$22,$1C,$00
  @0d208:
    db 6,8
    db $4F,$14,$3D,$41,$10,$00
  @0d209:
    db 6,8
    db $4E,$14,$45,$91,$83,$01
  @0d210:
    db 6,8
    db $4F,$14,$3D,$45,$12,$01
  @0d211:
    db 6,8
    db $4E,$14,$38,$50,$E4,$00
  @0d212:
    db 6,8
    db $1F,$41,$10,$04,$41,$00
  @0d213:
    db 6,8
    db $51,$14,$45,$51,$E4,$00
  @0d214:
    db 6,8
    db $51,$14,$45,$91,$42,$00
  @0d215:
    db 8,8
    db $41,$41,$41,$49,$55,$63,$41,$00
  @0d216:
    db 8,8
    db $41,$22,$14,$08,$14,$22,$41,$00
  @0d217:
    db 8,8
    db $41,$22,$14,$08,$08,$08,$08,$00
  @0d218:
    db 7,8
    db $3F,$10,$04,$41,$10,$FC,$00
  @0d219:
    db 3,8
    db $4B,$92,$0C
  @0d220:
    db 5,8
    db $41,$08,$42,$10,$02
  @0d221:
    db 3,8
    db $93,$24,$0D
  @0d222:
    db 6,8
    db $00,$A1,$44,$00,$00,$00
  @0d223:
    db 6,8
    db $00,$00,$00,$00,$00,$FC
  @0d224:
    db 3,8
    db $11,$00,$00
  @0d225:
    db 5,8
    db $00,$B8,$94,$92,$05
  @0d226:
    db 5,8
    db $21,$9C,$94,$D2,$01
  @0d227:
    db 5,8
    db $00,$B8,$10,$82,$03
  @0d228:
    db 5,8
    db $08,$B9,$94,$92,$05
  @0d229:
    db 6,8
    db $00,$E0,$44,$5F,$E0,$00
  @0d230:
    db 4,8
    db $2C,$27,$22,$02
  @0d231:
    db 5,9
    db $00,$B8,$94,$92,$43,$80
  @0d232:
    db 5,8
    db $21,$9C,$94,$52,$02
  @0d233:
    db 2,8
    db $51,$15
  @0d234:
    db 3,9
    db $82,$24,$49,$00
  @0d235:
    db 5,8
    db $21,$A4,$32,$4A,$02
  @0d236:
    db 2,8
    db $55,$15
  @0d237:
    db 8,8
    db $00,$00,$37,$49,$49,$49,$49,$00
  @0d238:
    db 5,8
    db $00,$9C,$94,$52,$02
  @0d239:
    db 6,8
    db $00,$E0,$44,$51,$E4,$00
  @0d240:
    db 5,9
    db $00,$9C,$94,$D2,$09,$40
  @0d241:
    db 5,9
    db $00,$B8,$94,$92,$43,$00
  @0d242:
    db 5,8
    db $00,$98,$14,$42,$00
  @0d243:
    db 6,8
    db $00,$E0,$05,$0E,$F4,$00
  @0d244:
    db 5,8
    db $40,$3C,$21,$04,$03
  @0d245:
    db 5,8
    db $00,$A4,$94,$92,$03
  @0d246:
    db 6,8
    db $00,$10,$45,$91,$42,$00
  @0d247:
    db 8,8
    db $00,$00,$49,$49,$49,$49,$36,$00
  @0d248:
    db 6,8
    db $00,$10,$29,$84,$12,$01
  @0d249:
    db 5,9
    db $00,$A4,$94,$92,$43,$C0
  @0d250:
    db 6,8
    db $00,$F0,$21,$84,$F0,$01
  @0d251:
    db 4,8
    db $24,$12,$22,$04
  @0d252:
    db 2,8
    db $15,$15
  @0d253:
    db 4,8
    db $21,$42,$22,$01
  @0d254:
    db 7,8
    db $A6,$0C,$00,$00,$00,$00,$00
  @0d255:
    db 6,8
    db $00,$40,$28,$51,$F4,$01
  end;

  procedure SetFont (i: Integer; Style: Word);
  begin
    case i of
      0: begin
           Font := @Font8x8;
           Base := 0;
         end;
      1: begin
           Font := @SwissFont;
           Base := 32;
         end;
    end;
    bBold := Style or Bold = Style;
    bShadow := Style or Shadow = Style;
  end;

  function Letter (i: Integer): pointer;
    var
      W1,
      W2: Word;
      P: Pointer;
  begin
    P := Font;
    Dec (i, Base);
    asm
        push    ds
        lds     si, P
        mov     ax, i
        shl     ax, 1
        add     si, ax
        lodsw
        mov     W1, ds
        mov     W2, ax
        pop     ds
    end;
    Letter := Ptr (W1, W2);
  end;

  function TextWidth (S: String): Integer;
    var
      P: Pointer;
      Width: Integer;
      i: Byte;
      A: Word;
  begin
    P := Font;
    Width := 0;
    for i := 1 to Length (S) do
    begin
      A := Ord (S [i]) shl 1;
      Dec (A, 2 * Base);
      asm
        push    ds
        lds     si, P
        mov     ax, A
        add     si, ax
        cld
        lodsw
        mov     si, ax
        lodsb
        mov     ah, 0
        add     Width, ax
        pop     ds
      end;
      Inc (Width, Byte (bBold) + Byte (bShadow));
    end;
    TextWidth := Width;
  end;

  procedure WriteText (X, Y: Integer; S: String; Attr: Byte);
    var
      i: Byte;
      C: Char;
  begin
    i := 1;
    repeat
      C := S [i];
      if bShadow then
        DrawBitmap (X + 1, Y + 1, Letter (Ord (C))^, 16);
      if bBold then
      begin
        if bShadow then
          DrawBitmap (X, Y + 1, Letter (Ord (C))^, 16);
        DrawBitmap (X - 1, Y, Letter (Ord (C))^, Attr);
      end;
      DrawBitmap (X, Y, Letter (Ord (C))^, Attr);
      inc (X, TextWidth (C));
      Inc (i);
    until i > Length (S);
  end;

  function CenterX (S: String): Integer;
  begin
    CenterX := XView + (SCREEN_WIDTH - TextWidth (S)) shr 1;
  end;

  procedure CenterText (Y: Integer; S: String; Attr: Byte);
  begin
    WriteText (CenterX (S), Y, S, Attr);
  end;

begin
  SetFont (0, Normal);
end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -